import { Metadata } from "next"; import { NextIntlClientProvider } from "next-intl"; import { getMessages, setRequestLocale } from "next-intl/server"; import { SUPPORTED_LOCALES, DEFAULT_LOCALE, isValidLocale } from "@/lib/i18n/locales"; const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://dev.manoonoils.com"; export function generateStaticParams() { return SUPPORTED_LOCALES.map((locale) => ({ locale })); } export async function generateMetadata({ params, }: { params: Promise<{ locale: string }>; }): Promise { const { locale } = await params; const validLocale = isValidLocale(locale) ? locale : DEFAULT_LOCALE; const localePrefix = validLocale === DEFAULT_LOCALE ? "" : `/${validLocale}`; const languages: Record = {}; for (const loc of SUPPORTED_LOCALES) { const prefix = loc === DEFAULT_LOCALE ? "" : `/${loc}`; languages[loc] = `${baseUrl}${prefix}`; } return { alternates: { canonical: `${baseUrl}${localePrefix}`, languages, }, }; } export default async function LocaleLayout({ children, params, }: { children: React.ReactNode; params: Promise<{ locale: string }>; }) { const { locale } = await params; setRequestLocale(locale); const messages = await getMessages(); return ( {children} ); }