const int ICU_ULOC_KEYWORD_AND_VALUES_CAPACITY = 100; // max size of keyword or value
const int ICU_ULOC_FULLNAME_CAPACITY = 157; // max size of locale name
const string ICU_COLLATION_KEYWORD = "@collation=";
-
+
+ // c_localeNames is the concatenation of all supported culture names.
+ // this is done rather than using a large readonly array of strings to avoid
+ // generating a large amount of code in the static constructor.
+ // Using indices from s_localeNamesIndices, we binary search this string when mapping
+ // an culture name to Lcid. Note that these names are all lowercase and are
+ // sorted alphabetically (ordinal).
+ private const string c_localeNames =
+ // culture name Lcid
+ "aa" + // 01000 - 0
+ "aa-dj" + // 01000 - 2
+ "aa-er" + // 01000 - 7
+ "aa-et" + // 01000 - 12
+ "af" + // 00036 - 17
+ "af-na" + // 01000 - 19
+ "af-za" + // 00436 - 24
+ "agq" + // 01000 - 29
+ "agq-cm" + // 01000 - 32
+ "ak" + // 01000 - 38
+ "ak-gh" + // 01000 - 40
+ "am" + // 0005e - 45
+ "am-et" + // 0045e - 47
+ "ar" + // 00001 - 52
+ "ar-001" + // 01000 - 54
+ "ar-ae" + // 03801 - 60
+ "ar-bh" + // 03c01 - 65
+ "ar-dj" + // 01000 - 70
+ "ar-dz" + // 01401 - 75
+ "ar-eg" + // 00c01 - 80
+ "ar-er" + // 01000 - 85
+ "ar-il" + // 01000 - 90
+ "ar-iq" + // 00801 - 95
+ "ar-jo" + // 02c01 - 100
+ "ar-km" + // 01000 - 105
+ "ar-kw" + // 03401 - 110
+ "ar-lb" + // 03001 - 115
+ "ar-ly" + // 01001 - 120
+ "ar-ma" + // 01801 - 125
+ "ar-mr" + // 01000 - 130
+ "ar-om" + // 02001 - 135
+ "ar-ps" + // 01000 - 140
+ "ar-qa" + // 04001 - 145
+ "ar-sa" + // 00401 - 150
+ "ar-sd" + // 01000 - 155
+ "ar-so" + // 01000 - 160
+ "ar-ss" + // 01000 - 165
+ "ar-sy" + // 02801 - 170
+ "ar-td" + // 01000 - 175
+ "ar-tn" + // 01c01 - 180
+ "ar-ye" + // 02401 - 185
+ "arn" + // 0007a - 190
+ "arn-cl" + // 0047a - 193
+ "as" + // 0004d - 199
+ "as-in" + // 0044d - 201
+ "asa" + // 01000 - 206
+ "asa-tz" + // 01000 - 209
+ "ast" + // 01000 - 215
+ "ast-es" + // 01000 - 218
+ "az" + // 0002c - 224
+ "az-cyrl" + // 0742c - 226
+ "az-cyrl-az" + // 0082c - 233
+ "az-latn" + // 0782c - 243
+ "az-latn-az" + // 0042c - 250
+ "ba" + // 0006d - 260
+ "ba-ru" + // 0046d - 262
+ "bas" + // 01000 - 267
+ "bas-cm" + // 01000 - 270
+ "be" + // 00023 - 276
+ "be-by" + // 00423 - 278
+ "bem" + // 01000 - 283
+ "bem-zm" + // 01000 - 286
+ "bez" + // 01000 - 292
+ "bez-tz" + // 01000 - 295
+ "bg" + // 00002 - 301
+ "bg-bg" + // 00402 - 303
+ "bin" + // 00066 - 308
+ "bin-ng" + // 00466 - 311
+ "bm" + // 01000 - 317
+ "bm-latn" + // 01000 - 319
+ "bm-latn-ml" + // 01000 - 326
+ "bn" + // 00045 - 336
+ "bn-bd" + // 00845 - 338
+ "bn-in" + // 00445 - 343
+ "bo" + // 00051 - 348
+ "bo-cn" + // 00451 - 350
+ "bo-in" + // 01000 - 355
+ "br" + // 0007e - 360
+ "br-fr" + // 0047e - 362
+ "brx" + // 01000 - 367
+ "brx-in" + // 01000 - 370
+ "bs" + // 0781a - 376
+ "bs-cyrl" + // 0641a - 378
+ "bs-cyrl-ba" + // 0201a - 385
+ "bs-latn" + // 0681a - 395
+ "bs-latn-ba" + // 0141a - 402
+ "byn" + // 01000 - 412
+ "byn-er" + // 01000 - 415
+ "ca" + // 00003 - 421
+ "ca-ad" + // 01000 - 423
+ "ca-es" + // 00403 - 428
+ "ca-es-valencia" + // 00803 - 433
+ "ca-fr" + // 01000 - 447
+ "ca-it" + // 01000 - 452
+ "ce-ru" + // 01000 - 457
+ "cgg" + // 01000 - 462
+ "cgg-ug" + // 01000 - 465
+ "chr" + // 0005c - 471
+ "chr-cher" + // 07c5c - 474
+ "chr-cher-us" + // 0045c - 482
+ "co" + // 00083 - 493
+ "co-fr" + // 00483 - 495
+ "cs" + // 00005 - 500
+ "cs-cz" + // 00405 - 502
+ "cu-ru" + // 01000 - 507
+ "cy" + // 00052 - 512
+ "cy-gb" + // 00452 - 514
+ "da" + // 00006 - 519
+ "da-dk" + // 00406 - 521
+ "da-gl" + // 01000 - 526
+ "dav" + // 01000 - 531
+ "dav-ke" + // 01000 - 534
+ "de" + // 00007 - 540
+ "de-at" + // 00c07 - 542
+ "de-be" + // 01000 - 547
+ "de-ch" + // 00807 - 552
+ "de-de" + // 00407 - 557
+ "de-de_phoneb" + // 10407 - 562
+ "de-it" + // 01000 - 574
+ "de-li" + // 01407 - 579
+ "de-lu" + // 01007 - 584
+ "dje" + // 01000 - 589
+ "dje-ne" + // 01000 - 592
+ "dsb" + // 07c2e - 598
+ "dsb-de" + // 0082e - 601
+ "dua" + // 01000 - 607
+ "dua-cm" + // 01000 - 610
+ "dv" + // 00065 - 616
+ "dv-mv" + // 00465 - 618
+ "dyo" + // 01000 - 623
+ "dyo-sn" + // 01000 - 626
+ "dz" + // 01000 - 632
+ "dz-bt" + // 00c51 - 634
+ "ebu" + // 01000 - 639
+ "ebu-ke" + // 01000 - 642
+ "ee" + // 01000 - 648
+ "ee-gh" + // 01000 - 650
+ "ee-tg" + // 01000 - 655
+ "el" + // 00008 - 660
+ "el-cy" + // 01000 - 662
+ "el-gr" + // 00408 - 667
+ "en" + // 00009 - 672
+ "en-001" + // 01000 - 674
+ "en-029" + // 02409 - 680
+ "en-150" + // 01000 - 686
+ "en-ag" + // 01000 - 692
+ "en-ai" + // 01000 - 697
+ "en-as" + // 01000 - 702
+ "en-at" + // 01000 - 707
+ "en-au" + // 00c09 - 712
+ "en-bb" + // 01000 - 717
+ "en-be" + // 01000 - 722
+ "en-bi" + // 01000 - 727
+ "en-bm" + // 01000 - 732
+ "en-bs" + // 01000 - 737
+ "en-bw" + // 01000 - 742
+ "en-bz" + // 02809 - 747
+ "en-ca" + // 01009 - 752
+ "en-cc" + // 01000 - 757
+ "en-ch" + // 01000 - 762
+ "en-ck" + // 01000 - 767
+ "en-cm" + // 01000 - 772
+ "en-cx" + // 01000 - 777
+ "en-cy" + // 01000 - 782
+ "en-de" + // 01000 - 787
+ "en-dk" + // 01000 - 792
+ "en-dm" + // 01000 - 797
+ "en-er" + // 01000 - 802
+ "en-fi" + // 01000 - 807
+ "en-fj" + // 01000 - 812
+ "en-fk" + // 01000 - 817
+ "en-fm" + // 01000 - 822
+ "en-gb" + // 00809 - 827
+ "en-gd" + // 01000 - 832
+ "en-gg" + // 01000 - 837
+ "en-gh" + // 01000 - 842
+ "en-gi" + // 01000 - 847
+ "en-gm" + // 01000 - 852
+ "en-gu" + // 01000 - 857
+ "en-gy" + // 01000 - 862
+ "en-hk" + // 03c09 - 867
+ "en-id" + // 03809 - 872
+ "en-ie" + // 01809 - 877
+ "en-il" + // 01000 - 882
+ "en-im" + // 01000 - 887
+ "en-in" + // 04009 - 892
+ "en-io" + // 01000 - 897
+ "en-je" + // 01000 - 902
+ "en-jm" + // 02009 - 907
+ "en-ke" + // 01000 - 912
+ "en-ki" + // 01000 - 917
+ "en-kn" + // 01000 - 922
+ "en-ky" + // 01000 - 927
+ "en-lc" + // 01000 - 932
+ "en-lr" + // 01000 - 937
+ "en-ls" + // 01000 - 942
+ "en-mg" + // 01000 - 947
+ "en-mh" + // 01000 - 952
+ "en-mo" + // 01000 - 957
+ "en-mp" + // 01000 - 962
+ "en-ms" + // 01000 - 967
+ "en-mt" + // 01000 - 972
+ "en-mu" + // 01000 - 977
+ "en-mw" + // 01000 - 982
+ "en-my" + // 04409 - 987
+ "en-na" + // 01000 - 992
+ "en-nf" + // 01000 - 997
+ "en-ng" + // 01000 - 1002
+ "en-nl" + // 01000 - 1007
+ "en-nr" + // 01000 - 1012
+ "en-nu" + // 01000 - 1017
+ "en-nz" + // 01409 - 1022
+ "en-pg" + // 01000 - 1027
+ "en-ph" + // 03409 - 1032
+ "en-pk" + // 01000 - 1037
+ "en-pn" + // 01000 - 1042
+ "en-pr" + // 01000 - 1047
+ "en-pw" + // 01000 - 1052
+ "en-rw" + // 01000 - 1057
+ "en-sb" + // 01000 - 1062
+ "en-sc" + // 01000 - 1067
+ "en-sd" + // 01000 - 1072
+ "en-se" + // 01000 - 1077
+ "en-sg" + // 04809 - 1082
+ "en-sh" + // 01000 - 1087
+ "en-si" + // 01000 - 1092
+ "en-sl" + // 01000 - 1097
+ "en-ss" + // 01000 - 1102
+ "en-sx" + // 01000 - 1107
+ "en-sz" + // 01000 - 1112
+ "en-tc" + // 01000 - 1117
+ "en-tk" + // 01000 - 1122
+ "en-to" + // 01000 - 1127
+ "en-tt" + // 02c09 - 1132
+ "en-tv" + // 01000 - 1137
+ "en-tz" + // 01000 - 1142
+ "en-ug" + // 01000 - 1147
+ "en-um" + // 01000 - 1152
+ "en-us" + // 00409 - 1157
+ "en-vc" + // 01000 - 1162
+ "en-vg" + // 01000 - 1167
+ "en-vi" + // 01000 - 1172
+ "en-vu" + // 01000 - 1177
+ "en-ws" + // 01000 - 1182
+ "en-za" + // 01c09 - 1187
+ "en-zm" + // 01000 - 1192
+ "en-zw" + // 03009 - 1197
+ "eo" + // 01000 - 1202
+ "eo-001" + // 01000 - 1204
+ "es" + // 0000a - 1210
+ "es-419" + // 0580a - 1212
+ "es-ar" + // 02c0a - 1218
+ "es-bo" + // 0400a - 1223
+ "es-br" + // 01000 - 1228
+ "es-cl" + // 0340a - 1233
+ "es-co" + // 0240a - 1238
+ "es-cr" + // 0140a - 1243
+ "es-cu" + // 05c0a - 1248
+ "es-do" + // 01c0a - 1253
+ "es-ec" + // 0300a - 1258
+ "es-es" + // 00c0a - 1263
+ "es-es_tradnl" + // 0040a - 1268
+ "es-gq" + // 01000 - 1280
+ "es-gt" + // 0100a - 1285
+ "es-hn" + // 0480a - 1290
+ "es-mx" + // 0080a - 1295
+ "es-ni" + // 04c0a - 1300
+ "es-pa" + // 0180a - 1305
+ "es-pe" + // 0280a - 1310
+ "es-ph" + // 01000 - 1315
+ "es-pr" + // 0500a - 1320
+ "es-py" + // 03c0a - 1325
+ "es-sv" + // 0440a - 1330
+ "es-us" + // 0540a - 1335
+ "es-uy" + // 0380a - 1340
+ "es-ve" + // 0200a - 1345
+ "et" + // 00025 - 1350
+ "et-ee" + // 00425 - 1352
+ "eu" + // 0002d - 1357
+ "eu-es" + // 0042d - 1359
+ "ewo" + // 01000 - 1364
+ "ewo-cm" + // 01000 - 1367
+ "fa" + // 00029 - 1373
+ "fa-ir" + // 00429 - 1375
+ "ff" + // 00067 - 1380
+ "ff-cm" + // 01000 - 1382
+ "ff-gn" + // 01000 - 1387
+ "ff-latn" + // 07c67 - 1392
+ "ff-latn-sn" + // 00867 - 1399
+ "ff-mr" + // 01000 - 1409
+ "ff-ng" + // 00467 - 1414
+ "fi" + // 0000b - 1419
+ "fi-fi" + // 0040b - 1421
+ "fil" + // 00064 - 1426
+ "fil-ph" + // 00464 - 1429
+ "fo" + // 00038 - 1435
+ "fo-dk" + // 01000 - 1437
+ "fo-fo" + // 00438 - 1442
+ "fr" + // 0000c - 1447
+ "fr-029" + // 01c0c - 1449
+ "fr-be" + // 0080c - 1455
+ "fr-bf" + // 01000 - 1460
+ "fr-bi" + // 01000 - 1465
+ "fr-bj" + // 01000 - 1470
+ "fr-bl" + // 01000 - 1475
+ "fr-ca" + // 00c0c - 1480
+ "fr-cd" + // 0240c - 1485
+ "fr-cf" + // 01000 - 1490
+ "fr-cg" + // 01000 - 1495
+ "fr-ch" + // 0100c - 1500
+ "fr-ci" + // 0300c - 1505
+ "fr-cm" + // 02c0c - 1510
+ "fr-dj" + // 01000 - 1515
+ "fr-dz" + // 01000 - 1520
+ "fr-fr" + // 0040c - 1525
+ "fr-ga" + // 01000 - 1530
+ "fr-gf" + // 01000 - 1535
+ "fr-gn" + // 01000 - 1540
+ "fr-gp" + // 01000 - 1545
+ "fr-gq" + // 01000 - 1550
+ "fr-ht" + // 03c0c - 1555
+ "fr-km" + // 01000 - 1560
+ "fr-lu" + // 0140c - 1565
+ "fr-ma" + // 0380c - 1570
+ "fr-mc" + // 0180c - 1575
+ "fr-mf" + // 01000 - 1580
+ "fr-mg" + // 01000 - 1585
+ "fr-ml" + // 0340c - 1590
+ "fr-mq" + // 01000 - 1595
+ "fr-mr" + // 01000 - 1600
+ "fr-mu" + // 01000 - 1605
+ "fr-nc" + // 01000 - 1610
+ "fr-ne" + // 01000 - 1615
+ "fr-pf" + // 01000 - 1620
+ "fr-pm" + // 01000 - 1625
+ "fr-re" + // 0200c - 1630
+ "fr-rw" + // 01000 - 1635
+ "fr-sc" + // 01000 - 1640
+ "fr-sn" + // 0280c - 1645
+ "fr-sy" + // 01000 - 1650
+ "fr-td" + // 01000 - 1655
+ "fr-tg" + // 01000 - 1660
+ "fr-tn" + // 01000 - 1665
+ "fr-vu" + // 01000 - 1670
+ "fr-wf" + // 01000 - 1675
+ "fr-yt" + // 01000 - 1680
+ "fur" + // 01000 - 1685
+ "fur-it" + // 01000 - 1688
+ "fy" + // 00062 - 1694
+ "fy-nl" + // 00462 - 1696
+ "ga" + // 0003c - 1701
+ "ga-ie" + // 0083c - 1703
+ "gd" + // 00091 - 1708
+ "gd-gb" + // 00491 - 1710
+ "gl" + // 00056 - 1715
+ "gl-es" + // 00456 - 1717
+ "gn" + // 00074 - 1722
+ "gn-py" + // 00474 - 1724
+ "gsw" + // 00084 - 1729
+ "gsw-ch" + // 01000 - 1732
+ "gsw-fr" + // 00484 - 1738
+ "gsw-li" + // 01000 - 1744
+ "gu" + // 00047 - 1750
+ "gu-in" + // 00447 - 1752
+ "guz" + // 01000 - 1757
+ "guz-ke" + // 01000 - 1760
+ "gv" + // 01000 - 1766
+ "gv-im" + // 01000 - 1768
+ "ha" + // 00068 - 1773
+ "ha-latn" + // 07c68 - 1775
+ "ha-latn-gh" + // 01000 - 1782
+ "ha-latn-ne" + // 01000 - 1792
+ "ha-latn-ng" + // 00468 - 1802
+ "haw" + // 00075 - 1812
+ "haw-us" + // 00475 - 1815
+ "he" + // 0000d - 1821
+ "he-il" + // 0040d - 1823
+ "hi" + // 00039 - 1828
+ "hi-in" + // 00439 - 1830
+ "hr" + // 0001a - 1835
+ "hr-ba" + // 0101a - 1837
+ "hr-hr" + // 0041a - 1842
+ "hsb" + // 0002e - 1847
+ "hsb-de" + // 0042e - 1850
+ "hu" + // 0000e - 1856
+ "hu-hu" + // 0040e - 1858
+ "hu-hu_technl" + // 1040e - 1863
+ "hy" + // 0002b - 1875
+ "hy-am" + // 0042b - 1877
+ "ia" + // 01000 - 1882
+ "ia-001" + // 01000 - 1884
+ "ia-fr" + // 01000 - 1890
+ "ibb" + // 00069 - 1895
+ "ibb-ng" + // 00469 - 1898
+ "id" + // 00021 - 1904
+ "id-id" + // 00421 - 1906
+ "ig" + // 00070 - 1911
+ "ig-ng" + // 00470 - 1913
+ "ii" + // 00078 - 1918
+ "ii-cn" + // 00478 - 1920
+ "is" + // 0000f - 1925
+ "is-is" + // 0040f - 1927
+ "it" + // 00010 - 1932
+ "it-ch" + // 00810 - 1934
+ "it-it" + // 00410 - 1939
+ "it-sm" + // 01000 - 1944
+ "iu" + // 0005d - 1949
+ "iu-cans" + // 0785d - 1951
+ "iu-cans-ca" + // 0045d - 1958
+ "iu-latn" + // 07c5d - 1968
+ "iu-latn-ca" + // 0085d - 1975
+ "ja" + // 00011 - 1985
+ "ja-jp" + // 00411 - 1987
+ "ja-jp_radstr" + // 40411 - 1992
+ "jgo" + // 01000 - 2004
+ "jgo-cm" + // 01000 - 2007
+ "jmc" + // 01000 - 2013
+ "jmc-tz" + // 01000 - 2016
+ "jv" + // 01000 - 2022
+ "jv-java" + // 01000 - 2024
+ "jv-java-id" + // 01000 - 2031
+ "jv-latn" + // 01000 - 2041
+ "jv-latn-id" + // 01000 - 2048
+ "ka" + // 00037 - 2058
+ "ka-ge" + // 00437 - 2060
+ "ka-ge_modern" + // 10437 - 2065
+ "kab" + // 01000 - 2077
+ "kab-dz" + // 01000 - 2080
+ "kam" + // 01000 - 2086
+ "kam-ke" + // 01000 - 2089
+ "kde" + // 01000 - 2095
+ "kde-tz" + // 01000 - 2098
+ "kea" + // 01000 - 2104
+ "kea-cv" + // 01000 - 2107
+ "khq" + // 01000 - 2113
+ "khq-ml" + // 01000 - 2116
+ "ki" + // 01000 - 2122
+ "ki-ke" + // 01000 - 2124
+ "kk" + // 0003f - 2129
+ "kk-kz" + // 0043f - 2131
+ "kkj" + // 01000 - 2136
+ "kkj-cm" + // 01000 - 2139
+ "kl" + // 0006f - 2145
+ "kl-gl" + // 0046f - 2147
+ "kln" + // 01000 - 2152
+ "kln-ke" + // 01000 - 2155
+ "km" + // 00053 - 2161
+ "km-kh" + // 00453 - 2163
+ "kn" + // 0004b - 2168
+ "kn-in" + // 0044b - 2170
+ "ko" + // 00012 - 2175
+ "ko-kp" + // 01000 - 2177
+ "ko-kr" + // 00412 - 2182
+ "kok" + // 00057 - 2187
+ "kok-in" + // 00457 - 2190
+ "kr" + // 00071 - 2196
+ "kr-ng" + // 00471 - 2198
+ "ks" + // 00060 - 2203
+ "ks-arab" + // 00460 - 2205
+ "ks-arab-in" + // 01000 - 2212
+ "ks-deva" + // 01000 - 2222
+ "ks-deva-in" + // 00860 - 2229
+ "ksb" + // 01000 - 2239
+ "ksb-tz" + // 01000 - 2242
+ "ksf" + // 01000 - 2248
+ "ksf-cm" + // 01000 - 2251
+ "ksh" + // 01000 - 2257
+ "ksh-de" + // 01000 - 2260
+ "ku" + // 00092 - 2266
+ "ku-arab" + // 07c92 - 2268
+ "ku-arab-iq" + // 00492 - 2275
+ "ku-arab-ir" + // 01000 - 2285
+ "kw" + // 01000 - 2295
+ "kw-gb" + // 01000 - 2297
+ "ky" + // 00040 - 2302
+ "ky-kg" + // 00440 - 2304
+ "la" + // 00076 - 2309
+ "la-001" + // 00476 - 2311
+ "lag" + // 01000 - 2317
+ "lag-tz" + // 01000 - 2320
+ "lb" + // 0006e - 2326
+ "lb-lu" + // 0046e - 2328
+ "lg" + // 01000 - 2333
+ "lg-ug" + // 01000 - 2335
+ "lkt" + // 01000 - 2340
+ "lkt-us" + // 01000 - 2343
+ "ln" + // 01000 - 2349
+ "ln-ao" + // 01000 - 2351
+ "ln-cd" + // 01000 - 2356
+ "ln-cf" + // 01000 - 2361
+ "ln-cg" + // 01000 - 2366
+ "lo" + // 00054 - 2371
+ "lo-la" + // 00454 - 2373
+ "lrc-iq" + // 01000 - 2378
+ "lrc-ir" + // 01000 - 2384
+ "lt" + // 00027 - 2390
+ "lt-lt" + // 00427 - 2392
+ "lu" + // 01000 - 2397
+ "lu-cd" + // 01000 - 2399
+ "luo" + // 01000 - 2404
+ "luo-ke" + // 01000 - 2407
+ "luy" + // 01000 - 2413
+ "luy-ke" + // 01000 - 2416
+ "lv" + // 00026 - 2422
+ "lv-lv" + // 00426 - 2424
+ "mas" + // 01000 - 2429
+ "mas-ke" + // 01000 - 2432
+ "mas-tz" + // 01000 - 2438
+ "mer" + // 01000 - 2444
+ "mer-ke" + // 01000 - 2447
+ "mfe" + // 01000 - 2453
+ "mfe-mu" + // 01000 - 2456
+ "mg" + // 01000 - 2462
+ "mg-mg" + // 01000 - 2464
+ "mgh" + // 01000 - 2469
+ "mgh-mz" + // 01000 - 2472
+ "mgo" + // 01000 - 2478
+ "mgo-cm" + // 01000 - 2481
+ "mi" + // 00081 - 2487
+ "mi-nz" + // 00481 - 2489
+ "mk" + // 0002f - 2494
+ "mk-mk" + // 0042f - 2496
+ "ml" + // 0004c - 2501
+ "ml-in" + // 0044c - 2503
+ "mn" + // 00050 - 2508
+ "mn-cyrl" + // 07850 - 2510
+ "mn-mn" + // 00450 - 2517
+ "mn-mong" + // 07c50 - 2522
+ "mn-mong-cn" + // 00850 - 2529
+ "mn-mong-mn" + // 00c50 - 2539
+ "mni" + // 00058 - 2549
+ "mni-in" + // 00458 - 2552
+ "moh" + // 0007c - 2558
+ "moh-ca" + // 0047c - 2561
+ "mr" + // 0004e - 2567
+ "mr-in" + // 0044e - 2569
+ "ms" + // 0003e - 2574
+ "ms-bn" + // 0083e - 2576
+ "ms-my" + // 0043e - 2581
+ "ms-sg" + // 01000 - 2586
+ "mt" + // 0003a - 2591
+ "mt-mt" + // 0043a - 2593
+ "mua" + // 01000 - 2598
+ "mua-cm" + // 01000 - 2601
+ "my" + // 00055 - 2607
+ "my-mm" + // 00455 - 2609
+ "mzn-ir" + // 01000 - 2614
+ "naq" + // 01000 - 2620
+ "naq-na" + // 01000 - 2623
+ "nb" + // 07c14 - 2629
+ "nb-no" + // 00414 - 2631
+ "nb-sj" + // 01000 - 2636
+ "nd" + // 01000 - 2641
+ "nd-zw" + // 01000 - 2643
+ "nds-de" + // 01000 - 2648
+ "nds-nl" + // 01000 - 2654
+ "ne" + // 00061 - 2660
+ "ne-in" + // 00861 - 2662
+ "ne-np" + // 00461 - 2667
+ "nl" + // 00013 - 2672
+ "nl-aw" + // 01000 - 2674
+ "nl-be" + // 00813 - 2679
+ "nl-bq" + // 01000 - 2684
+ "nl-cw" + // 01000 - 2689
+ "nl-nl" + // 00413 - 2694
+ "nl-sr" + // 01000 - 2699
+ "nl-sx" + // 01000 - 2704
+ "nmg" + // 01000 - 2709
+ "nmg-cm" + // 01000 - 2712
+ "nn" + // 07814 - 2718
+ "nn-no" + // 00814 - 2720
+ "nnh" + // 01000 - 2725
+ "nnh-cm" + // 01000 - 2728
+ "no" + // 00014 - 2734
+ "nqo" + // 01000 - 2736
+ "nqo-gn" + // 01000 - 2739
+ "nr" + // 01000 - 2745
+ "nr-za" + // 01000 - 2747
+ "nso" + // 0006c - 2752
+ "nso-za" + // 0046c - 2755
+ "nus" + // 01000 - 2761
+ "nus-ss" + // 01000 - 2764
+ "nyn" + // 01000 - 2770
+ "nyn-ug" + // 01000 - 2773
+ "oc" + // 00082 - 2779
+ "oc-fr" + // 00482 - 2781
+ "om" + // 00072 - 2786
+ "om-et" + // 00472 - 2788
+ "om-ke" + // 01000 - 2793
+ "or" + // 00048 - 2798
+ "or-in" + // 00448 - 2800
+ "os" + // 01000 - 2805
+ "os-ge" + // 01000 - 2807
+ "os-ru" + // 01000 - 2812
+ "pa" + // 00046 - 2817
+ "pa-arab" + // 07c46 - 2819
+ "pa-arab-pk" + // 00846 - 2826
+ "pa-in" + // 00446 - 2836
+ "pap" + // 00079 - 2841
+ "pap-029" + // 00479 - 2844
+ "pl" + // 00015 - 2851
+ "pl-pl" + // 00415 - 2853
+ "prg-001" + // 01000 - 2858
+ "prs" + // 0008c - 2865
+ "prs-af" + // 0048c - 2868
+ "ps" + // 00063 - 2874
+ "ps-af" + // 00463 - 2876
+ "pt" + // 00016 - 2881
+ "pt-ao" + // 01000 - 2883
+ "pt-br" + // 00416 - 2888
+ "pt-ch" + // 01000 - 2893
+ "pt-cv" + // 01000 - 2898
+ "pt-gq" + // 01000 - 2903
+ "pt-gw" + // 01000 - 2908
+ "pt-lu" + // 01000 - 2913
+ "pt-mo" + // 01000 - 2918
+ "pt-mz" + // 01000 - 2923
+ "pt-pt" + // 00816 - 2928
+ "pt-st" + // 01000 - 2933
+ "pt-tl" + // 01000 - 2938
+ "qps-latn-x-sh" + // 00901 - 2943
+ "qps-ploc" + // 00501 - 2956
+ "qps-ploca" + // 005fe - 2964
+ "qps-plocm" + // 009ff - 2973
+ "quc" + // 00086 - 2982
+ "quc-latn" + // 07c86 - 2985
+ "quc-latn-gt" + // 00486 - 2993
+ "quz" + // 0006b - 3004
+ "quz-bo" + // 0046b - 3007
+ "quz-ec" + // 0086b - 3013
+ "quz-pe" + // 00c6b - 3019
+ "rm" + // 00017 - 3025
+ "rm-ch" + // 00417 - 3027
+ "rn" + // 01000 - 3032
+ "rn-bi" + // 01000 - 3034
+ "ro" + // 00018 - 3039
+ "ro-md" + // 00818 - 3041
+ "ro-ro" + // 00418 - 3046
+ "rof" + // 01000 - 3051
+ "rof-tz" + // 01000 - 3054
+ "ru" + // 00019 - 3060
+ "ru-by" + // 01000 - 3062
+ "ru-kg" + // 01000 - 3067
+ "ru-kz" + // 01000 - 3072
+ "ru-md" + // 00819 - 3077
+ "ru-ru" + // 00419 - 3082
+ "ru-ua" + // 01000 - 3087
+ "rw" + // 00087 - 3092
+ "rw-rw" + // 00487 - 3094
+ "rwk" + // 01000 - 3099
+ "rwk-tz" + // 01000 - 3102
+ "sa" + // 0004f - 3108
+ "sa-in" + // 0044f - 3110
+ "sah" + // 00085 - 3115
+ "sah-ru" + // 00485 - 3118
+ "saq" + // 01000 - 3124
+ "saq-ke" + // 01000 - 3127
+ "sbp" + // 01000 - 3133
+ "sbp-tz" + // 01000 - 3136
+ "sd" + // 00059 - 3142
+ "sd-arab" + // 07c59 - 3144
+ "sd-arab-pk" + // 00859 - 3151
+ "sd-deva" + // 01000 - 3161
+ "sd-deva-in" + // 00459 - 3168
+ "se" + // 0003b - 3178
+ "se-fi" + // 00c3b - 3180
+ "se-no" + // 0043b - 3185
+ "se-se" + // 0083b - 3190
+ "seh" + // 01000 - 3195
+ "seh-mz" + // 01000 - 3198
+ "ses" + // 01000 - 3204
+ "ses-ml" + // 01000 - 3207
+ "sg" + // 01000 - 3213
+ "sg-cf" + // 01000 - 3215
+ "shi" + // 01000 - 3220
+ "shi-latn" + // 01000 - 3223
+ "shi-latn-ma" + // 01000 - 3231
+ "shi-tfng" + // 01000 - 3242
+ "shi-tfng-ma" + // 01000 - 3250
+ "si" + // 0005b - 3261
+ "si-lk" + // 0045b - 3263
+ "sk" + // 0001b - 3268
+ "sk-sk" + // 0041b - 3270
+ "sl" + // 00024 - 3275
+ "sl-si" + // 00424 - 3277
+ "sma" + // 0783b - 3282
+ "sma-no" + // 0183b - 3285
+ "sma-se" + // 01c3b - 3291
+ "smj" + // 07c3b - 3297
+ "smj-no" + // 0103b - 3300
+ "smj-se" + // 0143b - 3306
+ "smn" + // 0703b - 3312
+ "smn-fi" + // 0243b - 3315
+ "sms" + // 0743b - 3321
+ "sms-fi" + // 0203b - 3324
+ "sn" + // 01000 - 3330
+ "sn-latn" + // 01000 - 3332
+ "sn-latn-zw" + // 01000 - 3339
+ "so" + // 00077 - 3349
+ "so-dj" + // 01000 - 3351
+ "so-et" + // 01000 - 3356
+ "so-ke" + // 01000 - 3361
+ "so-so" + // 00477 - 3366
+ "sq" + // 0001c - 3371
+ "sq-al" + // 0041c - 3373
+ "sq-mk" + // 01000 - 3378
+ "sq-xk" + // 01000 - 3383
+ "sr" + // 07c1a - 3388
+ "sr-cyrl" + // 06c1a - 3390
+ "sr-cyrl-ba" + // 01c1a - 3397
+ "sr-cyrl-cs" + // 00c1a - 3407
+ "sr-cyrl-me" + // 0301a - 3417
+ "sr-cyrl-rs" + // 0281a - 3427
+ "sr-cyrl-xk" + // 01000 - 3437
+ "sr-latn" + // 0701a - 3447
+ "sr-latn-ba" + // 0181a - 3454
+ "sr-latn-cs" + // 0081a - 3464
+ "sr-latn-me" + // 02c1a - 3474
+ "sr-latn-rs" + // 0241a - 3484
+ "sr-latn-xk" + // 01000 - 3494
+ "ss" + // 01000 - 3504
+ "ss-sz" + // 01000 - 3506
+ "ss-za" + // 01000 - 3511
+ "ssy" + // 01000 - 3516
+ "ssy-er" + // 01000 - 3519
+ "st" + // 00030 - 3525
+ "st-ls" + // 01000 - 3527
+ "st-za" + // 00430 - 3532
+ "sv" + // 0001d - 3537
+ "sv-ax" + // 01000 - 3539
+ "sv-fi" + // 0081d - 3544
+ "sv-se" + // 0041d - 3549
+ "sw" + // 00041 - 3554
+ "sw-cd" + // 01000 - 3556
+ "sw-ke" + // 00441 - 3561
+ "sw-tz" + // 01000 - 3566
+ "sw-ug" + // 01000 - 3571
+ "swc" + // 01000 - 3576
+ "swc-cd" + // 01000 - 3579
+ "syr" + // 0005a - 3585
+ "syr-sy" + // 0045a - 3588
+ "ta" + // 00049 - 3594
+ "ta-in" + // 00449 - 3596
+ "ta-lk" + // 00849 - 3601
+ "ta-my" + // 01000 - 3606
+ "ta-sg" + // 01000 - 3611
+ "te" + // 0004a - 3616
+ "te-in" + // 0044a - 3618
+ "teo" + // 01000 - 3623
+ "teo-ke" + // 01000 - 3626
+ "teo-ug" + // 01000 - 3632
+ "tg" + // 00028 - 3638
+ "tg-cyrl" + // 07c28 - 3640
+ "tg-cyrl-tj" + // 00428 - 3647
+ "th" + // 0001e - 3657
+ "th-th" + // 0041e - 3659
+ "ti" + // 00073 - 3664
+ "ti-er" + // 00873 - 3666
+ "ti-et" + // 00473 - 3671
+ "tig" + // 01000 - 3676
+ "tig-er" + // 01000 - 3679
+ "tk" + // 00042 - 3685
+ "tk-tm" + // 00442 - 3687
+ "tn" + // 00032 - 3692
+ "tn-bw" + // 00832 - 3694
+ "tn-za" + // 00432 - 3699
+ "to" + // 01000 - 3704
+ "to-to" + // 01000 - 3706
+ "tr" + // 0001f - 3711
+ "tr-cy" + // 01000 - 3713
+ "tr-tr" + // 0041f - 3718
+ "ts" + // 00031 - 3723
+ "ts-za" + // 00431 - 3725
+ "tt" + // 00044 - 3730
+ "tt-ru" + // 00444 - 3732
+ "twq" + // 01000 - 3737
+ "twq-ne" + // 01000 - 3740
+ "tzm" + // 0005f - 3746
+ "tzm-arab" + // 01000 - 3749
+ "tzm-arab-ma" + // 0045f - 3757
+ "tzm-latn" + // 07c5f - 3768
+ "tzm-latn-dz" + // 0085f - 3776
+ "tzm-latn-ma" + // 01000 - 3787
+ "tzm-tfng" + // 0785f - 3798
+ "tzm-tfng-ma" + // 0105f - 3806
+ "ug" + // 00080 - 3817
+ "ug-cn" + // 00480 - 3819
+ "uk" + // 00022 - 3824
+ "uk-ua" + // 00422 - 3826
+ "ur" + // 00020 - 3831
+ "ur-in" + // 00820 - 3833
+ "ur-pk" + // 00420 - 3838
+ "uz" + // 00043 - 3843
+ "uz-arab" + // 01000 - 3845
+ "uz-arab-af" + // 01000 - 3852
+ "uz-cyrl" + // 07843 - 3862
+ "uz-cyrl-uz" + // 00843 - 3869
+ "uz-latn" + // 07c43 - 3879
+ "uz-latn-uz" + // 00443 - 3886
+ "vai" + // 01000 - 3896
+ "vai-latn" + // 01000 - 3899
+ "vai-latn-lr" + // 01000 - 3907
+ "vai-vaii" + // 01000 - 3918
+ "vai-vaii-lr" + // 01000 - 3926
+ "ve" + // 00033 - 3937
+ "ve-za" + // 00433 - 3939
+ "vi" + // 0002a - 3944
+ "vi-vn" + // 0042a - 3946
+ "vo" + // 01000 - 3951
+ "vo-001" + // 01000 - 3953
+ "vun" + // 01000 - 3959
+ "vun-tz" + // 01000 - 3962
+ "wae" + // 01000 - 3968
+ "wae-ch" + // 01000 - 3971
+ "wal" + // 01000 - 3977
+ "wal-et" + // 01000 - 3980
+ "wo" + // 00088 - 3986
+ "wo-sn" + // 00488 - 3988
+ "x-iv_mathan" + // 1007f - 3993
+ "xh" + // 00034 - 4004
+ "xh-za" + // 00434 - 4006
+ "xog" + // 01000 - 4011
+ "xog-ug" + // 01000 - 4014
+ "yav" + // 01000 - 4020
+ "yav-cm" + // 01000 - 4023
+ "yi" + // 0003d - 4029
+ "yi-001" + // 0043d - 4031
+ "yo" + // 0006a - 4037
+ "yo-bj" + // 01000 - 4039
+ "yo-ng" + // 0046a - 4044
+ "yue-hk" + // 01000 - 4049
+ "zgh" + // 01000 - 4055
+ "zgh-tfng" + // 01000 - 4058
+ "zgh-tfng-ma" + // 01000 - 4066
+ "zh" + // 07804 - 4077
+ "zh-chs" + // 00004 - 4079
+ "zh-cht" + // 07c04 - 4085
+ "zh-cn" + // 00804 - 4091
+ "zh-cn_phoneb" + // 50804 - 4096
+ "zh-cn_stroke" + // 20804 - 4108
+ "zh-hans" + // 00004 - 4120
+ "zh-hans-hk" + // 01000 - 4127
+ "zh-hans-mo" + // 01000 - 4137
+ "zh-hant" + // 07c04 - 4147
+ "zh-hk" + // 00c04 - 4154
+ "zh-hk_radstr" + // 40c04 - 4159
+ "zh-mo" + // 01404 - 4171
+ "zh-mo_radstr" + // 41404 - 4176
+ "zh-mo_stroke" + // 21404 - 4188
+ "zh-sg" + // 01004 - 4200
+ "zh-sg_phoneb" + // 51004 - 4205
+ "zh-sg_stroke" + // 21004 - 4217
+ "zh-tw" + // 00404 - 4229
+ "zh-tw_pronun" + // 30404 - 4234
+ "zh-tw_radstr" + // 40404 - 4246
+ "zu" + // 00035 - 4258
+ "zu-za"; // 00435 - 4260
+
+ // s_localeNamesIndices contains the start index of every culture name in the string
+ // s_localeNames. We infer the length of each string by looking at the start index
+ // of the next string.
+ private static readonly int[] s_localeNamesIndices = new int[]
+ {
+ // c_localeNames index, // index to this array - culture name
+ 0 , // 0 - aa
+ 2 , // 1 - aa-dj
+ 7 , // 2 - aa-er
+ 12 , // 3 - aa-et
+ 17 , // 4 - af
+ 19 , // 5 - af-na
+ 24 , // 6 - af-za
+ 29 , // 7 - agq
+ 32 , // 8 - agq-cm
+ 38 , // 9 - ak
+ 40 , // 10 - ak-gh
+ 45 , // 11 - am
+ 47 , // 12 - am-et
+ 52 , // 13 - ar
+ 54 , // 14 - ar-001
+ 60 , // 15 - ar-ae
+ 65 , // 16 - ar-bh
+ 70 , // 17 - ar-dj
+ 75 , // 18 - ar-dz
+ 80 , // 19 - ar-eg
+ 85 , // 20 - ar-er
+ 90 , // 21 - ar-il
+ 95 , // 22 - ar-iq
+ 100 , // 23 - ar-jo
+ 105 , // 24 - ar-km
+ 110 , // 25 - ar-kw
+ 115 , // 26 - ar-lb
+ 120 , // 27 - ar-ly
+ 125 , // 28 - ar-ma
+ 130 , // 29 - ar-mr
+ 135 , // 30 - ar-om
+ 140 , // 31 - ar-ps
+ 145 , // 32 - ar-qa
+ 150 , // 33 - ar-sa
+ 155 , // 34 - ar-sd
+ 160 , // 35 - ar-so
+ 165 , // 36 - ar-ss
+ 170 , // 37 - ar-sy
+ 175 , // 38 - ar-td
+ 180 , // 39 - ar-tn
+ 185 , // 40 - ar-ye
+ 190 , // 41 - arn
+ 193 , // 42 - arn-cl
+ 199 , // 43 - as
+ 201 , // 44 - as-in
+ 206 , // 45 - asa
+ 209 , // 46 - asa-tz
+ 215 , // 47 - ast
+ 218 , // 48 - ast-es
+ 224 , // 49 - az
+ 226 , // 50 - az-cyrl
+ 233 , // 51 - az-cyrl-az
+ 243 , // 52 - az-latn
+ 250 , // 53 - az-latn-az
+ 260 , // 54 - ba
+ 262 , // 55 - ba-ru
+ 267 , // 56 - bas
+ 270 , // 57 - bas-cm
+ 276 , // 58 - be
+ 278 , // 59 - be-by
+ 283 , // 60 - bem
+ 286 , // 61 - bem-zm
+ 292 , // 62 - bez
+ 295 , // 63 - bez-tz
+ 301 , // 64 - bg
+ 303 , // 65 - bg-bg
+ 308 , // 66 - bin
+ 311 , // 67 - bin-ng
+ 317 , // 68 - bm
+ 319 , // 69 - bm-latn
+ 326 , // 70 - bm-latn-ml
+ 336 , // 71 - bn
+ 338 , // 72 - bn-bd
+ 343 , // 73 - bn-in
+ 348 , // 74 - bo
+ 350 , // 75 - bo-cn
+ 355 , // 76 - bo-in
+ 360 , // 77 - br
+ 362 , // 78 - br-fr
+ 367 , // 79 - brx
+ 370 , // 80 - brx-in
+ 376 , // 81 - bs
+ 378 , // 82 - bs-cyrl
+ 385 , // 83 - bs-cyrl-ba
+ 395 , // 84 - bs-latn
+ 402 , // 85 - bs-latn-ba
+ 412 , // 86 - byn
+ 415 , // 87 - byn-er
+ 421 , // 88 - ca
+ 423 , // 89 - ca-ad
+ 428 , // 90 - ca-es
+ 433 , // 91 - ca-es-valencia
+ 447 , // 92 - ca-fr
+ 452 , // 93 - ca-it
+ 457 , // 94 - ce-ru
+ 462 , // 95 - cgg
+ 465 , // 96 - cgg-ug
+ 471 , // 97 - chr
+ 474 , // 98 - chr-cher
+ 482 , // 99 - chr-cher-us
+ 493 , // 100 - co
+ 495 , // 101 - co-fr
+ 500 , // 102 - cs
+ 502 , // 103 - cs-cz
+ 507 , // 104 - cu-ru
+ 512 , // 105 - cy
+ 514 , // 106 - cy-gb
+ 519 , // 107 - da
+ 521 , // 108 - da-dk
+ 526 , // 109 - da-gl
+ 531 , // 110 - dav
+ 534 , // 111 - dav-ke
+ 540 , // 112 - de
+ 542 , // 113 - de-at
+ 547 , // 114 - de-be
+ 552 , // 115 - de-ch
+ 557 , // 116 - de-de
+ 562 , // 117 - de-de_phoneb
+ 574 , // 118 - de-it
+ 579 , // 119 - de-li
+ 584 , // 120 - de-lu
+ 589 , // 121 - dje
+ 592 , // 122 - dje-ne
+ 598 , // 123 - dsb
+ 601 , // 124 - dsb-de
+ 607 , // 125 - dua
+ 610 , // 126 - dua-cm
+ 616 , // 127 - dv
+ 618 , // 128 - dv-mv
+ 623 , // 129 - dyo
+ 626 , // 130 - dyo-sn
+ 632 , // 131 - dz
+ 634 , // 132 - dz-bt
+ 639 , // 133 - ebu
+ 642 , // 134 - ebu-ke
+ 648 , // 135 - ee
+ 650 , // 136 - ee-gh
+ 655 , // 137 - ee-tg
+ 660 , // 138 - el
+ 662 , // 139 - el-cy
+ 667 , // 140 - el-gr
+ 672 , // 141 - en
+ 674 , // 142 - en-001
+ 680 , // 143 - en-029
+ 686 , // 144 - en-150
+ 692 , // 145 - en-ag
+ 697 , // 146 - en-ai
+ 702 , // 147 - en-as
+ 707 , // 148 - en-at
+ 712 , // 149 - en-au
+ 717 , // 150 - en-bb
+ 722 , // 151 - en-be
+ 727 , // 152 - en-bi
+ 732 , // 153 - en-bm
+ 737 , // 154 - en-bs
+ 742 , // 155 - en-bw
+ 747 , // 156 - en-bz
+ 752 , // 157 - en-ca
+ 757 , // 158 - en-cc
+ 762 , // 159 - en-ch
+ 767 , // 160 - en-ck
+ 772 , // 161 - en-cm
+ 777 , // 162 - en-cx
+ 782 , // 163 - en-cy
+ 787 , // 164 - en-de
+ 792 , // 165 - en-dk
+ 797 , // 166 - en-dm
+ 802 , // 167 - en-er
+ 807 , // 168 - en-fi
+ 812 , // 169 - en-fj
+ 817 , // 170 - en-fk
+ 822 , // 171 - en-fm
+ 827 , // 172 - en-gb
+ 832 , // 173 - en-gd
+ 837 , // 174 - en-gg
+ 842 , // 175 - en-gh
+ 847 , // 176 - en-gi
+ 852 , // 177 - en-gm
+ 857 , // 178 - en-gu
+ 862 , // 179 - en-gy
+ 867 , // 180 - en-hk
+ 872 , // 181 - en-id
+ 877 , // 182 - en-ie
+ 882 , // 183 - en-il
+ 887 , // 184 - en-im
+ 892 , // 185 - en-in
+ 897 , // 186 - en-io
+ 902 , // 187 - en-je
+ 907 , // 188 - en-jm
+ 912 , // 189 - en-ke
+ 917 , // 190 - en-ki
+ 922 , // 191 - en-kn
+ 927 , // 192 - en-ky
+ 932 , // 193 - en-lc
+ 937 , // 194 - en-lr
+ 942 , // 195 - en-ls
+ 947 , // 196 - en-mg
+ 952 , // 197 - en-mh
+ 957 , // 198 - en-mo
+ 962 , // 199 - en-mp
+ 967 , // 200 - en-ms
+ 972 , // 201 - en-mt
+ 977 , // 202 - en-mu
+ 982 , // 203 - en-mw
+ 987 , // 204 - en-my
+ 992 , // 205 - en-na
+ 997 , // 206 - en-nf
+ 1002, // 207 - en-ng
+ 1007, // 208 - en-nl
+ 1012, // 209 - en-nr
+ 1017, // 210 - en-nu
+ 1022, // 211 - en-nz
+ 1027, // 212 - en-pg
+ 1032, // 213 - en-ph
+ 1037, // 214 - en-pk
+ 1042, // 215 - en-pn
+ 1047, // 216 - en-pr
+ 1052, // 217 - en-pw
+ 1057, // 218 - en-rw
+ 1062, // 219 - en-sb
+ 1067, // 220 - en-sc
+ 1072, // 221 - en-sd
+ 1077, // 222 - en-se
+ 1082, // 223 - en-sg
+ 1087, // 224 - en-sh
+ 1092, // 225 - en-si
+ 1097, // 226 - en-sl
+ 1102, // 227 - en-ss
+ 1107, // 228 - en-sx
+ 1112, // 229 - en-sz
+ 1117, // 230 - en-tc
+ 1122, // 231 - en-tk
+ 1127, // 232 - en-to
+ 1132, // 233 - en-tt
+ 1137, // 234 - en-tv
+ 1142, // 235 - en-tz
+ 1147, // 236 - en-ug
+ 1152, // 237 - en-um
+ 1157, // 238 - en-us
+ 1162, // 239 - en-vc
+ 1167, // 240 - en-vg
+ 1172, // 241 - en-vi
+ 1177, // 242 - en-vu
+ 1182, // 243 - en-ws
+ 1187, // 244 - en-za
+ 1192, // 245 - en-zm
+ 1197, // 246 - en-zw
+ 1202, // 247 - eo
+ 1204, // 248 - eo-001
+ 1210, // 249 - es
+ 1212, // 250 - es-419
+ 1218, // 251 - es-ar
+ 1223, // 252 - es-bo
+ 1228, // 253 - es-br
+ 1233, // 254 - es-cl
+ 1238, // 255 - es-co
+ 1243, // 256 - es-cr
+ 1248, // 257 - es-cu
+ 1253, // 258 - es-do
+ 1258, // 259 - es-ec
+ 1263, // 260 - es-es
+ 1268, // 261 - es-es_tradnl
+ 1280, // 262 - es-gq
+ 1285, // 263 - es-gt
+ 1290, // 264 - es-hn
+ 1295, // 265 - es-mx
+ 1300, // 266 - es-ni
+ 1305, // 267 - es-pa
+ 1310, // 268 - es-pe
+ 1315, // 269 - es-ph
+ 1320, // 270 - es-pr
+ 1325, // 271 - es-py
+ 1330, // 272 - es-sv
+ 1335, // 273 - es-us
+ 1340, // 274 - es-uy
+ 1345, // 275 - es-ve
+ 1350, // 276 - et
+ 1352, // 277 - et-ee
+ 1357, // 278 - eu
+ 1359, // 279 - eu-es
+ 1364, // 280 - ewo
+ 1367, // 281 - ewo-cm
+ 1373, // 282 - fa
+ 1375, // 283 - fa-ir
+ 1380, // 284 - ff
+ 1382, // 285 - ff-cm
+ 1387, // 286 - ff-gn
+ 1392, // 287 - ff-latn
+ 1399, // 288 - ff-latn-sn
+ 1409, // 289 - ff-mr
+ 1414, // 290 - ff-ng
+ 1419, // 291 - fi
+ 1421, // 292 - fi-fi
+ 1426, // 293 - fil
+ 1429, // 294 - fil-ph
+ 1435, // 295 - fo
+ 1437, // 296 - fo-dk
+ 1442, // 297 - fo-fo
+ 1447, // 298 - fr
+ 1449, // 299 - fr-029
+ 1455, // 300 - fr-be
+ 1460, // 301 - fr-bf
+ 1465, // 302 - fr-bi
+ 1470, // 303 - fr-bj
+ 1475, // 304 - fr-bl
+ 1480, // 305 - fr-ca
+ 1485, // 306 - fr-cd
+ 1490, // 307 - fr-cf
+ 1495, // 308 - fr-cg
+ 1500, // 309 - fr-ch
+ 1505, // 310 - fr-ci
+ 1510, // 311 - fr-cm
+ 1515, // 312 - fr-dj
+ 1520, // 313 - fr-dz
+ 1525, // 314 - fr-fr
+ 1530, // 315 - fr-ga
+ 1535, // 316 - fr-gf
+ 1540, // 317 - fr-gn
+ 1545, // 318 - fr-gp
+ 1550, // 319 - fr-gq
+ 1555, // 320 - fr-ht
+ 1560, // 321 - fr-km
+ 1565, // 322 - fr-lu
+ 1570, // 323 - fr-ma
+ 1575, // 324 - fr-mc
+ 1580, // 325 - fr-mf
+ 1585, // 326 - fr-mg
+ 1590, // 327 - fr-ml
+ 1595, // 328 - fr-mq
+ 1600, // 329 - fr-mr
+ 1605, // 330 - fr-mu
+ 1610, // 331 - fr-nc
+ 1615, // 332 - fr-ne
+ 1620, // 333 - fr-pf
+ 1625, // 334 - fr-pm
+ 1630, // 335 - fr-re
+ 1635, // 336 - fr-rw
+ 1640, // 337 - fr-sc
+ 1645, // 338 - fr-sn
+ 1650, // 339 - fr-sy
+ 1655, // 340 - fr-td
+ 1660, // 341 - fr-tg
+ 1665, // 342 - fr-tn
+ 1670, // 343 - fr-vu
+ 1675, // 344 - fr-wf
+ 1680, // 345 - fr-yt
+ 1685, // 346 - fur
+ 1688, // 347 - fur-it
+ 1694, // 348 - fy
+ 1696, // 349 - fy-nl
+ 1701, // 350 - ga
+ 1703, // 351 - ga-ie
+ 1708, // 352 - gd
+ 1710, // 353 - gd-gb
+ 1715, // 354 - gl
+ 1717, // 355 - gl-es
+ 1722, // 356 - gn
+ 1724, // 357 - gn-py
+ 1729, // 358 - gsw
+ 1732, // 359 - gsw-ch
+ 1738, // 360 - gsw-fr
+ 1744, // 361 - gsw-li
+ 1750, // 362 - gu
+ 1752, // 363 - gu-in
+ 1757, // 364 - guz
+ 1760, // 365 - guz-ke
+ 1766, // 366 - gv
+ 1768, // 367 - gv-im
+ 1773, // 368 - ha
+ 1775, // 369 - ha-latn
+ 1782, // 370 - ha-latn-gh
+ 1792, // 371 - ha-latn-ne
+ 1802, // 372 - ha-latn-ng
+ 1812, // 373 - haw
+ 1815, // 374 - haw-us
+ 1821, // 375 - he
+ 1823, // 376 - he-il
+ 1828, // 377 - hi
+ 1830, // 378 - hi-in
+ 1835, // 379 - hr
+ 1837, // 380 - hr-ba
+ 1842, // 381 - hr-hr
+ 1847, // 382 - hsb
+ 1850, // 383 - hsb-de
+ 1856, // 384 - hu
+ 1858, // 385 - hu-hu
+ 1863, // 386 - hu-hu_technl
+ 1875, // 387 - hy
+ 1877, // 388 - hy-am
+ 1882, // 389 - ia
+ 1884, // 390 - ia-001
+ 1890, // 391 - ia-fr
+ 1895, // 392 - ibb
+ 1898, // 393 - ibb-ng
+ 1904, // 394 - id
+ 1906, // 395 - id-id
+ 1911, // 396 - ig
+ 1913, // 397 - ig-ng
+ 1918, // 398 - ii
+ 1920, // 399 - ii-cn
+ 1925, // 400 - is
+ 1927, // 401 - is-is
+ 1932, // 402 - it
+ 1934, // 403 - it-ch
+ 1939, // 404 - it-it
+ 1944, // 405 - it-sm
+ 1949, // 406 - iu
+ 1951, // 407 - iu-cans
+ 1958, // 408 - iu-cans-ca
+ 1968, // 409 - iu-latn
+ 1975, // 410 - iu-latn-ca
+ 1985, // 411 - ja
+ 1987, // 412 - ja-jp
+ 1992, // 413 - ja-jp_radstr
+ 2004, // 414 - jgo
+ 2007, // 415 - jgo-cm
+ 2013, // 416 - jmc
+ 2016, // 417 - jmc-tz
+ 2022, // 418 - jv
+ 2024, // 419 - jv-java
+ 2031, // 420 - jv-java-id
+ 2041, // 421 - jv-latn
+ 2048, // 422 - jv-latn-id
+ 2058, // 423 - ka
+ 2060, // 424 - ka-ge
+ 2065, // 425 - ka-ge_modern
+ 2077, // 426 - kab
+ 2080, // 427 - kab-dz
+ 2086, // 428 - kam
+ 2089, // 429 - kam-ke
+ 2095, // 430 - kde
+ 2098, // 431 - kde-tz
+ 2104, // 432 - kea
+ 2107, // 433 - kea-cv
+ 2113, // 434 - khq
+ 2116, // 435 - khq-ml
+ 2122, // 436 - ki
+ 2124, // 437 - ki-ke
+ 2129, // 438 - kk
+ 2131, // 439 - kk-kz
+ 2136, // 440 - kkj
+ 2139, // 441 - kkj-cm
+ 2145, // 442 - kl
+ 2147, // 443 - kl-gl
+ 2152, // 444 - kln
+ 2155, // 445 - kln-ke
+ 2161, // 446 - km
+ 2163, // 447 - km-kh
+ 2168, // 448 - kn
+ 2170, // 449 - kn-in
+ 2175, // 450 - ko
+ 2177, // 451 - ko-kp
+ 2182, // 452 - ko-kr
+ 2187, // 453 - kok
+ 2190, // 454 - kok-in
+ 2196, // 455 - kr
+ 2198, // 456 - kr-ng
+ 2203, // 457 - ks
+ 2205, // 458 - ks-arab
+ 2212, // 459 - ks-arab-in
+ 2222, // 460 - ks-deva
+ 2229, // 461 - ks-deva-in
+ 2239, // 462 - ksb
+ 2242, // 463 - ksb-tz
+ 2248, // 464 - ksf
+ 2251, // 465 - ksf-cm
+ 2257, // 466 - ksh
+ 2260, // 467 - ksh-de
+ 2266, // 468 - ku
+ 2268, // 469 - ku-arab
+ 2275, // 470 - ku-arab-iq
+ 2285, // 471 - ku-arab-ir
+ 2295, // 472 - kw
+ 2297, // 473 - kw-gb
+ 2302, // 474 - ky
+ 2304, // 475 - ky-kg
+ 2309, // 476 - la
+ 2311, // 477 - la-001
+ 2317, // 478 - lag
+ 2320, // 479 - lag-tz
+ 2326, // 480 - lb
+ 2328, // 481 - lb-lu
+ 2333, // 482 - lg
+ 2335, // 483 - lg-ug
+ 2340, // 484 - lkt
+ 2343, // 485 - lkt-us
+ 2349, // 486 - ln
+ 2351, // 487 - ln-ao
+ 2356, // 488 - ln-cd
+ 2361, // 489 - ln-cf
+ 2366, // 490 - ln-cg
+ 2371, // 491 - lo
+ 2373, // 492 - lo-la
+ 2378, // 493 - lrc-iq
+ 2384, // 494 - lrc-ir
+ 2390, // 495 - lt
+ 2392, // 496 - lt-lt
+ 2397, // 497 - lu
+ 2399, // 498 - lu-cd
+ 2404, // 499 - luo
+ 2407, // 500 - luo-ke
+ 2413, // 501 - luy
+ 2416, // 502 - luy-ke
+ 2422, // 503 - lv
+ 2424, // 504 - lv-lv
+ 2429, // 505 - mas
+ 2432, // 506 - mas-ke
+ 2438, // 507 - mas-tz
+ 2444, // 508 - mer
+ 2447, // 509 - mer-ke
+ 2453, // 510 - mfe
+ 2456, // 511 - mfe-mu
+ 2462, // 512 - mg
+ 2464, // 513 - mg-mg
+ 2469, // 514 - mgh
+ 2472, // 515 - mgh-mz
+ 2478, // 516 - mgo
+ 2481, // 517 - mgo-cm
+ 2487, // 518 - mi
+ 2489, // 519 - mi-nz
+ 2494, // 520 - mk
+ 2496, // 521 - mk-mk
+ 2501, // 522 - ml
+ 2503, // 523 - ml-in
+ 2508, // 524 - mn
+ 2510, // 525 - mn-cyrl
+ 2517, // 526 - mn-mn
+ 2522, // 527 - mn-mong
+ 2529, // 528 - mn-mong-cn
+ 2539, // 529 - mn-mong-mn
+ 2549, // 530 - mni
+ 2552, // 531 - mni-in
+ 2558, // 532 - moh
+ 2561, // 533 - moh-ca
+ 2567, // 534 - mr
+ 2569, // 535 - mr-in
+ 2574, // 536 - ms
+ 2576, // 537 - ms-bn
+ 2581, // 538 - ms-my
+ 2586, // 539 - ms-sg
+ 2591, // 540 - mt
+ 2593, // 541 - mt-mt
+ 2598, // 542 - mua
+ 2601, // 543 - mua-cm
+ 2607, // 544 - my
+ 2609, // 545 - my-mm
+ 2614, // 546 - mzn-ir
+ 2620, // 547 - naq
+ 2623, // 548 - naq-na
+ 2629, // 549 - nb
+ 2631, // 550 - nb-no
+ 2636, // 551 - nb-sj
+ 2641, // 552 - nd
+ 2643, // 553 - nd-zw
+ 2648, // 554 - nds-de
+ 2654, // 555 - nds-nl
+ 2660, // 556 - ne
+ 2662, // 557 - ne-in
+ 2667, // 558 - ne-np
+ 2672, // 559 - nl
+ 2674, // 560 - nl-aw
+ 2679, // 561 - nl-be
+ 2684, // 562 - nl-bq
+ 2689, // 563 - nl-cw
+ 2694, // 564 - nl-nl
+ 2699, // 565 - nl-sr
+ 2704, // 566 - nl-sx
+ 2709, // 567 - nmg
+ 2712, // 568 - nmg-cm
+ 2718, // 569 - nn
+ 2720, // 570 - nn-no
+ 2725, // 571 - nnh
+ 2728, // 572 - nnh-cm
+ 2734, // 573 - no
+ 2736, // 574 - nqo
+ 2739, // 575 - nqo-gn
+ 2745, // 576 - nr
+ 2747, // 577 - nr-za
+ 2752, // 578 - nso
+ 2755, // 579 - nso-za
+ 2761, // 580 - nus
+ 2764, // 581 - nus-ss
+ 2770, // 582 - nyn
+ 2773, // 583 - nyn-ug
+ 2779, // 584 - oc
+ 2781, // 585 - oc-fr
+ 2786, // 586 - om
+ 2788, // 587 - om-et
+ 2793, // 588 - om-ke
+ 2798, // 589 - or
+ 2800, // 590 - or-in
+ 2805, // 591 - os
+ 2807, // 592 - os-ge
+ 2812, // 593 - os-ru
+ 2817, // 594 - pa
+ 2819, // 595 - pa-arab
+ 2826, // 596 - pa-arab-pk
+ 2836, // 597 - pa-in
+ 2841, // 598 - pap
+ 2844, // 599 - pap-029
+ 2851, // 600 - pl
+ 2853, // 601 - pl-pl
+ 2858, // 602 - prg-001
+ 2865, // 603 - prs
+ 2868, // 604 - prs-af
+ 2874, // 605 - ps
+ 2876, // 606 - ps-af
+ 2881, // 607 - pt
+ 2883, // 608 - pt-ao
+ 2888, // 609 - pt-br
+ 2893, // 610 - pt-ch
+ 2898, // 611 - pt-cv
+ 2903, // 612 - pt-gq
+ 2908, // 613 - pt-gw
+ 2913, // 614 - pt-lu
+ 2918, // 615 - pt-mo
+ 2923, // 616 - pt-mz
+ 2928, // 617 - pt-pt
+ 2933, // 618 - pt-st
+ 2938, // 619 - pt-tl
+ 2943, // 620 - qps-latn-x-sh
+ 2956, // 621 - qps-ploc
+ 2964, // 622 - qps-ploca
+ 2973, // 623 - qps-plocm
+ 2982, // 624 - quc
+ 2985, // 625 - quc-latn
+ 2993, // 626 - quc-latn-gt
+ 3004, // 627 - quz
+ 3007, // 628 - quz-bo
+ 3013, // 629 - quz-ec
+ 3019, // 630 - quz-pe
+ 3025, // 631 - rm
+ 3027, // 632 - rm-ch
+ 3032, // 633 - rn
+ 3034, // 634 - rn-bi
+ 3039, // 635 - ro
+ 3041, // 636 - ro-md
+ 3046, // 637 - ro-ro
+ 3051, // 638 - rof
+ 3054, // 639 - rof-tz
+ 3060, // 640 - ru
+ 3062, // 641 - ru-by
+ 3067, // 642 - ru-kg
+ 3072, // 643 - ru-kz
+ 3077, // 644 - ru-md
+ 3082, // 645 - ru-ru
+ 3087, // 646 - ru-ua
+ 3092, // 647 - rw
+ 3094, // 648 - rw-rw
+ 3099, // 649 - rwk
+ 3102, // 650 - rwk-tz
+ 3108, // 651 - sa
+ 3110, // 652 - sa-in
+ 3115, // 653 - sah
+ 3118, // 654 - sah-ru
+ 3124, // 655 - saq
+ 3127, // 656 - saq-ke
+ 3133, // 657 - sbp
+ 3136, // 658 - sbp-tz
+ 3142, // 659 - sd
+ 3144, // 660 - sd-arab
+ 3151, // 661 - sd-arab-pk
+ 3161, // 662 - sd-deva
+ 3168, // 663 - sd-deva-in
+ 3178, // 664 - se
+ 3180, // 665 - se-fi
+ 3185, // 666 - se-no
+ 3190, // 667 - se-se
+ 3195, // 668 - seh
+ 3198, // 669 - seh-mz
+ 3204, // 670 - ses
+ 3207, // 671 - ses-ml
+ 3213, // 672 - sg
+ 3215, // 673 - sg-cf
+ 3220, // 674 - shi
+ 3223, // 675 - shi-latn
+ 3231, // 676 - shi-latn-ma
+ 3242, // 677 - shi-tfng
+ 3250, // 678 - shi-tfng-ma
+ 3261, // 679 - si
+ 3263, // 680 - si-lk
+ 3268, // 681 - sk
+ 3270, // 682 - sk-sk
+ 3275, // 683 - sl
+ 3277, // 684 - sl-si
+ 3282, // 685 - sma
+ 3285, // 686 - sma-no
+ 3291, // 687 - sma-se
+ 3297, // 688 - smj
+ 3300, // 689 - smj-no
+ 3306, // 690 - smj-se
+ 3312, // 691 - smn
+ 3315, // 692 - smn-fi
+ 3321, // 693 - sms
+ 3324, // 694 - sms-fi
+ 3330, // 695 - sn
+ 3332, // 696 - sn-latn
+ 3339, // 697 - sn-latn-zw
+ 3349, // 698 - so
+ 3351, // 699 - so-dj
+ 3356, // 700 - so-et
+ 3361, // 701 - so-ke
+ 3366, // 702 - so-so
+ 3371, // 703 - sq
+ 3373, // 704 - sq-al
+ 3378, // 705 - sq-mk
+ 3383, // 706 - sq-xk
+ 3388, // 707 - sr
+ 3390, // 708 - sr-cyrl
+ 3397, // 709 - sr-cyrl-ba
+ 3407, // 710 - sr-cyrl-cs
+ 3417, // 711 - sr-cyrl-me
+ 3427, // 712 - sr-cyrl-rs
+ 3437, // 713 - sr-cyrl-xk
+ 3447, // 714 - sr-latn
+ 3454, // 715 - sr-latn-ba
+ 3464, // 716 - sr-latn-cs
+ 3474, // 717 - sr-latn-me
+ 3484, // 718 - sr-latn-rs
+ 3494, // 719 - sr-latn-xk
+ 3504, // 720 - ss
+ 3506, // 721 - ss-sz
+ 3511, // 722 - ss-za
+ 3516, // 723 - ssy
+ 3519, // 724 - ssy-er
+ 3525, // 725 - st
+ 3527, // 726 - st-ls
+ 3532, // 727 - st-za
+ 3537, // 728 - sv
+ 3539, // 729 - sv-ax
+ 3544, // 730 - sv-fi
+ 3549, // 731 - sv-se
+ 3554, // 732 - sw
+ 3556, // 733 - sw-cd
+ 3561, // 734 - sw-ke
+ 3566, // 735 - sw-tz
+ 3571, // 736 - sw-ug
+ 3576, // 737 - swc
+ 3579, // 738 - swc-cd
+ 3585, // 739 - syr
+ 3588, // 740 - syr-sy
+ 3594, // 741 - ta
+ 3596, // 742 - ta-in
+ 3601, // 743 - ta-lk
+ 3606, // 744 - ta-my
+ 3611, // 745 - ta-sg
+ 3616, // 746 - te
+ 3618, // 747 - te-in
+ 3623, // 748 - teo
+ 3626, // 749 - teo-ke
+ 3632, // 750 - teo-ug
+ 3638, // 751 - tg
+ 3640, // 752 - tg-cyrl
+ 3647, // 753 - tg-cyrl-tj
+ 3657, // 754 - th
+ 3659, // 755 - th-th
+ 3664, // 756 - ti
+ 3666, // 757 - ti-er
+ 3671, // 758 - ti-et
+ 3676, // 759 - tig
+ 3679, // 760 - tig-er
+ 3685, // 761 - tk
+ 3687, // 762 - tk-tm
+ 3692, // 763 - tn
+ 3694, // 764 - tn-bw
+ 3699, // 765 - tn-za
+ 3704, // 766 - to
+ 3706, // 767 - to-to
+ 3711, // 768 - tr
+ 3713, // 769 - tr-cy
+ 3718, // 770 - tr-tr
+ 3723, // 771 - ts
+ 3725, // 772 - ts-za
+ 3730, // 773 - tt
+ 3732, // 774 - tt-ru
+ 3737, // 775 - twq
+ 3740, // 776 - twq-ne
+ 3746, // 777 - tzm
+ 3749, // 778 - tzm-arab
+ 3757, // 779 - tzm-arab-ma
+ 3768, // 780 - tzm-latn
+ 3776, // 781 - tzm-latn-dz
+ 3787, // 782 - tzm-latn-ma
+ 3798, // 783 - tzm-tfng
+ 3806, // 784 - tzm-tfng-ma
+ 3817, // 785 - ug
+ 3819, // 786 - ug-cn
+ 3824, // 787 - uk
+ 3826, // 788 - uk-ua
+ 3831, // 789 - ur
+ 3833, // 790 - ur-in
+ 3838, // 791 - ur-pk
+ 3843, // 792 - uz
+ 3845, // 793 - uz-arab
+ 3852, // 794 - uz-arab-af
+ 3862, // 795 - uz-cyrl
+ 3869, // 796 - uz-cyrl-uz
+ 3879, // 797 - uz-latn
+ 3886, // 798 - uz-latn-uz
+ 3896, // 799 - vai
+ 3899, // 800 - vai-latn
+ 3907, // 801 - vai-latn-lr
+ 3918, // 802 - vai-vaii
+ 3926, // 803 - vai-vaii-lr
+ 3937, // 804 - ve
+ 3939, // 805 - ve-za
+ 3944, // 806 - vi
+ 3946, // 807 - vi-vn
+ 3951, // 808 - vo
+ 3953, // 809 - vo-001
+ 3959, // 810 - vun
+ 3962, // 811 - vun-tz
+ 3968, // 812 - wae
+ 3971, // 813 - wae-ch
+ 3977, // 814 - wal
+ 3980, // 815 - wal-et
+ 3986, // 816 - wo
+ 3988, // 817 - wo-sn
+ 3993, // 818 - x-iv_mathan
+ 4004, // 819 - xh
+ 4006, // 820 - xh-za
+ 4011, // 821 - xog
+ 4014, // 822 - xog-ug
+ 4020, // 823 - yav
+ 4023, // 824 - yav-cm
+ 4029, // 825 - yi
+ 4031, // 826 - yi-001
+ 4037, // 827 - yo
+ 4039, // 828 - yo-bj
+ 4044, // 829 - yo-ng
+ 4049, // 830 - yue-hk
+ 4055, // 831 - zgh
+ 4058, // 832 - zgh-tfng
+ 4066, // 833 - zgh-tfng-ma
+ 4077, // 834 - zh
+ 4079, // 835 - zh-chs
+ 4085, // 836 - zh-cht
+ 4091, // 837 - zh-cn
+ 4096, // 838 - zh-cn_phoneb
+ 4108, // 839 - zh-cn_stroke
+ 4120, // 840 - zh-hans
+ 4127, // 841 - zh-hans-hk
+ 4137, // 842 - zh-hans-mo
+ 4147, // 843 - zh-hant
+ 4154, // 844 - zh-hk
+ 4159, // 845 - zh-hk_radstr
+ 4171, // 846 - zh-mo
+ 4176, // 847 - zh-mo_radstr
+ 4188, // 848 - zh-mo_stroke
+ 4200, // 849 - zh-sg
+ 4205, // 850 - zh-sg_phoneb
+ 4217, // 851 - zh-sg_stroke
+ 4229, // 852 - zh-tw
+ 4234, // 853 - zh-tw_pronun
+ 4246, // 854 - zh-tw_radstr
+ 4258, // 855 - zu
+ 4260, // 856 - zu-za
+ 4265, // 857 -
+ };
+
+ // s_nameIndexTolcids is mapping from index in s_localeNamesIndices to lcid
+ private static readonly int[] s_nameIndexTolcids = new int[]
+ {
+ // Lcid, index - locale name
+ 0x1000 , // 0 - aa
+ 0x1000 , // 1 - aa-dj
+ 0x1000 , // 2 - aa-er
+ 0x1000 , // 3 - aa-et
+ 0x36 , // 4 - af
+ 0x1000 , // 5 - af-na
+ 0x436 , // 6 - af-za
+ 0x1000 , // 7 - agq
+ 0x1000 , // 8 - agq-cm
+ 0x1000 , // 9 - ak
+ 0x1000 , // 10 - ak-gh
+ 0x5e , // 11 - am
+ 0x45e , // 12 - am-et
+ 0x1 , // 13 - ar
+ 0x1000 , // 14 - ar-001
+ 0x3801 , // 15 - ar-ae
+ 0x3c01 , // 16 - ar-bh
+ 0x1000 , // 17 - ar-dj
+ 0x1401 , // 18 - ar-dz
+ 0xc01 , // 19 - ar-eg
+ 0x1000 , // 20 - ar-er
+ 0x1000 , // 21 - ar-il
+ 0x801 , // 22 - ar-iq
+ 0x2c01 , // 23 - ar-jo
+ 0x1000 , // 24 - ar-km
+ 0x3401 , // 25 - ar-kw
+ 0x3001 , // 26 - ar-lb
+ 0x1001 , // 27 - ar-ly
+ 0x1801 , // 28 - ar-ma
+ 0x1000 , // 29 - ar-mr
+ 0x2001 , // 30 - ar-om
+ 0x1000 , // 31 - ar-ps
+ 0x4001 , // 32 - ar-qa
+ 0x401 , // 33 - ar-sa
+ 0x1000 , // 34 - ar-sd
+ 0x1000 , // 35 - ar-so
+ 0x1000 , // 36 - ar-ss
+ 0x2801 , // 37 - ar-sy
+ 0x1000 , // 38 - ar-td
+ 0x1c01 , // 39 - ar-tn
+ 0x2401 , // 40 - ar-ye
+ 0x7a , // 41 - arn
+ 0x47a , // 42 - arn-cl
+ 0x4d , // 43 - as
+ 0x44d , // 44 - as-in
+ 0x1000 , // 45 - asa
+ 0x1000 , // 46 - asa-tz
+ 0x1000 , // 47 - ast
+ 0x1000 , // 48 - ast-es
+ 0x2c , // 49 - az
+ 0x742c , // 50 - az-cyrl
+ 0x82c , // 51 - az-cyrl-az
+ 0x782c , // 52 - az-latn
+ 0x42c , // 53 - az-latn-az
+ 0x6d , // 54 - ba
+ 0x46d , // 55 - ba-ru
+ 0x1000 , // 56 - bas
+ 0x1000 , // 57 - bas-cm
+ 0x23 , // 58 - be
+ 0x423 , // 59 - be-by
+ 0x1000 , // 60 - bem
+ 0x1000 , // 61 - bem-zm
+ 0x1000 , // 62 - bez
+ 0x1000 , // 63 - bez-tz
+ 0x2 , // 64 - bg
+ 0x402 , // 65 - bg-bg
+ 0x66 , // 66 - bin
+ 0x466 , // 67 - bin-ng
+ 0x1000 , // 68 - bm
+ 0x1000 , // 69 - bm-latn
+ 0x1000 , // 70 - bm-latn-ml
+ 0x45 , // 71 - bn
+ 0x845 , // 72 - bn-bd
+ 0x445 , // 73 - bn-in
+ 0x51 , // 74 - bo
+ 0x451 , // 75 - bo-cn
+ 0x1000 , // 76 - bo-in
+ 0x7e , // 77 - br
+ 0x47e , // 78 - br-fr
+ 0x1000 , // 79 - brx
+ 0x1000 , // 80 - brx-in
+ 0x781a , // 81 - bs
+ 0x641a , // 82 - bs-cyrl
+ 0x201a , // 83 - bs-cyrl-ba
+ 0x681a , // 84 - bs-latn
+ 0x141a , // 85 - bs-latn-ba
+ 0x1000 , // 86 - byn
+ 0x1000 , // 87 - byn-er
+ 0x3 , // 88 - ca
+ 0x1000 , // 89 - ca-ad
+ 0x403 , // 90 - ca-es
+ 0x803 , // 91 - ca-es-valencia
+ 0x1000 , // 92 - ca-fr
+ 0x1000 , // 93 - ca-it
+ 0x1000 , // 94 - ce-ru
+ 0x1000 , // 95 - cgg
+ 0x1000 , // 96 - cgg-ug
+ 0x5c , // 97 - chr
+ 0x7c5c , // 98 - chr-cher
+ 0x45c , // 99 - chr-cher-us
+ 0x83 , // 100 - co
+ 0x483 , // 101 - co-fr
+ 0x5 , // 102 - cs
+ 0x405 , // 103 - cs-cz
+ 0x1000 , // 104 - cu-ru
+ 0x52 , // 105 - cy
+ 0x452 , // 106 - cy-gb
+ 0x6 , // 107 - da
+ 0x406 , // 108 - da-dk
+ 0x1000 , // 109 - da-gl
+ 0x1000 , // 110 - dav
+ 0x1000 , // 111 - dav-ke
+ 0x7 , // 112 - de
+ 0xc07 , // 113 - de-at
+ 0x1000 , // 114 - de-be
+ 0x807 , // 115 - de-ch
+ 0x407 , // 116 - de-de
+ 0x10407, // 117 - de-de_phoneb
+ 0x1000 , // 118 - de-it
+ 0x1407 , // 119 - de-li
+ 0x1007 , // 120 - de-lu
+ 0x1000 , // 121 - dje
+ 0x1000 , // 122 - dje-ne
+ 0x7c2e , // 123 - dsb
+ 0x82e , // 124 - dsb-de
+ 0x1000 , // 125 - dua
+ 0x1000 , // 126 - dua-cm
+ 0x65 , // 127 - dv
+ 0x465 , // 128 - dv-mv
+ 0x1000 , // 129 - dyo
+ 0x1000 , // 130 - dyo-sn
+ 0x1000 , // 131 - dz
+ 0xc51 , // 132 - dz-bt
+ 0x1000 , // 133 - ebu
+ 0x1000 , // 134 - ebu-ke
+ 0x1000 , // 135 - ee
+ 0x1000 , // 136 - ee-gh
+ 0x1000 , // 137 - ee-tg
+ 0x8 , // 138 - el
+ 0x1000 , // 139 - el-cy
+ 0x408 , // 140 - el-gr
+ 0x9 , // 141 - en
+ 0x1000 , // 142 - en-001
+ 0x2409 , // 143 - en-029
+ 0x1000 , // 144 - en-150
+ 0x1000 , // 145 - en-ag
+ 0x1000 , // 146 - en-ai
+ 0x1000 , // 147 - en-as
+ 0x1000 , // 148 - en-at
+ 0xc09 , // 149 - en-au
+ 0x1000 , // 150 - en-bb
+ 0x1000 , // 151 - en-be
+ 0x1000 , // 152 - en-bi
+ 0x1000 , // 153 - en-bm
+ 0x1000 , // 154 - en-bs
+ 0x1000 , // 155 - en-bw
+ 0x2809 , // 156 - en-bz
+ 0x1009 , // 157 - en-ca
+ 0x1000 , // 158 - en-cc
+ 0x1000 , // 159 - en-ch
+ 0x1000 , // 160 - en-ck
+ 0x1000 , // 161 - en-cm
+ 0x1000 , // 162 - en-cx
+ 0x1000 , // 163 - en-cy
+ 0x1000 , // 164 - en-de
+ 0x1000 , // 165 - en-dk
+ 0x1000 , // 166 - en-dm
+ 0x1000 , // 167 - en-er
+ 0x1000 , // 168 - en-fi
+ 0x1000 , // 169 - en-fj
+ 0x1000 , // 170 - en-fk
+ 0x1000 , // 171 - en-fm
+ 0x809 , // 172 - en-gb
+ 0x1000 , // 173 - en-gd
+ 0x1000 , // 174 - en-gg
+ 0x1000 , // 175 - en-gh
+ 0x1000 , // 176 - en-gi
+ 0x1000 , // 177 - en-gm
+ 0x1000 , // 178 - en-gu
+ 0x1000 , // 179 - en-gy
+ 0x3c09 , // 180 - en-hk
+ 0x3809 , // 181 - en-id
+ 0x1809 , // 182 - en-ie
+ 0x1000 , // 183 - en-il
+ 0x1000 , // 184 - en-im
+ 0x4009 , // 185 - en-in
+ 0x1000 , // 186 - en-io
+ 0x1000 , // 187 - en-je
+ 0x2009 , // 188 - en-jm
+ 0x1000 , // 189 - en-ke
+ 0x1000 , // 190 - en-ki
+ 0x1000 , // 191 - en-kn
+ 0x1000 , // 192 - en-ky
+ 0x1000 , // 193 - en-lc
+ 0x1000 , // 194 - en-lr
+ 0x1000 , // 195 - en-ls
+ 0x1000 , // 196 - en-mg
+ 0x1000 , // 197 - en-mh
+ 0x1000 , // 198 - en-mo
+ 0x1000 , // 199 - en-mp
+ 0x1000 , // 200 - en-ms
+ 0x1000 , // 201 - en-mt
+ 0x1000 , // 202 - en-mu
+ 0x1000 , // 203 - en-mw
+ 0x4409 , // 204 - en-my
+ 0x1000 , // 205 - en-na
+ 0x1000 , // 206 - en-nf
+ 0x1000 , // 207 - en-ng
+ 0x1000 , // 208 - en-nl
+ 0x1000 , // 209 - en-nr
+ 0x1000 , // 210 - en-nu
+ 0x1409 , // 211 - en-nz
+ 0x1000 , // 212 - en-pg
+ 0x3409 , // 213 - en-ph
+ 0x1000 , // 214 - en-pk
+ 0x1000 , // 215 - en-pn
+ 0x1000 , // 216 - en-pr
+ 0x1000 , // 217 - en-pw
+ 0x1000 , // 218 - en-rw
+ 0x1000 , // 219 - en-sb
+ 0x1000 , // 220 - en-sc
+ 0x1000 , // 221 - en-sd
+ 0x1000 , // 222 - en-se
+ 0x4809 , // 223 - en-sg
+ 0x1000 , // 224 - en-sh
+ 0x1000 , // 225 - en-si
+ 0x1000 , // 226 - en-sl
+ 0x1000 , // 227 - en-ss
+ 0x1000 , // 228 - en-sx
+ 0x1000 , // 229 - en-sz
+ 0x1000 , // 230 - en-tc
+ 0x1000 , // 231 - en-tk
+ 0x1000 , // 232 - en-to
+ 0x2c09 , // 233 - en-tt
+ 0x1000 , // 234 - en-tv
+ 0x1000 , // 235 - en-tz
+ 0x1000 , // 236 - en-ug
+ 0x1000 , // 237 - en-um
+ 0x409 , // 238 - en-us
+ 0x1000 , // 239 - en-vc
+ 0x1000 , // 240 - en-vg
+ 0x1000 , // 241 - en-vi
+ 0x1000 , // 242 - en-vu
+ 0x1000 , // 243 - en-ws
+ 0x1c09 , // 244 - en-za
+ 0x1000 , // 245 - en-zm
+ 0x3009 , // 246 - en-zw
+ 0x1000 , // 247 - eo
+ 0x1000 , // 248 - eo-001
+ 0xa , // 249 - es
+ 0x580a , // 250 - es-419
+ 0x2c0a , // 251 - es-ar
+ 0x400a , // 252 - es-bo
+ 0x1000 , // 253 - es-br
+ 0x340a , // 254 - es-cl
+ 0x240a , // 255 - es-co
+ 0x140a , // 256 - es-cr
+ 0x5c0a , // 257 - es-cu
+ 0x1c0a , // 258 - es-do
+ 0x300a , // 259 - es-ec
+ 0xc0a , // 260 - es-es
+ 0x40a , // 261 - es-es_tradnl
+ 0x1000 , // 262 - es-gq
+ 0x100a , // 263 - es-gt
+ 0x480a , // 264 - es-hn
+ 0x80a , // 265 - es-mx
+ 0x4c0a , // 266 - es-ni
+ 0x180a , // 267 - es-pa
+ 0x280a , // 268 - es-pe
+ 0x1000 , // 269 - es-ph
+ 0x500a , // 270 - es-pr
+ 0x3c0a , // 271 - es-py
+ 0x440a , // 272 - es-sv
+ 0x540a , // 273 - es-us
+ 0x380a , // 274 - es-uy
+ 0x200a , // 275 - es-ve
+ 0x25 , // 276 - et
+ 0x425 , // 277 - et-ee
+ 0x2d , // 278 - eu
+ 0x42d , // 279 - eu-es
+ 0x1000 , // 280 - ewo
+ 0x1000 , // 281 - ewo-cm
+ 0x29 , // 282 - fa
+ 0x429 , // 283 - fa-ir
+ 0x67 , // 284 - ff
+ 0x1000 , // 285 - ff-cm
+ 0x1000 , // 286 - ff-gn
+ 0x7c67 , // 287 - ff-latn
+ 0x867 , // 288 - ff-latn-sn
+ 0x1000 , // 289 - ff-mr
+ 0x467 , // 290 - ff-ng
+ 0xb , // 291 - fi
+ 0x40b , // 292 - fi-fi
+ 0x64 , // 293 - fil
+ 0x464 , // 294 - fil-ph
+ 0x38 , // 295 - fo
+ 0x1000 , // 296 - fo-dk
+ 0x438 , // 297 - fo-fo
+ 0xc , // 298 - fr
+ 0x1c0c , // 299 - fr-029
+ 0x80c , // 300 - fr-be
+ 0x1000 , // 301 - fr-bf
+ 0x1000 , // 302 - fr-bi
+ 0x1000 , // 303 - fr-bj
+ 0x1000 , // 304 - fr-bl
+ 0xc0c , // 305 - fr-ca
+ 0x240c , // 306 - fr-cd
+ 0x1000 , // 307 - fr-cf
+ 0x1000 , // 308 - fr-cg
+ 0x100c , // 309 - fr-ch
+ 0x300c , // 310 - fr-ci
+ 0x2c0c , // 311 - fr-cm
+ 0x1000 , // 312 - fr-dj
+ 0x1000 , // 313 - fr-dz
+ 0x40c , // 314 - fr-fr
+ 0x1000 , // 315 - fr-ga
+ 0x1000 , // 316 - fr-gf
+ 0x1000 , // 317 - fr-gn
+ 0x1000 , // 318 - fr-gp
+ 0x1000 , // 319 - fr-gq
+ 0x3c0c , // 320 - fr-ht
+ 0x1000 , // 321 - fr-km
+ 0x140c , // 322 - fr-lu
+ 0x380c , // 323 - fr-ma
+ 0x180c , // 324 - fr-mc
+ 0x1000 , // 325 - fr-mf
+ 0x1000 , // 326 - fr-mg
+ 0x340c , // 327 - fr-ml
+ 0x1000 , // 328 - fr-mq
+ 0x1000 , // 329 - fr-mr
+ 0x1000 , // 330 - fr-mu
+ 0x1000 , // 331 - fr-nc
+ 0x1000 , // 332 - fr-ne
+ 0x1000 , // 333 - fr-pf
+ 0x1000 , // 334 - fr-pm
+ 0x200c , // 335 - fr-re
+ 0x1000 , // 336 - fr-rw
+ 0x1000 , // 337 - fr-sc
+ 0x280c , // 338 - fr-sn
+ 0x1000 , // 339 - fr-sy
+ 0x1000 , // 340 - fr-td
+ 0x1000 , // 341 - fr-tg
+ 0x1000 , // 342 - fr-tn
+ 0x1000 , // 343 - fr-vu
+ 0x1000 , // 344 - fr-wf
+ 0x1000 , // 345 - fr-yt
+ 0x1000 , // 346 - fur
+ 0x1000 , // 347 - fur-it
+ 0x62 , // 348 - fy
+ 0x462 , // 349 - fy-nl
+ 0x3c , // 350 - ga
+ 0x83c , // 351 - ga-ie
+ 0x91 , // 352 - gd
+ 0x491 , // 353 - gd-gb
+ 0x56 , // 354 - gl
+ 0x456 , // 355 - gl-es
+ 0x74 , // 356 - gn
+ 0x474 , // 357 - gn-py
+ 0x84 , // 358 - gsw
+ 0x1000 , // 359 - gsw-ch
+ 0x484 , // 360 - gsw-fr
+ 0x1000 , // 361 - gsw-li
+ 0x47 , // 362 - gu
+ 0x447 , // 363 - gu-in
+ 0x1000 , // 364 - guz
+ 0x1000 , // 365 - guz-ke
+ 0x1000 , // 366 - gv
+ 0x1000 , // 367 - gv-im
+ 0x68 , // 368 - ha
+ 0x7c68 , // 369 - ha-latn
+ 0x1000 , // 370 - ha-latn-gh
+ 0x1000 , // 371 - ha-latn-ne
+ 0x468 , // 372 - ha-latn-ng
+ 0x75 , // 373 - haw
+ 0x475 , // 374 - haw-us
+ 0xd , // 375 - he
+ 0x40d , // 376 - he-il
+ 0x39 , // 377 - hi
+ 0x439 , // 378 - hi-in
+ 0x1a , // 379 - hr
+ 0x101a , // 380 - hr-ba
+ 0x41a , // 381 - hr-hr
+ 0x2e , // 382 - hsb
+ 0x42e , // 383 - hsb-de
+ 0xe , // 384 - hu
+ 0x40e , // 385 - hu-hu
+ 0x1040e, // 386 - hu-hu_technl
+ 0x2b , // 387 - hy
+ 0x42b , // 388 - hy-am
+ 0x1000 , // 389 - ia
+ 0x1000 , // 390 - ia-001
+ 0x1000 , // 391 - ia-fr
+ 0x69 , // 392 - ibb
+ 0x469 , // 393 - ibb-ng
+ 0x21 , // 394 - id
+ 0x421 , // 395 - id-id
+ 0x70 , // 396 - ig
+ 0x470 , // 397 - ig-ng
+ 0x78 , // 398 - ii
+ 0x478 , // 399 - ii-cn
+ 0xf , // 400 - is
+ 0x40f , // 401 - is-is
+ 0x10 , // 402 - it
+ 0x810 , // 403 - it-ch
+ 0x410 , // 404 - it-it
+ 0x1000 , // 405 - it-sm
+ 0x5d , // 406 - iu
+ 0x785d , // 407 - iu-cans
+ 0x45d , // 408 - iu-cans-ca
+ 0x7c5d , // 409 - iu-latn
+ 0x85d , // 410 - iu-latn-ca
+ 0x11 , // 411 - ja
+ 0x411 , // 412 - ja-jp
+ 0x40411, // 413 - ja-jp_radstr
+ 0x1000 , // 414 - jgo
+ 0x1000 , // 415 - jgo-cm
+ 0x1000 , // 416 - jmc
+ 0x1000 , // 417 - jmc-tz
+ 0x1000 , // 418 - jv
+ 0x1000 , // 419 - jv-java
+ 0x1000 , // 420 - jv-java-id
+ 0x1000 , // 421 - jv-latn
+ 0x1000 , // 422 - jv-latn-id
+ 0x37 , // 423 - ka
+ 0x437 , // 424 - ka-ge
+ 0x10437, // 425 - ka-ge_modern
+ 0x1000 , // 426 - kab
+ 0x1000 , // 427 - kab-dz
+ 0x1000 , // 428 - kam
+ 0x1000 , // 429 - kam-ke
+ 0x1000 , // 430 - kde
+ 0x1000 , // 431 - kde-tz
+ 0x1000 , // 432 - kea
+ 0x1000 , // 433 - kea-cv
+ 0x1000 , // 434 - khq
+ 0x1000 , // 435 - khq-ml
+ 0x1000 , // 436 - ki
+ 0x1000 , // 437 - ki-ke
+ 0x3f , // 438 - kk
+ 0x43f , // 439 - kk-kz
+ 0x1000 , // 440 - kkj
+ 0x1000 , // 441 - kkj-cm
+ 0x6f , // 442 - kl
+ 0x46f , // 443 - kl-gl
+ 0x1000 , // 444 - kln
+ 0x1000 , // 445 - kln-ke
+ 0x53 , // 446 - km
+ 0x453 , // 447 - km-kh
+ 0x4b , // 448 - kn
+ 0x44b , // 449 - kn-in
+ 0x12 , // 450 - ko
+ 0x1000 , // 451 - ko-kp
+ 0x412 , // 452 - ko-kr
+ 0x57 , // 453 - kok
+ 0x457 , // 454 - kok-in
+ 0x71 , // 455 - kr
+ 0x471 , // 456 - kr-ng
+ 0x60 , // 457 - ks
+ 0x460 , // 458 - ks-arab
+ 0x1000 , // 459 - ks-arab-in
+ 0x1000 , // 460 - ks-deva
+ 0x860 , // 461 - ks-deva-in
+ 0x1000 , // 462 - ksb
+ 0x1000 , // 463 - ksb-tz
+ 0x1000 , // 464 - ksf
+ 0x1000 , // 465 - ksf-cm
+ 0x1000 , // 466 - ksh
+ 0x1000 , // 467 - ksh-de
+ 0x92 , // 468 - ku
+ 0x7c92 , // 469 - ku-arab
+ 0x492 , // 470 - ku-arab-iq
+ 0x1000 , // 471 - ku-arab-ir
+ 0x1000 , // 472 - kw
+ 0x1000 , // 473 - kw-gb
+ 0x40 , // 474 - ky
+ 0x440 , // 475 - ky-kg
+ 0x76 , // 476 - la
+ 0x476 , // 477 - la-001
+ 0x1000 , // 478 - lag
+ 0x1000 , // 479 - lag-tz
+ 0x6e , // 480 - lb
+ 0x46e , // 481 - lb-lu
+ 0x1000 , // 482 - lg
+ 0x1000 , // 483 - lg-ug
+ 0x1000 , // 484 - lkt
+ 0x1000 , // 485 - lkt-us
+ 0x1000 , // 486 - ln
+ 0x1000 , // 487 - ln-ao
+ 0x1000 , // 488 - ln-cd
+ 0x1000 , // 489 - ln-cf
+ 0x1000 , // 490 - ln-cg
+ 0x54 , // 491 - lo
+ 0x454 , // 492 - lo-la
+ 0x1000 , // 493 - lrc-iq
+ 0x1000 , // 494 - lrc-ir
+ 0x27 , // 495 - lt
+ 0x427 , // 496 - lt-lt
+ 0x1000 , // 497 - lu
+ 0x1000 , // 498 - lu-cd
+ 0x1000 , // 499 - luo
+ 0x1000 , // 500 - luo-ke
+ 0x1000 , // 501 - luy
+ 0x1000 , // 502 - luy-ke
+ 0x26 , // 503 - lv
+ 0x426 , // 504 - lv-lv
+ 0x1000 , // 505 - mas
+ 0x1000 , // 506 - mas-ke
+ 0x1000 , // 507 - mas-tz
+ 0x1000 , // 508 - mer
+ 0x1000 , // 509 - mer-ke
+ 0x1000 , // 510 - mfe
+ 0x1000 , // 511 - mfe-mu
+ 0x1000 , // 512 - mg
+ 0x1000 , // 513 - mg-mg
+ 0x1000 , // 514 - mgh
+ 0x1000 , // 515 - mgh-mz
+ 0x1000 , // 516 - mgo
+ 0x1000 , // 517 - mgo-cm
+ 0x81 , // 518 - mi
+ 0x481 , // 519 - mi-nz
+ 0x2f , // 520 - mk
+ 0x42f , // 521 - mk-mk
+ 0x4c , // 522 - ml
+ 0x44c , // 523 - ml-in
+ 0x50 , // 524 - mn
+ 0x7850 , // 525 - mn-cyrl
+ 0x450 , // 526 - mn-mn
+ 0x7c50 , // 527 - mn-mong
+ 0x850 , // 528 - mn-mong-cn
+ 0xc50 , // 529 - mn-mong-mn
+ 0x58 , // 530 - mni
+ 0x458 , // 531 - mni-in
+ 0x7c , // 532 - moh
+ 0x47c , // 533 - moh-ca
+ 0x4e , // 534 - mr
+ 0x44e , // 535 - mr-in
+ 0x3e , // 536 - ms
+ 0x83e , // 537 - ms-bn
+ 0x43e , // 538 - ms-my
+ 0x1000 , // 539 - ms-sg
+ 0x3a , // 540 - mt
+ 0x43a , // 541 - mt-mt
+ 0x1000 , // 542 - mua
+ 0x1000 , // 543 - mua-cm
+ 0x55 , // 544 - my
+ 0x455 , // 545 - my-mm
+ 0x1000 , // 546 - mzn-ir
+ 0x1000 , // 547 - naq
+ 0x1000 , // 548 - naq-na
+ 0x7c14 , // 549 - nb
+ 0x414 , // 550 - nb-no
+ 0x1000 , // 551 - nb-sj
+ 0x1000 , // 552 - nd
+ 0x1000 , // 553 - nd-zw
+ 0x1000 , // 554 - nds-de
+ 0x1000 , // 555 - nds-nl
+ 0x61 , // 556 - ne
+ 0x861 , // 557 - ne-in
+ 0x461 , // 558 - ne-np
+ 0x13 , // 559 - nl
+ 0x1000 , // 560 - nl-aw
+ 0x813 , // 561 - nl-be
+ 0x1000 , // 562 - nl-bq
+ 0x1000 , // 563 - nl-cw
+ 0x413 , // 564 - nl-nl
+ 0x1000 , // 565 - nl-sr
+ 0x1000 , // 566 - nl-sx
+ 0x1000 , // 567 - nmg
+ 0x1000 , // 568 - nmg-cm
+ 0x7814 , // 569 - nn
+ 0x814 , // 570 - nn-no
+ 0x1000 , // 571 - nnh
+ 0x1000 , // 572 - nnh-cm
+ 0x14 , // 573 - no
+ 0x1000 , // 574 - nqo
+ 0x1000 , // 575 - nqo-gn
+ 0x1000 , // 576 - nr
+ 0x1000 , // 577 - nr-za
+ 0x6c , // 578 - nso
+ 0x46c , // 579 - nso-za
+ 0x1000 , // 580 - nus
+ 0x1000 , // 581 - nus-ss
+ 0x1000 , // 582 - nyn
+ 0x1000 , // 583 - nyn-ug
+ 0x82 , // 584 - oc
+ 0x482 , // 585 - oc-fr
+ 0x72 , // 586 - om
+ 0x472 , // 587 - om-et
+ 0x1000 , // 588 - om-ke
+ 0x48 , // 589 - or
+ 0x448 , // 590 - or-in
+ 0x1000 , // 591 - os
+ 0x1000 , // 592 - os-ge
+ 0x1000 , // 593 - os-ru
+ 0x46 , // 594 - pa
+ 0x7c46 , // 595 - pa-arab
+ 0x846 , // 596 - pa-arab-pk
+ 0x446 , // 597 - pa-in
+ 0x79 , // 598 - pap
+ 0x479 , // 599 - pap-029
+ 0x15 , // 600 - pl
+ 0x415 , // 601 - pl-pl
+ 0x1000 , // 602 - prg-001
+ 0x8c , // 603 - prs
+ 0x48c , // 604 - prs-af
+ 0x63 , // 605 - ps
+ 0x463 , // 606 - ps-af
+ 0x16 , // 607 - pt
+ 0x1000 , // 608 - pt-ao
+ 0x416 , // 609 - pt-br
+ 0x1000 , // 610 - pt-ch
+ 0x1000 , // 611 - pt-cv
+ 0x1000 , // 612 - pt-gq
+ 0x1000 , // 613 - pt-gw
+ 0x1000 , // 614 - pt-lu
+ 0x1000 , // 615 - pt-mo
+ 0x1000 , // 616 - pt-mz
+ 0x816 , // 617 - pt-pt
+ 0x1000 , // 618 - pt-st
+ 0x1000 , // 619 - pt-tl
+ 0x901 , // 620 - qps-latn-x-sh
+ 0x501 , // 621 - qps-ploc
+ 0x5fe , // 622 - qps-ploca
+ 0x9ff , // 623 - qps-plocm
+ 0x86 , // 624 - quc
+ 0x7c86 , // 625 - quc-latn
+ 0x486 , // 626 - quc-latn-gt
+ 0x6b , // 627 - quz
+ 0x46b , // 628 - quz-bo
+ 0x86b , // 629 - quz-ec
+ 0xc6b , // 630 - quz-pe
+ 0x17 , // 631 - rm
+ 0x417 , // 632 - rm-ch
+ 0x1000 , // 633 - rn
+ 0x1000 , // 634 - rn-bi
+ 0x18 , // 635 - ro
+ 0x818 , // 636 - ro-md
+ 0x418 , // 637 - ro-ro
+ 0x1000 , // 638 - rof
+ 0x1000 , // 639 - rof-tz
+ 0x19 , // 640 - ru
+ 0x1000 , // 641 - ru-by
+ 0x1000 , // 642 - ru-kg
+ 0x1000 , // 643 - ru-kz
+ 0x819 , // 644 - ru-md
+ 0x419 , // 645 - ru-ru
+ 0x1000 , // 646 - ru-ua
+ 0x87 , // 647 - rw
+ 0x487 , // 648 - rw-rw
+ 0x1000 , // 649 - rwk
+ 0x1000 , // 650 - rwk-tz
+ 0x4f , // 651 - sa
+ 0x44f , // 652 - sa-in
+ 0x85 , // 653 - sah
+ 0x485 , // 654 - sah-ru
+ 0x1000 , // 655 - saq
+ 0x1000 , // 656 - saq-ke
+ 0x1000 , // 657 - sbp
+ 0x1000 , // 658 - sbp-tz
+ 0x59 , // 659 - sd
+ 0x7c59 , // 660 - sd-arab
+ 0x859 , // 661 - sd-arab-pk
+ 0x1000 , // 662 - sd-deva
+ 0x459 , // 663 - sd-deva-in
+ 0x3b , // 664 - se
+ 0xc3b , // 665 - se-fi
+ 0x43b , // 666 - se-no
+ 0x83b , // 667 - se-se
+ 0x1000 , // 668 - seh
+ 0x1000 , // 669 - seh-mz
+ 0x1000 , // 670 - ses
+ 0x1000 , // 671 - ses-ml
+ 0x1000 , // 672 - sg
+ 0x1000 , // 673 - sg-cf
+ 0x1000 , // 674 - shi
+ 0x1000 , // 675 - shi-latn
+ 0x1000 , // 676 - shi-latn-ma
+ 0x1000 , // 677 - shi-tfng
+ 0x1000 , // 678 - shi-tfng-ma
+ 0x5b , // 679 - si
+ 0x45b , // 680 - si-lk
+ 0x1b , // 681 - sk
+ 0x41b , // 682 - sk-sk
+ 0x24 , // 683 - sl
+ 0x424 , // 684 - sl-si
+ 0x783b , // 685 - sma
+ 0x183b , // 686 - sma-no
+ 0x1c3b , // 687 - sma-se
+ 0x7c3b , // 688 - smj
+ 0x103b , // 689 - smj-no
+ 0x143b , // 690 - smj-se
+ 0x703b , // 691 - smn
+ 0x243b , // 692 - smn-fi
+ 0x743b , // 693 - sms
+ 0x203b , // 694 - sms-fi
+ 0x1000 , // 695 - sn
+ 0x1000 , // 696 - sn-latn
+ 0x1000 , // 697 - sn-latn-zw
+ 0x77 , // 698 - so
+ 0x1000 , // 699 - so-dj
+ 0x1000 , // 700 - so-et
+ 0x1000 , // 701 - so-ke
+ 0x477 , // 702 - so-so
+ 0x1c , // 703 - sq
+ 0x41c , // 704 - sq-al
+ 0x1000 , // 705 - sq-mk
+ 0x1000 , // 706 - sq-xk
+ 0x7c1a , // 707 - sr
+ 0x6c1a , // 708 - sr-cyrl
+ 0x1c1a , // 709 - sr-cyrl-ba
+ 0xc1a , // 710 - sr-cyrl-cs
+ 0x301a , // 711 - sr-cyrl-me
+ 0x281a , // 712 - sr-cyrl-rs
+ 0x1000 , // 713 - sr-cyrl-xk
+ 0x701a , // 714 - sr-latn
+ 0x181a , // 715 - sr-latn-ba
+ 0x81a , // 716 - sr-latn-cs
+ 0x2c1a , // 717 - sr-latn-me
+ 0x241a , // 718 - sr-latn-rs
+ 0x1000 , // 719 - sr-latn-xk
+ 0x1000 , // 720 - ss
+ 0x1000 , // 721 - ss-sz
+ 0x1000 , // 722 - ss-za
+ 0x1000 , // 723 - ssy
+ 0x1000 , // 724 - ssy-er
+ 0x30 , // 725 - st
+ 0x1000 , // 726 - st-ls
+ 0x430 , // 727 - st-za
+ 0x1d , // 728 - sv
+ 0x1000 , // 729 - sv-ax
+ 0x81d , // 730 - sv-fi
+ 0x41d , // 731 - sv-se
+ 0x41 , // 732 - sw
+ 0x1000 , // 733 - sw-cd
+ 0x441 , // 734 - sw-ke
+ 0x1000 , // 735 - sw-tz
+ 0x1000 , // 736 - sw-ug
+ 0x1000 , // 737 - swc
+ 0x1000 , // 738 - swc-cd
+ 0x5a , // 739 - syr
+ 0x45a , // 740 - syr-sy
+ 0x49 , // 741 - ta
+ 0x449 , // 742 - ta-in
+ 0x849 , // 743 - ta-lk
+ 0x1000 , // 744 - ta-my
+ 0x1000 , // 745 - ta-sg
+ 0x4a , // 746 - te
+ 0x44a , // 747 - te-in
+ 0x1000 , // 748 - teo
+ 0x1000 , // 749 - teo-ke
+ 0x1000 , // 750 - teo-ug
+ 0x28 , // 751 - tg
+ 0x7c28 , // 752 - tg-cyrl
+ 0x428 , // 753 - tg-cyrl-tj
+ 0x1e , // 754 - th
+ 0x41e , // 755 - th-th
+ 0x73 , // 756 - ti
+ 0x873 , // 757 - ti-er
+ 0x473 , // 758 - ti-et
+ 0x1000 , // 759 - tig
+ 0x1000 , // 760 - tig-er
+ 0x42 , // 761 - tk
+ 0x442 , // 762 - tk-tm
+ 0x32 , // 763 - tn
+ 0x832 , // 764 - tn-bw
+ 0x432 , // 765 - tn-za
+ 0x1000 , // 766 - to
+ 0x1000 , // 767 - to-to
+ 0x1f , // 768 - tr
+ 0x1000 , // 769 - tr-cy
+ 0x41f , // 770 - tr-tr
+ 0x31 , // 771 - ts
+ 0x431 , // 772 - ts-za
+ 0x44 , // 773 - tt
+ 0x444 , // 774 - tt-ru
+ 0x1000 , // 775 - twq
+ 0x1000 , // 776 - twq-ne
+ 0x5f , // 777 - tzm
+ 0x1000 , // 778 - tzm-arab
+ 0x45f , // 779 - tzm-arab-ma
+ 0x7c5f , // 780 - tzm-latn
+ 0x85f , // 781 - tzm-latn-dz
+ 0x1000 , // 782 - tzm-latn-ma
+ 0x785f , // 783 - tzm-tfng
+ 0x105f , // 784 - tzm-tfng-ma
+ 0x80 , // 785 - ug
+ 0x480 , // 786 - ug-cn
+ 0x22 , // 787 - uk
+ 0x422 , // 788 - uk-ua
+ 0x20 , // 789 - ur
+ 0x820 , // 790 - ur-in
+ 0x420 , // 791 - ur-pk
+ 0x43 , // 792 - uz
+ 0x1000 , // 793 - uz-arab
+ 0x1000 , // 794 - uz-arab-af
+ 0x7843 , // 795 - uz-cyrl
+ 0x843 , // 796 - uz-cyrl-uz
+ 0x7c43 , // 797 - uz-latn
+ 0x443 , // 798 - uz-latn-uz
+ 0x1000 , // 799 - vai
+ 0x1000 , // 800 - vai-latn
+ 0x1000 , // 801 - vai-latn-lr
+ 0x1000 , // 802 - vai-vaii
+ 0x1000 , // 803 - vai-vaii-lr
+ 0x33 , // 804 - ve
+ 0x433 , // 805 - ve-za
+ 0x2a , // 806 - vi
+ 0x42a , // 807 - vi-vn
+ 0x1000 , // 808 - vo
+ 0x1000 , // 809 - vo-001
+ 0x1000 , // 810 - vun
+ 0x1000 , // 811 - vun-tz
+ 0x1000 , // 812 - wae
+ 0x1000 , // 813 - wae-ch
+ 0x1000 , // 814 - wal
+ 0x1000 , // 815 - wal-et
+ 0x88 , // 816 - wo
+ 0x488 , // 817 - wo-sn
+ 0x1007f, // 818 - x-iv_mathan
+ 0x34 , // 819 - xh
+ 0x434 , // 820 - xh-za
+ 0x1000 , // 821 - xog
+ 0x1000 , // 822 - xog-ug
+ 0x1000 , // 823 - yav
+ 0x1000 , // 824 - yav-cm
+ 0x3d , // 825 - yi
+ 0x43d , // 826 - yi-001
+ 0x6a , // 827 - yo
+ 0x1000 , // 828 - yo-bj
+ 0x46a , // 829 - yo-ng
+ 0x1000 , // 830 - yue-hk
+ 0x1000 , // 831 - zgh
+ 0x1000 , // 832 - zgh-tfng
+ 0x1000 , // 833 - zgh-tfng-ma
+ 0x7804 , // 834 - zh
+ 0x4 , // 835 - zh-chs
+ 0x7c04 , // 836 - zh-cht
+ 0x804 , // 837 - zh-cn
+ 0x50804, // 838 - zh-cn_phoneb
+ 0x20804, // 839 - zh-cn_stroke
+ 0x4 , // 840 - zh-hans
+ 0x1000 , // 841 - zh-hans-hk
+ 0x1000 , // 842 - zh-hans-mo
+ 0x7c04 , // 843 - zh-hant
+ 0xc04 , // 844 - zh-hk
+ 0x40c04, // 845 - zh-hk_radstr
+ 0x1404 , // 846 - zh-mo
+ 0x41404, // 847 - zh-mo_radstr
+ 0x21404, // 848 - zh-mo_stroke
+ 0x1004 , // 849 - zh-sg
+ 0x51004, // 850 - zh-sg_phoneb
+ 0x21004, // 851 - zh-sg_stroke
+ 0x404 , // 852 - zh-tw
+ 0x30404, // 853 - zh-tw_pronun
+ 0x40404, // 854 - zh-tw_radstr
+ 0x35 , // 855 - zu
+ 0x435 , // 856 - zu-za
+ 0x0 , // 857 -
+ };
+
+
+ // s_lcids list all supported lcids. used to binary search and we use the index of the matched lcid to
+ // get the index in s_localeNamesIndices using s_lcidToCultureNameIndecis
+ private static readonly int[] s_lcids = new int[]
+ {
+ // Lcid , index - index in
+ 0x1 , // 0 - 52
+ 0x2 , // 1 - 301
+ 0x3 , // 2 - 421
+ 0x4 , // 3 - 4120
+ 0x5 , // 4 - 500
+ 0x6 , // 5 - 519
+ 0x7 , // 6 - 540
+ 0x8 , // 7 - 660
+ 0x9 , // 8 - 672
+ 0xa , // 9 - 1210
+ 0xb , // 10 - 1419
+ 0xc , // 11 - 1447
+ 0xd , // 12 - 1821
+ 0xe , // 13 - 1856
+ 0xf , // 14 - 1925
+ 0x10 , // 15 - 1932
+ 0x11 , // 16 - 1985
+ 0x12 , // 17 - 2175
+ 0x13 , // 18 - 2672
+ 0x14 , // 19 - 2734
+ 0x15 , // 20 - 2851
+ 0x16 , // 21 - 2881
+ 0x17 , // 22 - 3025
+ 0x18 , // 23 - 3039
+ 0x19 , // 24 - 3060
+ 0x1a , // 25 - 1835
+ 0x1b , // 26 - 3268
+ 0x1c , // 27 - 3371
+ 0x1d , // 28 - 3537
+ 0x1e , // 29 - 3657
+ 0x1f , // 30 - 3711
+ 0x20 , // 31 - 3831
+ 0x21 , // 32 - 1904
+ 0x22 , // 33 - 3824
+ 0x23 , // 34 - 276
+ 0x24 , // 35 - 3275
+ 0x25 , // 36 - 1350
+ 0x26 , // 37 - 2422
+ 0x27 , // 38 - 2390
+ 0x28 , // 39 - 3638
+ 0x29 , // 40 - 1373
+ 0x2a , // 41 - 3944
+ 0x2b , // 42 - 1875
+ 0x2c , // 43 - 224
+ 0x2d , // 44 - 1357
+ 0x2e , // 45 - 1847
+ 0x2f , // 46 - 2494
+ 0x30 , // 47 - 3525
+ 0x31 , // 48 - 3723
+ 0x32 , // 49 - 3692
+ 0x33 , // 50 - 3937
+ 0x34 , // 51 - 4004
+ 0x35 , // 52 - 4258
+ 0x36 , // 53 - 17
+ 0x37 , // 54 - 2058
+ 0x38 , // 55 - 1435
+ 0x39 , // 56 - 1828
+ 0x3a , // 57 - 2591
+ 0x3b , // 58 - 3178
+ 0x3c , // 59 - 1701
+ 0x3d , // 60 - 4029
+ 0x3e , // 61 - 2574
+ 0x3f , // 62 - 2129
+ 0x40 , // 63 - 2302
+ 0x41 , // 64 - 3554
+ 0x42 , // 65 - 3685
+ 0x43 , // 66 - 3843
+ 0x44 , // 67 - 3730
+ 0x45 , // 68 - 336
+ 0x46 , // 69 - 2817
+ 0x47 , // 70 - 1750
+ 0x48 , // 71 - 2798
+ 0x49 , // 72 - 3594
+ 0x4a , // 73 - 3616
+ 0x4b , // 74 - 2168
+ 0x4c , // 75 - 2501
+ 0x4d , // 76 - 199
+ 0x4e , // 77 - 2567
+ 0x4f , // 78 - 3108
+ 0x50 , // 79 - 2508
+ 0x51 , // 80 - 348
+ 0x52 , // 81 - 512
+ 0x53 , // 82 - 2161
+ 0x54 , // 83 - 2371
+ 0x55 , // 84 - 2607
+ 0x56 , // 85 - 1715
+ 0x57 , // 86 - 2187
+ 0x58 , // 87 - 2549
+ 0x59 , // 88 - 3142
+ 0x5a , // 89 - 3585
+ 0x5b , // 90 - 3261
+ 0x5c , // 91 - 471
+ 0x5d , // 92 - 1949
+ 0x5e , // 93 - 45
+ 0x5f , // 94 - 3746
+ 0x60 , // 95 - 2203
+ 0x61 , // 96 - 2660
+ 0x62 , // 97 - 1694
+ 0x63 , // 98 - 2874
+ 0x64 , // 99 - 1426
+ 0x65 , // 100 - 616
+ 0x66 , // 101 - 308
+ 0x67 , // 102 - 1380
+ 0x68 , // 103 - 1773
+ 0x69 , // 104 - 1895
+ 0x6a , // 105 - 4037
+ 0x6b , // 106 - 3004
+ 0x6c , // 107 - 2752
+ 0x6d , // 108 - 260
+ 0x6e , // 109 - 2326
+ 0x6f , // 110 - 2145
+ 0x70 , // 111 - 1911
+ 0x71 , // 112 - 2196
+ 0x72 , // 113 - 2786
+ 0x73 , // 114 - 3664
+ 0x74 , // 115 - 1722
+ 0x75 , // 116 - 1812
+ 0x76 , // 117 - 2309
+ 0x77 , // 118 - 3349
+ 0x78 , // 119 - 1918
+ 0x79 , // 120 - 2841
+ 0x7a , // 121 - 190
+ 0x7c , // 122 - 2558
+ 0x7e , // 123 - 360
+ 0x80 , // 124 - 3817
+ 0x81 , // 125 - 2487
+ 0x82 , // 126 - 2779
+ 0x83 , // 127 - 493
+ 0x84 , // 128 - 1729
+ 0x85 , // 129 - 3115
+ 0x86 , // 130 - 2982
+ 0x87 , // 131 - 3092
+ 0x88 , // 132 - 3986
+ 0x8c , // 133 - 2865
+ 0x91 , // 134 - 1708
+ 0x92 , // 135 - 2266
+ 0x401 , // 136 - 150
+ 0x402 , // 137 - 303
+ 0x403 , // 138 - 428
+ 0x404 , // 139 - 4229
+ 0x405 , // 140 - 502
+ 0x406 , // 141 - 521
+ 0x407 , // 142 - 557
+ 0x408 , // 143 - 667
+ 0x409 , // 144 - 1157
+ 0x40a , // 145 - 1268
+ 0x40b , // 146 - 1421
+ 0x40c , // 147 - 1525
+ 0x40d , // 148 - 1823
+ 0x40e , // 149 - 1858
+ 0x40f , // 150 - 1927
+ 0x410 , // 151 - 1939
+ 0x411 , // 152 - 1987
+ 0x412 , // 153 - 2182
+ 0x413 , // 154 - 2694
+ 0x414 , // 155 - 2631
+ 0x415 , // 156 - 2853
+ 0x416 , // 157 - 2888
+ 0x417 , // 158 - 3027
+ 0x418 , // 159 - 3046
+ 0x419 , // 160 - 3082
+ 0x41a , // 161 - 1842
+ 0x41b , // 162 - 3270
+ 0x41c , // 163 - 3373
+ 0x41d , // 164 - 3549
+ 0x41e , // 165 - 3659
+ 0x41f , // 166 - 3718
+ 0x420 , // 167 - 3838
+ 0x421 , // 168 - 1906
+ 0x422 , // 169 - 3826
+ 0x423 , // 170 - 278
+ 0x424 , // 171 - 3277
+ 0x425 , // 172 - 1352
+ 0x426 , // 173 - 2424
+ 0x427 , // 174 - 2392
+ 0x428 , // 175 - 3647
+ 0x429 , // 176 - 1375
+ 0x42a , // 177 - 3946
+ 0x42b , // 178 - 1877
+ 0x42c , // 179 - 250
+ 0x42d , // 180 - 1359
+ 0x42e , // 181 - 1850
+ 0x42f , // 182 - 2496
+ 0x430 , // 183 - 3532
+ 0x431 , // 184 - 3725
+ 0x432 , // 185 - 3699
+ 0x433 , // 186 - 3939
+ 0x434 , // 187 - 4006
+ 0x435 , // 188 - 4260
+ 0x436 , // 189 - 24
+ 0x437 , // 190 - 2060
+ 0x438 , // 191 - 1442
+ 0x439 , // 192 - 1830
+ 0x43a , // 193 - 2593
+ 0x43b , // 194 - 3185
+ 0x43d , // 195 - 4031
+ 0x43e , // 196 - 2581
+ 0x43f , // 197 - 2131
+ 0x440 , // 198 - 2304
+ 0x441 , // 199 - 3561
+ 0x442 , // 200 - 3687
+ 0x443 , // 201 - 3886
+ 0x444 , // 202 - 3732
+ 0x445 , // 203 - 343
+ 0x446 , // 204 - 2836
+ 0x447 , // 205 - 1752
+ 0x448 , // 206 - 2800
+ 0x449 , // 207 - 3596
+ 0x44a , // 208 - 3618
+ 0x44b , // 209 - 2170
+ 0x44c , // 210 - 2503
+ 0x44d , // 211 - 201
+ 0x44e , // 212 - 2569
+ 0x44f , // 213 - 3110
+ 0x450 , // 214 - 2517
+ 0x451 , // 215 - 350
+ 0x452 , // 216 - 514
+ 0x453 , // 217 - 2163
+ 0x454 , // 218 - 2373
+ 0x455 , // 219 - 2609
+ 0x456 , // 220 - 1717
+ 0x457 , // 221 - 2190
+ 0x458 , // 222 - 2552
+ 0x459 , // 223 - 3168
+ 0x45a , // 224 - 3588
+ 0x45b , // 225 - 3263
+ 0x45c , // 226 - 482
+ 0x45d , // 227 - 1958
+ 0x45e , // 228 - 47
+ 0x45f , // 229 - 3757
+ 0x460 , // 230 - 2205
+ 0x461 , // 231 - 2667
+ 0x462 , // 232 - 1696
+ 0x463 , // 233 - 2876
+ 0x464 , // 234 - 1429
+ 0x465 , // 235 - 618
+ 0x466 , // 236 - 311
+ 0x467 , // 237 - 1414
+ 0x468 , // 238 - 1802
+ 0x469 , // 239 - 1898
+ 0x46a , // 240 - 4044
+ 0x46b , // 241 - 3007
+ 0x46c , // 242 - 2755
+ 0x46d , // 243 - 262
+ 0x46e , // 244 - 2328
+ 0x46f , // 245 - 2147
+ 0x470 , // 246 - 1913
+ 0x471 , // 247 - 2198
+ 0x472 , // 248 - 2788
+ 0x473 , // 249 - 3671
+ 0x474 , // 250 - 1724
+ 0x475 , // 251 - 1815
+ 0x476 , // 252 - 2311
+ 0x477 , // 253 - 3366
+ 0x478 , // 254 - 1920
+ 0x479 , // 255 - 2844
+ 0x47a , // 256 - 193
+ 0x47c , // 257 - 2561
+ 0x47e , // 258 - 362
+ 0x480 , // 259 - 3819
+ 0x481 , // 260 - 2489
+ 0x482 , // 261 - 2781
+ 0x483 , // 262 - 495
+ 0x484 , // 263 - 1738
+ 0x485 , // 264 - 3118
+ 0x486 , // 265 - 2993
+ 0x487 , // 266 - 3094
+ 0x488 , // 267 - 3988
+ 0x48c , // 268 - 2868
+ 0x491 , // 269 - 1710
+ 0x492 , // 270 - 2275
+ 0x501 , // 271 - 2956
+ 0x5fe , // 272 - 2964
+ 0x801 , // 273 - 95
+ 0x803 , // 274 - 433
+ 0x804 , // 275 - 4091
+ 0x807 , // 276 - 552
+ 0x809 , // 277 - 827
+ 0x80a , // 278 - 1295
+ 0x80c , // 279 - 1455
+ 0x810 , // 280 - 1934
+ 0x813 , // 281 - 2679
+ 0x814 , // 282 - 2720
+ 0x816 , // 283 - 2928
+ 0x818 , // 284 - 3041
+ 0x819 , // 285 - 3077
+ 0x81a , // 286 - 3464
+ 0x81d , // 287 - 3544
+ 0x820 , // 288 - 3833
+ 0x82c , // 289 - 233
+ 0x82e , // 290 - 601
+ 0x832 , // 291 - 3694
+ 0x83b , // 292 - 3190
+ 0x83c , // 293 - 1703
+ 0x83e , // 294 - 2576
+ 0x843 , // 295 - 3869
+ 0x845 , // 296 - 338
+ 0x846 , // 297 - 2826
+ 0x849 , // 298 - 3601
+ 0x850 , // 299 - 2529
+ 0x859 , // 300 - 3151
+ 0x85d , // 301 - 1975
+ 0x85f , // 302 - 3776
+ 0x860 , // 303 - 2229
+ 0x861 , // 304 - 2662
+ 0x867 , // 305 - 1399
+ 0x86b , // 306 - 3013
+ 0x873 , // 307 - 3666
+ 0x901 , // 308 - 2943
+ 0x9ff , // 309 - 2973
+ 0xc01 , // 310 - 80
+ 0xc04 , // 311 - 4154
+ 0xc07 , // 312 - 542
+ 0xc09 , // 313 - 712
+ 0xc0a , // 314 - 1263
+ 0xc0c , // 315 - 1480
+ 0xc1a , // 316 - 3407
+ 0xc3b , // 317 - 3180
+ 0xc50 , // 318 - 2539
+ 0xc51 , // 319 - 634
+ 0xc6b , // 320 - 3019
+ 0x1001 , // 321 - 120
+ 0x1004 , // 322 - 4200
+ 0x1007 , // 323 - 584
+ 0x1009 , // 324 - 752
+ 0x100a , // 325 - 1285
+ 0x100c , // 326 - 1500
+ 0x101a , // 327 - 1837
+ 0x103b , // 328 - 3300
+ 0x105f , // 329 - 3806
+ 0x1401 , // 330 - 75
+ 0x1404 , // 331 - 4171
+ 0x1407 , // 332 - 579
+ 0x1409 , // 333 - 1022
+ 0x140a , // 334 - 1243
+ 0x140c , // 335 - 1565
+ 0x141a , // 336 - 402
+ 0x143b , // 337 - 3306
+ 0x1801 , // 338 - 125
+ 0x1809 , // 339 - 877
+ 0x180a , // 340 - 1305
+ 0x180c , // 341 - 1575
+ 0x181a , // 342 - 3454
+ 0x183b , // 343 - 3285
+ 0x1c01 , // 344 - 180
+ 0x1c09 , // 345 - 1187
+ 0x1c0a , // 346 - 1253
+ 0x1c0c , // 347 - 1449
+ 0x1c1a , // 348 - 3397
+ 0x1c3b , // 349 - 3291
+ 0x2001 , // 350 - 135
+ 0x2009 , // 351 - 907
+ 0x200a , // 352 - 1345
+ 0x200c , // 353 - 1630
+ 0x201a , // 354 - 385
+ 0x203b , // 355 - 3324
+ 0x2401 , // 356 - 185
+ 0x2409 , // 357 - 680
+ 0x240a , // 358 - 1238
+ 0x240c , // 359 - 1485
+ 0x241a , // 360 - 3484
+ 0x243b , // 361 - 3315
+ 0x2801 , // 362 - 170
+ 0x2809 , // 363 - 747
+ 0x280a , // 364 - 1310
+ 0x280c , // 365 - 1645
+ 0x281a , // 366 - 3427
+ 0x2c01 , // 367 - 100
+ 0x2c09 , // 368 - 1132
+ 0x2c0a , // 369 - 1218
+ 0x2c0c , // 370 - 1510
+ 0x2c1a , // 371 - 3474
+ 0x3001 , // 372 - 115
+ 0x3009 , // 373 - 1197
+ 0x300a , // 374 - 1258
+ 0x300c , // 375 - 1505
+ 0x301a , // 376 - 3417
+ 0x3401 , // 377 - 110
+ 0x3409 , // 378 - 1032
+ 0x340a , // 379 - 1233
+ 0x340c , // 380 - 1590
+ 0x3801 , // 381 - 60
+ 0x3809 , // 382 - 872
+ 0x380a , // 383 - 1340
+ 0x380c , // 384 - 1570
+ 0x3c01 , // 385 - 65
+ 0x3c09 , // 386 - 867
+ 0x3c0a , // 387 - 1325
+ 0x3c0c , // 388 - 1555
+ 0x4001 , // 389 - 145
+ 0x4009 , // 390 - 892
+ 0x400a , // 391 - 1223
+ 0x4409 , // 392 - 987
+ 0x440a , // 393 - 1330
+ 0x4809 , // 394 - 1082
+ 0x480a , // 395 - 1290
+ 0x4c0a , // 396 - 1300
+ 0x500a , // 397 - 1320
+ 0x540a , // 398 - 1335
+ 0x580a , // 399 - 1212
+ 0x5c0a , // 400 - 1248
+ 0x641a , // 401 - 378
+ 0x681a , // 402 - 395
+ 0x6c1a , // 403 - 3390
+ 0x701a , // 404 - 3447
+ 0x703b , // 405 - 3312
+ 0x742c , // 406 - 226
+ 0x743b , // 407 - 3321
+ 0x7804 , // 408 - 4077
+ 0x7814 , // 409 - 2718
+ 0x781a , // 410 - 376
+ 0x782c , // 411 - 243
+ 0x783b , // 412 - 3282
+ 0x7843 , // 413 - 3862
+ 0x7850 , // 414 - 2510
+ 0x785d , // 415 - 1951
+ 0x785f , // 416 - 3798
+ 0x7c04 , // 417 - 4147
+ 0x7c14 , // 418 - 2629
+ 0x7c1a , // 419 - 3388
+ 0x7c28 , // 420 - 3640
+ 0x7c2e , // 421 - 598
+ 0x7c3b , // 422 - 3297
+ 0x7c43 , // 423 - 3879
+ 0x7c46 , // 424 - 2819
+ 0x7c50 , // 425 - 2522
+ 0x7c59 , // 426 - 3144
+ 0x7c5c , // 427 - 474
+ 0x7c5d , // 428 - 1968
+ 0x7c5f , // 429 - 3768
+ 0x7c67 , // 430 - 1392
+ 0x7c68 , // 431 - 1775
+ 0x7c86 , // 432 - 2985
+ 0x7c92 , // 433 - 2268
+ 0x1007f, // 434 - 3993
+ 0x10407, // 435 - 562
+ 0x1040e, // 436 - 1863
+ 0x10437, // 437 - 2065
+ 0x20804, // 438 - 4108
+ 0x21004, // 439 - 4217
+ 0x21404, // 440 - 4188
+ 0x30404, // 441 - 4234
+ 0x40404, // 442 - 4246
+ 0x40411, // 443 - 1992
+ 0x40c04, // 444 - 4159
+ 0x41404, // 445 - 4176
+ 0x50804, // 446 - 4096
+ 0x51004, // 447 - 4205
+ };
+
+ // each element in s_lcidToCultureNameIndecis is index to s_localeNamesIndices
+ private static readonly int[] s_lcidToCultureNameIndecis = new int[]
+ {
+ // Index to s_localeNamesIndices, index to this array - lcid - index to the c_localeNames
+ 13 , // 0 - 1 - 52
+ 64 , // 1 - 2 - 301
+ 88 , // 2 - 3 - 421
+ 840 , // 3 - 4 - 4120
+ 102 , // 4 - 5 - 500
+ 107 , // 5 - 6 - 519
+ 112 , // 6 - 7 - 540
+ 138 , // 7 - 8 - 660
+ 141 , // 8 - 9 - 672
+ 249 , // 9 - a - 1210
+ 291 , // 10 - b - 1419
+ 298 , // 11 - c - 1447
+ 375 , // 12 - d - 1821
+ 384 , // 13 - e - 1856
+ 400 , // 14 - f - 1925
+ 402 , // 15 - 10 - 1932
+ 411 , // 16 - 11 - 1985
+ 450 , // 17 - 12 - 2175
+ 559 , // 18 - 13 - 2672
+ 573 , // 19 - 14 - 2734
+ 600 , // 20 - 15 - 2851
+ 607 , // 21 - 16 - 2881
+ 631 , // 22 - 17 - 3025
+ 635 , // 23 - 18 - 3039
+ 640 , // 24 - 19 - 3060
+ 379 , // 25 - 1a - 1835
+ 681 , // 26 - 1b - 3268
+ 703 , // 27 - 1c - 3371
+ 728 , // 28 - 1d - 3537
+ 754 , // 29 - 1e - 3657
+ 768 , // 30 - 1f - 3711
+ 789 , // 31 - 20 - 3831
+ 394 , // 32 - 21 - 1904
+ 787 , // 33 - 22 - 3824
+ 58 , // 34 - 23 - 276
+ 683 , // 35 - 24 - 3275
+ 276 , // 36 - 25 - 1350
+ 503 , // 37 - 26 - 2422
+ 495 , // 38 - 27 - 2390
+ 751 , // 39 - 28 - 3638
+ 282 , // 40 - 29 - 1373
+ 806 , // 41 - 2a - 3944
+ 387 , // 42 - 2b - 1875
+ 49 , // 43 - 2c - 224
+ 278 , // 44 - 2d - 1357
+ 382 , // 45 - 2e - 1847
+ 520 , // 46 - 2f - 2494
+ 725 , // 47 - 30 - 3525
+ 771 , // 48 - 31 - 3723
+ 763 , // 49 - 32 - 3692
+ 804 , // 50 - 33 - 3937
+ 819 , // 51 - 34 - 4004
+ 855 , // 52 - 35 - 4258
+ 4 , // 53 - 36 - 17
+ 423 , // 54 - 37 - 2058
+ 295 , // 55 - 38 - 1435
+ 377 , // 56 - 39 - 1828
+ 540 , // 57 - 3a - 2591
+ 664 , // 58 - 3b - 3178
+ 350 , // 59 - 3c - 1701
+ 825 , // 60 - 3d - 4029
+ 536 , // 61 - 3e - 2574
+ 438 , // 62 - 3f - 2129
+ 474 , // 63 - 40 - 2302
+ 732 , // 64 - 41 - 3554
+ 761 , // 65 - 42 - 3685
+ 792 , // 66 - 43 - 3843
+ 773 , // 67 - 44 - 3730
+ 71 , // 68 - 45 - 336
+ 594 , // 69 - 46 - 2817
+ 362 , // 70 - 47 - 1750
+ 589 , // 71 - 48 - 2798
+ 741 , // 72 - 49 - 3594
+ 746 , // 73 - 4a - 3616
+ 448 , // 74 - 4b - 2168
+ 522 , // 75 - 4c - 2501
+ 43 , // 76 - 4d - 199
+ 534 , // 77 - 4e - 2567
+ 651 , // 78 - 4f - 3108
+ 524 , // 79 - 50 - 2508
+ 74 , // 80 - 51 - 348
+ 105 , // 81 - 52 - 512
+ 446 , // 82 - 53 - 2161
+ 491 , // 83 - 54 - 2371
+ 544 , // 84 - 55 - 2607
+ 354 , // 85 - 56 - 1715
+ 453 , // 86 - 57 - 2187
+ 530 , // 87 - 58 - 2549
+ 659 , // 88 - 59 - 3142
+ 739 , // 89 - 5a - 3585
+ 679 , // 90 - 5b - 3261
+ 97 , // 91 - 5c - 471
+ 406 , // 92 - 5d - 1949
+ 11 , // 93 - 5e - 45
+ 777 , // 94 - 5f - 3746
+ 457 , // 95 - 60 - 2203
+ 556 , // 96 - 61 - 2660
+ 348 , // 97 - 62 - 1694
+ 605 , // 98 - 63 - 2874
+ 293 , // 99 - 64 - 1426
+ 127 , // 100 - 65 - 616
+ 66 , // 101 - 66 - 308
+ 284 , // 102 - 67 - 1380
+ 368 , // 103 - 68 - 1773
+ 392 , // 104 - 69 - 1895
+ 827 , // 105 - 6a - 4037
+ 627 , // 106 - 6b - 3004
+ 578 , // 107 - 6c - 2752
+ 54 , // 108 - 6d - 260
+ 480 , // 109 - 6e - 2326
+ 442 , // 110 - 6f - 2145
+ 396 , // 111 - 70 - 1911
+ 455 , // 112 - 71 - 2196
+ 586 , // 113 - 72 - 2786
+ 756 , // 114 - 73 - 3664
+ 356 , // 115 - 74 - 1722
+ 373 , // 116 - 75 - 1812
+ 476 , // 117 - 76 - 2309
+ 698 , // 118 - 77 - 3349
+ 398 , // 119 - 78 - 1918
+ 598 , // 120 - 79 - 2841
+ 41 , // 121 - 7a - 190
+ 532 , // 122 - 7c - 2558
+ 77 , // 123 - 7e - 360
+ 785 , // 124 - 80 - 3817
+ 518 , // 125 - 81 - 2487
+ 584 , // 126 - 82 - 2779
+ 100 , // 127 - 83 - 493
+ 358 , // 128 - 84 - 1729
+ 653 , // 129 - 85 - 3115
+ 624 , // 130 - 86 - 2982
+ 647 , // 131 - 87 - 3092
+ 816 , // 132 - 88 - 3986
+ 603 , // 133 - 8c - 2865
+ 352 , // 134 - 91 - 1708
+ 468 , // 135 - 92 - 2266
+ 33 , // 136 - 401 - 150
+ 65 , // 137 - 402 - 303
+ 90 , // 138 - 403 - 428
+ 852 , // 139 - 404 - 4229
+ 103 , // 140 - 405 - 502
+ 108 , // 141 - 406 - 521
+ 116 , // 142 - 407 - 557
+ 140 , // 143 - 408 - 667
+ 238 , // 144 - 409 - 1157
+ 261 , // 145 - 40a - 1268
+ 292 , // 146 - 40b - 1421
+ 314 , // 147 - 40c - 1525
+ 376 , // 148 - 40d - 1823
+ 385 , // 149 - 40e - 1858
+ 401 , // 150 - 40f - 1927
+ 404 , // 151 - 410 - 1939
+ 412 , // 152 - 411 - 1987
+ 452 , // 153 - 412 - 2182
+ 564 , // 154 - 413 - 2694
+ 550 , // 155 - 414 - 2631
+ 601 , // 156 - 415 - 2853
+ 609 , // 157 - 416 - 2888
+ 632 , // 158 - 417 - 3027
+ 637 , // 159 - 418 - 3046
+ 645 , // 160 - 419 - 3082
+ 381 , // 161 - 41a - 1842
+ 682 , // 162 - 41b - 3270
+ 704 , // 163 - 41c - 3373
+ 731 , // 164 - 41d - 3549
+ 755 , // 165 - 41e - 3659
+ 770 , // 166 - 41f - 3718
+ 791 , // 167 - 420 - 3838
+ 395 , // 168 - 421 - 1906
+ 788 , // 169 - 422 - 3826
+ 59 , // 170 - 423 - 278
+ 684 , // 171 - 424 - 3277
+ 277 , // 172 - 425 - 1352
+ 504 , // 173 - 426 - 2424
+ 496 , // 174 - 427 - 2392
+ 753 , // 175 - 428 - 3647
+ 283 , // 176 - 429 - 1375
+ 807 , // 177 - 42a - 3946
+ 388 , // 178 - 42b - 1877
+ 53 , // 179 - 42c - 250
+ 279 , // 180 - 42d - 1359
+ 383 , // 181 - 42e - 1850
+ 521 , // 182 - 42f - 2496
+ 727 , // 183 - 430 - 3532
+ 772 , // 184 - 431 - 3725
+ 765 , // 185 - 432 - 3699
+ 805 , // 186 - 433 - 3939
+ 820 , // 187 - 434 - 4006
+ 856 , // 188 - 435 - 4260
+ 6 , // 189 - 436 - 24
+ 424 , // 190 - 437 - 2060
+ 297 , // 191 - 438 - 1442
+ 378 , // 192 - 439 - 1830
+ 541 , // 193 - 43a - 2593
+ 666 , // 194 - 43b - 3185
+ 826 , // 195 - 43d - 4031
+ 538 , // 196 - 43e - 2581
+ 439 , // 197 - 43f - 2131
+ 475 , // 198 - 440 - 2304
+ 734 , // 199 - 441 - 3561
+ 762 , // 200 - 442 - 3687
+ 798 , // 201 - 443 - 3886
+ 774 , // 202 - 444 - 3732
+ 73 , // 203 - 445 - 343
+ 597 , // 204 - 446 - 2836
+ 363 , // 205 - 447 - 1752
+ 590 , // 206 - 448 - 2800
+ 742 , // 207 - 449 - 3596
+ 747 , // 208 - 44a - 3618
+ 449 , // 209 - 44b - 2170
+ 523 , // 210 - 44c - 2503
+ 44 , // 211 - 44d - 201
+ 535 , // 212 - 44e - 2569
+ 652 , // 213 - 44f - 3110
+ 526 , // 214 - 450 - 2517
+ 75 , // 215 - 451 - 350
+ 106 , // 216 - 452 - 514
+ 447 , // 217 - 453 - 2163
+ 492 , // 218 - 454 - 2373
+ 545 , // 219 - 455 - 2609
+ 355 , // 220 - 456 - 1717
+ 454 , // 221 - 457 - 2190
+ 531 , // 222 - 458 - 2552
+ 663 , // 223 - 459 - 3168
+ 740 , // 224 - 45a - 3588
+ 680 , // 225 - 45b - 3263
+ 99 , // 226 - 45c - 482
+ 408 , // 227 - 45d - 1958
+ 12 , // 228 - 45e - 47
+ 779 , // 229 - 45f - 3757
+ 458 , // 230 - 460 - 2205
+ 558 , // 231 - 461 - 2667
+ 349 , // 232 - 462 - 1696
+ 606 , // 233 - 463 - 2876
+ 294 , // 234 - 464 - 1429
+ 128 , // 235 - 465 - 618
+ 67 , // 236 - 466 - 311
+ 290 , // 237 - 467 - 1414
+ 372 , // 238 - 468 - 1802
+ 393 , // 239 - 469 - 1898
+ 829 , // 240 - 46a - 4044
+ 628 , // 241 - 46b - 3007
+ 579 , // 242 - 46c - 2755
+ 55 , // 243 - 46d - 262
+ 481 , // 244 - 46e - 2328
+ 443 , // 245 - 46f - 2147
+ 397 , // 246 - 470 - 1913
+ 456 , // 247 - 471 - 2198
+ 587 , // 248 - 472 - 2788
+ 758 , // 249 - 473 - 3671
+ 357 , // 250 - 474 - 1724
+ 374 , // 251 - 475 - 1815
+ 477 , // 252 - 476 - 2311
+ 702 , // 253 - 477 - 3366
+ 399 , // 254 - 478 - 1920
+ 599 , // 255 - 479 - 2844
+ 42 , // 256 - 47a - 193
+ 533 , // 257 - 47c - 2561
+ 78 , // 258 - 47e - 362
+ 786 , // 259 - 480 - 3819
+ 519 , // 260 - 481 - 2489
+ 585 , // 261 - 482 - 2781
+ 101 , // 262 - 483 - 495
+ 360 , // 263 - 484 - 1738
+ 654 , // 264 - 485 - 3118
+ 626 , // 265 - 486 - 2993
+ 648 , // 266 - 487 - 3094
+ 817 , // 267 - 488 - 3988
+ 604 , // 268 - 48c - 2868
+ 353 , // 269 - 491 - 1710
+ 470 , // 270 - 492 - 2275
+ 621 , // 271 - 501 - 2956
+ 622 , // 272 - 5fe - 2964
+ 22 , // 273 - 801 - 95
+ 91 , // 274 - 803 - 433
+ 837 , // 275 - 804 - 4091
+ 115 , // 276 - 807 - 552
+ 172 , // 277 - 809 - 827
+ 265 , // 278 - 80a - 1295
+ 300 , // 279 - 80c - 1455
+ 403 , // 280 - 810 - 1934
+ 561 , // 281 - 813 - 2679
+ 570 , // 282 - 814 - 2720
+ 617 , // 283 - 816 - 2928
+ 636 , // 284 - 818 - 3041
+ 644 , // 285 - 819 - 3077
+ 716 , // 286 - 81a - 3464
+ 730 , // 287 - 81d - 3544
+ 790 , // 288 - 820 - 3833
+ 51 , // 289 - 82c - 233
+ 124 , // 290 - 82e - 601
+ 764 , // 291 - 832 - 3694
+ 667 , // 292 - 83b - 3190
+ 351 , // 293 - 83c - 1703
+ 537 , // 294 - 83e - 2576
+ 796 , // 295 - 843 - 3869
+ 72 , // 296 - 845 - 338
+ 596 , // 297 - 846 - 2826
+ 743 , // 298 - 849 - 3601
+ 528 , // 299 - 850 - 2529
+ 661 , // 300 - 859 - 3151
+ 410 , // 301 - 85d - 1975
+ 781 , // 302 - 85f - 3776
+ 461 , // 303 - 860 - 2229
+ 557 , // 304 - 861 - 2662
+ 288 , // 305 - 867 - 1399
+ 629 , // 306 - 86b - 3013
+ 757 , // 307 - 873 - 3666
+ 620 , // 308 - 901 - 2943
+ 623 , // 309 - 9ff - 2973
+ 19 , // 310 - c01 - 80
+ 844 , // 311 - c04 - 4154
+ 113 , // 312 - c07 - 542
+ 149 , // 313 - c09 - 712
+ 260 , // 314 - c0a - 1263
+ 305 , // 315 - c0c - 1480
+ 710 , // 316 - c1a - 3407
+ 665 , // 317 - c3b - 3180
+ 529 , // 318 - c50 - 2539
+ 132 , // 319 - c51 - 634
+ 630 , // 320 - c6b - 3019
+ 27 , // 321 - 1001 - 120
+ 849 , // 322 - 1004 - 4200
+ 120 , // 323 - 1007 - 584
+ 157 , // 324 - 1009 - 752
+ 263 , // 325 - 100a - 1285
+ 309 , // 326 - 100c - 1500
+ 380 , // 327 - 101a - 1837
+ 689 , // 328 - 103b - 3300
+ 784 , // 329 - 105f - 3806
+ 18 , // 330 - 1401 - 75
+ 846 , // 331 - 1404 - 4171
+ 119 , // 332 - 1407 - 579
+ 211 , // 333 - 1409 - 1022
+ 256 , // 334 - 140a - 1243
+ 322 , // 335 - 140c - 1565
+ 85 , // 336 - 141a - 402
+ 690 , // 337 - 143b - 3306
+ 28 , // 338 - 1801 - 125
+ 182 , // 339 - 1809 - 877
+ 267 , // 340 - 180a - 1305
+ 324 , // 341 - 180c - 1575
+ 715 , // 342 - 181a - 3454
+ 686 , // 343 - 183b - 3285
+ 39 , // 344 - 1c01 - 180
+ 244 , // 345 - 1c09 - 1187
+ 258 , // 346 - 1c0a - 1253
+ 299 , // 347 - 1c0c - 1449
+ 709 , // 348 - 1c1a - 3397
+ 687 , // 349 - 1c3b - 3291
+ 30 , // 350 - 2001 - 135
+ 188 , // 351 - 2009 - 907
+ 275 , // 352 - 200a - 1345
+ 335 , // 353 - 200c - 1630
+ 83 , // 354 - 201a - 385
+ 694 , // 355 - 203b - 3324
+ 40 , // 356 - 2401 - 185
+ 143 , // 357 - 2409 - 680
+ 255 , // 358 - 240a - 1238
+ 306 , // 359 - 240c - 1485
+ 718 , // 360 - 241a - 3484
+ 692 , // 361 - 243b - 3315
+ 37 , // 362 - 2801 - 170
+ 156 , // 363 - 2809 - 747
+ 268 , // 364 - 280a - 1310
+ 338 , // 365 - 280c - 1645
+ 712 , // 366 - 281a - 3427
+ 23 , // 367 - 2c01 - 100
+ 233 , // 368 - 2c09 - 1132
+ 251 , // 369 - 2c0a - 1218
+ 311 , // 370 - 2c0c - 1510
+ 717 , // 371 - 2c1a - 3474
+ 26 , // 372 - 3001 - 115
+ 246 , // 373 - 3009 - 1197
+ 259 , // 374 - 300a - 1258
+ 310 , // 375 - 300c - 1505
+ 711 , // 376 - 301a - 3417
+ 25 , // 377 - 3401 - 110
+ 213 , // 378 - 3409 - 1032
+ 254 , // 379 - 340a - 1233
+ 327 , // 380 - 340c - 1590
+ 15 , // 381 - 3801 - 60
+ 181 , // 382 - 3809 - 872
+ 274 , // 383 - 380a - 1340
+ 323 , // 384 - 380c - 1570
+ 16 , // 385 - 3c01 - 65
+ 180 , // 386 - 3c09 - 867
+ 271 , // 387 - 3c0a - 1325
+ 320 , // 388 - 3c0c - 1555
+ 32 , // 389 - 4001 - 145
+ 185 , // 390 - 4009 - 892
+ 252 , // 391 - 400a - 1223
+ 204 , // 392 - 4409 - 987
+ 272 , // 393 - 440a - 1330
+ 223 , // 394 - 4809 - 1082
+ 264 , // 395 - 480a - 1290
+ 266 , // 396 - 4c0a - 1300
+ 270 , // 397 - 500a - 1320
+ 273 , // 398 - 540a - 1335
+ 250 , // 399 - 580a - 1212
+ 257 , // 400 - 5c0a - 1248
+ 82 , // 401 - 641a - 378
+ 84 , // 402 - 681a - 395
+ 708 , // 403 - 6c1a - 3390
+ 714 , // 404 - 701a - 3447
+ 691 , // 405 - 703b - 3312
+ 50 , // 406 - 742c - 226
+ 693 , // 407 - 743b - 3321
+ 834 , // 408 - 7804 - 4077
+ 569 , // 409 - 7814 - 2718
+ 81 , // 410 - 781a - 376
+ 52 , // 411 - 782c - 243
+ 685 , // 412 - 783b - 3282
+ 795 , // 413 - 7843 - 3862
+ 525 , // 414 - 7850 - 2510
+ 407 , // 415 - 785d - 1951
+ 783 , // 416 - 785f - 3798
+ 843 , // 417 - 7c04 - 4147
+ 549 , // 418 - 7c14 - 2629
+ 707 , // 419 - 7c1a - 3388
+ 752 , // 420 - 7c28 - 3640
+ 123 , // 421 - 7c2e - 598
+ 688 , // 422 - 7c3b - 3297
+ 797 , // 423 - 7c43 - 3879
+ 595 , // 424 - 7c46 - 2819
+ 527 , // 425 - 7c50 - 2522
+ 660 , // 426 - 7c59 - 3144
+ 98 , // 427 - 7c5c - 474
+ 409 , // 428 - 7c5d - 1968
+ 780 , // 429 - 7c5f - 3768
+ 287 , // 430 - 7c67 - 1392
+ 369 , // 431 - 7c68 - 1775
+ 625 , // 432 - 7c86 - 2985
+ 469 , // 433 - 7c92 - 2268
+ 818 , // 434 - 1007f - 3993
+ 117 , // 435 - 10407 - 562
+ 386 , // 436 - 1040e - 1863
+ 425 , // 437 - 10437 - 2065
+ 839 , // 438 - 20804 - 4108
+ 851 , // 439 - 21004 - 4217
+ 848 , // 440 - 21404 - 4188
+ 853 , // 441 - 30404 - 4234
+ 854 , // 442 - 40404 - 4246
+ 413 , // 443 - 40411 - 1992
+ 845 , // 444 - 40c04 - 4159
+ 847 , // 445 - 41404 - 4176
+ 838 , // 446 - 50804 - 4096
+ 850 , // 447 - 51004 - 4205
+ };
+
/// <summary>
/// This method uses the sRealName field (which is initialized by the constructor before this is called) to
/// initialize the rest of the state of CultureData based on the underlying OS globalization library.
private unsafe bool InitCultureData()
{
Contract.Assert(_sRealName != null);
-
+
string alternateSortName = string.Empty;
string realNameBuffer = _sRealName;
_iLanguage = this.ILANGUAGE;
if (_iLanguage == 0)
{
- _iLanguage = LOCALE_CUSTOM_UNSPECIFIED;
+ _iLanguage = CultureInfo.LOCALE_CUSTOM_UNSPECIFIED;
}
_bNeutral = (this.SISO3166CTRYNAME.Length == 0);
// Remove the sort from sName unless custom culture
- if (!_bNeutral)
+ if (index>0 && !_bNeutral && !IsCustomCultureId(_iLanguage))
{
- if (!IsCustomCultureId(_iLanguage))
- {
- _sName = _sWindowsName.Substring(0, index);
- }
+ _sName = _sWindowsName.Substring(0, index);
}
return true;
}
windowsName = StringBuilderCache.GetStringAndRelease(sb); // the name passed to subsequent ICU calls
return true;
}
-
+
private string GetLocaleInfo(LocaleStringData type)
{
Contract.Assert(_sWindowsName != null, "[CultureData.GetLocaleInfo] Expected _sWindowsName to be populated already");
return StringBuilderCache.GetStringAndRelease(sb);
}
+
+ private static string LCIDToLocaleName(int culture)
+ {
+ int left = 0;
+ int right = s_lcids.Length - 1;
+ int index;
+
+ Contract.Assert(s_lcids.Length == s_lcidToCultureNameIndecis.Length);
+
+ while (left <= right)
+ {
+ index = (right + left) / 2;
+
+ if (culture == s_lcids[index])
+ {
+ int indexToLocaleNamesIndices = s_lcidToCultureNameIndecis[index];
+ Contract.Assert(indexToLocaleNamesIndices < s_localeNamesIndices.Length - 1);
+
+ return c_localeNames.Substring(s_localeNamesIndices[indexToLocaleNamesIndices],
+ s_localeNamesIndices[indexToLocaleNamesIndices + 1] -
+ s_localeNamesIndices[indexToLocaleNamesIndices]);
+ }
+ else if (culture < s_lcids[index])
+ {
+ right = index - 1;
+ }
+ else
+ {
+ left = index + 1;
+ }
+ }
+
+ return null;
+ }
+
+ private static int LocaleNameToLCID(string cultureName)
+ {
+ int index = SearchCultureName(cultureName);
+ if (index < 0)
+ {
+ return CultureInfo.LOCALE_CUSTOM_UNSPECIFIED;
+ }
+
+ Contract.Assert(s_localeNamesIndices.Length == s_nameIndexTolcids.Length && index < s_localeNamesIndices.Length);
+
+ return s_nameIndexTolcids[index];
+ }
+
+
+ // SearchCultureName will binary search c_localeNames using s_localeNamesIndices.
+ // return index in s_localeNamesIndices, or -1 if it fail finding any match
+ private static int SearchCultureName(string name)
+ {
+ int left = 0;
+ int right = s_localeNamesIndices.Length - 2;
+ int index;
+ int result;
+
+ Contract.Assert(s_localeNamesIndices[s_localeNamesIndices.Length - 1] == c_localeNames.Length);
+
+ name = AnsiToLower(name);
+
+ // Binary search the array until we have only a couple of elements left and then
+ // just walk those elements.
+ while ((right - left) > 3)
+ {
+ index = ((right - left) / 2) + left;
+
+ Contract.Assert(index < s_localeNamesIndices.Length - 1);
+ result = CompareOrdinal(name, c_localeNames, s_localeNamesIndices[index], s_localeNamesIndices[index + 1] - s_localeNamesIndices[index]);
+ if (result == 0)
+ {
+ return index;
+ }
+ else if (result < 0)
+ {
+ right = index;
+ }
+ else
+ {
+ left = index;
+ }
+ }
+
+ // Walk the remaining elements (it'll be 3 or fewer).
+ for (; left <= right; left++)
+ {
+ Contract.Assert(left < s_localeNamesIndices.Length - 1);
+ if (CompareOrdinal(name, c_localeNames, s_localeNamesIndices[left], s_localeNamesIndices[left + 1] - s_localeNamesIndices[left]) == 0)
+ {
+ return (left);
+ }
+ }
+
+ // The encoding name is not valid.
+ return -1;
+ }
+
+ // optimized to avoid parameters checking
+ private static int CompareOrdinal(string s1, string s2, int index, int length)
+ {
+ int count = s1.Length;
+ if (count > length)
+ count = length;
+
+ int i = 0;
+ while (i < count && s1[i] == s2[index + i])
+ i++;
+
+ if (i < count)
+ return (int)(s1[i] - s2[index + i]);
+
+ return s1.Length - length;
+ }
}
}