用途:在 Next.js App Router 项目中配置并使用 next-intl,实现基于前缀的语言路由,例如 /en/about、/ja/about。
主要能力:集中定义语言与默认语言;按 [locale] 段解析语言并加载对应 messages JSON;通过代理/中间件处理语言前缀;提供保留当前语言的导航封装;支持静态渲染与客户端、服务端翻译调用。
必要用法:在 next.config.ts 中用 createNextIntlPlugin() 包裹配置,默认路径为 ./i18n/request.ts,自定义路径可传参。在 src/i18n/routing.ts 用 defineRouting 定义 locales 与 defaultLocale。在 src/i18n/request.ts 用 getRequestConfig 配合 hasLocale 动态导入 messages/${locale}.json。Next.js 16 使用 src/proxy.ts(原 middleware.ts),导出 createMiddleware(routing) 与 matcher,匹配除 /api、/trpc、/_next、/_vercel 及含点路径外的所有路径。在 src/i18n/navigation.ts 用 createNavigation(routing) 导出 Link 等,组件中应从该文件导入 Link 而非 next/link。app/[locale]/layout.tsx 需校验语言、调用 setRequestLocale、用 NextIntlClientProvider 与 getMessages() 包裹;每个使用 next-intl 的 [locale] 页面也应调用 setRequestLocale(locale)。客户端组件用 useTranslations("Namespace"),服务端组件用 getTranslations。messages 目录按语言放置 JSON,嵌套键对应命名空间与键,支持 {color} 形式插值。
适用场景:需要多语言前缀路由的 Next.js App Router 项目。
限制:资料未提供收费、价格、平台与效果信息;扩展配置(localePrefix、pathnames 等)需参考 reference.md 与官方文档。