工作原理
国际化系统建立在 Next.js 国际化 的路由系统和 Languine 的翻译系统之上。 默认情况下,它为web
包配置了以下功能:
- 通过浏览器头检测用户首选语言
- 将用户路由到特定语言的路径(例如,
/en/about
,/fr/about
) - 从特定语言的字典中提供内容
设置
设置 Languine 环境变量
要启用自动翻译,只需在internationalization
包中创建一个 .env
文件并设置 LANGUINE_PROJECT_ID
环境变量。
.env
登录 Languine
Terminal
Languine 提供 500 个免费翻译密钥。如果您需要更多,需要升级到付费计划。如果您不想使用 Languine,可以手动翻译您的内容。在这种情况下,您不需要设置
LANGUINE_PROJECT_ID
环境变量。配置
国际化包通过languine.json
文件进行配置,该文件定义了:
- 源语言(例如,
en
) - 目标语言(例如,
["es", "de"]
) - 字典文件位置
字典结构
字典是 TypeScript 文件,为每种支持的语言导出强类型内容。类型系统确保翻译的一致性:zh/packages/internationalization/dictionaries/[locale].ts
使用方法
翻译
要翻译您的应用程序,您可以运行以下命令:Terminal
dictionaries
文件夹中。
前端
要使用国际化包,您需要:- 维护源语言的字典
- 将字典导入您的应用程序
- 使用字典来渲染内容
web
包中找到字典的示例:
zh/apps/web/app/page.tsx
locale
参数来更改应用程序的语言。例如,https://example.com/en/about
将以英语呈现 about
页面。
我们已经为 web
包配置了语言切换器,因此您无需担心。

中间件
国际化包还包括一个中间件组件,可自动检测用户的语言并将其路由到相应的语言特定页面。 这已经为web
包配置好了,因此您无需担心。
zh/apps/web/middleware.ts