mirror of
https://github.com/directus/directus.git
synced 2026-01-23 04:58:00 -05:00
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:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user