1 /*
   2  * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.util.locale;
  27 
  28 import java.util.HashMap;
  29 import java.util.Map;
  30 
  31 /**
  32  * Locale equivalent map for BCP47 Locale matching
  33  */
  34 final class LocaleEquivalentMaps {
  35 
  36     static final Map<String, String> singleEquivMap;
  37     static final Map<String, String[]> multiEquivsMap;
  38     static final Map<String, String> regionVariantEquivMap;
  39 
  40     static {
  41         singleEquivMap = new HashMap<>();
  42         multiEquivsMap = new HashMap<>();
  43         regionVariantEquivMap = new HashMap<>();
  44 
  45         // This is an auto-generated file and should not be manually edited.
  46         //   LSR Revision: 2016-02-10
  47         singleEquivMap.put("aam", "aas");
  48         singleEquivMap.put("aas", "aam");
  49         singleEquivMap.put("acn", "xia");
  50         singleEquivMap.put("adp", "dz");
  51         singleEquivMap.put("adx", "pcr");
  52         singleEquivMap.put("ami", "i-ami");
  53         singleEquivMap.put("art-lojban", "jbo");
  54         singleEquivMap.put("ase", "sgn-us");
  55         singleEquivMap.put("aue", "ktz");
  56         singleEquivMap.put("ayx", "nun");
  57         singleEquivMap.put("bfi", "sgn-gb");
  58         singleEquivMap.put("bjd", "drl");
  59         singleEquivMap.put("bnn", "i-bnn");
  60         singleEquivMap.put("bzs", "sgn-br");
  61         singleEquivMap.put("cir", "meg");
  62         singleEquivMap.put("cjr", "mom");
  63         singleEquivMap.put("cka", "cmr");
  64         singleEquivMap.put("cmk", "xch");
  65         singleEquivMap.put("cmn-hans", "zh-cmn-hans");
  66         singleEquivMap.put("cmn-hant", "zh-cmn-hant");
  67         singleEquivMap.put("cmr", "cka");
  68         singleEquivMap.put("csn", "sgn-co");
  69         singleEquivMap.put("dev", "gav");
  70         singleEquivMap.put("drh", "khk");
  71         singleEquivMap.put("drl", "bjd");
  72         singleEquivMap.put("dse", "sgn-nl");
  73         singleEquivMap.put("dsl", "sgn-dk");
  74         singleEquivMap.put("dz", "adp");
  75         singleEquivMap.put("ema", "uok");
  76         singleEquivMap.put("en-gb-oed", "en-gb-oxendict");
  77         singleEquivMap.put("en-gb-oxendict", "en-gb-oed");
  78         singleEquivMap.put("fsl", "sgn-fr");
  79         singleEquivMap.put("gal", "ilw");
  80         singleEquivMap.put("gan", "zh-gan");
  81         singleEquivMap.put("gav", "dev");
  82         singleEquivMap.put("gsg", "sgn-de");
  83         singleEquivMap.put("gss", "sgn-gr");
  84         singleEquivMap.put("gti", "nyc");
  85         singleEquivMap.put("he", "iw");
  86         singleEquivMap.put("hle", "sca");
  87         singleEquivMap.put("hrr", "jal");
  88         singleEquivMap.put("hsn", "zh-xiang");
  89         singleEquivMap.put("i-ami", "ami");
  90         singleEquivMap.put("i-bnn", "bnn");
  91         singleEquivMap.put("i-klingon", "tlh");
  92         singleEquivMap.put("i-lux", "lb");
  93         singleEquivMap.put("i-navajo", "nv");
  94         singleEquivMap.put("i-pwn", "pwn");
  95         singleEquivMap.put("i-tao", "tao");
  96         singleEquivMap.put("i-tay", "tay");
  97         singleEquivMap.put("i-tsu", "tsu");
  98         singleEquivMap.put("ibi", "opa");
  99         singleEquivMap.put("id", "in");
 100         singleEquivMap.put("ilw", "gal");
 101         singleEquivMap.put("in", "id");
 102         singleEquivMap.put("ise", "sgn-it");
 103         singleEquivMap.put("isg", "sgn-ie");
 104         singleEquivMap.put("iw", "he");
 105         singleEquivMap.put("jal", "hrr");
 106         singleEquivMap.put("jbo", "art-lojban");
 107         singleEquivMap.put("ji", "yi");
 108         singleEquivMap.put("jsl", "sgn-jp");
 109         singleEquivMap.put("jv", "jw");
 110         singleEquivMap.put("jw", "jv");
 111         singleEquivMap.put("kgh", "kml");
 112         singleEquivMap.put("khk", "drh");
 113         singleEquivMap.put("kml", "kgh");
 114         singleEquivMap.put("koj", "kwv");
 115         singleEquivMap.put("ktz", "aue");
 116         singleEquivMap.put("kwq", "yam");
 117         singleEquivMap.put("kwv", "koj");
 118         singleEquivMap.put("kxe", "tvd");
 119         singleEquivMap.put("lb", "i-lux");
 120         singleEquivMap.put("lcq", "ppr");
 121         singleEquivMap.put("lii", "raq");
 122         singleEquivMap.put("lmm", "rmx");
 123         singleEquivMap.put("lrr", "yma");
 124         singleEquivMap.put("meg", "cir");
 125         singleEquivMap.put("mfs", "sgn-mx");
 126         singleEquivMap.put("mo", "ro");
 127         singleEquivMap.put("mom", "cjr");
 128         singleEquivMap.put("mtm", "ymt");
 129         singleEquivMap.put("nan", "zh-min-nan");
 130         singleEquivMap.put("nb", "no-bok");
 131         singleEquivMap.put("ncs", "sgn-ni");
 132         singleEquivMap.put("ngv", "nnx");
 133         singleEquivMap.put("nn", "no-nyn");
 134         singleEquivMap.put("nnx", "ngv");
 135         singleEquivMap.put("no-bok", "nb");
 136         singleEquivMap.put("no-nyn", "nn");
 137         singleEquivMap.put("nsl", "sgn-no");
 138         singleEquivMap.put("nun", "ayx");
 139         singleEquivMap.put("nv", "i-navajo");
 140         singleEquivMap.put("nyc", "gti");
 141         singleEquivMap.put("opa", "ibi");
 142         singleEquivMap.put("oyb", "thx");
 143         singleEquivMap.put("pcr", "adx");
 144         singleEquivMap.put("phr", "pmu");
 145         singleEquivMap.put("pmu", "phr");
 146         singleEquivMap.put("ppr", "lcq");
 147         singleEquivMap.put("psr", "sgn-pt");
 148         singleEquivMap.put("pub", "puz");
 149         singleEquivMap.put("puz", "pub");
 150         singleEquivMap.put("pwn", "i-pwn");
 151         singleEquivMap.put("raq", "lii");
 152         singleEquivMap.put("ras", "tie");
 153         singleEquivMap.put("rmx", "lmm");
 154         singleEquivMap.put("ro", "mo");
 155         singleEquivMap.put("sca", "hle");
 156         singleEquivMap.put("sfb", "sgn-be-fr");
 157         singleEquivMap.put("sfs", "sgn-za");
 158         singleEquivMap.put("sgg", "sgn-ch-de");
 159         singleEquivMap.put("sgn-be-fr", "sfb");
 160         singleEquivMap.put("sgn-be-nl", "vgt");
 161         singleEquivMap.put("sgn-br", "bzs");
 162         singleEquivMap.put("sgn-ch-de", "sgg");
 163         singleEquivMap.put("sgn-co", "csn");
 164         singleEquivMap.put("sgn-de", "gsg");
 165         singleEquivMap.put("sgn-dk", "dsl");
 166         singleEquivMap.put("sgn-es", "ssp");
 167         singleEquivMap.put("sgn-fr", "fsl");
 168         singleEquivMap.put("sgn-gb", "bfi");
 169         singleEquivMap.put("sgn-gr", "gss");
 170         singleEquivMap.put("sgn-ie", "isg");
 171         singleEquivMap.put("sgn-it", "ise");
 172         singleEquivMap.put("sgn-jp", "jsl");
 173         singleEquivMap.put("sgn-mx", "mfs");
 174         singleEquivMap.put("sgn-ni", "ncs");
 175         singleEquivMap.put("sgn-nl", "dse");
 176         singleEquivMap.put("sgn-no", "nsl");
 177         singleEquivMap.put("sgn-pt", "psr");
 178         singleEquivMap.put("sgn-se", "swl");
 179         singleEquivMap.put("sgn-us", "ase");
 180         singleEquivMap.put("sgn-za", "sfs");
 181         singleEquivMap.put("ssp", "sgn-es");
 182         singleEquivMap.put("suj", "xsj");
 183         singleEquivMap.put("swl", "sgn-se");
 184         singleEquivMap.put("taj", "tsf");
 185         singleEquivMap.put("tao", "i-tao");
 186         singleEquivMap.put("tay", "i-tay");
 187         singleEquivMap.put("thx", "oyb");
 188         singleEquivMap.put("tie", "ras");
 189         singleEquivMap.put("tkk", "twm");
 190         singleEquivMap.put("tlh", "i-klingon");
 191         singleEquivMap.put("tlw", "weo");
 192         singleEquivMap.put("tsf", "taj");
 193         singleEquivMap.put("tsu", "i-tsu");
 194         singleEquivMap.put("tvd", "kxe");
 195         singleEquivMap.put("twm", "tkk");
 196         singleEquivMap.put("uok", "ema");
 197         singleEquivMap.put("vgt", "sgn-be-nl");
 198         singleEquivMap.put("weo", "tlw");
 199         singleEquivMap.put("wuu", "zh-wuu");
 200         singleEquivMap.put("xch", "cmk");
 201         singleEquivMap.put("xia", "acn");
 202         singleEquivMap.put("xsj", "suj");
 203         singleEquivMap.put("yam", "kwq");
 204         singleEquivMap.put("yi", "ji");
 205         singleEquivMap.put("yma", "lrr");
 206         singleEquivMap.put("ymt", "mtm");
 207         singleEquivMap.put("yos", "zom");
 208         singleEquivMap.put("yue", "zh-yue");
 209         singleEquivMap.put("yug", "yuu");
 210         singleEquivMap.put("yuu", "yug");
 211         singleEquivMap.put("zh-cmn-hans", "cmn-hans");
 212         singleEquivMap.put("zh-cmn-hant", "cmn-hant");
 213         singleEquivMap.put("zh-gan", "gan");
 214         singleEquivMap.put("zh-min-nan", "nan");
 215         singleEquivMap.put("zh-wuu", "wuu");
 216         singleEquivMap.put("zh-xiang", "hsn");
 217         singleEquivMap.put("zh-yue", "yue");
 218         singleEquivMap.put("zom", "yos");
 219 
 220         multiEquivsMap.put("ccq", new String[] {"rki", "ybd"});
 221         multiEquivsMap.put("cmn", new String[] {"zh-guoyu", "zh-cmn"});
 222         multiEquivsMap.put("drw", new String[] {"prs", "tnf"});
 223         multiEquivsMap.put("gfx", new String[] {"vaj", "mwj", "oun"});
 224         multiEquivsMap.put("hak", new String[] {"i-hak", "zh-hakka"});
 225         multiEquivsMap.put("i-hak", new String[] {"hak", "zh-hakka"});
 226         multiEquivsMap.put("mry", new String[] {"mst", "myt"});
 227         multiEquivsMap.put("mst", new String[] {"mry", "myt"});
 228         multiEquivsMap.put("mwj", new String[] {"vaj", "gfx", "oun"});
 229         multiEquivsMap.put("myt", new String[] {"mry", "mst"});
 230         multiEquivsMap.put("oun", new String[] {"vaj", "gfx", "mwj"});
 231         multiEquivsMap.put("prs", new String[] {"drw", "tnf"});
 232         multiEquivsMap.put("rki", new String[] {"ccq", "ybd"});
 233         multiEquivsMap.put("tnf", new String[] {"prs", "drw"});
 234         multiEquivsMap.put("vaj", new String[] {"gfx", "mwj", "oun"});
 235         multiEquivsMap.put("ybd", new String[] {"rki", "ccq"});
 236         multiEquivsMap.put("zh-cmn", new String[] {"cmn", "zh-guoyu"});
 237         multiEquivsMap.put("zh-guoyu", new String[] {"cmn", "zh-cmn"});
 238         multiEquivsMap.put("zh-hakka", new String[] {"hak", "i-hak"});
 239 
 240         regionVariantEquivMap.put("-alalc97", "-heploc");
 241         regionVariantEquivMap.put("-bu", "-mm");
 242         regionVariantEquivMap.put("-cd", "-zr");
 243         regionVariantEquivMap.put("-dd", "-de");
 244         regionVariantEquivMap.put("-de", "-dd");
 245         regionVariantEquivMap.put("-fr", "-fx");
 246         regionVariantEquivMap.put("-fx", "-fr");
 247         regionVariantEquivMap.put("-heploc", "-alalc97");
 248         regionVariantEquivMap.put("-mm", "-bu");
 249         regionVariantEquivMap.put("-tl", "-tp");
 250         regionVariantEquivMap.put("-tp", "-tl");
 251         regionVariantEquivMap.put("-yd", "-ye");
 252         regionVariantEquivMap.put("-ye", "-yd");
 253         regionVariantEquivMap.put("-zr", "-cd");
 254     }
 255 
 256 }