diff --git a/app/src/hydrate.ts b/app/src/hydrate.ts index 43328ff4b8..861b3ea7cc 100644 --- a/app/src/hydrate.ts +++ b/app/src/hydrate.ts @@ -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 { 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; diff --git a/app/src/lang/set-language.ts b/app/src/lang/set-language.ts index 2820415c2b..a5f1e6c3da 100644 --- a/app/src/lang/set-language.ts +++ b/app/src/lang/set-language.ts @@ -17,24 +17,25 @@ export async function setLanguage(lang: Language): Promise { 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);