diff --git a/apps/login/package.json b/apps/login/package.json index d1cf31d7d18..9617300a2ed 100644 --- a/apps/login/package.json +++ b/apps/login/package.json @@ -42,6 +42,7 @@ "@zitadel/proto": "workspace:*", "clsx": "1.2.1", "copy-to-clipboard": "^3.3.3", + "deepmerge": "^4.3.1", "moment": "^2.29.4", "next": "14.2.14", "next-intl": "^3.20.0", diff --git a/apps/login/src/app/(login)/layout.tsx b/apps/login/src/app/(login)/layout.tsx index e3f54f235b6..700de5561ac 100644 --- a/apps/login/src/app/(login)/layout.tsx +++ b/apps/login/src/app/(login)/layout.tsx @@ -54,7 +54,7 @@ export default async function RootLayout({ ) : (
- + {locale && }
)} diff --git a/apps/login/src/i18n/request.ts b/apps/login/src/i18n/request.ts index 123f52e2a78..5571eb2229f 100644 --- a/apps/login/src/i18n/request.ts +++ b/apps/login/src/i18n/request.ts @@ -1,14 +1,20 @@ +import deepmerge from "deepmerge"; import { getRequestConfig } from "next-intl/server"; import { cookies } from "next/headers"; export default getRequestConfig(async () => { + const fallback = "en"; const cookiesList = cookies(); const locale: string = cookiesList.get("NEXT_LOCALE")?.value ?? "en"; + const userMessages = (await import(`../../locales/${locale}.json`)).default; + const fallbackMessages = (await import(`../../locales/${fallback}.json`)) + .default; + console.log("i18nRequest", locale); return { locale, - messages: (await import(`../../locales/${locale}.json`)).default, + messages: deepmerge(fallbackMessages, userMessages), }; }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45eadb617ce..1a2f4ff98aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: copy-to-clipboard: specifier: ^3.3.3 version: 3.3.3 + deepmerge: + specifier: ^4.3.1 + version: 4.3.1 moment: specifier: ^2.29.4 version: 2.30.1 @@ -1934,6 +1937,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -6317,6 +6324,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0