@@ -262,33 +262,44 @@ module.exports = function(version, _options) {
262
262
// Same language code and script code (lng-Scpt)
263
263
if ( languages . instructions [ languageCode + '-' + scriptCode ] ) {
264
264
return languageCode + '-' + scriptCode ;
265
+ }
266
+
265
267
// Same language code and country code (lng-CC)
266
- } else if ( languages . instructions [ languageCode + '-' + countryCode ] ) {
268
+ if ( languages . instructions [ languageCode + '-' + countryCode ] ) {
267
269
return languageCode + '-' + countryCode ;
270
+ }
271
+
268
272
// Same language code (lng)
269
- } else if ( supportedLanguageCodes [ languageCode ] ) {
273
+ if ( supportedLanguageCodes [ languageCode ] ) {
270
274
return languageCode ;
275
+ }
276
+
271
277
// Same language code and any script code (lng-Scpx) and the found language contains a script
272
- } else if ( languages . parsedSupportedCodes . find ( function ( language ) {
278
+ var anyScript = languages . parsedSupportedCodes . find ( function ( language ) {
273
279
return language . languageCode === languageCode && language . scriptCode ;
274
- } ) ) {
275
- return languages . parsedSupportedCodes . find ( function ( language ) {
276
- return language . languageCode === languageCode && language . scriptCode ;
277
- } ) . locale ;
280
+ } ) ;
281
+ if ( anyScript ) {
282
+ return anyScript . locale ;
283
+ }
284
+
278
285
// Same language code and any country code (lng-CX)
279
- } else if ( supportedLanguageCodes . indexOf ( languageCode ) > - 1 && countryCode ) {
280
- return languages . supportedCodes [ supportedLanguageCodes . indexOf ( languageCode ) ] ;
286
+ var anyCountry = languages . parsedSupportedCodes . find ( function ( language ) {
287
+ return language . languageCode === languageCode && language . scriptCode ;
288
+ } ) ;
289
+ if ( anyCountry ) {
290
+ return anyCountry . locale ;
291
+ }
292
+
281
293
// Only language code provided, but we on support this language code
282
294
// with either script/country code.
283
- } else if ( languages . parsedSupportedCodes . find ( function ( language ) {
295
+ var sameLanguage = languages . parsedSupportedCodes . find ( function ( language ) {
284
296
return language . languageCode === languageCode ;
285
- } ) ) {
286
- return ( languages . parsedSupportedCodes . find ( function ( language ) {
287
- return language . languageCode === languageCode ;
288
- } ) ) . locale ;
289
- } else {
290
- return 'en' ;
297
+ } ) ;
298
+ if ( sameLanguage ) {
299
+ return sameLanguage . locale ;
291
300
}
301
+
302
+ return 'en' ;
292
303
}
293
304
} ;
294
305
} ;
0 commit comments