import { NextIntlClientProvider } from "next-intl"; import { getMessages, setRequestLocale } from "next-intl/server"; import { notFound } from "next/navigation"; import localFont from "next/font/local"; import { routing } from "@/i18n/routing"; import { Providers } from "@/components/providers"; import "../globals.css"; const vazirmatn = localFont({ src: "../../fonts/Vazirmatn-Variable.woff2", variable: "--font-vazirmatn", display: "swap", weight: "100 900", }); const inter = localFont({ src: "../../fonts/Inter-Variable.woff2", variable: "--font-inter", display: "swap", weight: "100 900", }); export function generateStaticParams() { return routing.locales.map((locale) => ({ locale })); } export default async function LocaleLayout({ children, params, }: { children: React.ReactNode; params: Promise<{ locale: string }>; }) { const { locale } = await params; if (!routing.locales.includes(locale as "fa" | "ar" | "en")) { notFound(); } setRequestLocale(locale); const messages = await getMessages(); const dir = locale === "en" ? "ltr" : "rtl"; const fontClass = locale === "en" ? inter.variable : vazirmatn.variable; return ( {children} ); }