Next.js Pages 路由国际化 (i18n)
虽然推荐在 App Router 中使用 next-intl,Pages 路由仍然完全支持。
npm install next-intl- 设置国际化路由
- 在
_app.tsx中添加 provider
_app.tsx
import {NextIntlClientProvider} from 'next-intl';
import {useRouter} from 'next/router';
export default function App({Component, pageProps}) {
const router = useRouter();
return (
<NextIntlClientProvider
locale={router.locale}
timeZone="Europe/Vienna"
messages={pageProps.messages}
>
<Component {...pageProps} />
</NextIntlClientProvider>
);
}- 在页面级别提供消息
pages/index.tsx
export async function getStaticProps(context) {
return {
props: {
// 你可以从任何地方获取消息。推荐的模式是将它们放入按 locale 分开的 JSON 文件中,
// 然后根据 Next.js 提供的 `locale` 读取所需消息。
messages: (await import(`../../messages/${context.locale}.json`)).default
}
};
}- 在你的组件中使用翻译内容!
💡
下一步:
- 想要深入了解
next-intl?查看使用指南。 遇到问题?查看Pages 路由示例,了解一个可运行的应用。
正在从 Pages 路由迁移到 App Router?查看迁移示例。