summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/l10n_util.h2
-rw-r--r--app/resource_bundle.cc5
-rw-r--r--app/resource_bundle.h11
-rw-r--r--app/resource_bundle_dummy.cc4
-rw-r--r--app/resource_bundle_linux.cc3
-rw-r--r--app/resource_bundle_mac.mm4
-rw-r--r--app/resource_bundle_posix.cc9
-rw-r--r--app/resource_bundle_win.cc11
8 files changed, 28 insertions, 21 deletions
diff --git a/app/l10n_util.h b/app/l10n_util.h
index 4675156..0c65934 100644
--- a/app/l10n_util.h
+++ b/app/l10n_util.h
@@ -27,7 +27,7 @@
#include "unicode/uchar.h"
#if defined(OS_MACOSX)
-#include "app/l10n_util.h"
+#include "app/l10n_util_mac.h"
#endif // OS_MACOSX
class FilePath;
diff --git a/app/resource_bundle.cc b/app/resource_bundle.cc
index e3174d8..4c13e01 100644
--- a/app/resource_bundle.cc
+++ b/app/resource_bundle.cc
@@ -31,11 +31,12 @@ const SkColor ResourceBundle::toolbar_separator_color =
SkColorSetRGB(182, 186, 192);
/* static */
-void ResourceBundle::InitSharedInstance(const std::wstring& pref_locale) {
+std::string ResourceBundle::InitSharedInstance(
+ const std::wstring& pref_locale) {
DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice";
g_shared_instance_ = new ResourceBundle();
- g_shared_instance_->LoadResources(pref_locale);
+ return g_shared_instance_->LoadResources(pref_locale);
}
/* static */
diff --git a/app/resource_bundle.h b/app/resource_bundle.h
index 550fb72..0273494 100644
--- a/app/resource_bundle.h
+++ b/app/resource_bundle.h
@@ -63,10 +63,11 @@ class ResourceBundle {
LargeFont,
};
- // Initialize the ResourceBundle for this process.
+ // Initialize the ResourceBundle for this process. Returns the language
+ // selected.
// NOTE: Mac ignores this and always loads up resources for the language
// defined by the Cocoa UI (ie-NSBundle does the langange work).
- static void InitSharedInstance(const std::wstring& pref_locale);
+ static std::string InitSharedInstance(const std::wstring& pref_locale);
// Delete the ResourceBundle for this process if it exists.
static void CleanupSharedInstance();
@@ -169,8 +170,8 @@ class ResourceBundle {
#endif
// Try to load the main resources and the locale specific strings from an
- // external data module.
- void LoadResources(const std::wstring& pref_locale);
+ // external data module. Returns the locale that is loaded.
+ std::string LoadResources(const std::wstring& pref_locale);
// Initialize all the gfx::Font members if they haven't yet been initialized.
void LoadFontsIfNecessary();
@@ -183,7 +184,7 @@ class ResourceBundle {
// Returns the full pathname of the locale file to load. May return an empty
// string if no locale data files are found.
- static FilePath GetLocaleFilePath(const std::wstring& pref_locale);
+ static FilePath GetLocaleFilePath(const std::string& app_locale);
// Returns a handle to bytes from the resource |module|, without doing any
// processing or interpretation of the resource. Returns whether we
diff --git a/app/resource_bundle_dummy.cc b/app/resource_bundle_dummy.cc
index 77479f6..1dd65ed 100644
--- a/app/resource_bundle_dummy.cc
+++ b/app/resource_bundle_dummy.cc
@@ -24,9 +24,11 @@ namespace gfx {
/* static */
-void ResourceBundle::InitSharedInstance(const std::wstring& pref_locale) {
+std::string ResourceBundle::InitSharedInstance(
+ const std::wstring& pref_locale) {
DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice";
g_shared_instance_ = new ResourceBundle();
+ return std::string();
}
/* static */
diff --git a/app/resource_bundle_linux.cc b/app/resource_bundle_linux.cc
index e8c53d3..95d5ceb 100644
--- a/app/resource_bundle_linux.cc
+++ b/app/resource_bundle_linux.cc
@@ -74,12 +74,11 @@ FilePath ResourceBundle::GetResourcesFilePath() {
}
// static
-FilePath ResourceBundle::GetLocaleFilePath(const std::wstring& pref_locale) {
+FilePath ResourceBundle::GetLocaleFilePath(const std::string& app_locale) {
FilePath locale_file_path;
PathService::Get(app::DIR_LOCALES, &locale_file_path);
if (locale_file_path.empty())
return locale_file_path;
- const std::string app_locale = l10n_util::GetApplicationLocale(pref_locale);
if (app_locale.empty())
return FilePath();
locale_file_path = locale_file_path.AppendASCII(app_locale + ".pak");
diff --git a/app/resource_bundle_mac.mm b/app/resource_bundle_mac.mm
index 94ef31a..9d14440 100644
--- a/app/resource_bundle_mac.mm
+++ b/app/resource_bundle_mac.mm
@@ -29,8 +29,8 @@ FilePath ResourceBundle::GetResourcesFilePath() {
}
// static
-FilePath ResourceBundle::GetLocaleFilePath(const std::wstring& pref_locale) {
- DLOG_IF(WARNING, !pref_locale.empty())
+FilePath ResourceBundle::GetLocaleFilePath(const std::string& app_locale) {
+ DLOG_IF(WARNING, !app_locale.empty())
<< "ignoring requested locale in favor of NSBundle's selection";
return GetResourcesPakFilePath(@"locale");
}
diff --git a/app/resource_bundle_posix.cc b/app/resource_bundle_posix.cc
index ec6893a..044bc3d 100644
--- a/app/resource_bundle_posix.cc
+++ b/app/resource_bundle_posix.cc
@@ -5,6 +5,7 @@
#include "app/resource_bundle.h"
#include "app/gfx/font.h"
+#include "app/l10n_util.h"
#include "base/data_pack.h"
#include "base/logging.h"
#include "base/string16.h"
@@ -79,7 +80,7 @@ string16 ResourceBundle::GetLocalizedString(int message_id) {
return msg;
}
-void ResourceBundle::LoadResources(const std::wstring& pref_locale) {
+std::string ResourceBundle::LoadResources(const std::wstring& pref_locale) {
DCHECK(!resources_data_) << "chrome.pak already loaded";
FilePath resources_file_path = GetResourcesFilePath();
DCHECK(!resources_file_path.empty()) << "chrome.pak not found";
@@ -87,12 +88,14 @@ void ResourceBundle::LoadResources(const std::wstring& pref_locale) {
DCHECK(resources_data_) << "failed to load chrome.pak";
DCHECK(!locale_resources_data_) << "locale.pak already loaded";
- FilePath locale_file_path = GetLocaleFilePath(pref_locale);
+ std::string app_locale = l10n_util::GetApplicationLocale(pref_locale);
+ FilePath locale_file_path = GetLocaleFilePath(app_locale);
if (locale_file_path.empty()) {
// It's possible that there is no locale.pak.
NOTREACHED();
- return;
+ return std::string();
}
locale_resources_data_ = LoadResourcesDataPak(locale_file_path);
DCHECK(locale_resources_data_) << "failed to load locale.pak";
+ return app_locale;
}
diff --git a/app/resource_bundle_win.cc b/app/resource_bundle_win.cc
index 9a0f7eb..ae420b8 100644
--- a/app/resource_bundle_win.cc
+++ b/app/resource_bundle_win.cc
@@ -38,17 +38,18 @@ ResourceBundle::~ResourceBundle() {
}
}
-void ResourceBundle::LoadResources(const std::wstring& pref_locale) {
+std::string ResourceBundle::LoadResources(const std::wstring& pref_locale) {
// As a convenience, set resources_data_ to the current resource module.
resources_data_ = _AtlBaseModule.GetResourceInstance();
DCHECK(NULL == locale_resources_data_) << "locale dll already loaded";
- const FilePath& locale_path = GetLocaleFilePath(pref_locale);
+ std::string app_locale = l10n_util::GetApplicationLocale(pref_locale);
+ const FilePath& locale_path = GetLocaleFilePath(app_locale);
if (locale_path.value().empty()) {
// It's possible that there are no locale dlls found, in which case we just
// return.
NOTREACHED();
- return;
+ return std::string();
}
// The dll should only have resources, not executable code.
@@ -56,14 +57,14 @@ void ResourceBundle::LoadResources(const std::wstring& pref_locale) {
GetDataDllLoadFlags());
DCHECK(locale_resources_data_ != NULL) <<
"unable to load generated resources";
+ return app_locale;
}
// static
-FilePath ResourceBundle::GetLocaleFilePath(const std::wstring& pref_locale) {
+FilePath ResourceBundle::GetLocaleFilePath(const std::string& app_locale) {
FilePath locale_path;
PathService::Get(app::DIR_LOCALES, &locale_path);
- const std::string app_locale = l10n_util::GetApplicationLocale(pref_locale);
if (app_locale.empty())
return FilePath();