1 /*
2  * Copyright (c) 2012, 2013, 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: 2013-09-23
47         singleEquivMap.put("acn", "xia");
48         singleEquivMap.put("adx", "pcr");
49         singleEquivMap.put("ami", "i-ami");
50         singleEquivMap.put("art-lojban", "jbo");
51         singleEquivMap.put("ase", "sgn-us");
52         singleEquivMap.put("ayx", "nun");
53         singleEquivMap.put("bfi", "sgn-gb");
54         singleEquivMap.put("bjd", "drl");
55         singleEquivMap.put("bnn", "i-bnn");
56         singleEquivMap.put("bzs", "sgn-br");
57         singleEquivMap.put("cir", "meg");
58         singleEquivMap.put("cjr", "mom");
59         singleEquivMap.put("cka", "cmr");
60         singleEquivMap.put("cmk", "xch");
61         singleEquivMap.put("cmn-hans", "zh-cmn-hans");
62         singleEquivMap.put("cmn-hant", "zh-cmn-hant");
63         singleEquivMap.put("cmr", "cka");
64         singleEquivMap.put("csn", "sgn-co");
65         singleEquivMap.put("dev", "gav");
66         singleEquivMap.put("drh", "khk");
67         singleEquivMap.put("drl", "bjd");
68         singleEquivMap.put("dse", "sgn-nl");
69         singleEquivMap.put("dsl", "sgn-dk");
70         singleEquivMap.put("fsl", "sgn-fr");
71         singleEquivMap.put("gal", "ilw");
72         singleEquivMap.put("gan", "zh-gan");
73         singleEquivMap.put("gav", "dev");
74         singleEquivMap.put("gsg", "sgn-de");
75         singleEquivMap.put("gss", "sgn-gr");
76         singleEquivMap.put("he", "iw");
77         singleEquivMap.put("hle", "sca");
78         singleEquivMap.put("hrr", "jal");
79         singleEquivMap.put("hsn", "zh-xiang");
80         singleEquivMap.put("i-ami", "ami");
81         singleEquivMap.put("i-bnn", "bnn");
82         singleEquivMap.put("i-klingon", "tlh");
83         singleEquivMap.put("i-lux", "lb");
84         singleEquivMap.put("i-navajo", "nv");
85         singleEquivMap.put("i-pwn", "pwn");
86         singleEquivMap.put("i-tao", "tao");
87         singleEquivMap.put("i-tay", "tay");
88         singleEquivMap.put("i-tsu", "tsu");
89         singleEquivMap.put("ibi", "opa");
90         singleEquivMap.put("id", "in");
91         singleEquivMap.put("ilw", "gal");
92         singleEquivMap.put("in", "id");
93         singleEquivMap.put("ise", "sgn-it");
94         singleEquivMap.put("isg", "sgn-ie");
95         singleEquivMap.put("iw", "he");
96         singleEquivMap.put("jal", "hrr");
97         singleEquivMap.put("jbo", "art-lojban");
98         singleEquivMap.put("ji", "yi");
99         singleEquivMap.put("jsl", "sgn-jp");
100         singleEquivMap.put("jv", "jw");
101         singleEquivMap.put("jw", "jv");
102         singleEquivMap.put("kgh", "kml");
103         singleEquivMap.put("khk", "drh");
104         singleEquivMap.put("kml", "kgh");
105         singleEquivMap.put("lb", "i-lux");
106         singleEquivMap.put("lcq", "ppr");
107         singleEquivMap.put("lrr", "yma");
108         singleEquivMap.put("meg", "cir");
109         singleEquivMap.put("mfs", "sgn-mx");
110         singleEquivMap.put("mo", "ro");
111         singleEquivMap.put("mom", "cjr");
112         singleEquivMap.put("nan", "zh-min-nan");
113         singleEquivMap.put("nb", "no-bok");
114         singleEquivMap.put("ncs", "sgn-ni");
115         singleEquivMap.put("nn", "no-nyn");
116         singleEquivMap.put("no-bok", "nb");
117         singleEquivMap.put("no-nyn", "nn");
118         singleEquivMap.put("nsl", "sgn-no");
119         singleEquivMap.put("nun", "ayx");
120         singleEquivMap.put("nv", "i-navajo");
121         singleEquivMap.put("opa", "ibi");
122         singleEquivMap.put("pcr", "adx");
123         singleEquivMap.put("ppr", "lcq");
124         singleEquivMap.put("psr", "sgn-pt");
125         singleEquivMap.put("pwn", "i-pwn");
126         singleEquivMap.put("ras", "tie");
127         singleEquivMap.put("ro", "mo");
128         singleEquivMap.put("sca", "hle");
129         singleEquivMap.put("sfb", "sgn-be-fr");
130         singleEquivMap.put("sfs", "sgn-za");
131         singleEquivMap.put("sgg", "sgn-ch-de");
132         singleEquivMap.put("sgn-be-fr", "sfb");
133         singleEquivMap.put("sgn-be-nl", "vgt");
134         singleEquivMap.put("sgn-br", "bzs");
135         singleEquivMap.put("sgn-ch-de", "sgg");
136         singleEquivMap.put("sgn-co", "csn");
137         singleEquivMap.put("sgn-de", "gsg");
138         singleEquivMap.put("sgn-dk", "dsl");
139         singleEquivMap.put("sgn-es", "ssp");
140         singleEquivMap.put("sgn-fr", "fsl");
141         singleEquivMap.put("sgn-gb", "bfi");
142         singleEquivMap.put("sgn-gr", "gss");
143         singleEquivMap.put("sgn-ie", "isg");
144         singleEquivMap.put("sgn-it", "ise");
145         singleEquivMap.put("sgn-jp", "jsl");
146         singleEquivMap.put("sgn-mx", "mfs");
147         singleEquivMap.put("sgn-ni", "ncs");
148         singleEquivMap.put("sgn-nl", "dse");
149         singleEquivMap.put("sgn-no", "nsl");
150         singleEquivMap.put("sgn-pt", "psr");
151         singleEquivMap.put("sgn-se", "swl");
152         singleEquivMap.put("sgn-us", "ase");
153         singleEquivMap.put("sgn-za", "sfs");
154         singleEquivMap.put("ssp", "sgn-es");
155         singleEquivMap.put("swl", "sgn-se");
156         singleEquivMap.put("tao", "i-tao");
157         singleEquivMap.put("tay", "i-tay");
158         singleEquivMap.put("tie", "ras");
159         singleEquivMap.put("tkk", "twm");
160         singleEquivMap.put("tlh", "i-klingon");
161         singleEquivMap.put("tlw", "weo");
162         singleEquivMap.put("tsu", "i-tsu");
163         singleEquivMap.put("twm", "tkk");
164         singleEquivMap.put("vgt", "sgn-be-nl");
165         singleEquivMap.put("weo", "tlw");
166         singleEquivMap.put("wuu", "zh-wuu");
167         singleEquivMap.put("xch", "cmk");
168         singleEquivMap.put("xia", "acn");
169         singleEquivMap.put("yi", "ji");
170         singleEquivMap.put("yma", "lrr");
171         singleEquivMap.put("yos", "zom");
172         singleEquivMap.put("yue", "zh-yue");
173         singleEquivMap.put("zh-cmn-hans", "cmn-hans");
174         singleEquivMap.put("zh-cmn-hant", "cmn-hant");
175         singleEquivMap.put("zh-gan", "gan");
176         singleEquivMap.put("zh-min-nan", "nan");
177         singleEquivMap.put("zh-wuu", "wuu");
178         singleEquivMap.put("zh-xiang", "hsn");
179         singleEquivMap.put("zh-yue", "yue");
180         singleEquivMap.put("zom", "yos");
181 
182         multiEquivsMap.put("ccq", new String[] {"rki", "ybd"});
183         multiEquivsMap.put("cmn", new String[] {"zh-guoyu", "zh-cmn"});
184         multiEquivsMap.put("drw", new String[] {"prs", "tnf"});
185         multiEquivsMap.put("hak", new String[] {"i-hak", "zh-hakka"});
186         multiEquivsMap.put("i-hak", new String[] {"hak", "zh-hakka"});
187         multiEquivsMap.put("mry", new String[] {"mst", "myt"});
188         multiEquivsMap.put("mst", new String[] {"mry", "myt"});
189         multiEquivsMap.put("myt", new String[] {"mry", "mst"});
190         multiEquivsMap.put("prs", new String[] {"drw", "tnf"});
191         multiEquivsMap.put("rki", new String[] {"ccq", "ybd"});
192         multiEquivsMap.put("tnf", new String[] {"prs", "drw"});
193         multiEquivsMap.put("ybd", new String[] {"rki", "ccq"});
194         multiEquivsMap.put("zh-cmn", new String[] {"cmn", "zh-guoyu"});
195         multiEquivsMap.put("zh-guoyu", new String[] {"cmn", "zh-cmn"});
196         multiEquivsMap.put("zh-hakka", new String[] {"hak", "i-hak"});
197 
198         regionVariantEquivMap.put("-alalc97", "-heploc");
199         regionVariantEquivMap.put("-bu", "-mm");
200         regionVariantEquivMap.put("-cd", "-zr");
201         regionVariantEquivMap.put("-dd", "-de");
202         regionVariantEquivMap.put("-de", "-dd");
203         regionVariantEquivMap.put("-fr", "-fx");
204         regionVariantEquivMap.put("-fx", "-fr");
205         regionVariantEquivMap.put("-heploc", "-alalc97");
206         regionVariantEquivMap.put("-mm", "-bu");
207         regionVariantEquivMap.put("-tl", "-tp");
208         regionVariantEquivMap.put("-tp", "-tl");
209         regionVariantEquivMap.put("-yd", "-ye");
210         regionVariantEquivMap.put("-ye", "-yd");
211         regionVariantEquivMap.put("-zr", "-cd");
212     }
213 
214 }
215