Skip to content

Commit 5a3db67

Browse files
bug #24814 [Intl] Make intl-data tests pass and save language aliases again (jakzal)
This PR was squashed before being merged into the 2.7 branch (closes #24814). Discussion ---------- [Intl] Make intl-data tests pass and save language aliases again | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - Due to changes in ICU 5.5 aliases were not being saved since that version. Commits ------- 661a4b6 [Intl] Make intl-data tests pass and save language aliases again
2 parents 49806e0 + 661a4b6 commit 5a3db67

8 files changed

+1250
-956
lines changed

src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -157,20 +157,20 @@ protected function generateDataForMeta(BundleReaderInterface $reader, $tempDir)
157157
return array(
158158
'Version' => $rootBundle['Version'],
159159
'Languages' => $this->languageCodes,
160-
'Aliases' => $metadataBundle['languageAlias'],
160+
'Aliases' => array_map(function (\ResourceBundle $bundle) {
161+
return $bundle['replacement'];
162+
}, iterator_to_array($metadataBundle['alias']['language'])),
161163
'Alpha2ToAlpha3' => $this->generateAlpha2ToAlpha3Mapping($metadataBundle),
162164
);
163165
}
164166

165167
private function generateAlpha2ToAlpha3Mapping(ArrayAccessibleResourceBundle $metadataBundle)
166168
{
167-
// Data structure has changed in ICU 5.5 from "languageAlias" to "alias->language"
168-
$aliases = $metadataBundle['languageAlias'] ?: $metadataBundle['alias']['language'];
169+
$aliases = iterator_to_array($metadataBundle['alias']['language']);
169170
$alpha2ToAlpha3 = array();
170171

171172
foreach ($aliases as $alias => $language) {
172-
// $language is a string before ICU 5.5
173-
$language = is_string($language) ? $language : $language['replacement'];
173+
$language = $language['replacement'];
174174
if (2 === strlen($language) && 3 === strlen($alias)) {
175175
if (isset(self::$preferredAlpha2ToAlpha3Mapping[$language])) {
176176
// Validate to prevent typos
@@ -184,7 +184,7 @@ private function generateAlpha2ToAlpha3Mapping(ArrayAccessibleResourceBundle $me
184184
}
185185

186186
$alpha3 = self::$preferredAlpha2ToAlpha3Mapping[$language];
187-
$alpha2 = is_string($aliases[$alpha3]) ? $aliases[$alpha3] : $aliases[$alpha3]['replacement'];
187+
$alpha2 = $aliases[$alpha3]['replacement'];
188188

189189
if ($language !== $alpha2) {
190190
throw new RuntimeException(

src/Symfony/Component/Intl/Resources/data/languages/meta.json

+338-1
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,344 @@
619619
"zxx",
620620
"zza"
621621
],
622-
"Aliases": null,
622+
"Aliases": {
623+
"aa_SAAHO": "ssy",
624+
"aar": "aa",
625+
"abk": "ab",
626+
"afr": "af",
627+
"aju": "jrb",
628+
"aka": "ak",
629+
"alb": "sq",
630+
"als": "sq",
631+
"amh": "am",
632+
"ara": "ar",
633+
"arb": "ar",
634+
"arg": "an",
635+
"arm": "hy",
636+
"art_lojban": "jbo",
637+
"asm": "as",
638+
"ava": "av",
639+
"ave": "ae",
640+
"aym": "ay",
641+
"ayr": "ay",
642+
"az_AZ": "az_Latn_AZ",
643+
"aze": "az",
644+
"azj": "az",
645+
"bak": "ba",
646+
"bam": "bm",
647+
"baq": "eu",
648+
"bcc": "bal",
649+
"bcl": "bik",
650+
"bel": "be",
651+
"ben": "bn",
652+
"bh": "bho",
653+
"bih": "bho",
654+
"bis": "bi",
655+
"bod": "bo",
656+
"bos": "bs",
657+
"bre": "br",
658+
"bs_BA": "bs_Latn_BA",
659+
"bul": "bg",
660+
"bur": "my",
661+
"bxk": "luy",
662+
"bxr": "bua",
663+
"cat": "ca",
664+
"ces": "cs",
665+
"cha": "ch",
666+
"che": "ce",
667+
"chi": "zh",
668+
"chu": "cu",
669+
"chv": "cv",
670+
"cld": "syr",
671+
"cmn": "zh",
672+
"cor": "kw",
673+
"cos": "co",
674+
"cre": "cr",
675+
"cwd": "cr",
676+
"cym": "cy",
677+
"cze": "cs",
678+
"dan": "da",
679+
"deu": "de",
680+
"dgo": "doi",
681+
"dhd": "mwr",
682+
"dik": "din",
683+
"diq": "zza",
684+
"div": "dv",
685+
"dut": "nl",
686+
"dzo": "dz",
687+
"ekk": "et",
688+
"ell": "el",
689+
"emk": "man",
690+
"eng": "en",
691+
"epo": "eo",
692+
"esk": "ik",
693+
"est": "et",
694+
"eus": "eu",
695+
"ewe": "ee",
696+
"fao": "fo",
697+
"fas": "fa",
698+
"fat": "ak",
699+
"fij": "fj",
700+
"fin": "fi",
701+
"fra": "fr",
702+
"fre": "fr",
703+
"fry": "fy",
704+
"fuc": "ff",
705+
"ful": "ff",
706+
"gaz": "om",
707+
"gbo": "grb",
708+
"geo": "ka",
709+
"ger": "de",
710+
"gla": "gd",
711+
"gle": "ga",
712+
"glg": "gl",
713+
"glv": "gv",
714+
"gno": "gon",
715+
"gre": "el",
716+
"grn": "gn",
717+
"gug": "gn",
718+
"guj": "gu",
719+
"gya": "gba",
720+
"ha_Latn_GH": "ha_GH",
721+
"ha_Latn_NE": "ha_NE",
722+
"ha_Latn_NG": "ha_NG",
723+
"hat": "ht",
724+
"hau": "ha",
725+
"hbs": "sr_Latn",
726+
"hdn": "hai",
727+
"hea": "hmn",
728+
"heb": "he",
729+
"her": "hz",
730+
"him": "srx",
731+
"hin": "hi",
732+
"hmo": "ho",
733+
"hrv": "hr",
734+
"hun": "hu",
735+
"hye": "hy",
736+
"i_ami": "ami",
737+
"i_bnn": "bnn",
738+
"i_hak": "hak",
739+
"i_klingon": "tlh",
740+
"i_lux": "lb",
741+
"i_navajo": "nv",
742+
"i_pwn": "pwn",
743+
"i_tao": "tao",
744+
"i_tay": "tay",
745+
"i_tsu": "tsu",
746+
"ibo": "ig",
747+
"ice": "is",
748+
"ido": "io",
749+
"iii": "ii",
750+
"ike": "iu",
751+
"iku": "iu",
752+
"ile": "ie",
753+
"in": "id",
754+
"ina": "ia",
755+
"ind": "id",
756+
"ipk": "ik",
757+
"isl": "is",
758+
"ita": "it",
759+
"iw": "he",
760+
"jav": "jv",
761+
"ji": "yi",
762+
"jpn": "ja",
763+
"jw": "jv",
764+
"kal": "kl",
765+
"kan": "kn",
766+
"kas": "ks",
767+
"kat": "ka",
768+
"kau": "kr",
769+
"kaz": "kk",
770+
"khk": "mn",
771+
"khm": "km",
772+
"kik": "ki",
773+
"kin": "rw",
774+
"kir": "ky",
775+
"kk_Cyrl_KZ": "kk_KZ",
776+
"kmr": "ku",
777+
"knc": "kr",
778+
"kng": "kg",
779+
"knn": "kok",
780+
"kom": "kv",
781+
"kon": "kg",
782+
"kor": "ko",
783+
"kpv": "kv",
784+
"ks_Arab_IN": "ks_IN",
785+
"kua": "kj",
786+
"kur": "ku",
787+
"ky_Cyrl_KG": "ky_KG",
788+
"lao": "lo",
789+
"lat": "la",
790+
"lav": "lv",
791+
"lbk": "bnc",
792+
"lim": "li",
793+
"lin": "ln",
794+
"lit": "lt",
795+
"ltz": "lb",
796+
"lub": "lu",
797+
"lug": "lg",
798+
"lvs": "lv",
799+
"mac": "mk",
800+
"mah": "mh",
801+
"mal": "ml",
802+
"mao": "mi",
803+
"mar": "mr",
804+
"may": "ms",
805+
"mhr": "chm",
806+
"mkd": "mk",
807+
"mlg": "mg",
808+
"mlt": "mt",
809+
"mn_Cyrl_MN": "mn_MN",
810+
"mnk": "man",
811+
"mo": "ro_MD",
812+
"mol": "ro_MD",
813+
"mon": "mn",
814+
"mri": "mi",
815+
"ms_Latn_BN": "ms_BN",
816+
"ms_Latn_MY": "ms_MY",
817+
"ms_Latn_SG": "ms_SG",
818+
"msa": "ms",
819+
"mup": "raj",
820+
"mya": "my",
821+
"nau": "na",
822+
"nav": "nv",
823+
"nbl": "nr",
824+
"nde": "nd",
825+
"ndo": "ng",
826+
"nep": "ne",
827+
"nld": "nl",
828+
"nno": "nn",
829+
"no": "nb",
830+
"no_BOKMAL": "nb",
831+
"no_NYNORSK": "nn",
832+
"no_bok": "nb",
833+
"no_nyn": "nn",
834+
"nob": "nb",
835+
"nor": "nb",
836+
"npi": "ne",
837+
"nya": "ny",
838+
"oci": "oc",
839+
"ojg": "oj",
840+
"oji": "oj",
841+
"ori": "or",
842+
"orm": "om",
843+
"ory": "or",
844+
"oss": "os",
845+
"pa_IN": "pa_Guru_IN",
846+
"pa_PK": "pa_Arab_PK",
847+
"pan": "pa",
848+
"pbu": "ps",
849+
"per": "fa",
850+
"pes": "fa",
851+
"pli": "pi",
852+
"plt": "mg",
853+
"pnb": "lah",
854+
"pol": "pl",
855+
"por": "pt",
856+
"prs": "fa_AF",
857+
"pus": "ps",
858+
"que": "qu",
859+
"quz": "qu",
860+
"rmy": "rom",
861+
"roh": "rm",
862+
"ron": "ro",
863+
"rum": "ro",
864+
"run": "rn",
865+
"rus": "ru",
866+
"sag": "sg",
867+
"san": "sa",
868+
"scc": "sr",
869+
"scr": "hr",
870+
"sgn_BE_FR": "sfb",
871+
"sgn_BE_NL": "vgt",
872+
"sgn_CH_DE": "sgg",
873+
"sh": "sr_Latn",
874+
"shi_MA": "shi_Tfng_MA",
875+
"sin": "si",
876+
"slk": "sk",
877+
"slo": "sk",
878+
"slv": "sl",
879+
"sme": "se",
880+
"smo": "sm",
881+
"sna": "sn",
882+
"snd": "sd",
883+
"som": "so",
884+
"sot": "st",
885+
"spa": "es",
886+
"spy": "kln",
887+
"sqi": "sq",
888+
"sr_BA": "sr_Cyrl_BA",
889+
"sr_ME": "sr_Latn_ME",
890+
"sr_RS": "sr_Cyrl_RS",
891+
"sr_XK": "sr_Cyrl_XK",
892+
"src": "sc",
893+
"srd": "sc",
894+
"srp": "sr",
895+
"ssw": "ss",
896+
"sun": "su",
897+
"swa": "sw",
898+
"swc": "sw_CD",
899+
"swe": "sv",
900+
"swh": "sw",
901+
"tah": "ty",
902+
"tam": "ta",
903+
"tat": "tt",
904+
"tel": "te",
905+
"tgk": "tg",
906+
"tgl": "fil",
907+
"tha": "th",
908+
"tib": "bo",
909+
"tir": "ti",
910+
"tl": "fil",
911+
"ton": "to",
912+
"tsn": "tn",
913+
"tso": "ts",
914+
"ttq": "tmh",
915+
"tuk": "tk",
916+
"tur": "tr",
917+
"tw": "ak",
918+
"twi": "ak",
919+
"tzm_Latn_MA": "tzm_MA",
920+
"ug_Arab_CN": "ug_CN",
921+
"uig": "ug",
922+
"ukr": "uk",
923+
"umu": "del",
924+
"urd": "ur",
925+
"uz_AF": "uz_Arab_AF",
926+
"uz_UZ": "uz_Latn_UZ",
927+
"uzb": "uz",
928+
"uzn": "uz",
929+
"vai_LR": "vai_Vaii_LR",
930+
"ven": "ve",
931+
"vie": "vi",
932+
"vol": "vo",
933+
"wel": "cy",
934+
"wln": "wa",
935+
"wol": "wo",
936+
"xho": "xh",
937+
"xpe": "kpe",
938+
"xsl": "den",
939+
"ydd": "yi",
940+
"yid": "yi",
941+
"yor": "yo",
942+
"yue_CN": "yue_Hans_CN",
943+
"yue_HK": "yue_Hant_HK",
944+
"zai": "zap",
945+
"zh_CN": "zh_Hans_CN",
946+
"zh_HK": "zh_Hant_HK",
947+
"zh_MO": "zh_Hant_MO",
948+
"zh_SG": "zh_Hans_SG",
949+
"zh_TW": "zh_Hant_TW",
950+
"zh_guoyu": "zh",
951+
"zh_hakka": "hak",
952+
"zh_min_nan": "nan",
953+
"zh_xiang": "hsn",
954+
"zha": "za",
955+
"zho": "zh",
956+
"zsm": "ms",
957+
"zul": "zu",
958+
"zyb": "za"
959+
},
623960
"Alpha2ToAlpha3": {
624961
"aa": "aar",
625962
"ab": "abk",

0 commit comments

Comments
 (0)