Skip to content
文档入门Pages Router

Next.js Pages 路由国际化 (i18n)

虽然推荐在 App Router 中使用 next-intl,Pages 路由仍然完全支持。

  1. npm install next-intl
  2. 设置国际化路由
  3. _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>
  );
}
  1. 在页面级别提供消息
pages/index.tsx
export async function getStaticProps(context) {
  return {
    props: {
      // 你可以从任何地方获取消息。推荐的模式是将它们放入按 locale 分开的 JSON 文件中,
      // 然后根据 Next.js 提供的 `locale` 读取所需消息。
      messages: (await import(`../../messages/${context.locale}.json`)).default
    }
  };
}
  1. 在你的组件中使用翻译内容!
💡

下一步: