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 (
-
+