2 fr, en-GB, en ; en-GB ; en-GB
3 fr, en-GB, en ; en-US ; en
4 fr, en-GB, en ; fr-FR ; fr
5 fr, en-GB, en ; ja-JP ; fr
8 zh-CN, zh-TW, iw ; zh-Hant ; zh-TW
9 zh-CN, zh-TW, iw ; zh ; zh-CN
10 zh-CN, zh-TW, iw ; zh-Hans-CN ; zh-CN
11 zh-CN, zh-TW, iw ; zh-Hant-HK ; zh-TW
12 zh-CN, zh-TW, iw ; he-IT ; iw ; iw
14 # language-specific script fallbacks 1
15 en, sr, nl ; sr-Latn ; sr
16 en, sr, nl ; sh ; sr # different script, but seems okay and is as CLDR suggests
19 en, sr, nl ; nl-Cyrl ; sr
21 # language-specific script fallbacks 2
26 # don't match hr to sr-Latn
29 # both deprecated and not
30 fil, tl, iw, he ; he-IT ; he
31 fil, tl, iw, he ; he ; he
32 fil, tl, iw, he ; iw ; iw
33 fil, tl, iw, he ; fil-IT ; fil
34 fil, tl, iw, he ; fil ; fil
35 fil, tl, iw, he ; tl ; tl
38 en, fil, ro, nn ; tl ; fil
39 en, fil, ro, nn ; mo ; ro
40 en, fil, ro, nn ; nb ; nn
41 en, fil, ro, nn ; ja ; en
43 # nearby languages: Nynorsk to Bokmål
46 # nearby languages: Danish does not match nn
49 # nearby languages: Danish matches no
52 # nearby languages: Danish matches nb
55 # prefer matching languages over language variants.
56 nn, en-GB ; no, en-US ; en-GB
57 nn, en-GB ; nb, en-US ; en-GB
59 # deprecated version is closer than same language with other differences
60 nl, he, en-GB ; iw, en-US ; he
62 # macro equivalent is closer than same language with other differences
63 nl, zh, en-GB, no ; cmn, en-US ; zh
64 nl, zh, en-GB, no ; nb, en-US ; no
66 # legacy equivalent is closer than same language with other differences
67 nl, fil, en-GB ; tl, en-US ; fil
69 # distinguish near equivalents
70 en, ro, mo, ro-MD ; ro ; ro
71 en, ro, mo, ro-MD ; mo ; mo
72 en, ro, mo, ro-MD ; ro-MD ; ro-MD
74 # maximization of legacy
75 sr-Cyrl, sr-Latn, ro, ro-MD ; sh ; sr-Latn
76 sr-Cyrl, sr-Latn, ro, ro-MD ; mo ; ro-MD
83 fr, en-GB, x-bork, es-ES, es-419 ; x-piglatin ; fr
84 fr, en-GB, x-bork, es-ES, es-419 ; x-bork ; x-bork
87 fr, i-klingon, en-Latn-US ; en-GB-oed ; en-Latn-US
88 fr, i-klingon, en-Latn-US ; i-klingon ; tlh
91 # simple variant match
92 fr, en-GB, ja, es-ES, es-MX ; de, en-US ; en-GB
93 fr, en-GB, ja, es-ES, es-MX ; de, zh ; fr
95 # best match for traditional Chinese
96 fr, zh-Hans-CN, en-US ; zh-TW ; zh-Hans-CN
97 fr, zh-Hans-CN, en-US ; zh-Hant ; zh-Hans-CN
98 fr, zh-Hans-CN, en-US ; zh-TW, en ; en-US
99 fr, zh-Hans-CN, en-US ; zh-Hant-CN, en ; en-US
100 fr, zh-Hans-CN, en-US ; zh-Hans, en ; zh-Hans-CN
102 # more specific script should win in case regions are identical
103 af, af-Latn, af-Arab ; af ; af
104 af, af-Latn, af-Arab ; af-ZA ; af
105 af, af-Latn, af-Arab ; af-Latn-ZA ; af-Latn
106 af, af-Latn, af-Arab ; af-Latn ; af-Latn
108 # more specific region should win
109 nl, nl-NL, nl-BE ; nl ; nl
110 nl, nl-NL, nl-BE ; nl-Latn ; nl
111 nl, nl-NL, nl-BE ; nl-Latn-NL ; nl-NL
112 nl, nl-NL, nl-BE ; nl-NL ; nl-NL
114 # region may replace matched if matched is enclosing
115 es-419,es ; es-MX ; es-419 ; es-MX
116 es-419,es ; es-SG ; es
118 # more specific region wins over more specific script
119 nl, nl-Latn, nl-NL, nl-BE ; nl ; nl
120 nl, nl-Latn, nl-NL, nl-BE ; nl-Latn ; nl-Latn
121 nl, nl-Latn, nl-NL, nl-BE ; nl-NL ; nl-NL
122 nl, nl-Latn, nl-NL, nl-BE ; nl-Latn-NL ; nl-NL
124 # region distance Portuguese
125 pt, pt-PT ; pt-ES ; pt-PT
127 # if no preferred locale specified, pick top language, not regional
128 en, fr, fr-CA, fr-CH ; fr-US ; fr #TODO: ; fr-u-rg-US
130 # region distance German
131 de-AT, de-DE, de-CH ; de ; de-DE
133 # en-AU is closer to en-GB than to en (which is en-US)
134 en, en-GB, es-ES, es-419 ; en-AU ; en-GB
135 en, en-GB, es-ES, es-419 ; es-MX ; es-419 ; es-MX
136 en, en-GB, es-ES, es-419 ; es-PT ; es-ES
141 # und does not match en
144 # undefined in priority list
149 it, fr, zh ; und-FR ; fr
150 it, fr, zh ; und-CN ; zh
151 it, fr, zh ; und-Hans ; zh
152 it, fr, zh ; und-Hant ; zh
153 it, fr, zh ; und-Latn ; it
155 # match on maximized tag
156 fr, en-GB, ja, es-ES, es-MX ; ja-JP, en-GB ; ja
157 fr, en-GB, ja, es-ES, es-MX ; ja-Jpan-JP, en-GB ; ja
159 # pick best maximized tag
160 ja, ja-Jpan-US, ja-JP, en, ru ; ja-Jpan, ru ; ja
161 ja, ja-Jpan-US, ja-JP, en, ru ; ja-JP, ru ; ja-JP
162 ja, ja-Jpan-US, ja-JP, en, ru ; ja-US, ru ; ja-Jpan-US
164 # termination: pick best maximized match
165 ja, ja-Jpan, ja-JP, en, ru ; ja-Jpan-JP, ru ; ja-JP
166 ja, ja-Jpan, ja-JP, en, ru ; ja-Jpan, ru ; ja-Jpan
168 # same language over exact, but distinguish when user is explicit
169 fr, en-GB, ja, es-ES, es-MX ; ja, de ; ja
170 en, de, fr, ja ; de-CH, fr ; de # TODO: ; de-u-rg-CH
171 en-GB, nl ; en, nl ; en-GB
172 en-GB, nl ; en, nl, en-GB ; nl
174 # parent relation preserved
175 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-150 ; en-GB
176 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-AU ; en-GB
177 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-BE ; en-GB
178 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-GG ; en-GB
179 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-GI ; en-GB
180 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-HK ; en-GB
181 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-IE ; en-GB
182 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-IM ; en-GB
183 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-IN ; en-GB
184 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-JE ; en-GB
185 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-MT ; en-GB
186 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-NZ ; en-GB
187 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-PK ; en-GB
188 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-SG ; en-GB
189 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-DE ; en-GB
190 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; en-MT ; en-GB
191 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-AR ; es-419 ; es-AR
192 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-BO ; es-419 ; es-BO
193 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-CL ; es-419 ; es-CL
194 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-CO ; es-419 ; es-CO
195 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-CR ; es-419 ; es-CR
196 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-CU ; es-419 ; es-CU
197 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-DO ; es-419 ; es-DO
198 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-EC ; es-419 ; es-EC
199 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-GT ; es-419 ; es-GT
200 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-HN ; es-419 ; es-HN
201 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-MX ; es-419 ; es-MX
202 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-NI ; es-419 ; es-NI
203 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-PA ; es-419 ; es-PA
204 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-PE ; es-419 ; es-PE
205 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-PR ; es-419 ; es-PR
206 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-PT ; es
207 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-PY ; es-419 ; es-PY
208 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-SV ; es-419 ; es-SV
209 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-US ; es-419
210 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-UY ; es-419 ; es-UY
211 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; es-VE ; es-419 ; es-VE
212 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-AO ; pt-PT
213 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-CV ; pt-PT
214 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-GW ; pt-PT
215 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-MO ; pt-PT
216 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-MZ ; pt-PT
217 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-ST ; pt-PT
218 en, en-US, en-GB, es, es-419, pt, pt-BR, pt-PT, zh, zh-Hant, zh-Hant-HK ; pt-TL ; pt-PT
220 # preserve extensions
221 en, de, sl-nedis ; de-FR-u-co-phonebk ; de ; de-u-co-phonebk
222 en, de, sl-nedis ; sl-nedis-u-cu-eur ; sl-nedis ; sl-nedis-u-cu-eur
223 en, de, sl-nedis ; sl-u-cu-eur ; sl-nedis ; sl-nedis-u-cu-eur
224 en, de, sl-nedis ; sl-HR-nedis-u-cu-eur ; sl-nedis ; sl-nedis-u-cu-eur
225 en, de, sl-nedis ; de-t-m0-iso-i0-pinyin ; de ; de-t-m0-iso-i0-pinyin