summaryrefslogtreecommitdiffstats
path: root/mailnews/imap/src/nsImapStringBundle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/imap/src/nsImapStringBundle.cpp')
-rw-r--r--mailnews/imap/src/nsImapStringBundle.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/mailnews/imap/src/nsImapStringBundle.cpp b/mailnews/imap/src/nsImapStringBundle.cpp
new file mode 100644
index 000000000..124b7f0b6
--- /dev/null
+++ b/mailnews/imap/src/nsImapStringBundle.cpp
@@ -0,0 +1,42 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "prprf.h"
+#include "prmem.h"
+#include "nsCOMPtr.h"
+#include "nsStringGlue.h"
+#include "nsIStringBundle.h"
+#include "nsImapStringBundle.h"
+#include "nsIServiceManager.h"
+#include "nsIURI.h"
+#include "nsServiceManagerUtils.h"
+#include "mozilla/Services.h"
+
+#define IMAP_MSGS_URL "chrome://messenger/locale/imapMsgs.properties"
+
+extern "C"
+nsresult
+IMAPGetStringByName(const char* stringName, char16_t **aString)
+{
+ nsCOMPtr <nsIStringBundle> sBundle;
+ nsresult rv = IMAPGetStringBundle(getter_AddRefs(sBundle));
+ if (NS_SUCCEEDED(rv) && sBundle)
+ rv = sBundle->GetStringFromName(NS_ConvertASCIItoUTF16(stringName).get(),
+ aString);
+ return rv;
+}
+
+nsresult
+IMAPGetStringBundle(nsIStringBundle **aBundle)
+{
+ nsresult rv=NS_OK;
+ nsCOMPtr<nsIStringBundleService> stringService =
+ mozilla::services::GetStringBundleService();
+ if (!stringService) return NS_ERROR_NULL_POINTER;
+ nsCOMPtr<nsIStringBundle> stringBundle;
+ rv = stringService->CreateBundle(IMAP_MSGS_URL, getter_AddRefs(stringBundle));
+ *aBundle = stringBundle;
+ NS_IF_ADDREF(*aBundle);
+ return rv;
+}