@@ -49,6 +49,7 @@ class LanguageDataGenerator extends AbstractDataGenerator
49
49
'fr ' => 'fra ' ,
50
50
'gn ' => 'grn ' ,
51
51
'hy ' => 'hye ' ,
52
+ 'hr ' => 'hrv ' ,
52
53
'ik ' => 'ipk ' ,
53
54
'is ' => 'isl ' ,
54
55
'iu ' => 'iku ' ,
@@ -76,6 +77,7 @@ class LanguageDataGenerator extends AbstractDataGenerator
76
77
'sc ' => 'srd ' ,
77
78
'sk ' => 'slk ' ,
78
79
'sq ' => 'sqi ' ,
80
+ 'sr ' => 'srp ' ,
79
81
'sw ' => 'swa ' ,
80
82
'uz ' => 'uzb ' ,
81
83
'yi ' => 'yid ' ,
@@ -164,10 +166,13 @@ protected function generateDataForMeta(BundleReaderInterface $reader, $tempDir)
164
166
165
167
private function generateAlpha2ToAlpha3Mapping (ArrayAccessibleResourceBundle $ metadataBundle )
166
168
{
167
- $ aliases = $ metadataBundle ['languageAlias ' ];
169
+ // Data structure has changed in ICU 5.5 from "languageAlias" to "alias->language"
170
+ $ aliases = $ metadataBundle ['languageAlias ' ] ?: $ metadataBundle ['alias ' ]['language ' ];
168
171
$ alpha2ToAlpha3 = array ();
169
172
170
173
foreach ($ aliases as $ alias => $ language ) {
174
+ // $language is a string before ICU 5.5
175
+ $ language = is_string ($ language ) ? $ language : $ language ['replacement ' ];
171
176
if (2 === strlen ($ language ) && 3 === strlen ($ alias )) {
172
177
if (isset (self ::$ preferredAlpha2ToAlpha3Mapping [$ language ])) {
173
178
// Validate to prevent typos
@@ -181,12 +186,13 @@ private function generateAlpha2ToAlpha3Mapping(ArrayAccessibleResourceBundle $me
181
186
}
182
187
183
188
$ alpha3 = self ::$ preferredAlpha2ToAlpha3Mapping [$ language ];
189
+ $ alpha2 = is_string ($ aliases [$ alpha3 ]) ? $ aliases [$ alpha3 ] : $ aliases [$ alpha3 ]['replacement ' ];
184
190
185
- if ($ language !== $ aliases [ $ alpha3 ] ) {
191
+ if ($ language !== $ alpha2 ) {
186
192
throw new RuntimeException (
187
193
'The statically set three-letter mapping ' .$ alpha3 .' ' .
188
194
'for the language code ' .$ language .' seems to be ' .
189
- 'an alias for ' .$ aliases [ $ alpha3 ] .'. Wrong mapping? '
195
+ 'an alias for ' .$ alpha2 .'. Wrong mapping? '
190
196
);
191
197
}
192
198
0 commit comments