Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9882)

Unified Diff: chrome/common/l10n_util.cc

Issue 27223: Fix a NOTIMPLEMENTED() in l10n_util.cc from it expecting .dll in the file name. (Closed)
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/l10n_util.cc
diff --git a/chrome/common/l10n_util.cc b/chrome/common/l10n_util.cc
index a3372087999dd7d0d1b0a7ebce39b6423581bb20..3926796a235fd9805fe08a2eed41627df1e2094c 100644
--- a/chrome/common/l10n_util.cc
+++ b/chrome/common/l10n_util.cc
@@ -27,6 +27,12 @@
namespace {
+#if defined(OS_WIN)
+static const FilePath::CharType kLocaleFileExtension[] = L".dll";
+#elif defined(OS_POSIX)
+static const FilePath::CharType kLocaleFileExtension[] = ".pak";
+#endif
+
// Added to the end of strings that are too big in TrucateString.
static const wchar_t* const kElideString = L"\x2026";
@@ -44,7 +50,7 @@ void GetLanguageAndRegionFromOS(std::string* lang, std::string* region) {
*region = country;
}
-// Convert Chrome locale name (DLL name) to ICU locale name
+// Convert Chrome locale name to ICU locale name
std::string ICULocaleName(const std::wstring& locale_string) {
// If not Spanish, just return it.
if (locale_string.substr(0, 2) != L"es")
@@ -116,13 +122,14 @@ bool IsLocaleAvailable(const std::wstring& locale,
const std::wstring& locale_path) {
std::wstring test_locale = locale;
// If locale has any illegal characters in it, we don't want to try to
- // load it because it may be pointing outside the locale dll directory.
+ // load it because it may be pointing outside the locale data file directory.
file_util::ReplaceIllegalCharacters(&test_locale, ' ');
if (test_locale != locale)
return false;
- std::wstring test_path = locale_path;
- file_util::AppendToPath(&test_path, locale + L".dll");
+ FilePath test_path = FilePath::FromWStringHack(locale_path)
+ .Append(FilePath::FromWStringHack(locale))
+ .ReplaceExtension(kLocaleFileExtension);
return file_util::PathExists(test_path) && SetICUDefaultLocale(locale);
}
@@ -239,13 +246,8 @@ std::wstring GetApplicationLocale(const std::wstring& pref_locale) {
if (IsLocaleAvailable(fallback_locale, locale_path))
return fallback_locale;
-#if defined(OS_WIN)
- // No DLL, we shouldn't get here.
+ // No locale data file was found; we shouldn't get here.
NOTREACHED();
-#else
- // We need a locale data file.
- NOTIMPLEMENTED();
-#endif
return std::wstring();
}
@@ -651,7 +653,7 @@ const std::vector<std::wstring>& GetAvailableLocales() {
// Filter out the names that have aliases.
if (IsDuplicateName(locale_name))
continue;
- // Normalize underscores to hyphens because that's what our locale dlls
+ // Normalize underscores to hyphens because that's what our locale files
// use.
std::replace(locale_name.begin(), locale_name.end(), '_', '-');
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698