Always fall back to en-US (#7661)

* always fall back to en-US

* Ignore illegal languages

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
This commit is contained in:
Nitwel
2021-08-30 22:43:50 +02:00
committed by GitHub
parent 6b6e7bd304
commit 64efbfa3b7
2 changed files with 18 additions and 17 deletions

View File

@@ -1,4 +1,3 @@
import { Language } from '@/lang';
import { setLanguage } from '@/lang/set-language';
import { register as registerModules, unregister as unregisterModules } from '@/modules/register';
import { getBasemapSources } from '@/utils/geometry/basemap';
@@ -62,7 +61,8 @@ export async function hydrate(stores = useStores()): Promise<void> {
if (userStore.currentUser?.role) {
await Promise.all(stores.filter(({ $id }) => $id !== 'userStore').map((store) => store.hydrate?.()));
await registerModules();
await setLanguage((userStore.currentUser?.language as Language) || 'en-US');
await setLanguage(userStore.currentUser?.language ?? 'en-US');
}
appStore.basemap = getBasemapSources()[0].name;

View File

@@ -17,24 +17,25 @@ export async function setLanguage(lang: Language): Promise<boolean> {
const fieldsStore = useFieldsStore();
if (Object.keys(availableLanguages).includes(lang) === false) {
return false;
}
if (loadedLanguages.includes(lang) === false) {
try {
const translations = await import(`./translations/${lang}.yaml`);
i18n.global.mergeLocaleMessage(lang, translations);
loadedLanguages.push(lang);
} catch (err: any) {
// eslint-disable-next-line no-console
console.warn(err);
// eslint-disable-next-line no-console
console.warn(`"${lang}" is not an available language in the Directus app.`);
} else {
if (loadedLanguages.includes(lang) === false) {
try {
const translations = await import(`./translations/${lang}.yaml`);
i18n.global.mergeLocaleMessage(lang, translations);
loadedLanguages.push(lang);
} catch (err: any) {
// eslint-disable-next-line no-console
console.warn(err);
}
}
i18n.global.locale.value = lang;
(document.querySelector('html') as HTMLElement).setAttribute('lang', lang);
}
i18n.global.locale.value = lang;
(document.querySelector('html') as HTMLElement).setAttribute('lang', lang);
modules.value = translate(modulesRaw.value);
layouts.value = translate(layoutsRaw.value);
interfaces.value = translate(interfacesRaw.value);