From a0461e3ef00caa8c3fcf3f59a48e8590a6d92a5f Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Wed, 6 Nov 2024 10:10:27 +0100 Subject: [PATCH] #711 --- src/login/i18n/noJsx/getI18n.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/login/i18n/noJsx/getI18n.tsx b/src/login/i18n/noJsx/getI18n.tsx index f619a303..b902b6e2 100644 --- a/src/login/i18n/noJsx/getI18n.tsx +++ b/src/login/i18n/noJsx/getI18n.tsx @@ -16,6 +16,9 @@ import type { GenericI18n_noJsx } from "./GenericI18n_noJsx"; export type KcContextLike = { themeName: string; + realm: { + internationalizationEnabled: boolean; + }; locale?: { currentLanguageTag: string; supported: { languageTag: string; url: string; label: string }[]; @@ -91,14 +94,16 @@ export function createGetI18n< return cachedResult; } + const kcContextLocale = params.kcContext.realm.internationalizationEnabled ? params.kcContext.locale : undefined; + { - const currentLanguageTag = kcContext.locale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG; + const currentLanguageTag = kcContextLocale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG; const html = document.querySelector("html"); assert(html !== null); html.lang = currentLanguageTag; const isRtl = (() => { - const { rtl } = kcContext.locale ?? {}; + const { rtl } = kcContextLocale ?? {}; if (rtl !== undefined) { return rtl; @@ -154,11 +159,11 @@ export function createGetI18n< } from_server: { - if (kcContext.locale === undefined) { + if (kcContextLocale === undefined) { break from_server; } - const supportedEntry = kcContext.locale.supported.find(entry => entry.languageTag === languageTag); + const supportedEntry = kcContextLocale.supported.find(entry => entry.languageTag === languageTag); if (supportedEntry === undefined) { break from_server; @@ -180,7 +185,7 @@ export function createGetI18n< }; const currentLanguage: I18n["currentLanguage"] = (() => { - const languageTag = id(kcContext.locale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG) as LanguageTag; + const languageTag = id(kcContextLocale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG) as LanguageTag; return { languageTag, @@ -191,8 +196,8 @@ export function createGetI18n< const enabledLanguages: I18n["enabledLanguages"] = (() => { const enabledLanguages: I18n["enabledLanguages"] = []; - if (kcContext.locale !== undefined) { - for (const entry of kcContext.locale.supported ?? []) { + if (kcContextLocale !== undefined) { + for (const entry of kcContextLocale.supported ?? []) { const languageTag = id(entry.languageTag) as LanguageTag; enabledLanguages.push({