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

Unified Diff: Source/platform/Language.cpp

Issue 703043002: Language.{h,cpp} clean-up. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month 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 | « Source/platform/Language.h ('k') | Source/web/resources/calendarPicker.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/Language.cpp
diff --git a/Source/platform/Language.cpp b/Source/platform/Language.cpp
index 03e587bf8ebc2e07d93e09d7de55e1ff8e56d93e..a12555a3ff3ca973829929a809c3bac033bcebfc 100644
--- a/Source/platform/Language.cpp
+++ b/Source/platform/Language.cpp
@@ -31,39 +31,45 @@
namespace blink {
+static String canonicalizeLanguageIdentifier(const String& languageCode)
+{
+ String lowercaseLanguageCode = languageCode.lower();
+ // Platform::defaultLocale() might provide a language code with '_'.
+ lowercaseLanguageCode.replace('_', '-');
+ return lowercaseLanguageCode;
+}
+
static const AtomicString& platformLanguage()
{
DEFINE_STATIC_LOCAL(AtomicString, computedDefaultLanguage, ());
if (computedDefaultLanguage.isEmpty()) {
- computedDefaultLanguage = blink::Platform::current()->defaultLocale();
+ computedDefaultLanguage = AtomicString(canonicalizeLanguageIdentifier(Platform::current()->defaultLocale()));
ASSERT(!computedDefaultLanguage.isEmpty());
}
return computedDefaultLanguage;
}
-AtomicString defaultLanguage()
-{
- Vector<AtomicString> languages = userPreferredLanguages();
- if (!languages.isEmpty())
- return languages[0];
-
- return emptyAtom;
-}
-
static Vector<AtomicString>& preferredLanguagesOverride()
{
DEFINE_STATIC_LOCAL(Vector<AtomicString>, override, ());
return override;
}
-Vector<AtomicString> userPreferredLanguagesOverride()
+void overrideUserPreferredLanguages(const Vector<AtomicString>& override)
{
Kunihiko Sakamoto 2014/11/06 03:56:02 I don't understand why this implementation is bett
tkent 2014/11/06 04:02:21 This is not better than the original code. We nee
Kunihiko Sakamoto 2014/11/06 04:03:47 Oh, I missed that part. Got it, thanks!
- return preferredLanguagesOverride();
+ Vector<AtomicString>& canonicalized = preferredLanguagesOverride();
+ canonicalized.resize(0);
+ canonicalized.reserveCapacity(override.size());
+ for (const auto& lang : override)
+ canonicalized.append(canonicalizeLanguageIdentifier(lang));
}
-void overrideUserPreferredLanguages(const Vector<AtomicString>& override)
+AtomicString defaultLanguage()
{
- preferredLanguagesOverride() = override;
+ Vector<AtomicString>& override = preferredLanguagesOverride();
+ if (!override.isEmpty())
+ return override[0];
+ return platformLanguage();
}
Vector<AtomicString> userPreferredLanguages()
@@ -78,16 +84,6 @@ Vector<AtomicString> userPreferredLanguages()
return languages;
}
-static String canonicalLanguageIdentifier(const String& languageCode)
-{
- String lowercaseLanguageCode = languageCode.lower();
-
- if (lowercaseLanguageCode.length() >= 3 && lowercaseLanguageCode[2] == '_')
- lowercaseLanguageCode.replace(2, 1, "-");
-
- return lowercaseLanguageCode;
-}
-
size_t indexOfBestMatchingLanguageInList(const AtomicString& language, const Vector<AtomicString>& languageList)
{
AtomicString languageWithoutLocaleMatch;
@@ -97,7 +93,7 @@ size_t indexOfBestMatchingLanguageInList(const AtomicString& language, const Vec
bool canMatchLanguageOnly = (language.length() == 2 || (language.length() >= 3 && language[2] == '-'));
for (size_t i = 0; i < languageList.size(); ++i) {
- String canonicalizedLanguageFromList = canonicalLanguageIdentifier(languageList[i]);
+ String canonicalizedLanguageFromList = canonicalizeLanguageIdentifier(languageList[i]);
if (language == canonicalizedLanguageFromList)
return i;
« no previous file with comments | « Source/platform/Language.h ('k') | Source/web/resources/calendarPicker.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698