添加语言
Lingo.dev CLI 让您只需在 i18n.json 配置中添加目标语言,并运行一条命令,即可轻松将项目扩展到新语言。
当您添加新语言时,CLI 会为新语言环境生成完整的翻译文件,同时保留所有现有翻译,并保持相同的内容指纹系统。
添加您的第一个新语言
要添加新语言,请在 targets 数组中更新您的 i18n.json 配置:
原始配置:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
包含德语的更新配置:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
运行 npx lingo.dev@latest run 会创建新的德语翻译文件:
locales/
en.json (source - unchanged)
es.json (existing - unchanged)
fr.json (existing - unchanged)
de.json (new - fully translated)
新语言生成机制
Lingo.dev CLI 对新语言和现有语言的处理方式不同:
- 现有语言 — 只生成缺失的翻译
- 新语言 — 从头创建完整的翻译文件
部分已有翻译的示例:
// locales/en.json (source)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (existing with missing translations)
{
"welcome": "Bienvenido"
}
添加德语并运行 CLI 后:
// locales/es.json (gaps filled)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (complete new file)
{
"welcome": "Willkommen",
"button.save": "Speichern",
"error.network": "Netzwerkfehler"
}
添加多种语言
您可以同时添加多种语言:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh"]
}
}
CLI 会处理所有新语言,为每个新语言环境创建完整的翻译文件。
区域变体
Lingo.dev CLI 支持使用 BCP 47 语言标签的区域语言变体:
{
"locale": {
"source": "en-US",
"targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
}
}
这会为每个地区变体生成独立的翻译文件,充分考虑术语、拼写和文化语境的差异。
文件结构影响
CLI 会根据你的 bucket 模式创建新文件。对于不同的文件格式:
JSON bucket:
locales/[locale].json → locales/de.json, locales/ja.json
Markdown bucket:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
嵌套结构:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
目标语言添加
你可以使用 --target-locale 标志为特定的新语言生成翻译:
npx lingo.dev@latest run --target-locale de
这只会生成德语翻译,其他新语言可稍后处理。
语言移除
要移除某种语言,只需将其从 targets 数组中删除。CLI 不会删除已有文件,但会停止处理该 locale:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
如有需要,你可以手动删除对应的翻译文件。