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
26package sun.util.locale;
27
28import java.util.HashMap;
29import java.util.Map;
30
31/**
32 * Locale equivalent map for BCP47 Locale matching
33 */
34final 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}
257