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>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { NextIntlClientProvider } from "next-intl";
|
import { NextIntlClientProvider } from "next-intl";
|
||||||
import { getMessages, setRequestLocale } from "next-intl/server";
|
import { setRequestLocale } from "next-intl/server";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import ConsentBanner from "../components/ConsentBanner";
|
import ConsentBanner from "../components/ConsentBanner";
|
||||||
|
|
||||||
@@ -13,7 +13,9 @@ export default async function LocaleLayout({
|
|||||||
const { locale } = await params;
|
const { locale } = await params;
|
||||||
// Ensure next-intl actually uses the route segment locale for this request.
|
// Ensure next-intl actually uses the route segment locale for this request.
|
||||||
setRequestLocale(locale);
|
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 (
|
return (
|
||||||
<NextIntlClientProvider locale={locale} messages={messages}>
|
<NextIntlClientProvider locale={locale} messages={messages}>
|
||||||
|
|||||||
Reference in New Issue
Block a user