diff --git a/frontend/app/[lang]/layout.tsx b/frontend/app/[lang]/layout.tsx index 5f0caee..092e30b 100644 --- a/frontend/app/[lang]/layout.tsx +++ b/frontend/app/[lang]/layout.tsx @@ -1,9 +1,12 @@ import "./globals.css"; +import { hasLocale, NextIntlClientProvider } from "next-intl"; +import { getMessages, setRequestLocale } from "next-intl/server"; +import { notFound } from "next/navigation"; import Header from "@/components/web/Header"; import Footer from "@/components/web/Footer"; import { TranslationProvider } from "@/components/providers/TranslationProvider"; import { ThemeProvider } from "@/components/web/theme-provider"; -import { getDictionary } from "@/lib/dictionary"; +import { routing } from "@/i18n/routing"; import JsonLd from "@/components/seo/JsonLd"; import { absoluteUrl, @@ -19,7 +22,12 @@ export default async function RootLayout({ children: React.ReactNode; params: { lang: string }; }>) { - const messages = await getDictionary(lang); + if (!hasLocale(routing.locales, lang)) { + notFound(); + } + + setRequestLocale(lang); + const messages = await getMessages(); const siteUrl = getSiteUrl(); const logoUrl = absoluteUrl("/logo.png", siteUrl); const orgJson = buildOrganizationJsonLd({ @@ -48,11 +56,13 @@ export default async function RootLayout({ disableTransitionOnChange storageKey="theme-preference" > - -
-
{children}
-