diff --git a/frontend/src/lib/i18n/i18n-service.ts b/frontend/src/lib/i18n/i18n-service.ts index edcbd1b..da6c72e 100644 --- a/frontend/src/lib/i18n/i18n-service.ts +++ b/frontend/src/lib/i18n/i18n-service.ts @@ -33,7 +33,7 @@ export class I18nService { escapeValue: false }, detection: { - order: ['querystring', 'navigator'], + order: ['browser', 'querystring', 'navigator', 'localStorage', 'htmlTag'], lookupQuerystring: 'lng' } }); diff --git a/frontend/src/routes/__layout.svelte b/frontend/src/routes/__layout.svelte index 63e7d36..3ffcd7d 100644 --- a/frontend/src/routes/__layout.svelte +++ b/frontend/src/routes/__layout.svelte @@ -4,9 +4,20 @@ import { navbarVisible } from '$lib/stores.ts'; import * as Sentry from '@sentry/browser'; import { BrowserTracing } from '@sentry/tracing'; - import { initLocalizationContext } from '$lib/i18n'; + import { initLocalizationContext, getLocalization } from '$lib/i18n'; + import { browser } from '$app/env'; + initLocalizationContext(); + if (browser) { + if (localStorage.getItem('language') === null) { + localStorage.setItem('language', 'en'); + } else { + const { currentLanguage } = getLocalization(); + currentLanguage.set(localStorage.getItem('language')); + } + } + if (import.meta.env.VITE_SENTRY !== null) { Sentry.init({ dsn: import.meta.env.VITE_SENTRY,