From dfb5394310c32a87d712c7aeb222757e31cecda7 Mon Sep 17 00:00:00 2001 From: daproclaima Date: Mon, 1 Jul 2024 18:32:42 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BF=EF=B8=8F(frontend)=20update=20html=20?= =?UTF-8?q?lang=20on=20language=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Performs lang attribute update on html tag on every language change. By default the attribute value uses the i18n.language value. --- src/frontend/apps/desk/src/i18n/initI18n.ts | 6 ++++++ src/frontend/apps/desk/src/pages/_document.tsx | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/frontend/apps/desk/src/i18n/initI18n.ts b/src/frontend/apps/desk/src/i18n/initI18n.ts index 7d601c1..62a3a6c 100644 --- a/src/frontend/apps/desk/src/i18n/initI18n.ts +++ b/src/frontend/apps/desk/src/i18n/initI18n.ts @@ -16,6 +16,11 @@ i18n preload: LANGUAGES_ALLOWED, nsSeparator: '||', }) + .then(() => { + if (typeof window !== 'undefined') { + document.documentElement.lang = i18n.language; + } + }) .catch(() => { throw new Error('i18n initialization failed'); }); @@ -24,6 +29,7 @@ i18n i18n.on('languageChanged', (lng) => { if (typeof window !== 'undefined') { localStorage.setItem(LANGUAGE_LOCAL_STORAGE, lng); + document.documentElement.lang = lng; } }); diff --git a/src/frontend/apps/desk/src/pages/_document.tsx b/src/frontend/apps/desk/src/pages/_document.tsx index 282e0d3..c7d3794 100644 --- a/src/frontend/apps/desk/src/pages/_document.tsx +++ b/src/frontend/apps/desk/src/pages/_document.tsx @@ -4,7 +4,7 @@ import '@/i18n/initI18n'; export default function RootLayout() { return ( - +