Skip to content

Commit e4d58a1

Browse files
committed
Simplified language matching
1 parent 5237e12 commit e4d58a1

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

index.js

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -262,33 +262,44 @@ module.exports = function(version, _options) {
262262
// Same language code and script code (lng-Scpt)
263263
if (languages.instructions[languageCode + '-' + scriptCode]) {
264264
return languageCode + '-' + scriptCode;
265+
}
266+
265267
// Same language code and country code (lng-CC)
266-
} else if (languages.instructions[languageCode + '-' + countryCode]) {
268+
if (languages.instructions[languageCode + '-' + countryCode]) {
267269
return languageCode + '-' + countryCode;
270+
}
271+
268272
// Same language code (lng)
269-
} else if (supportedLanguageCodes[languageCode]) {
273+
if (supportedLanguageCodes[languageCode]) {
270274
return languageCode;
275+
}
276+
271277
// 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) {
273279
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+
278285
// 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+
281293
// Only language code provided, but we on support this language code
282294
// with either script/country code.
283-
} else if (languages.parsedSupportedCodes.find(function (language) {
295+
var sameLanguage = languages.parsedSupportedCodes.find(function (language) {
284296
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;
291300
}
301+
302+
return 'en';
292303
}
293304
};
294305
};

0 commit comments

Comments
 (0)