/* * 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; } }