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

Unified Diff: Source/core/platform/text/LocaleToScriptMappingDefault.cpp

Issue 26113002: Move core/platform/text/Locale* to platform/text (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 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 | « Source/core/platform/text/LocaleToScriptMapping.h ('k') | Source/core/platform/text/LocaleWin.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/platform/text/LocaleToScriptMappingDefault.cpp
diff --git a/Source/core/platform/text/LocaleToScriptMappingDefault.cpp b/Source/core/platform/text/LocaleToScriptMappingDefault.cpp
deleted file mode 100644
index 197d87a99668a5cf878235c43a9189300ea3aa50..0000000000000000000000000000000000000000
--- a/Source/core/platform/text/LocaleToScriptMappingDefault.cpp
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "core/platform/text/LocaleToScriptMapping.h"
-
-#include "wtf/HashMap.h"
-#include "wtf/HashSet.h"
-#include "wtf/text/StringHash.h"
-
-namespace WebCore {
-
-UScriptCode scriptNameToCode(const String& scriptName)
-{
- struct ScriptNameCode {
- const char* name;
- UScriptCode code;
- };
-
- // This generally maps an ISO 15924 script code to its UScriptCode, but certain families of script codes are
- // treated as a single script for assigning a per-script font in Settings. For example, "hira" is mapped to
- // USCRIPT_KATAKANA_OR_HIRAGANA instead of USCRIPT_HIRAGANA, since we want all Japanese scripts to be rendered
- // using the same font setting.
- static const ScriptNameCode scriptNameCodeList[] = {
- { "zyyy", USCRIPT_COMMON },
- { "qaai", USCRIPT_INHERITED },
- { "arab", USCRIPT_ARABIC },
- { "armn", USCRIPT_ARMENIAN },
- { "beng", USCRIPT_BENGALI },
- { "bopo", USCRIPT_BOPOMOFO },
- { "cher", USCRIPT_CHEROKEE },
- { "copt", USCRIPT_COPTIC },
- { "cyrl", USCRIPT_CYRILLIC },
- { "dsrt", USCRIPT_DESERET },
- { "deva", USCRIPT_DEVANAGARI },
- { "ethi", USCRIPT_ETHIOPIC },
- { "geor", USCRIPT_GEORGIAN },
- { "goth", USCRIPT_GOTHIC },
- { "grek", USCRIPT_GREEK },
- { "gujr", USCRIPT_GUJARATI },
- { "guru", USCRIPT_GURMUKHI },
- { "hani", USCRIPT_HAN },
- { "hang", USCRIPT_HANGUL },
- { "hebr", USCRIPT_HEBREW },
- { "hira", USCRIPT_KATAKANA_OR_HIRAGANA },
- { "knda", USCRIPT_KANNADA },
- { "kana", USCRIPT_KATAKANA_OR_HIRAGANA },
- { "khmr", USCRIPT_KHMER },
- { "laoo", USCRIPT_LAO },
- { "latn", USCRIPT_LATIN },
- { "mlym", USCRIPT_MALAYALAM },
- { "mong", USCRIPT_MONGOLIAN },
- { "mymr", USCRIPT_MYANMAR },
- { "ogam", USCRIPT_OGHAM },
- { "ital", USCRIPT_OLD_ITALIC },
- { "orya", USCRIPT_ORIYA },
- { "runr", USCRIPT_RUNIC },
- { "sinh", USCRIPT_SINHALA },
- { "syrc", USCRIPT_SYRIAC },
- { "taml", USCRIPT_TAMIL },
- { "telu", USCRIPT_TELUGU },
- { "thaa", USCRIPT_THAANA },
- { "thai", USCRIPT_THAI },
- { "tibt", USCRIPT_TIBETAN },
- { "cans", USCRIPT_CANADIAN_ABORIGINAL },
- { "yiii", USCRIPT_YI },
- { "tglg", USCRIPT_TAGALOG },
- { "hano", USCRIPT_HANUNOO },
- { "buhd", USCRIPT_BUHID },
- { "tagb", USCRIPT_TAGBANWA },
- { "brai", USCRIPT_BRAILLE },
- { "cprt", USCRIPT_CYPRIOT },
- { "limb", USCRIPT_LIMBU },
- { "linb", USCRIPT_LINEAR_B },
- { "osma", USCRIPT_OSMANYA },
- { "shaw", USCRIPT_SHAVIAN },
- { "tale", USCRIPT_TAI_LE },
- { "ugar", USCRIPT_UGARITIC },
- { "hrkt", USCRIPT_KATAKANA_OR_HIRAGANA },
- { "bugi", USCRIPT_BUGINESE },
- { "glag", USCRIPT_GLAGOLITIC },
- { "khar", USCRIPT_KHAROSHTHI },
- { "sylo", USCRIPT_SYLOTI_NAGRI },
- { "talu", USCRIPT_NEW_TAI_LUE },
- { "tfng", USCRIPT_TIFINAGH },
- { "xpeo", USCRIPT_OLD_PERSIAN },
- { "bali", USCRIPT_BALINESE },
- { "batk", USCRIPT_BATAK },
- { "blis", USCRIPT_BLISSYMBOLS },
- { "brah", USCRIPT_BRAHMI },
- { "cham", USCRIPT_CHAM },
- { "cirt", USCRIPT_CIRTH },
- { "cyrs", USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC },
- { "egyd", USCRIPT_DEMOTIC_EGYPTIAN },
- { "egyh", USCRIPT_HIERATIC_EGYPTIAN },
- { "egyp", USCRIPT_EGYPTIAN_HIEROGLYPHS },
- { "geok", USCRIPT_KHUTSURI },
- { "hans", USCRIPT_SIMPLIFIED_HAN },
- { "hant", USCRIPT_TRADITIONAL_HAN },
- { "hmng", USCRIPT_PAHAWH_HMONG },
- { "hung", USCRIPT_OLD_HUNGARIAN },
- { "inds", USCRIPT_HARAPPAN_INDUS },
- { "java", USCRIPT_JAVANESE },
- { "kali", USCRIPT_KAYAH_LI },
- { "latf", USCRIPT_LATIN_FRAKTUR },
- { "latg", USCRIPT_LATIN_GAELIC },
- { "lepc", USCRIPT_LEPCHA },
- { "lina", USCRIPT_LINEAR_A },
- { "mand", USCRIPT_MANDAEAN },
- { "maya", USCRIPT_MAYAN_HIEROGLYPHS },
- { "mero", USCRIPT_MEROITIC },
- { "nkoo", USCRIPT_NKO },
- { "orkh", USCRIPT_ORKHON },
- { "perm", USCRIPT_OLD_PERMIC },
- { "phag", USCRIPT_PHAGS_PA },
- { "phnx", USCRIPT_PHOENICIAN },
- { "plrd", USCRIPT_PHONETIC_POLLARD },
- { "roro", USCRIPT_RONGORONGO },
- { "sara", USCRIPT_SARATI },
- { "syre", USCRIPT_ESTRANGELO_SYRIAC },
- { "syrj", USCRIPT_WESTERN_SYRIAC },
- { "syrn", USCRIPT_EASTERN_SYRIAC },
- { "teng", USCRIPT_TENGWAR },
- { "vaii", USCRIPT_VAI },
- { "visp", USCRIPT_VISIBLE_SPEECH },
- { "xsux", USCRIPT_CUNEIFORM },
- { "jpan", USCRIPT_KATAKANA_OR_HIRAGANA },
- { "kore", USCRIPT_HANGUL },
- { "zxxx", USCRIPT_UNWRITTEN_LANGUAGES },
- { "zzzz", USCRIPT_UNKNOWN }
- };
-
- typedef HashMap<String, UScriptCode> ScriptNameCodeMap;
- DEFINE_STATIC_LOCAL(ScriptNameCodeMap, scriptNameCodeMap, ());
- if (scriptNameCodeMap.isEmpty()) {
- for (size_t i = 0; i < sizeof(scriptNameCodeList) / sizeof(scriptNameCodeList[0]); ++i)
- scriptNameCodeMap.set(scriptNameCodeList[i].name, scriptNameCodeList[i].code);
- }
-
- HashMap<String, UScriptCode>::iterator it = scriptNameCodeMap.find(scriptName.lower());
- if (it != scriptNameCodeMap.end())
- return it->value;
- return USCRIPT_INVALID_CODE;
-}
-
-UScriptCode localeToScriptCodeForFontSelection(const String& locale)
-{
- struct LocaleScript {
- const char* locale;
- UScriptCode script;
- };
-
- static const LocaleScript localeScriptList[] = {
- { "aa", USCRIPT_LATIN },
- { "ab", USCRIPT_CYRILLIC },
- { "ady", USCRIPT_CYRILLIC },
- { "af", USCRIPT_LATIN },
- { "ak", USCRIPT_LATIN },
- { "am", USCRIPT_ETHIOPIC },
- { "ar", USCRIPT_ARABIC },
- { "as", USCRIPT_BENGALI },
- { "ast", USCRIPT_LATIN },
- { "av", USCRIPT_CYRILLIC },
- { "ay", USCRIPT_LATIN },
- { "az", USCRIPT_LATIN },
- { "ba", USCRIPT_CYRILLIC },
- { "be", USCRIPT_CYRILLIC },
- { "bg", USCRIPT_CYRILLIC },
- { "bi", USCRIPT_LATIN },
- { "bn", USCRIPT_BENGALI },
- { "bo", USCRIPT_TIBETAN },
- { "bs", USCRIPT_LATIN },
- { "ca", USCRIPT_LATIN },
- { "ce", USCRIPT_CYRILLIC },
- { "ceb", USCRIPT_LATIN },
- { "ch", USCRIPT_LATIN },
- { "chk", USCRIPT_LATIN },
- { "cs", USCRIPT_LATIN },
- { "cy", USCRIPT_LATIN },
- { "da", USCRIPT_LATIN },
- { "de", USCRIPT_LATIN },
- { "dv", USCRIPT_THAANA },
- { "dz", USCRIPT_TIBETAN },
- { "ee", USCRIPT_LATIN },
- { "efi", USCRIPT_LATIN },
- { "el", USCRIPT_GREEK },
- { "en", USCRIPT_LATIN },
- { "es", USCRIPT_LATIN },
- { "et", USCRIPT_LATIN },
- { "eu", USCRIPT_LATIN },
- { "fa", USCRIPT_ARABIC },
- { "fi", USCRIPT_LATIN },
- { "fil", USCRIPT_LATIN },
- { "fj", USCRIPT_LATIN },
- { "fo", USCRIPT_LATIN },
- { "fr", USCRIPT_LATIN },
- { "fur", USCRIPT_LATIN },
- { "fy", USCRIPT_LATIN },
- { "ga", USCRIPT_LATIN },
- { "gaa", USCRIPT_LATIN },
- { "gd", USCRIPT_LATIN },
- { "gil", USCRIPT_LATIN },
- { "gl", USCRIPT_LATIN },
- { "gn", USCRIPT_LATIN },
- { "gsw", USCRIPT_LATIN },
- { "gu", USCRIPT_GUJARATI },
- { "ha", USCRIPT_LATIN },
- { "haw", USCRIPT_LATIN },
- { "he", USCRIPT_HEBREW },
- { "hi", USCRIPT_DEVANAGARI },
- { "hil", USCRIPT_LATIN },
- { "ho", USCRIPT_LATIN },
- { "hr", USCRIPT_LATIN },
- { "ht", USCRIPT_LATIN },
- { "hu", USCRIPT_LATIN },
- { "hy", USCRIPT_ARMENIAN },
- { "id", USCRIPT_LATIN },
- { "ig", USCRIPT_LATIN },
- { "ii", USCRIPT_YI },
- { "ilo", USCRIPT_LATIN },
- { "inh", USCRIPT_CYRILLIC },
- { "is", USCRIPT_LATIN },
- { "it", USCRIPT_LATIN },
- { "iu", USCRIPT_CANADIAN_ABORIGINAL },
- { "ja", USCRIPT_KATAKANA_OR_HIRAGANA },
- { "jv", USCRIPT_LATIN },
- { "ka", USCRIPT_GEORGIAN },
- { "kaj", USCRIPT_LATIN },
- { "kam", USCRIPT_LATIN },
- { "kbd", USCRIPT_CYRILLIC },
- { "kha", USCRIPT_LATIN },
- { "kk", USCRIPT_CYRILLIC },
- { "kl", USCRIPT_LATIN },
- { "km", USCRIPT_KHMER },
- { "kn", USCRIPT_KANNADA },
- { "ko", USCRIPT_HANGUL },
- { "kok", USCRIPT_DEVANAGARI },
- { "kos", USCRIPT_LATIN },
- { "kpe", USCRIPT_LATIN },
- { "krc", USCRIPT_CYRILLIC },
- { "ks", USCRIPT_ARABIC },
- { "ku", USCRIPT_ARABIC },
- { "kum", USCRIPT_CYRILLIC },
- { "ky", USCRIPT_CYRILLIC },
- { "la", USCRIPT_LATIN },
- { "lah", USCRIPT_ARABIC },
- { "lb", USCRIPT_LATIN },
- { "lez", USCRIPT_CYRILLIC },
- { "ln", USCRIPT_LATIN },
- { "lo", USCRIPT_LAO },
- { "lt", USCRIPT_LATIN },
- { "lv", USCRIPT_LATIN },
- { "mai", USCRIPT_DEVANAGARI },
- { "mdf", USCRIPT_CYRILLIC },
- { "mg", USCRIPT_LATIN },
- { "mh", USCRIPT_LATIN },
- { "mi", USCRIPT_LATIN },
- { "mk", USCRIPT_CYRILLIC },
- { "ml", USCRIPT_MALAYALAM },
- { "mn", USCRIPT_CYRILLIC },
- { "mr", USCRIPT_DEVANAGARI },
- { "ms", USCRIPT_LATIN },
- { "mt", USCRIPT_LATIN },
- { "my", USCRIPT_MYANMAR },
- { "myv", USCRIPT_CYRILLIC },
- { "na", USCRIPT_LATIN },
- { "nb", USCRIPT_LATIN },
- { "ne", USCRIPT_DEVANAGARI },
- { "niu", USCRIPT_LATIN },
- { "nl", USCRIPT_LATIN },
- { "nn", USCRIPT_LATIN },
- { "nr", USCRIPT_LATIN },
- { "nso", USCRIPT_LATIN },
- { "ny", USCRIPT_LATIN },
- { "oc", USCRIPT_LATIN },
- { "om", USCRIPT_LATIN },
- { "or", USCRIPT_ORIYA },
- { "os", USCRIPT_CYRILLIC },
- { "pa", USCRIPT_GURMUKHI },
- { "pag", USCRIPT_LATIN },
- { "pap", USCRIPT_LATIN },
- { "pau", USCRIPT_LATIN },
- { "pl", USCRIPT_LATIN },
- { "pon", USCRIPT_LATIN },
- { "ps", USCRIPT_ARABIC },
- { "pt", USCRIPT_LATIN },
- { "qu", USCRIPT_LATIN },
- { "rm", USCRIPT_LATIN },
- { "rn", USCRIPT_LATIN },
- { "ro", USCRIPT_LATIN },
- { "ru", USCRIPT_CYRILLIC },
- { "rw", USCRIPT_LATIN },
- { "sa", USCRIPT_DEVANAGARI },
- { "sah", USCRIPT_CYRILLIC },
- { "sat", USCRIPT_LATIN },
- { "sd", USCRIPT_ARABIC },
- { "se", USCRIPT_LATIN },
- { "sg", USCRIPT_LATIN },
- { "si", USCRIPT_SINHALA },
- { "sid", USCRIPT_LATIN },
- { "sk", USCRIPT_LATIN },
- { "sl", USCRIPT_LATIN },
- { "sm", USCRIPT_LATIN },
- { "so", USCRIPT_LATIN },
- { "sq", USCRIPT_LATIN },
- { "sr", USCRIPT_CYRILLIC },
- { "ss", USCRIPT_LATIN },
- { "st", USCRIPT_LATIN },
- { "su", USCRIPT_LATIN },
- { "sv", USCRIPT_LATIN },
- { "sw", USCRIPT_LATIN },
- { "ta", USCRIPT_TAMIL },
- { "te", USCRIPT_TELUGU },
- { "tet", USCRIPT_LATIN },
- { "tg", USCRIPT_CYRILLIC },
- { "th", USCRIPT_THAI },
- { "ti", USCRIPT_ETHIOPIC },
- { "tig", USCRIPT_ETHIOPIC },
- { "tk", USCRIPT_LATIN },
- { "tkl", USCRIPT_LATIN },
- { "tl", USCRIPT_LATIN },
- { "tn", USCRIPT_LATIN },
- { "to", USCRIPT_LATIN },
- { "tpi", USCRIPT_LATIN },
- { "tr", USCRIPT_LATIN },
- { "trv", USCRIPT_LATIN },
- { "ts", USCRIPT_LATIN },
- { "tt", USCRIPT_CYRILLIC },
- { "tvl", USCRIPT_LATIN },
- { "tw", USCRIPT_LATIN },
- { "ty", USCRIPT_LATIN },
- { "tyv", USCRIPT_CYRILLIC },
- { "udm", USCRIPT_CYRILLIC },
- { "ug", USCRIPT_ARABIC },
- { "uk", USCRIPT_CYRILLIC },
- { "und", USCRIPT_LATIN },
- { "ur", USCRIPT_ARABIC },
- { "uz", USCRIPT_CYRILLIC },
- { "ve", USCRIPT_LATIN },
- { "vi", USCRIPT_LATIN },
- { "wal", USCRIPT_ETHIOPIC },
- { "war", USCRIPT_LATIN },
- { "wo", USCRIPT_LATIN },
- { "xh", USCRIPT_LATIN },
- { "yap", USCRIPT_LATIN },
- { "yo", USCRIPT_LATIN },
- { "za", USCRIPT_LATIN },
- { "zh", USCRIPT_SIMPLIFIED_HAN },
- { "zh_hk", USCRIPT_TRADITIONAL_HAN },
- { "zh_tw", USCRIPT_TRADITIONAL_HAN },
- { "zu", USCRIPT_LATIN }
- };
-
- typedef HashMap<String, UScriptCode> LocaleScriptMap;
- DEFINE_STATIC_LOCAL(LocaleScriptMap, localeScriptMap, ());
- if (localeScriptMap.isEmpty()) {
- for (size_t i = 0; i < sizeof(localeScriptList) / sizeof(localeScriptList[0]); ++i)
- localeScriptMap.set(localeScriptList[i].locale, localeScriptList[i].script);
- }
-
- String canonicalLocale = locale.lower().replace('-', '_');
- while (!canonicalLocale.isEmpty()) {
- HashMap<String, UScriptCode>::iterator it = localeScriptMap.find(canonicalLocale);
- if (it != localeScriptMap.end())
- return it->value;
- size_t pos = canonicalLocale.reverseFind('_');
- if (pos == kNotFound)
- break;
- UScriptCode code = scriptNameToCode(canonicalLocale.substring(pos + 1));
- if (code != USCRIPT_INVALID_CODE && code != USCRIPT_UNKNOWN)
- return code;
- canonicalLocale = canonicalLocale.substring(0, pos);
- }
- return USCRIPT_COMMON;
-}
-
-} // namespace WebCore
« no previous file with comments | « Source/core/platform/text/LocaleToScriptMapping.h ('k') | Source/core/platform/text/LocaleWin.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698