summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/imap/src/nsImapStringBundle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/imap/src/nsImapStringBundle.cpp')
-rw-r--r--comm/mailnews/imap/src/nsImapStringBundle.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/comm/mailnews/imap/src/nsImapStringBundle.cpp b/comm/mailnews/imap/src/nsImapStringBundle.cpp
new file mode 100644
index 0000000000..ab20f6e20f
--- /dev/null
+++ b/comm/mailnews/imap/src/nsImapStringBundle.cpp
@@ -0,0 +1,37 @@
+/* -*- 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 "nsString.h"
+#include "nsIStringBundle.h"
+#include "nsImapStringBundle.h"
+#include "nsServiceManagerUtils.h"
+#include "mozilla/Components.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) {
+ nsAutoString string;
+ rv = sBundle->GetStringFromName(stringName, string);
+ *aString = ToNewUnicode(string);
+ }
+ return rv;
+}
+
+nsresult IMAPGetStringBundle(nsIStringBundle** aBundle) {
+ nsresult rv = NS_OK;
+ nsCOMPtr<nsIStringBundleService> stringService =
+ mozilla::components::StringBundle::Service();
+ if (!stringService) return NS_ERROR_NULL_POINTER;
+ nsCOMPtr<nsIStringBundle> stringBundle;
+ rv = stringService->CreateBundle(IMAP_MSGS_URL, getter_AddRefs(stringBundle));
+ stringBundle.forget(aBundle);
+ return rv;
+}