diff options
Diffstat (limited to 'mailnews/imap/src/nsImapStringBundle.cpp')
-rw-r--r-- | mailnews/imap/src/nsImapStringBundle.cpp | 42 |
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; +} |