1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Fix locale codes contains underscore will never be preferred (#6116)

This commit is contained in:
S.C. Chen 2019-02-09 03:36:37 +08:00 committed by Whymarrh Whitby
parent 57d458233b
commit 1a4203a8c6

View File

@ -7,7 +7,13 @@ const getPreferredLocales = extension.i18n ? promisify(
{ errorFirst: false }
) : async () => []
const existingLocaleCodes = allLocales.map(locale => locale.code.toLowerCase().replace('_', '-'))
// mapping some browsers return hyphen instead underscore in locale codes (e.g. zh_TW -> zh-tw)
const existingLocaleCodes = {}
allLocales.forEach(locale => {
if (locale && locale.code) {
existingLocaleCodes[locale.code.toLowerCase().replace('_', '-')] = locale.code
}
})
/**
* Returns a preferred language code, based on settings within the user's browser. If we have no translations for the
@ -33,9 +39,10 @@ async function getFirstPreferredLangCode () {
}
const firstPreferredLangCode = userPreferredLocaleCodes
.map(code => code.toLowerCase())
.find(code => existingLocaleCodes.includes(code))
return firstPreferredLangCode || 'en'
.map(code => code.toLowerCase().replace('_', '-'))
.find(code => existingLocaleCodes.hasOwnProperty(code))
return existingLocaleCodes[firstPreferredLangCode] || 'en'
}
module.exports = getFirstPreferredLangCode