i18n 代码进入URL路由,优化重定向规则

This commit is contained in:
2026-09-16 20:03:41 +08:00
parent d4bd36f5f8
commit f63f70d08b
42 changed files with 361 additions and 141 deletions
+34
View File
@@ -0,0 +1,34 @@
import type { Metadata } from "next";
import { getNewsCatalog } from "@/data/news";
import { PageBreadcrumb } from "@/components/layout/page-breadcrumb";
import { NewsList } from "@/components/news/news-list";
import { NewsPageHeading } from "@/components/news/news-page-heading";
import { getLocaleMessages, isLocale } from "@/lib/i18n";
export async function generateMetadata({ params }: { params: Promise<{ locale?: string }> }): Promise<Metadata> {
const { locale } = await params;
return { title: getLocaleMessages(isLocale(locale) ? locale : "zh-Hans").common.news };
}
export default async function NewsPage({ params }: { params: Promise<{ locale?: string }> }) {
const { locale } = await params;
const messages = getLocaleMessages(isLocale(locale) ? locale : "zh-Hans");
const catalog = await getNewsCatalog();
return (
<main className="news-page">
<div className="news-page-inner">
<header className="news-page-header">
<NewsPageHeading />
</header>
<NewsList catalog={catalog} />
</div>
<div className="page-bottom-nav">
<div className="page-bottom-nav-inner">
<PageBreadcrumb items={[{ label: messages.common.home, href: "/" }, { label: messages.common.news }]} />
</div>
</div>
</main>
);
}