diff --git a/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php b/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php index 77bcb00c85..52225f4941 100644 --- a/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php +++ b/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php @@ -157,20 +157,20 @@ class LanguageDataGenerator extends AbstractDataGenerator return array( 'Version' => $rootBundle['Version'], 'Languages' => $this->languageCodes, - 'Aliases' => $metadataBundle['languageAlias'], + 'Aliases' => array_map(function (\ResourceBundle $bundle) { + return $bundle['replacement']; + }, iterator_to_array($metadataBundle['alias']['language'])), 'Alpha2ToAlpha3' => $this->generateAlpha2ToAlpha3Mapping($metadataBundle), ); } private function generateAlpha2ToAlpha3Mapping(ArrayAccessibleResourceBundle $metadataBundle) { - // Data structure has changed in ICU 5.5 from "languageAlias" to "alias->language" - $aliases = $metadataBundle['languageAlias'] ?: $metadataBundle['alias']['language']; + $aliases = iterator_to_array($metadataBundle['alias']['language']); $alpha2ToAlpha3 = array(); foreach ($aliases as $alias => $language) { - // $language is a string before ICU 5.5 - $language = is_string($language) ? $language : $language['replacement']; + $language = $language['replacement']; if (2 === strlen($language) && 3 === strlen($alias)) { if (isset(self::$preferredAlpha2ToAlpha3Mapping[$language])) { // Validate to prevent typos @@ -184,7 +184,7 @@ class LanguageDataGenerator extends AbstractDataGenerator } $alpha3 = self::$preferredAlpha2ToAlpha3Mapping[$language]; - $alpha2 = is_string($aliases[$alpha3]) ? $aliases[$alpha3] : $aliases[$alpha3]['replacement']; + $alpha2 = $aliases[$alpha3]['replacement']; if ($language !== $alpha2) { throw new RuntimeException( diff --git a/src/Symfony/Component/Intl/Resources/data/languages/meta.json b/src/Symfony/Component/Intl/Resources/data/languages/meta.json index 5fa96ae47f..1ef29bc6ef 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/meta.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/meta.json @@ -619,7 +619,344 @@ "zxx", "zza" ], - "Aliases": null, + "Aliases": { + "aa_SAAHO": "ssy", + "aar": "aa", + "abk": "ab", + "afr": "af", + "aju": "jrb", + "aka": "ak", + "alb": "sq", + "als": "sq", + "amh": "am", + "ara": "ar", + "arb": "ar", + "arg": "an", + "arm": "hy", + "art_lojban": "jbo", + "asm": "as", + "ava": "av", + "ave": "ae", + "aym": "ay", + "ayr": "ay", + "az_AZ": "az_Latn_AZ", + "aze": "az", + "azj": "az", + "bak": "ba", + "bam": "bm", + "baq": "eu", + "bcc": "bal", + "bcl": "bik", + "bel": "be", + "ben": "bn", + "bh": "bho", + "bih": "bho", + "bis": "bi", + "bod": "bo", + "bos": "bs", + "bre": "br", + "bs_BA": "bs_Latn_BA", + "bul": "bg", + "bur": "my", + "bxk": "luy", + "bxr": "bua", + "cat": "ca", + "ces": "cs", + "cha": "ch", + "che": "ce", + "chi": "zh", + "chu": "cu", + "chv": "cv", + "cld": "syr", + "cmn": "zh", + "cor": "kw", + "cos": "co", + "cre": "cr", + "cwd": "cr", + "cym": "cy", + "cze": "cs", + "dan": "da", + "deu": "de", + "dgo": "doi", + "dhd": "mwr", + "dik": "din", + "diq": "zza", + "div": "dv", + "dut": "nl", + "dzo": "dz", + "ekk": "et", + "ell": "el", + "emk": "man", + "eng": "en", + "epo": "eo", + "esk": "ik", + "est": "et", + "eus": "eu", + "ewe": "ee", + "fao": "fo", + "fas": "fa", + "fat": "ak", + "fij": "fj", + "fin": "fi", + "fra": "fr", + "fre": "fr", + "fry": "fy", + "fuc": "ff", + "ful": "ff", + "gaz": "om", + "gbo": "grb", + "geo": "ka", + "ger": "de", + "gla": "gd", + "gle": "ga", + "glg": "gl", + "glv": "gv", + "gno": "gon", + "gre": "el", + "grn": "gn", + "gug": "gn", + "guj": "gu", + "gya": "gba", + "ha_Latn_GH": "ha_GH", + "ha_Latn_NE": "ha_NE", + "ha_Latn_NG": "ha_NG", + "hat": "ht", + "hau": "ha", + "hbs": "sr_Latn", + "hdn": "hai", + "hea": "hmn", + "heb": "he", + "her": "hz", + "him": "srx", + "hin": "hi", + "hmo": "ho", + "hrv": "hr", + "hun": "hu", + "hye": "hy", + "i_ami": "ami", + "i_bnn": "bnn", + "i_hak": "hak", + "i_klingon": "tlh", + "i_lux": "lb", + "i_navajo": "nv", + "i_pwn": "pwn", + "i_tao": "tao", + "i_tay": "tay", + "i_tsu": "tsu", + "ibo": "ig", + "ice": "is", + "ido": "io", + "iii": "ii", + "ike": "iu", + "iku": "iu", + "ile": "ie", + "in": "id", + "ina": "ia", + "ind": "id", + "ipk": "ik", + "isl": "is", + "ita": "it", + "iw": "he", + "jav": "jv", + "ji": "yi", + "jpn": "ja", + "jw": "jv", + "kal": "kl", + "kan": "kn", + "kas": "ks", + "kat": "ka", + "kau": "kr", + "kaz": "kk", + "khk": "mn", + "khm": "km", + "kik": "ki", + "kin": "rw", + "kir": "ky", + "kk_Cyrl_KZ": "kk_KZ", + "kmr": "ku", + "knc": "kr", + "kng": "kg", + "knn": "kok", + "kom": "kv", + "kon": "kg", + "kor": "ko", + "kpv": "kv", + "ks_Arab_IN": "ks_IN", + "kua": "kj", + "kur": "ku", + "ky_Cyrl_KG": "ky_KG", + "lao": "lo", + "lat": "la", + "lav": "lv", + "lbk": "bnc", + "lim": "li", + "lin": "ln", + "lit": "lt", + "ltz": "lb", + "lub": "lu", + "lug": "lg", + "lvs": "lv", + "mac": "mk", + "mah": "mh", + "mal": "ml", + "mao": "mi", + "mar": "mr", + "may": "ms", + "mhr": "chm", + "mkd": "mk", + "mlg": "mg", + "mlt": "mt", + "mn_Cyrl_MN": "mn_MN", + "mnk": "man", + "mo": "ro_MD", + "mol": "ro_MD", + "mon": "mn", + "mri": "mi", + "ms_Latn_BN": "ms_BN", + "ms_Latn_MY": "ms_MY", + "ms_Latn_SG": "ms_SG", + "msa": "ms", + "mup": "raj", + "mya": "my", + "nau": "na", + "nav": "nv", + "nbl": "nr", + "nde": "nd", + "ndo": "ng", + "nep": "ne", + "nld": "nl", + "nno": "nn", + "no": "nb", + "no_BOKMAL": "nb", + "no_NYNORSK": "nn", + "no_bok": "nb", + "no_nyn": "nn", + "nob": "nb", + "nor": "nb", + "npi": "ne", + "nya": "ny", + "oci": "oc", + "ojg": "oj", + "oji": "oj", + "ori": "or", + "orm": "om", + "ory": "or", + "oss": "os", + "pa_IN": "pa_Guru_IN", + "pa_PK": "pa_Arab_PK", + "pan": "pa", + "pbu": "ps", + "per": "fa", + "pes": "fa", + "pli": "pi", + "plt": "mg", + "pnb": "lah", + "pol": "pl", + "por": "pt", + "prs": "fa_AF", + "pus": "ps", + "que": "qu", + "quz": "qu", + "rmy": "rom", + "roh": "rm", + "ron": "ro", + "rum": "ro", + "run": "rn", + "rus": "ru", + "sag": "sg", + "san": "sa", + "scc": "sr", + "scr": "hr", + "sgn_BE_FR": "sfb", + "sgn_BE_NL": "vgt", + "sgn_CH_DE": "sgg", + "sh": "sr_Latn", + "shi_MA": "shi_Tfng_MA", + "sin": "si", + "slk": "sk", + "slo": "sk", + "slv": "sl", + "sme": "se", + "smo": "sm", + "sna": "sn", + "snd": "sd", + "som": "so", + "sot": "st", + "spa": "es", + "spy": "kln", + "sqi": "sq", + "sr_BA": "sr_Cyrl_BA", + "sr_ME": "sr_Latn_ME", + "sr_RS": "sr_Cyrl_RS", + "sr_XK": "sr_Cyrl_XK", + "src": "sc", + "srd": "sc", + "srp": "sr", + "ssw": "ss", + "sun": "su", + "swa": "sw", + "swc": "sw_CD", + "swe": "sv", + "swh": "sw", + "tah": "ty", + "tam": "ta", + "tat": "tt", + "tel": "te", + "tgk": "tg", + "tgl": "fil", + "tha": "th", + "tib": "bo", + "tir": "ti", + "tl": "fil", + "ton": "to", + "tsn": "tn", + "tso": "ts", + "ttq": "tmh", + "tuk": "tk", + "tur": "tr", + "tw": "ak", + "twi": "ak", + "tzm_Latn_MA": "tzm_MA", + "ug_Arab_CN": "ug_CN", + "uig": "ug", + "ukr": "uk", + "umu": "del", + "urd": "ur", + "uz_AF": "uz_Arab_AF", + "uz_UZ": "uz_Latn_UZ", + "uzb": "uz", + "uzn": "uz", + "vai_LR": "vai_Vaii_LR", + "ven": "ve", + "vie": "vi", + "vol": "vo", + "wel": "cy", + "wln": "wa", + "wol": "wo", + "xho": "xh", + "xpe": "kpe", + "xsl": "den", + "ydd": "yi", + "yid": "yi", + "yor": "yo", + "yue_CN": "yue_Hans_CN", + "yue_HK": "yue_Hant_HK", + "zai": "zap", + "zh_CN": "zh_Hans_CN", + "zh_HK": "zh_Hant_HK", + "zh_MO": "zh_Hant_MO", + "zh_SG": "zh_Hans_SG", + "zh_TW": "zh_Hant_TW", + "zh_guoyu": "zh", + "zh_hakka": "hak", + "zh_min_nan": "nan", + "zh_xiang": "hsn", + "zha": "za", + "zho": "zh", + "zsm": "ms", + "zul": "zu", + "zyb": "za" + }, "Alpha2ToAlpha3": { "aa": "aar", "ab": "abk", diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractCurrencyDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractCurrencyDataProviderTest.php index 7387e0e47d..efbc45cd6e 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractCurrencyDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractCurrencyDataProviderTest.php @@ -77,6 +77,7 @@ abstract class AbstractCurrencyDataProviderTest extends AbstractDataProviderTest 'BUK', 'BWP', 'BYB', + 'BYN', 'BYR', 'BZD', 'CAD', @@ -310,249 +311,250 @@ abstract class AbstractCurrencyDataProviderTest extends AbstractDataProviderTest ); protected static $alpha3ToNumeric = array( - 'ADP' => 20, - 'AED' => 784, 'AFA' => 4, - 'AFN' => 971, 'ALL' => 8, - 'AMD' => 51, - 'ANG' => 532, - 'AOA' => 973, + 'DZD' => 12, + 'ADP' => 20, 'AON' => 24, - 'AOR' => 982, - 'ARA' => 32, - 'ARP' => 32, - 'ARS' => 32, - 'ATS' => 40, - 'AUD' => 36, - 'AWG' => 533, 'AZM' => 31, - 'AZN' => 944, - 'BAD' => 70, - 'BAM' => 977, - 'BBD' => 52, - 'BDT' => 50, - 'BEC' => 993, - 'BEF' => 56, - 'BEL' => 992, - 'BGL' => 100, - 'BGN' => 975, - 'BHD' => 48, - 'BIF' => 108, - 'BMD' => 60, - 'BND' => 96, - 'BOB' => 68, - 'BOV' => 984, - 'BRC' => 76, - 'BRE' => 76, - 'BRL' => 986, - 'BRN' => 76, - 'BRR' => 987, + 'ARS' => 32, + 'ARP' => 32, + 'ARA' => 32, + 'AUD' => 36, + 'ATS' => 40, 'BSD' => 44, + 'BHD' => 48, + 'BDT' => 50, + 'AMD' => 51, + 'BBD' => 52, + 'BEF' => 56, + 'BMD' => 60, 'BTN' => 64, + 'BOB' => 68, + 'BAD' => 70, 'BWP' => 72, - 'BYB' => 112, - 'BYR' => 974, + 'BRN' => 76, + 'BRE' => 76, + 'BRC' => 76, 'BZD' => 84, + 'SBD' => 90, + 'BND' => 96, + 'BGL' => 100, + 'MMK' => 104, + 'BIF' => 108, + 'BYB' => 112, + 'KHR' => 116, 'CAD' => 124, - 'CDF' => 976, - 'CHE' => 947, - 'CHF' => 756, - 'CHW' => 948, - 'CLF' => 990, + 'CVE' => 132, + 'KYD' => 136, + 'LKR' => 144, 'CLP' => 152, 'CNY' => 156, 'COP' => 170, - 'COU' => 970, + 'KMF' => 174, + 'ZRN' => 180, + 'ZRZ' => 180, 'CRC' => 188, - 'CSD' => 891, - 'CSK' => 200, - 'CUC' => 931, + 'HRK' => 191, + 'HRD' => 191, 'CUP' => 192, - 'CVE' => 132, 'CYP' => 196, + 'CSK' => 200, 'CZK' => 203, - 'DDM' => 278, - 'DEM' => 276, - 'DJF' => 262, 'DKK' => 208, 'DOP' => 214, - 'DZD' => 12, 'ECS' => 218, - 'ECV' => 983, - 'EEK' => 233, - 'EGP' => 818, - 'ERN' => 232, - 'ESA' => 996, - 'ESB' => 995, - 'ESP' => 724, - 'ETB' => 230, - 'EUR' => 978, - 'FIM' => 246, - 'FJD' => 242, - 'FKP' => 238, - 'FRF' => 250, - 'GBP' => 826, - 'GEK' => 268, - 'GEL' => 981, - 'GHC' => 288, - 'GHS' => 936, - 'GIP' => 292, - 'GMD' => 270, - 'GNF' => 324, + 'SVC' => 222, 'GQE' => 226, + 'ETB' => 230, + 'ERN' => 232, + 'EEK' => 233, + 'FKP' => 238, + 'FJD' => 242, + 'FIM' => 246, + 'FRF' => 250, + 'DJF' => 262, + 'GEK' => 268, + 'GMD' => 270, + 'DEM' => 276, + 'DDM' => 278, + 'GHC' => 288, + 'GIP' => 292, 'GRD' => 300, 'GTQ' => 320, - 'GWP' => 624, + 'GNF' => 324, 'GYD' => 328, - 'HKD' => 344, - 'HNL' => 340, - 'HRD' => 191, - 'HRK' => 191, 'HTG' => 332, + 'HNL' => 340, + 'HKD' => 344, 'HUF' => 348, + 'ISK' => 352, + 'INR' => 356, 'IDR' => 360, + 'IRR' => 364, + 'IQD' => 368, 'IEP' => 372, 'ILS' => 376, - 'INR' => 356, - 'IQD' => 368, - 'IRR' => 364, - 'ISK' => 352, 'ITL' => 380, 'JMD' => 388, - 'JOD' => 400, 'JPY' => 392, + 'KZT' => 398, + 'JOD' => 400, 'KES' => 404, - 'KGS' => 417, - 'KHR' => 116, - 'KMF' => 174, 'KPW' => 408, 'KRW' => 410, 'KWD' => 414, - 'KYD' => 136, - 'KZT' => 398, + 'KGS' => 417, 'LAK' => 418, 'LBP' => 422, - 'LKR' => 144, - 'LRD' => 430, 'LSL' => 426, - 'LTL' => 440, - 'LTT' => 440, - 'LUC' => 989, - 'LUF' => 442, - 'LUL' => 988, 'LVL' => 428, 'LVR' => 428, + 'LRD' => 430, 'LYD' => 434, - 'MAD' => 504, - 'MDL' => 498, - 'MGA' => 969, - 'MGF' => 450, - 'MKD' => 807, - 'MLF' => 466, - 'MMK' => 104, - 'MNT' => 496, + 'LTT' => 440, + 'LTL' => 440, + 'LUF' => 442, 'MOP' => 446, - 'MRO' => 478, - 'MTL' => 470, - 'MUR' => 480, - 'MVR' => 462, + 'MGF' => 450, 'MWK' => 454, - 'MXN' => 484, - 'MXV' => 979, 'MYR' => 458, + 'MVR' => 462, + 'MLF' => 466, + 'MTL' => 470, + 'MRO' => 478, + 'MUR' => 480, + 'MXN' => 484, + 'MNT' => 496, + 'MDL' => 498, + 'MAD' => 504, 'MZM' => 508, - 'MZN' => 943, - 'NAD' => 516, - 'NGN' => 566, - 'NIO' => 558, - 'NLG' => 528, - 'NOK' => 578, - 'NPR' => 524, - 'NZD' => 554, 'OMR' => 512, + 'NAD' => 516, + 'NPR' => 524, + 'NLG' => 528, + 'ANG' => 532, + 'AWG' => 533, + 'VUV' => 548, + 'NZD' => 554, + 'NIO' => 558, + 'NGN' => 566, + 'NOK' => 578, + 'PKR' => 586, 'PAB' => 590, + 'PGK' => 598, + 'PYG' => 600, 'PEI' => 604, 'PEN' => 604, 'PES' => 604, - 'PGK' => 598, 'PHP' => 608, - 'PKR' => 586, - 'PLN' => 985, 'PLZ' => 616, 'PTE' => 620, - 'PYG' => 600, + 'GWP' => 624, + 'TPE' => 626, 'QAR' => 634, 'ROL' => 642, - 'RON' => 946, - 'RSD' => 941, 'RUB' => 643, - 'RUR' => 810, 'RWF' => 646, - 'SAR' => 682, - 'SBD' => 90, - 'SCR' => 690, - 'SDD' => 736, - 'SDG' => 938, - 'SEK' => 752, - 'SGD' => 702, 'SHP' => 654, - 'SIT' => 705, - 'SKK' => 703, - 'SLL' => 694, - 'SOS' => 706, - 'SRD' => 968, - 'SRG' => 740, - 'SSP' => 728, 'STD' => 678, - 'SVC' => 222, - 'SYP' => 760, + 'SAR' => 682, + 'SCR' => 690, + 'SLL' => 694, + 'SGD' => 702, + 'SKK' => 703, + 'VND' => 704, + 'SIT' => 705, + 'SOS' => 706, + 'ZAR' => 710, + 'ZWD' => 716, + 'YDD' => 720, + 'ESP' => 724, + 'SSP' => 728, + 'SDD' => 736, + 'SRG' => 740, 'SZL' => 748, - 'THB' => 764, + 'SEK' => 752, + 'CHF' => 756, + 'SYP' => 760, 'TJR' => 762, - 'TJS' => 972, - 'TMM' => 795, - 'TMT' => 934, - 'TND' => 788, + 'THB' => 764, 'TOP' => 776, - 'TPE' => 626, - 'TRL' => 792, - 'TRY' => 949, 'TTD' => 780, - 'TWD' => 901, - 'TZS' => 834, - 'UAH' => 980, - 'UAK' => 804, + 'AED' => 784, + 'TND' => 788, + 'TRL' => 792, + 'TMM' => 795, 'UGX' => 800, + 'UAK' => 804, + 'MKD' => 807, + 'RUR' => 810, + 'EGP' => 818, + 'GBP' => 826, + 'TZS' => 834, 'USD' => 840, - 'USN' => 997, - 'USS' => 998, - 'UYI' => 940, 'UYU' => 858, 'UZS' => 860, 'VEB' => 862, - 'VEF' => 937, - 'VND' => 704, - 'VUV' => 548, 'WST' => 882, + 'YER' => 886, + 'YUN' => 890, + 'CSD' => 891, + 'YUM' => 891, + 'ZMK' => 894, + 'TWD' => 901, + 'CUC' => 931, + 'ZWL' => 932, + 'BYN' => 933, + 'TMT' => 934, + 'ZWR' => 935, + 'GHS' => 936, + 'VEF' => 937, + 'SDG' => 938, + 'UYI' => 940, + 'RSD' => 941, + 'MZN' => 943, + 'AZN' => 944, + 'RON' => 946, + 'CHE' => 947, + 'CHW' => 948, + 'TRY' => 949, 'XAF' => 950, 'XCD' => 951, - 'XEU' => 954, 'XOF' => 952, 'XPF' => 953, - 'YDD' => 720, - 'YER' => 886, - 'YUM' => 891, - 'YUN' => 890, - 'ZAL' => 991, - 'ZAR' => 710, - 'ZMK' => 894, + 'XEU' => 954, 'ZMW' => 967, - 'ZRN' => 180, - 'ZRZ' => 180, - 'ZWD' => 716, - 'ZWL' => 932, - 'ZWR' => 935, + 'SRD' => 968, + 'MGA' => 969, + 'COU' => 970, + 'AFN' => 971, + 'TJS' => 972, + 'AOA' => 973, + 'BYR' => 974, + 'BGN' => 975, + 'CDF' => 976, + 'BAM' => 977, + 'EUR' => 978, + 'MXV' => 979, + 'UAH' => 980, + 'GEL' => 981, + 'AOR' => 982, + 'ECV' => 983, + 'BOV' => 984, + 'PLN' => 985, + 'BRL' => 986, + 'BRR' => 987, + 'LUL' => 988, + 'LUC' => 989, + 'CLF' => 990, + 'ZAL' => 991, + 'BEL' => 992, + 'BEC' => 993, + 'ESB' => 995, + 'ESA' => 996, + 'USN' => 997, + 'USS' => 998, ); /** @@ -595,7 +597,7 @@ abstract class AbstractCurrencyDataProviderTest extends AbstractDataProviderTest $collator = new \Collator($displayLocale); $collator->asort($names); - $this->assertSame($sortedNames, $names); + $this->assertEquals($sortedNames, $names); } public function testGetNamesDefaultLocale() diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractDataProviderTest.php index e852c1eb34..4af76a04ac 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractDataProviderTest.php @@ -27,704 +27,596 @@ abstract class AbstractDataProviderTest extends TestCase // providers. private static $locales = array( - 'af', - 'af_NA', - 'af_ZA', - 'agq', - 'agq_CM', - 'ak', - 'ak_GH', - 'am', - 'am_ET', - 'ar', - 'ar_001', - 'ar_AE', - 'ar_BH', - 'ar_DJ', - 'ar_DZ', - 'ar_EG', - 'ar_EH', - 'ar_ER', - 'ar_IL', - 'ar_IQ', - 'ar_JO', - 'ar_KM', - 'ar_KW', - 'ar_LB', - 'ar_LY', - 'ar_MA', - 'ar_MR', - 'ar_OM', - 'ar_PS', - 'ar_QA', - 'ar_SA', - 'ar_SD', - 'ar_SO', - 'ar_SS', - 'ar_SY', - 'ar_TD', - 'ar_TN', - 'ar_YE', - 'as', - 'as_IN', - 'asa', - 'asa_TZ', - 'az', - 'az_AZ', - 'az_Cyrl', - 'az_Cyrl_AZ', - 'az_Latn', - 'az_Latn_AZ', - 'bas', - 'bas_CM', - 'be', - 'be_BY', - 'bem', - 'bem_ZM', - 'bez', - 'bez_TZ', - 'bg', - 'bg_BG', - 'bm', - 'bm_ML', - 'bn', - 'bn_BD', - 'bn_IN', - 'bo', - 'bo_CN', - 'bo_IN', - 'br', - 'br_FR', - 'brx', - 'brx_IN', - 'bs', - 'bs_BA', - 'bs_Cyrl', - 'bs_Cyrl_BA', - 'bs_Latn', - 'bs_Latn_BA', - 'ca', - 'ca_AD', - 'ca_ES', - 'ca_FR', - 'ca_IT', - 'cgg', - 'cgg_UG', - 'chr', - 'chr_US', - 'cs', - 'cs_CZ', - 'cy', - 'cy_GB', - 'da', - 'da_DK', - 'da_GL', - 'dav', - 'dav_KE', - 'de', - 'de_AT', - 'de_BE', - 'de_CH', - 'de_DE', - 'de_LI', - 'de_LU', - 'dje', - 'dje_NE', - 'dua', - 'dua_CM', - 'dyo', - 'dyo_SN', - 'dz', - 'dz_BT', - 'ebu', - 'ebu_KE', - 'ee', - 'ee_GH', - 'ee_TG', - 'el', - 'el_CY', - 'el_GR', - 'en', - 'en_001', - 'en_150', - 'en_AG', - 'en_AI', - 'en_AS', - 'en_AU', - 'en_BB', - 'en_BE', - 'en_BM', - 'en_BS', - 'en_BW', - 'en_BZ', - 'en_CA', - 'en_CC', - 'en_CK', - 'en_CM', - 'en_CX', - 'en_DG', - 'en_DM', - 'en_ER', - 'en_FJ', - 'en_FK', - 'en_FM', - 'en_GB', - 'en_GD', - 'en_GG', - 'en_GH', - 'en_GI', - 'en_GM', - 'en_GU', - 'en_GY', - 'en_HK', - 'en_IE', - 'en_IM', - 'en_IN', - 'en_IO', - 'en_JE', - 'en_JM', - 'en_KE', - 'en_KI', - 'en_KN', - 'en_KY', - 'en_LC', - 'en_LR', - 'en_LS', - 'en_MG', - 'en_MH', - 'en_MO', - 'en_MP', - 'en_MS', - 'en_MT', - 'en_MU', - 'en_MW', - 'en_NA', - 'en_NF', - 'en_NG', - 'en_NH', - 'en_NR', - 'en_NU', - 'en_NZ', - 'en_PG', - 'en_PH', - 'en_PK', - 'en_PN', - 'en_PR', - 'en_PW', - 'en_RH', - 'en_RW', - 'en_SB', - 'en_SC', - 'en_SD', - 'en_SG', - 'en_SH', - 'en_SL', - 'en_SS', - 'en_SX', - 'en_SZ', - 'en_TC', - 'en_TK', - 'en_TO', - 'en_TT', - 'en_TV', - 'en_TZ', - 'en_UG', - 'en_UM', - 'en_US', - 'en_US_POSIX', - 'en_VC', - 'en_VG', - 'en_VI', - 'en_VU', - 'en_WS', - 'en_ZA', - 'en_ZM', - 'en_ZW', - 'eo', - 'es', - 'es_419', - 'es_AR', - 'es_BO', - 'es_CL', - 'es_CO', - 'es_CR', - 'es_CU', - 'es_DO', - 'es_EA', - 'es_EC', - 'es_ES', - 'es_GQ', - 'es_GT', - 'es_HN', - 'es_IC', - 'es_MX', - 'es_NI', - 'es_PA', - 'es_PE', - 'es_PH', - 'es_PR', - 'es_PY', - 'es_SV', - 'es_US', - 'es_UY', - 'es_VE', - 'et', - 'et_EE', - 'eu', - 'eu_ES', - 'ewo', - 'ewo_CM', - 'fa', - 'fa_AF', - 'fa_IR', - 'ff', - 'ff_SN', - 'fi', - 'fi_FI', - 'fil', - 'fil_PH', - 'fo', - 'fo_FO', - 'fr', - 'fr_BE', - 'fr_BF', - 'fr_BI', - 'fr_BJ', - 'fr_BL', - 'fr_CA', - 'fr_CD', - 'fr_CF', - 'fr_CG', - 'fr_CH', - 'fr_CI', - 'fr_CM', - 'fr_DJ', - 'fr_DZ', - 'fr_FR', - 'fr_GA', - 'fr_GF', - 'fr_GN', - 'fr_GP', - 'fr_GQ', - 'fr_HT', - 'fr_KM', - 'fr_LU', - 'fr_MA', - 'fr_MC', - 'fr_MF', - 'fr_MG', - 'fr_ML', - 'fr_MQ', - 'fr_MR', - 'fr_MU', - 'fr_NC', - 'fr_NE', - 'fr_PF', - 'fr_PM', - 'fr_RE', - 'fr_RW', - 'fr_SC', - 'fr_SN', - 'fr_SY', - 'fr_TD', - 'fr_TG', - 'fr_TN', - 'fr_VU', - 'fr_WF', - 'fr_YT', - 'ga', - 'ga_IE', - 'gl', - 'gl_ES', - 'gsw', - 'gsw_CH', - 'gsw_LI', - 'gu', - 'gu_IN', - 'guz', - 'guz_KE', - 'gv', - 'gv_IM', - 'ha', - 'ha_GH', - 'ha_Latn', - 'ha_Latn_GH', - 'ha_Latn_NE', - 'ha_Latn_NG', - 'ha_NE', - 'ha_NG', - 'haw', - 'haw_US', - 'he', - 'he_IL', - 'hi', - 'hi_IN', - 'hr', - 'hr_BA', - 'hr_HR', - 'hu', - 'hu_HU', - 'hy', - 'hy_AM', - 'id', - 'id_ID', - 'ig', - 'ig_NG', - 'ii', - 'ii_CN', - 'in', - 'in_ID', - 'is', - 'is_IS', - 'it', - 'it_CH', - 'it_IT', - 'it_SM', - 'iw', - 'iw_IL', - 'ja', - 'ja_JP', - 'ja_JP_TRADITIONAL', - 'jgo', - 'jgo_CM', - 'jmc', - 'jmc_TZ', - 'ka', - 'ka_GE', - 'kab', - 'kab_DZ', - 'kam', - 'kam_KE', - 'kde', - 'kde_TZ', - 'kea', - 'kea_CV', - 'khq', - 'khq_ML', - 'ki', - 'ki_KE', - 'kk', - 'kk_Cyrl', - 'kk_Cyrl_KZ', - 'kk_KZ', - 'kkj', - 'kkj_CM', - 'kl', - 'kl_GL', - 'kln', - 'kln_KE', - 'km', - 'km_KH', - 'kn', - 'kn_IN', - 'ko', - 'ko_KP', - 'ko_KR', - 'kok', - 'kok_IN', - 'ks', - 'ks_Arab', - 'ks_Arab_IN', - 'ks_IN', - 'ksb', - 'ksb_TZ', - 'ksf', - 'ksf_CM', - 'kw', - 'kw_GB', - 'ky', - 'ky_Cyrl', - 'ky_Cyrl_KG', - 'ky_KG', - 'lag', - 'lag_TZ', - 'lg', - 'lg_UG', - 'lkt', - 'lkt_US', - 'ln', - 'ln_AO', - 'ln_CD', - 'ln_CF', - 'ln_CG', - 'lo', - 'lo_LA', - 'lt', - 'lt_LT', - 'lu', - 'lu_CD', - 'luo', - 'luo_KE', - 'luy', - 'luy_KE', - 'lv', - 'lv_LV', - 'mas', - 'mas_KE', - 'mas_TZ', - 'mer', - 'mer_KE', - 'mfe', - 'mfe_MU', - 'mg', - 'mg_MG', - 'mgh', - 'mgh_MZ', - 'mgo', - 'mgo_CM', - 'mk', - 'mk_MK', - 'ml', - 'ml_IN', - 'mn', - 'mn_Cyrl', - 'mn_Cyrl_MN', - 'mn_MN', - 'mo', - 'mr', - 'mr_IN', - 'ms', - 'ms_BN', - 'ms_Latn', - 'ms_Latn_BN', - 'ms_Latn_MY', - 'ms_Latn_SG', - 'ms_MY', - 'ms_SG', - 'mt', - 'mt_MT', - 'mua', - 'mua_CM', - 'my', - 'my_MM', - 'naq', - 'naq_NA', - 'nb', - 'nb_NO', - 'nb_SJ', - 'nd', - 'nd_ZW', - 'ne', - 'ne_IN', - 'ne_NP', - 'nl', - 'nl_AW', - 'nl_BE', - 'nl_BQ', - 'nl_CW', - 'nl_NL', - 'nl_SR', - 'nl_SX', - 'nmg', - 'nmg_CM', - 'nn', - 'nn_NO', - 'nnh', - 'nnh_CM', - 'no', - 'no_NO', - 'no_NO_NY', - 'nus', - 'nus_SD', - 'nyn', - 'nyn_UG', - 'om', - 'om_ET', - 'om_KE', - 'or', - 'or_IN', - 'pa', - 'pa_Arab', - 'pa_Arab_PK', - 'pa_Guru', - 'pa_Guru_IN', - 'pa_IN', - 'pa_PK', - 'pl', - 'pl_PL', - 'ps', - 'ps_AF', - 'pt', - 'pt_AO', - 'pt_BR', - 'pt_CV', - 'pt_GW', - 'pt_MO', - 'pt_MZ', - 'pt_PT', - 'pt_ST', - 'pt_TL', - 'rm', - 'rm_CH', - 'rn', - 'rn_BI', - 'ro', - 'ro_MD', - 'ro_RO', - 'rof', - 'rof_TZ', - 'ru', - 'ru_BY', - 'ru_KG', - 'ru_KZ', - 'ru_MD', - 'ru_RU', - 'ru_UA', - 'rw', - 'rw_RW', - 'rwk', - 'rwk_TZ', - 'saq', - 'saq_KE', - 'sbp', - 'sbp_TZ', - 'seh', - 'seh_MZ', - 'ses', - 'ses_ML', - 'sg', - 'sg_CF', - 'sh', - 'sh_BA', - 'sh_CS', - 'sh_YU', - 'shi', - 'shi_Latn', - 'shi_Latn_MA', - 'shi_MA', - 'shi_Tfng', - 'shi_Tfng_MA', - 'si', - 'si_LK', - 'sk', - 'sk_SK', - 'sl', - 'sl_SI', - 'sn', - 'sn_ZW', - 'so', - 'so_DJ', - 'so_ET', - 'so_KE', - 'so_SO', - 'sq', - 'sq_AL', - 'sq_MK', - 'sq_XK', - 'sr', - 'sr_BA', - 'sr_CS', - 'sr_Cyrl', - 'sr_Cyrl_BA', - 'sr_Cyrl_CS', - 'sr_Cyrl_ME', - 'sr_Cyrl_RS', - 'sr_Cyrl_XK', - 'sr_Cyrl_YU', - 'sr_Latn', - 'sr_Latn_BA', - 'sr_Latn_CS', - 'sr_Latn_ME', - 'sr_Latn_RS', - 'sr_Latn_XK', - 'sr_Latn_YU', - 'sr_ME', - 'sr_RS', - 'sr_XK', - 'sr_YU', - 'sv', - 'sv_AX', - 'sv_FI', - 'sv_SE', - 'sw', - 'sw_KE', - 'sw_TZ', - 'sw_UG', - 'swc', - 'swc_CD', - 'ta', - 'ta_IN', - 'ta_LK', - 'ta_MY', - 'ta_SG', - 'te', - 'te_IN', - 'teo', - 'teo_KE', - 'teo_UG', - 'th', - 'th_TH', - 'th_TH_TRADITIONAL', - 'ti', - 'ti_ER', - 'ti_ET', - 'tl', - 'tl_PH', - 'to', - 'to_TO', - 'tr', - 'tr_CY', - 'tr_TR', - 'twq', - 'twq_NE', - 'tzm', - 'tzm_Latn', - 'tzm_Latn_MA', - 'tzm_MA', - 'ug', - 'ug_Arab', - 'ug_Arab_CN', - 'ug_CN', - 'uk', - 'uk_UA', - 'ur', - 'ur_IN', - 'ur_PK', - 'uz', - 'uz_AF', - 'uz_Arab', - 'uz_Arab_AF', - 'uz_Cyrl', - 'uz_Cyrl_UZ', - 'uz_Latn', - 'uz_Latn_UZ', - 'uz_UZ', - 'vai', - 'vai_LR', - 'vai_Latn', - 'vai_Latn_LR', - 'vai_Vaii', - 'vai_Vaii_LR', - 'vi', - 'vi_VN', - 'vun', - 'vun_TZ', - 'xog', - 'xog_UG', - 'yav', - 'yav_CM', - 'yo', - 'yo_BJ', - 'yo_NG', - 'zgh', - 'zgh_MA', - 'zh', - 'zh_CN', - 'zh_HK', - 'zh_Hans', - 'zh_Hans_CN', - 'zh_Hans_HK', - 'zh_Hans_MO', - 'zh_Hans_SG', - 'zh_Hant', - 'zh_Hant_HK', - 'zh_Hant_MO', - 'zh_Hant_TW', - 'zh_MO', - 'zh_SG', - 'zh_TW', - 'zu', - 'zu_ZA', + 'af', + 'af_NA', + 'af_ZA', + 'ak', + 'ak_GH', + 'am', + 'am_ET', + 'ar', + 'ar_001', + 'ar_AE', + 'ar_BH', + 'ar_DJ', + 'ar_DZ', + 'ar_EG', + 'ar_EH', + 'ar_ER', + 'ar_IL', + 'ar_IQ', + 'ar_JO', + 'ar_KM', + 'ar_KW', + 'ar_LB', + 'ar_LY', + 'ar_MA', + 'ar_MR', + 'ar_OM', + 'ar_PS', + 'ar_QA', + 'ar_SA', + 'ar_SD', + 'ar_SO', + 'ar_SS', + 'ar_SY', + 'ar_TD', + 'ar_TN', + 'ar_YE', + 'as', + 'as_IN', + 'az', + 'az_AZ', + 'az_Cyrl', + 'az_Cyrl_AZ', + 'az_Latn', + 'az_Latn_AZ', + 'be', + 'be_BY', + 'bg', + 'bg_BG', + 'bm', + 'bm_ML', + 'bn', + 'bn_BD', + 'bn_IN', + 'bo', + 'bo_CN', + 'bo_IN', + 'br', + 'br_FR', + 'bs', + 'bs_BA', + 'bs_Cyrl', + 'bs_Cyrl_BA', + 'bs_Latn', + 'bs_Latn_BA', + 'ca', + 'ca_AD', + 'ca_ES', + 'ca_FR', + 'ca_IT', + 'ce', + 'ce_RU', + 'cs', + 'cs_CZ', + 'cy', + 'cy_GB', + 'da', + 'da_DK', + 'da_GL', + 'de', + 'de_AT', + 'de_BE', + 'de_CH', + 'de_DE', + 'de_IT', + 'de_LI', + 'de_LU', + 'dz', + 'dz_BT', + 'ee', + 'ee_GH', + 'ee_TG', + 'el', + 'el_CY', + 'el_GR', + 'en', + 'en_001', + 'en_150', + 'en_AG', + 'en_AI', + 'en_AS', + 'en_AT', + 'en_AU', + 'en_BB', + 'en_BE', + 'en_BI', + 'en_BM', + 'en_BS', + 'en_BW', + 'en_BZ', + 'en_CA', + 'en_CC', + 'en_CH', + 'en_CK', + 'en_CM', + 'en_CX', + 'en_CY', + 'en_DE', + 'en_DG', + 'en_DK', + 'en_DM', + 'en_ER', + 'en_FI', + 'en_FJ', + 'en_FK', + 'en_FM', + 'en_GB', + 'en_GD', + 'en_GG', + 'en_GH', + 'en_GI', + 'en_GM', + 'en_GU', + 'en_GY', + 'en_HK', + 'en_IE', + 'en_IL', + 'en_IM', + 'en_IN', + 'en_IO', + 'en_JE', + 'en_JM', + 'en_KE', + 'en_KI', + 'en_KN', + 'en_KY', + 'en_LC', + 'en_LR', + 'en_LS', + 'en_MG', + 'en_MH', + 'en_MO', + 'en_MP', + 'en_MS', + 'en_MT', + 'en_MU', + 'en_MW', + 'en_MY', + 'en_NA', + 'en_NF', + 'en_NG', + 'en_NH', + 'en_NL', + 'en_NR', + 'en_NU', + 'en_NZ', + 'en_PG', + 'en_PH', + 'en_PK', + 'en_PN', + 'en_PR', + 'en_PW', + 'en_RH', + 'en_RW', + 'en_SB', + 'en_SC', + 'en_SD', + 'en_SE', + 'en_SG', + 'en_SH', + 'en_SI', + 'en_SL', + 'en_SS', + 'en_SX', + 'en_SZ', + 'en_TC', + 'en_TK', + 'en_TO', + 'en_TT', + 'en_TV', + 'en_TZ', + 'en_UG', + 'en_UM', + 'en_US', + 'en_US_POSIX', + 'en_VC', + 'en_VG', + 'en_VI', + 'en_VU', + 'en_WS', + 'en_ZA', + 'en_ZM', + 'en_ZW', + 'eo', + 'es', + 'es_419', + 'es_AR', + 'es_BO', + 'es_BR', + 'es_BZ', + 'es_CL', + 'es_CO', + 'es_CR', + 'es_CU', + 'es_DO', + 'es_EA', + 'es_EC', + 'es_ES', + 'es_GQ', + 'es_GT', + 'es_HN', + 'es_IC', + 'es_MX', + 'es_NI', + 'es_PA', + 'es_PE', + 'es_PH', + 'es_PR', + 'es_PY', + 'es_SV', + 'es_US', + 'es_UY', + 'es_VE', + 'et', + 'et_EE', + 'eu', + 'eu_ES', + 'fa', + 'fa_AF', + 'fa_IR', + 'ff', + 'ff_CM', + 'ff_GN', + 'ff_MR', + 'ff_SN', + 'fi', + 'fi_FI', + 'fo', + 'fo_DK', + 'fo_FO', + 'fr', + 'fr_BE', + 'fr_BF', + 'fr_BI', + 'fr_BJ', + 'fr_BL', + 'fr_CA', + 'fr_CD', + 'fr_CF', + 'fr_CG', + 'fr_CH', + 'fr_CI', + 'fr_CM', + 'fr_DJ', + 'fr_DZ', + 'fr_FR', + 'fr_GA', + 'fr_GF', + 'fr_GN', + 'fr_GP', + 'fr_GQ', + 'fr_HT', + 'fr_KM', + 'fr_LU', + 'fr_MA', + 'fr_MC', + 'fr_MF', + 'fr_MG', + 'fr_ML', + 'fr_MQ', + 'fr_MR', + 'fr_MU', + 'fr_NC', + 'fr_NE', + 'fr_PF', + 'fr_PM', + 'fr_RE', + 'fr_RW', + 'fr_SC', + 'fr_SN', + 'fr_SY', + 'fr_TD', + 'fr_TG', + 'fr_TN', + 'fr_VU', + 'fr_WF', + 'fr_YT', + 'fy', + 'fy_NL', + 'ga', + 'ga_IE', + 'gd', + 'gd_GB', + 'gl', + 'gl_ES', + 'gu', + 'gu_IN', + 'gv', + 'gv_IM', + 'ha', + 'ha_GH', + 'ha_NE', + 'ha_NG', + 'he', + 'he_IL', + 'hi', + 'hi_IN', + 'hr', + 'hr_BA', + 'hr_HR', + 'hu', + 'hu_HU', + 'hy', + 'hy_AM', + 'id', + 'id_ID', + 'ig', + 'ig_NG', + 'ii', + 'ii_CN', + 'in', + 'in_ID', + 'is', + 'is_IS', + 'it', + 'it_CH', + 'it_IT', + 'it_SM', + 'it_VA', + 'iw', + 'iw_IL', + 'ja', + 'ja_JP', + 'ja_JP_TRADITIONAL', + 'ka', + 'ka_GE', + 'ki', + 'ki_KE', + 'kk', + 'kk_KZ', + 'kl', + 'kl_GL', + 'km', + 'km_KH', + 'kn', + 'kn_IN', + 'ko', + 'ko_KP', + 'ko_KR', + 'ks', + 'ks_IN', + 'kw', + 'kw_GB', + 'ky', + 'ky_KG', + 'lb', + 'lb_LU', + 'lg', + 'lg_UG', + 'ln', + 'ln_AO', + 'ln_CD', + 'ln_CF', + 'ln_CG', + 'lo', + 'lo_LA', + 'lt', + 'lt_LT', + 'lu', + 'lu_CD', + 'lv', + 'lv_LV', + 'mg', + 'mg_MG', + 'mk', + 'mk_MK', + 'ml', + 'ml_IN', + 'mn', + 'mn_MN', + 'mo', + 'mr', + 'mr_IN', + 'ms', + 'ms_BN', + 'ms_MY', + 'ms_SG', + 'mt', + 'mt_MT', + 'my', + 'my_MM', + 'nb', + 'nb_NO', + 'nb_SJ', + 'nd', + 'nd_ZW', + 'ne', + 'ne_IN', + 'ne_NP', + 'nl', + 'nl_AW', + 'nl_BE', + 'nl_BQ', + 'nl_CW', + 'nl_NL', + 'nl_SR', + 'nl_SX', + 'nn', + 'nn_NO', + 'no', + 'no_NO', + 'no_NO_NY', + 'om', + 'om_ET', + 'om_KE', + 'or', + 'or_IN', + 'os', + 'os_GE', + 'os_RU', + 'pa', + 'pa_Arab', + 'pa_Arab_PK', + 'pa_Guru', + 'pa_Guru_IN', + 'pa_IN', + 'pa_PK', + 'pl', + 'pl_PL', + 'ps', + 'ps_AF', + 'pt', + 'pt_AO', + 'pt_BR', + 'pt_CH', + 'pt_CV', + 'pt_GQ', + 'pt_GW', + 'pt_LU', + 'pt_MO', + 'pt_MZ', + 'pt_PT', + 'pt_ST', + 'pt_TL', + 'qu', + 'qu_BO', + 'qu_EC', + 'qu_PE', + 'rm', + 'rm_CH', + 'rn', + 'rn_BI', + 'ro', + 'ro_MD', + 'ro_RO', + 'ru', + 'ru_BY', + 'ru_KG', + 'ru_KZ', + 'ru_MD', + 'ru_RU', + 'ru_UA', + 'rw', + 'rw_RW', + 'se', + 'se_FI', + 'se_NO', + 'se_SE', + 'sg', + 'sg_CF', + 'sh', + 'sh_BA', + 'sh_CS', + 'sh_YU', + 'si', + 'si_LK', + 'sk', + 'sk_SK', + 'sl', + 'sl_SI', + 'sn', + 'sn_ZW', + 'so', + 'so_DJ', + 'so_ET', + 'so_KE', + 'so_SO', + 'sq', + 'sq_AL', + 'sq_MK', + 'sq_XK', + 'sr', + 'sr_BA', + 'sr_CS', + 'sr_Cyrl', + 'sr_Cyrl_BA', + 'sr_Cyrl_CS', + 'sr_Cyrl_ME', + 'sr_Cyrl_RS', + 'sr_Cyrl_XK', + 'sr_Cyrl_YU', + 'sr_Latn', + 'sr_Latn_BA', + 'sr_Latn_CS', + 'sr_Latn_ME', + 'sr_Latn_RS', + 'sr_Latn_XK', + 'sr_Latn_YU', + 'sr_ME', + 'sr_RS', + 'sr_XK', + 'sr_YU', + 'sv', + 'sv_AX', + 'sv_FI', + 'sv_SE', + 'sw', + 'sw_CD', + 'sw_KE', + 'sw_TZ', + 'sw_UG', + 'ta', + 'ta_IN', + 'ta_LK', + 'ta_MY', + 'ta_SG', + 'te', + 'te_IN', + 'th', + 'th_TH', + 'th_TH_TRADITIONAL', + 'ti', + 'ti_ER', + 'ti_ET', + 'tl', + 'tl_PH', + 'to', + 'to_TO', + 'tr', + 'tr_CY', + 'tr_TR', + 'ug', + 'ug_CN', + 'uk', + 'uk_UA', + 'ur', + 'ur_IN', + 'ur_PK', + 'uz', + 'uz_AF', + 'uz_Arab', + 'uz_Arab_AF', + 'uz_Cyrl', + 'uz_Cyrl_UZ', + 'uz_Latn', + 'uz_Latn_UZ', + 'uz_UZ', + 'vi', + 'vi_VN', + 'yi', + 'yi_001', + 'yo', + 'yo_BJ', + 'yo_NG', + 'zh', + 'zh_CN', + 'zh_HK', + 'zh_Hans', + 'zh_Hans_CN', + 'zh_Hans_HK', + 'zh_Hans_MO', + 'zh_Hans_SG', + 'zh_Hant', + 'zh_Hant_HK', + 'zh_Hant_MO', + 'zh_Hant_TW', + 'zh_MO', + 'zh_SG', + 'zh_TW', + 'zu', + 'zu_ZA', ); private static $localeAliases = array( @@ -732,21 +624,11 @@ abstract class AbstractDataProviderTest extends TestCase 'bs_BA' => 'bs_Latn_BA', 'en_NH' => 'en_VU', 'en_RH' => 'en_ZW', - 'ha_GH' => 'ha_Latn_GH', - 'ha_NE' => 'ha_Latn_NE', - 'ha_NG' => 'ha_Latn_NG', 'in' => 'id', 'in_ID' => 'id_ID', 'iw' => 'he', 'iw_IL' => 'he_IL', - 'kk_KZ' => 'kk_Cyrl_KZ', - 'ks_IN' => 'ks_Arab_IN', - 'ky_KG' => 'ky_Cyrl_KG', - 'mn_MN' => 'mn_Cyrl_MN', 'mo' => 'ro_MD', - 'ms_BN' => 'ms_Latn_BN', - 'ms_MY' => 'ms_Latn_MY', - 'ms_SG' => 'ms_Latn_SG', 'no' => 'nb', 'no_NO' => 'nb_NO', 'no_NO_NY' => 'nn_NO', @@ -756,7 +638,6 @@ abstract class AbstractDataProviderTest extends TestCase 'sh_BA' => 'sr_Latn_BA', 'sh_CS' => 'sr_Latn_RS', 'sh_YU' => 'sr_Latn_RS', - 'shi_MA' => 'shi_Tfng_MA', 'sr_BA' => 'sr_Cyrl_BA', 'sr_CS' => 'sr_Cyrl_RS', 'sr_Cyrl_CS' => 'sr_Cyrl_RS', @@ -769,11 +650,8 @@ abstract class AbstractDataProviderTest extends TestCase 'sr_YU' => 'sr_Cyrl_RS', 'tl' => 'fil', 'tl_PH' => 'fil_PH', - 'tzm_MA' => 'tzm_Latn_MA', - 'ug_CN' => 'ug_Arab_CN', 'uz_AF' => 'uz_Arab_AF', 'uz_UZ' => 'uz_Latn_UZ', - 'vai_LR' => 'vai_Vaii_LR', 'zh_CN' => 'zh_Hans_CN', 'zh_HK' => 'zh_Hant_HK', 'zh_MO' => 'zh_Hant_MO', diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLanguageDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLanguageDataProviderTest.php index b092ff6982..4a0d63b30d 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLanguageDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLanguageDataProviderTest.php @@ -52,6 +52,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'aro', 'arp', 'arq', + 'ars', 'arw', 'ary', 'arz', @@ -64,7 +65,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'awa', 'ay', 'az', - 'azb', + 'az_Arab', 'ba', 'bal', 'ban', @@ -81,6 +82,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'bfd', 'bfq', 'bg', + 'bgn', 'bho', 'bi', 'bik', @@ -128,6 +130,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'cps', 'cr', 'crh', + 'crs', 'cs', 'csb', 'cu', @@ -180,6 +183,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'ewo', 'ext', 'fa', + 'fa_AF', 'fan', 'fat', 'ff', @@ -340,6 +344,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'lo', 'lol', 'loz', + 'lrc', 'lt', 'ltg', 'lu', @@ -401,6 +406,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'nb', 'nd', 'nds', + 'nds_NL', 'ne', 'new', 'ng', @@ -441,6 +447,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'pap', 'pau', 'pcd', + 'pcm', 'pdc', 'pdt', 'peo', @@ -494,6 +501,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'sco', 'sd', 'sdc', + 'sdh', 'se', 'see', 'seh', @@ -536,8 +544,8 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'sux', 'sv', 'sw', + 'sw_CD', 'swb', - 'swc', 'syc', 'syr', 'szl', @@ -604,6 +612,7 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'wal', 'war', 'was', + 'wbp', 'wo', 'wuu', 'xal', @@ -636,170 +645,170 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest protected static $alpha2ToAlpha3 = array( 'aa' => 'aar', 'ab' => 'abk', - 'ae' => 'ave', 'af' => 'afr', 'ak' => 'aka', + 'sq' => 'sqi', 'am' => 'amh', - 'an' => 'arg', 'ar' => 'ara', + 'an' => 'arg', + 'hy' => 'hye', 'as' => 'asm', 'av' => 'ava', + 'ae' => 'ave', 'ay' => 'aym', 'az' => 'aze', 'ba' => 'bak', - 'be' => 'bel', - 'bg' => 'bul', - 'bh' => 'bih', - 'bi' => 'bis', 'bm' => 'bam', + 'eu' => 'eus', + 'be' => 'bel', 'bn' => 'ben', + 'bi' => 'bis', 'bo' => 'bod', - 'br' => 'bre', 'bs' => 'bos', + 'br' => 'bre', + 'bg' => 'bul', + 'my' => 'mya', 'ca' => 'cat', - 'ce' => 'che', - 'ch' => 'cha', - 'co' => 'cos', - 'cr' => 'cre', 'cs' => 'ces', + 'ch' => 'cha', + 'ce' => 'che', + 'zh' => 'zho', 'cu' => 'chu', 'cv' => 'chv', + 'kw' => 'cor', + 'co' => 'cos', + 'cr' => 'cre', 'cy' => 'cym', 'da' => 'dan', 'de' => 'deu', 'dv' => 'div', + 'nl' => 'nld', 'dz' => 'dzo', - 'ee' => 'ewe', + 'et' => 'est', 'el' => 'ell', 'en' => 'eng', 'eo' => 'epo', - 'es' => 'spa', - 'et' => 'est', - 'eu' => 'eus', - 'fa' => 'fas', - 'ff' => 'ful', - 'fi' => 'fin', - 'fj' => 'fij', + 'ik' => 'ipk', + 'ee' => 'ewe', 'fo' => 'fao', + 'fa' => 'fas', + 'fj' => 'fij', + 'fi' => 'fin', 'fr' => 'fra', 'fy' => 'fry', - 'ga' => 'gle', + 'ff' => 'ful', + 'om' => 'orm', + 'ka' => 'kat', 'gd' => 'gla', + 'ga' => 'gle', 'gl' => 'glg', + 'gv' => 'glv', 'gn' => 'grn', 'gu' => 'guj', - 'gv' => 'glv', + 'ht' => 'hat', 'ha' => 'hau', 'he' => 'heb', + 'hz' => 'her', 'hi' => 'hin', 'ho' => 'hmo', 'hr' => 'hrv', - 'ht' => 'hat', 'hu' => 'hun', - 'hy' => 'hye', - 'hz' => 'her', + 'ig' => 'ibo', + 'is' => 'isl', + 'io' => 'ido', + 'ii' => 'iii', + 'iu' => 'iku', + 'ie' => 'ile', 'ia' => 'ina', 'id' => 'ind', - 'ie' => 'ile', - 'ig' => 'ibo', - 'ii' => 'iii', - 'ik' => 'ipk', - 'io' => 'ido', - 'is' => 'isl', 'it' => 'ita', - 'iu' => 'iku', - 'ja' => 'jpn', 'jv' => 'jav', - 'ka' => 'kat', - 'kg' => 'kon', - 'ki' => 'kik', - 'kj' => 'kua', - 'kk' => 'kaz', + 'ja' => 'jpn', 'kl' => 'kal', - 'km' => 'khm', 'kn' => 'kan', - 'ko' => 'kor', - 'kr' => 'kau', 'ks' => 'kas', - 'ku' => 'kur', - 'kv' => 'kom', - 'kw' => 'cor', + 'kr' => 'kau', + 'kk' => 'kaz', + 'mn' => 'mon', + 'km' => 'khm', + 'ki' => 'kik', + 'rw' => 'kin', 'ky' => 'kir', + 'ku' => 'kur', + 'kg' => 'kon', + 'kv' => 'kom', + 'ko' => 'kor', + 'kj' => 'kua', + 'lo' => 'lao', 'la' => 'lat', - 'lb' => 'ltz', - 'lg' => 'lug', + 'lv' => 'lav', 'li' => 'lim', 'ln' => 'lin', - 'lo' => 'lao', 'lt' => 'lit', + 'lb' => 'ltz', 'lu' => 'lub', - 'lv' => 'lav', - 'mg' => 'mlg', - 'mh' => 'mah', - 'mi' => 'mri', + 'lg' => 'lug', 'mk' => 'mkd', + 'mh' => 'mah', 'ml' => 'mal', - 'mn' => 'mon', + 'mi' => 'mri', 'mr' => 'mar', 'ms' => 'msa', + 'mg' => 'mlg', 'mt' => 'mlt', - 'my' => 'mya', 'na' => 'nau', - 'nb' => 'nob', - 'nd' => 'nde', - 'ne' => 'nep', - 'ng' => 'ndo', - 'nl' => 'nld', - 'nn' => 'nno', - 'nr' => 'nbl', 'nv' => 'nav', + 'nr' => 'nbl', + 'nd' => 'nde', + 'ng' => 'ndo', + 'ne' => 'nep', + 'nn' => 'nno', + 'nb' => 'nob', 'ny' => 'nya', 'oc' => 'oci', 'oj' => 'oji', - 'om' => 'orm', 'or' => 'ori', 'os' => 'oss', 'pa' => 'pan', + 'ps' => 'pus', 'pi' => 'pli', 'pl' => 'pol', - 'ps' => 'pus', 'pt' => 'por', 'qu' => 'que', 'rm' => 'roh', - 'rn' => 'run', 'ro' => 'ron', + 'rn' => 'run', 'ru' => 'rus', - 'rw' => 'kin', - 'sa' => 'san', - 'sc' => 'srd', - 'sd' => 'snd', - 'se' => 'sme', 'sg' => 'sag', + 'sa' => 'san', + 'sr' => 'srp', 'si' => 'sin', 'sk' => 'slk', 'sl' => 'slv', + 'se' => 'sme', 'sm' => 'smo', 'sn' => 'sna', + 'sd' => 'snd', 'so' => 'som', - 'sq' => 'sqi', - 'sr' => 'srp', - 'ss' => 'ssw', 'st' => 'sot', + 'es' => 'spa', + 'sc' => 'srd', + 'ss' => 'ssw', 'su' => 'sun', - 'sv' => 'swe', 'sw' => 'swa', + 'sv' => 'swe', + 'ty' => 'tah', 'ta' => 'tam', + 'tt' => 'tat', 'te' => 'tel', 'tg' => 'tgk', 'th' => 'tha', 'ti' => 'tir', - 'tk' => 'tuk', - 'tn' => 'tsn', 'to' => 'ton', - 'tr' => 'tur', + 'tn' => 'tsn', 'ts' => 'tso', - 'tt' => 'tat', - 'ty' => 'tah', + 'tk' => 'tuk', + 'tr' => 'tur', 'ug' => 'uig', 'uk' => 'ukr', 'ur' => 'urd', @@ -813,7 +822,6 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest 'yi' => 'yid', 'yo' => 'yor', 'za' => 'zha', - 'zh' => 'zho', 'zu' => 'zul', ); @@ -848,7 +856,8 @@ abstract class AbstractLanguageDataProviderTest extends AbstractDataProviderTest sort($languages); - $this->assertEquals(static::$languages, $languages); + $this->assertNotEmpty($languages); + $this->assertEmpty(array_diff($languages, static::$languages)); } public function testGetNamesDefaultLocale() diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLocaleDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLocaleDataProviderTest.php index 6386bba97d..aeca40cdbd 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLocaleDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractLocaleDataProviderTest.php @@ -56,7 +56,10 @@ abstract class AbstractLocaleDataProviderTest extends AbstractDataProviderTest sort($locales); - $this->assertSame($this->getLocales(), $locales); + // We can't assert on exact list of locale, as there's too many variations. + // The best we can do is to make sure getNames() returns a subset of what getLocales() returns. + $this->assertNotEmpty($locales); + $this->assertEmpty(array_diff($locales, $this->getLocales())); } public function testGetNamesDefaultLocale() diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractRegionDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractRegionDataProviderTest.php index 21cc1789d2..1b790d41c9 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractRegionDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractRegionDataProviderTest.php @@ -31,7 +31,6 @@ abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest 'AI', 'AL', 'AM', - 'AN', 'AO', 'AQ', 'AR', @@ -58,7 +57,6 @@ abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest 'BR', 'BS', 'BT', - 'BV', 'BW', 'BY', 'BZ', @@ -74,7 +72,6 @@ abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest 'CM', 'CN', 'CO', - 'CP', 'CR', 'CU', 'CV', @@ -97,7 +94,7 @@ abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest 'ER', 'ES', 'ET', - 'EU', + 'EZ', 'FI', 'FJ', 'FK', @@ -124,7 +121,6 @@ abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest 'GW', 'GY', 'HK', - 'HM', 'HN', 'HR', 'HT', @@ -263,6 +259,7 @@ abstract class AbstractRegionDataProviderTest extends AbstractDataProviderTest 'UA', 'UG', 'UM', + 'UN', 'US', 'UY', 'UZ', diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php index 68304434c7..b0acca3687 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php @@ -24,7 +24,10 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest // The below arrays document the state of the ICU data bundled with this package. protected static $scripts = array( + 'Adlm', 'Afak', + 'Aghb', + 'Ahom', 'Arab', 'Armi', 'Armn', @@ -34,6 +37,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Bass', 'Batk', 'Beng', + 'Bhks', 'Blis', 'Bopo', 'Brah', @@ -56,6 +60,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Egyd', 'Egyh', 'Egyp', + 'Elba', 'Ethi', 'Geok', 'Geor', @@ -65,11 +70,13 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Grek', 'Gujr', 'Guru', + 'Hanb', 'Hang', 'Hani', 'Hano', 'Hans', 'Hant', + 'Hatr', 'Hebr', 'Hira', 'Hluw', @@ -78,6 +85,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Hung', 'Inds', 'Ital', + 'Jamo', 'Java', 'Jpan', 'Jurc', @@ -103,20 +111,25 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Loma', 'Lyci', 'Lydi', + 'Mahj', 'Mand', 'Mani', + 'Marc', 'Maya', 'Mend', 'Merc', 'Mero', 'Mlym', + 'Modi', 'Mong', 'Moon', 'Mroo', 'Mtei', + 'Mult', 'Mymr', 'Narb', 'Nbat', + 'Newa', 'Nkgb', 'Nkoo', 'Nshu', @@ -124,8 +137,10 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Olck', 'Orkh', 'Orya', + 'Osge', 'Osma', 'Palm', + 'Pauc', 'Perm', 'Phag', 'Phli', @@ -134,6 +149,54 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Phnx', 'Plrd', 'Prti', + 'Qaaa', + 'Qaab', + 'Qaac', + 'Qaad', + 'Qaae', + 'Qaaf', + 'Qaag', + 'Qaah', + 'Qaak', + 'Qaal', + 'Qaam', + 'Qaan', + 'Qaao', + 'Qaap', + 'Qaaq', + 'Qaar', + 'Qaas', + 'Qaat', + 'Qaau', + 'Qaav', + 'Qaaw', + 'Qaax', + 'Qaay', + 'Qaaz', + 'Qaba', + 'Qabb', + 'Qabc', + 'Qabd', + 'Qabe', + 'Qabf', + 'Qabg', + 'Qabh', + 'Qabi', + 'Qabj', + 'Qabk', + 'Qabl', + 'Qabm', + 'Qabn', + 'Qabo', + 'Qabp', + 'Qabq', + 'Qabr', + 'Qabs', + 'Qabt', + 'Qabu', + 'Qabv', + 'Qabw', + 'Qabx', 'Rjng', 'Roro', 'Runr', @@ -144,6 +207,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Sgnw', 'Shaw', 'Shrd', + 'Sidd', 'Sind', 'Sinh', 'Sora', @@ -178,6 +242,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Yiii', 'Zinh', 'Zmth', + 'Zsye', 'Zsym', 'Zxxx', 'Zyyy', @@ -215,7 +280,10 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest sort($scripts); - $this->assertSame(static::$scripts, $scripts); + // We can't assert on exact list of scripts, as there's too many variations between locales. + // The best we can do is to make sure getNames() returns a subset of what getScripts() returns. + $this->assertNotEmpty($scripts); + $this->assertEmpty(array_diff($scripts, self::$scripts)); } public function testGetNamesDefaultLocale()