| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/base/l10n/l10n_util.h" | 5 #include "ui/base/l10n/l10n_util.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstdlib> | 8 #include <cstdlib> |
| 9 #include <iterator> | 9 #include <iterator> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 } | 303 } |
| 304 }; | 304 }; |
| 305 | 305 |
| 306 base::LazyInstance<std::vector<std::string>, AvailableLocalesTraits> | 306 base::LazyInstance<std::vector<std::string>, AvailableLocalesTraits> |
| 307 g_available_locales = LAZY_INSTANCE_INITIALIZER; | 307 g_available_locales = LAZY_INSTANCE_INITIALIZER; |
| 308 | 308 |
| 309 } // namespace | 309 } // namespace |
| 310 | 310 |
| 311 namespace l10n_util { | 311 namespace l10n_util { |
| 312 | 312 |
| 313 std::string GetCanonicalLocale(const std::string& locale) { | |
| 314 return base::i18n::GetCanonicalLocale(locale.c_str()); | |
| 315 } | |
| 316 | |
| 317 std::string GetLanguage(const std::string& locale) { | 313 std::string GetLanguage(const std::string& locale) { |
| 318 const std::string::size_type hyphen_pos = locale.find('-'); | 314 const std::string::size_type hyphen_pos = locale.find('-'); |
| 319 return std::string(locale, 0, hyphen_pos); | 315 return std::string(locale, 0, hyphen_pos); |
| 320 } | 316 } |
| 321 | 317 |
| 322 bool CheckAndResolveLocale(const std::string& locale, | 318 bool CheckAndResolveLocale(const std::string& locale, |
| 323 std::string* resolved_locale) { | 319 std::string* resolved_locale) { |
| 324 #if defined(OS_MACOSX) | 320 #if defined(OS_MACOSX) |
| 325 NOTIMPLEMENTED(); | 321 NOTIMPLEMENTED(); |
| 326 return false; | 322 return false; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 | 423 |
| 428 // We only use --lang and the app pref on Windows. On Linux, we only | 424 // We only use --lang and the app pref on Windows. On Linux, we only |
| 429 // look at the LC_*/LANG environment variables. We do, however, pass --lang | 425 // look at the LC_*/LANG environment variables. We do, however, pass --lang |
| 430 // to renderer and plugin processes so they know what language the parent | 426 // to renderer and plugin processes so they know what language the parent |
| 431 // process decided to use. | 427 // process decided to use. |
| 432 | 428 |
| 433 #if defined(OS_WIN) | 429 #if defined(OS_WIN) |
| 434 | 430 |
| 435 // First, try the preference value. | 431 // First, try the preference value. |
| 436 if (!pref_locale.empty()) | 432 if (!pref_locale.empty()) |
| 437 candidates.push_back(GetCanonicalLocale(pref_locale)); | 433 candidates.push_back(base::i18n::GetCanonicalLocale(pref_locale)); |
| 438 | 434 |
| 439 // Next, try the overridden locale. | 435 // Next, try the overridden locale. |
| 440 const std::vector<std::string>& languages = l10n_util::GetLocaleOverrides(); | 436 const std::vector<std::string>& languages = l10n_util::GetLocaleOverrides(); |
| 441 if (!languages.empty()) { | 437 if (!languages.empty()) { |
| 442 candidates.reserve(candidates.size() + languages.size()); | 438 candidates.reserve(candidates.size() + languages.size()); |
| 443 std::transform(languages.begin(), languages.end(), | 439 std::transform(languages.begin(), languages.end(), |
| 444 std::back_inserter(candidates), &GetCanonicalLocale); | 440 std::back_inserter(candidates), |
| 441 &base::i18n::GetCanonicalLocale); |
| 445 } else { | 442 } else { |
| 446 // If no override was set, defer to ICU | 443 // If no override was set, defer to ICU |
| 447 candidates.push_back(base::i18n::GetConfiguredLocale()); | 444 candidates.push_back(base::i18n::GetConfiguredLocale()); |
| 448 } | 445 } |
| 449 | 446 |
| 450 #elif defined(OS_ANDROID) | 447 #elif defined(OS_ANDROID) |
| 451 | 448 |
| 452 // On Android, query java.util.Locale for the default locale. | 449 // On Android, query java.util.Locale for the default locale. |
| 453 candidates.push_back(base::android::GetDefaultLocale()); | 450 candidates.push_back(base::android::GetDefaultLocale()); |
| 454 | 451 |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 878 | 875 |
| 879 const char* const* GetAcceptLanguageListForTesting() { | 876 const char* const* GetAcceptLanguageListForTesting() { |
| 880 return kAcceptLanguageList; | 877 return kAcceptLanguageList; |
| 881 } | 878 } |
| 882 | 879 |
| 883 size_t GetAcceptLanguageListSizeForTesting() { | 880 size_t GetAcceptLanguageListSizeForTesting() { |
| 884 return arraysize(kAcceptLanguageList); | 881 return arraysize(kAcceptLanguageList); |
| 885 } | 882 } |
| 886 | 883 |
| 887 } // namespace l10n_util | 884 } // namespace l10n_util |
| OLD | NEW |