Files
portfolio/app/[locale]/layout.tsx
Cursor Agent 2cd4600063 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 <dennis@konkol.net>
2026-01-14 16:31:27 +00:00

28 lines
870 B
TypeScript

import { NextIntlClientProvider } from "next-intl";
import { setRequestLocale } from "next-intl/server";
import React from "react";
import ConsentBanner from "../components/ConsentBanner";
export default async function LocaleLayout({
children,
params,
}: {
children: React.ReactNode;
params: Promise<{ locale: string }>;
}) {
const { locale } = await params;
// Ensure next-intl actually uses the route segment locale for this request.
setRequestLocale(locale);
// 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 (
<NextIntlClientProvider locale={locale} messages={messages}>
{children}
<ConsentBanner />
</NextIntlClientProvider>
);
}