From 325aa1f184c6eaa7ad631e10d4acd2bfbf22fbbf Mon Sep 17 00:00:00 2001 From: Max Peintner Date: Wed, 2 Jul 2025 11:43:19 +0200 Subject: [PATCH] fix(login): ensure correct i18n locale context (#10156) This PR ensures that the correct locale context is set for the new login --- login/apps/login/src/i18n/request.ts | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/login/apps/login/src/i18n/request.ts b/login/apps/login/src/i18n/request.ts index 9e5e37e231..15cfe01548 100644 --- a/login/apps/login/src/i18n/request.ts +++ b/login/apps/login/src/i18n/request.ts @@ -15,6 +15,21 @@ export default getRequestConfig(async () => { const _headers = await headers(); const { serviceUrl } = getServiceUrlFromHeaders(_headers); + const languageHeader = await (await headers()).get(LANGUAGE_HEADER_NAME); + if (languageHeader) { + const headerLocale = languageHeader.split(",")[0].split("-")[0]; // Extract the language code + if (LANGS.map((l) => l.code).includes(headerLocale)) { + locale = headerLocale; + } + } + + const languageCookie = cookiesList?.get(LANGUAGE_COOKIE_NAME); + if (languageCookie && languageCookie.value) { + if (LANGS.map((l) => l.code).includes(languageCookie.value)) { + locale = languageCookie.value; + } + } + const i18nOrganization = _headers.get("x-zitadel-i18n-organization") || ""; // You may need to set this header in middleware let translations: JsonObject | {} = {}; @@ -32,21 +47,6 @@ export default getRequestConfig(async () => { console.warn("Error fetching custom translations:", error); } - const languageHeader = await (await headers()).get(LANGUAGE_HEADER_NAME); - if (languageHeader) { - const headerLocale = languageHeader.split(",")[0].split("-")[0]; // Extract the language code - if (LANGS.map((l) => l.code).includes(headerLocale)) { - locale = headerLocale; - } - } - - const languageCookie = cookiesList?.get(LANGUAGE_COOKIE_NAME); - if (languageCookie && languageCookie.value) { - if (LANGS.map((l) => l.code).includes(languageCookie.value)) { - locale = languageCookie.value; - } - } - const customMessages = translations; const localeMessages = (await import(`../../locales/${locale}.json`)).default; const fallbackMessages = (await import(`../../locales/${fallback}.json`))