Fix en-US language not being loaded (#574)

VueI18n defaults to en-US when no language is specified,
which prevented en-US messages from being loaded
This commit is contained in:
sephrat 2021-06-19 17:14:12 +02:00 committed by GitHub
parent 4109d02a39
commit 3714baf5d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,25 +20,19 @@ function setI18nLanguage (lang) {
}
export function loadLanguageAsync(lang) {
// If the same language
if (i18n.locale === lang) {
return Promise.resolve(setI18nLanguage(lang))
}
// If the language was already loaded
if (loadedLanguages.includes(lang)) {
return Promise.resolve(setI18nLanguage(lang))
if ( ! loadedLanguages.includes(lang)) {
const messages = import(`./locales/messages/${lang}.json`);
const dateTimeFormats = import(`./locales/dateTimeFormats/${lang}.json`);
return Promise.all([messages, dateTimeFormats]).then(
values => {
i18n.setLocaleMessage(lang, values[0].default)
i18n.setDateTimeFormat(lang, values[1].default)
loadedLanguages.push(lang)
return setI18nLanguage(lang)
}
)
}
const messages = import(`./locales/messages/${lang}.json`);
const dateTimeFormats = import(`./locales/dateTimeFormats/${lang}.json`);
return Promise.all([messages, dateTimeFormats]).then(
values => {
i18n.setLocaleMessage(lang, values[0].default)
i18n.setDateTimeFormat(lang, values[1].default)
loadedLanguages.push(lang)
return setI18nLanguage(lang)
}
)
return Promise.resolve(setI18nLanguage(lang))
}