blob: e333a45cd39fd47e14e5ed1621464f24042dcc05 [file] [log] [blame]
/*
* Copyright 2009 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.i18n.server;
import java.util.HashMap;
import java.util.Map;
/**
* Encodes the mapping of languages to their default script.
*/
public class DefaultLanguageScripts {
/**
* Maps languages to their default script.
*/
private static Map<String, String> defaultScripts;
static {
// From http://www.iana.org/assignments/language-subtag-registry, and CLDR
// alias data.
defaultScripts = new HashMap<String, String>();
defaultScripts.put("ab", "Cyrl");
defaultScripts.put("af", "Latn");
defaultScripts.put("am", "Ethi");
defaultScripts.put("ar", "Arab");
defaultScripts.put("as", "Beng");
defaultScripts.put("az_AZ", "Latn");
defaultScripts.put("az_IR", "Arab");
defaultScripts.put("ay", "Latn");
defaultScripts.put("be", "Cyrl");
defaultScripts.put("bg", "Cyrl");
defaultScripts.put("bn", "Beng");
defaultScripts.put("bs", "Latn");
defaultScripts.put("ca", "Latn");
defaultScripts.put("ch", "Latn");
defaultScripts.put("cs", "Latn");
defaultScripts.put("cy", "Latn");
defaultScripts.put("da", "Latn");
defaultScripts.put("de", "Latn");
defaultScripts.put("dv", "Thaa");
defaultScripts.put("dz", "Tibt");
defaultScripts.put("el", "Grek");
defaultScripts.put("en", "Latn");
defaultScripts.put("eo", "Latn");
defaultScripts.put("es", "Latn");
defaultScripts.put("et", "Latn");
defaultScripts.put("eu", "Latn");
defaultScripts.put("fa", "Arab");
defaultScripts.put("fi", "Latn");
defaultScripts.put("fj", "Latn");
defaultScripts.put("fo", "Latn");
defaultScripts.put("fr", "Latn");
defaultScripts.put("frr", "Latn");
defaultScripts.put("fy", "Latn");
defaultScripts.put("ga", "Latn");
defaultScripts.put("gl", "Latn");
defaultScripts.put("gn", "Latn");
defaultScripts.put("gu", "Latn");
defaultScripts.put("gv", "Latn");
defaultScripts.put("ha_GH", "Latn");
defaultScripts.put("ha_NE", "Latn");
defaultScripts.put("ha_NG", "Latn");
defaultScripts.put("ha_SD", "Arab");
defaultScripts.put("he", "Hebr");
defaultScripts.put("hi", "Deva");
defaultScripts.put("hr", "Latn");
defaultScripts.put("ht", "Latn");
defaultScripts.put("hu", "Latn");
defaultScripts.put("hy", "Armn");
defaultScripts.put("id", "Latn");
defaultScripts.put("in", "Latn");
defaultScripts.put("is", "Latn");
defaultScripts.put("it", "Latn");
defaultScripts.put("iw", "Hebr");
defaultScripts.put("ja", "Jpan");
defaultScripts.put("ka", "Geor");
defaultScripts.put("kk", "Cyrl");
defaultScripts.put("kk_KZ", "Cyrl"); // ?
defaultScripts.put("kl", "Latn");
defaultScripts.put("km", "Khmr");
defaultScripts.put("kn", "Knda");
defaultScripts.put("ko", "Kore");
defaultScripts.put("ku_IQ", "Arab");
defaultScripts.put("ku_IR", "Arab");
defaultScripts.put("ku_SY", "Latn");
defaultScripts.put("ku_TR", "Latn");
defaultScripts.put("la", "Latn");
defaultScripts.put("lb", "Latn");
defaultScripts.put("ln", "Latn");
defaultScripts.put("lo", "Laoo");
defaultScripts.put("lt", "Latn");
defaultScripts.put("lv", "Latn");
defaultScripts.put("mg", "Latn");
defaultScripts.put("mh", "Latn");
defaultScripts.put("mk", "Cyrl");
defaultScripts.put("ml", "Mlym");
defaultScripts.put("mn_CN", "Mong");
defaultScripts.put("mn_MN", "Cyrl");
defaultScripts.put("mo", "Latn");
defaultScripts.put("mr", "Deva");
defaultScripts.put("ms", "Latn");
defaultScripts.put("mt", "Latn");
defaultScripts.put("my", "Mymr");
defaultScripts.put("na", "Latn");
defaultScripts.put("nb", "Latn");
defaultScripts.put("nd", "Latn");
defaultScripts.put("ne", "Deva");
defaultScripts.put("nl", "Latn");
defaultScripts.put("nn", "Latn");
defaultScripts.put("no", "Latn");
defaultScripts.put("nr", "Latn");
defaultScripts.put("ny", "Latn");
defaultScripts.put("om", "Latn");
defaultScripts.put("or", "Latn");
defaultScripts.put("pa", "Guru");
defaultScripts.put("pa_PK", "Arab");
defaultScripts.put("pl", "Latn");
defaultScripts.put("ps", "Arab");
defaultScripts.put("pt", "Latn");
defaultScripts.put("qu", "Latn");
defaultScripts.put("rn", "Latn");
defaultScripts.put("ro", "Latn");
defaultScripts.put("ru", "Cyrl");
defaultScripts.put("rw", "Latn");
defaultScripts.put("sg", "Latn");
defaultScripts.put("si", "Sinh");
defaultScripts.put("sk", "Latn");
defaultScripts.put("sl", "Latn");
defaultScripts.put("sm", "Latn");
defaultScripts.put("so", "Latn");
defaultScripts.put("sq", "Latn");
defaultScripts.put("sr_BA", "Cyrl");
defaultScripts.put("sr_CS", "Cyrl");
defaultScripts.put("sr_ME", "Latn");
defaultScripts.put("sr_RS", "Cyrl");
defaultScripts.put("sr_YU", "Cyrl");
defaultScripts.put("ss", "Latn");
defaultScripts.put("st", "Latn");
defaultScripts.put("sv", "Latn");
defaultScripts.put("sw", "Latn");
defaultScripts.put("ta", "Taml");
defaultScripts.put("te", "Telu");
defaultScripts.put("tg_TJ", "Cyrl");
defaultScripts.put("th", "Thai");
defaultScripts.put("ti", "Ethi");
defaultScripts.put("tl", "Latn");
defaultScripts.put("tn", "Latn");
defaultScripts.put("to", "Latn");
defaultScripts.put("tr", "Latn");
defaultScripts.put("ts", "Latn");
defaultScripts.put("ug_CN", "Arab");
defaultScripts.put("uk", "Cyrl");
defaultScripts.put("ur", "Arab");
defaultScripts.put("uz_AF", "Arab");
defaultScripts.put("uz_UZ", "Cyrl");
defaultScripts.put("ve", "Latn");
defaultScripts.put("vi", "Latn");
defaultScripts.put("wo", "Latn");
defaultScripts.put("wo_SN", "Latn"); // ?
defaultScripts.put("xh", "Latn");
defaultScripts.put("yi", "Hebr");
defaultScripts.put("zh_CN", "Hans");
defaultScripts.put("zh_HK", "Hant");
defaultScripts.put("zh_MO", "Hant");
defaultScripts.put("zh_SG", "Hans");
defaultScripts.put("zh_TW", "Hant");
defaultScripts.put("zu", "Latn");
defaultScripts.put("dsb", "Latn");
defaultScripts.put("frs", "Latn");
defaultScripts.put("gsw", "Latn");
defaultScripts.put("hsb", "Latn");
defaultScripts.put("kok", "Deva");
defaultScripts.put("mai", "Deva");
defaultScripts.put("men", "Latn");
defaultScripts.put("nds", "Latn");
defaultScripts.put("niu", "Latn");
defaultScripts.put("nqo", "Nkoo");
defaultScripts.put("nso", "Latn");
defaultScripts.put("shi_MA", "Latn");
defaultScripts.put("tem", "Latn");
defaultScripts.put("tkl", "Latn");
defaultScripts.put("tmh", "Latn");
defaultScripts.put("tpi", "Latn");
defaultScripts.put("tvl", "Latn");
defaultScripts.put("tzm_MA", "Latn");
defaultScripts.put("zbl", "Blis");
}
/**
* Returns the default script for a language, or null if none.
*
* @param language language code to get default script for (in lowercase)
* @return default script for language, or null if none
*/
public static String getDefaultScript(String language) {
return defaultScripts.get(language);
}
/**
* Returns the default script for a language/region combination, or null if
* none.
*
* @param language language code to get default script for (in lowercase)
* @param region region code to get default script for (in uppercase); may be
* null
* @return default script for language/region, or null if none
*/
public static String getDefaultScript(String language, String region) {
String script = null;
if (region != null) {
script = defaultScripts.get(language + "_" + region);
}
if (script == null) {
script = defaultScripts.get(language);
}
return script;
}
}