From 2cd46000631a3a2a4a6296282ba0ea6362c2daa9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 14 Jan 2026 16:31:27 +0000 Subject: [PATCH] fix(i18n): load messages by route locale Import locale JSON messages directly in the [locale] layout to ensure DE pages render DE strings instead of falling back to EN. Co-authored-by: dennis --- app/[locale]/layout.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index d6330b6..b9e024d 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -1,5 +1,5 @@ import { NextIntlClientProvider } from "next-intl"; -import { getMessages, setRequestLocale } from "next-intl/server"; +import { setRequestLocale } from "next-intl/server"; import React from "react"; import ConsentBanner from "../components/ConsentBanner"; @@ -13,7 +13,9 @@ export default async function LocaleLayout({ const { locale } = await params; // Ensure next-intl actually uses the route segment locale for this request. setRequestLocale(locale); - const messages = await getMessages(); + // Load messages explicitly by route locale to avoid falling back to the wrong + // language when request-level locale detection is unavailable/misconfigured. + const messages = (await import(`../../messages/${locale}.json`)).default; return (