import type { Metadata } from "next"; import { NextIntlClientProvider } from 'next-intl'; import { getMessages } from 'next-intl/server'; import { setRequestLocale } from 'next-intl/server'; import { notFound } from 'next/navigation'; import { locales } from '@/i18n'; import "./globals.css"; import 'maplibre-gl/dist/maplibre-gl.css'; export const metadata: Metadata = { title: "Heritage Globe - 中国文物全球分布", description: "Explore Chinese cultural relics worldwide on an interactive map", }; export function generateStaticParams() { return locales.map((locale) => ({ locale })); } export default async function LocaleLayout({ children, params: paramsPromise }: { children: React.ReactNode; params: Promise<{ locale: string }>; }) { const params = await paramsPromise; const locale = params.locale; // 验证语言参数 if (!locales.includes(locale as any)) { notFound(); } // 设置请求的语言环境(启用静态渲染优化) setRequestLocale(locale); // 获取翻译消息 const messages = await getMessages(); return (