Lingo.dev CLI 可无缝接入已包含翻译文件的项目。它会比对源语言键和现有目标语言文件,只生成缺失的翻译,不改动你已有的内容。
工作方式#
当你在一个已有部分翻译的项目中运行 CLI 时,它会先进行缺口分析:
json
// locales/en.json (source - 4 keys)
{
"welcome": "Welcome to our app",
"button.save": "Save",
"button.cancel": "Cancel",
"error.network": "Network error"
}
// locales/es.json (existing - 2 keys translated)
{
"welcome": "Bienvenido a nuestra aplicación",
"button.save": "Guardar"
}运行 npx lingo.dev@latest run 后,只会补齐缺失的键:
json
// locales/es.json (after run - all 4 keys present)
{
"welcome": "Bienvenido a nuestra aplicación",
"button.save": "Guardar",
"button.cancel": "Cancelar",
"error.network": "Error de red"
}现有的 welcome 和 button.save 翻译内容都会保持不变。
首次运行#
首次运行时,CLI 会根据你当前的状态创建一个 i18n.lock 文件。这个锁文件会记录所有源内容的指纹,确保后续运行时不会重新生成已有翻译——即使这些翻译最初是由其他工具创建的。
请确保目标语言文件中不包含源语言内容。若目标文件里混有未翻译的源文本,可能会影响缺口检测。
从其他工具迁移#
CLI 支持处理由任意工具生成的翻译文件,只要它们符合支持的格式(JSON、YAML、PO 等):
1
配置 i18n.json
设置与现有文件路径匹配的 bucket 模式。
2
运行翻译
CLI 会在保留现有翻译的同时,补齐缺失的键。
3
检查并提交
只补齐缺失部分,你现有的翻译保持不变。
刷新翻译#
如果现有翻译质量不理想,你可以有选择地重新翻译:
bash
# Retranslate all Spanish content
npx lingo.dev@latest run --force --target-locale es
# Retranslate a specific key across all languages
npx lingo.dev@latest run --force --key error.network如需更多选项,请参阅 Retranslation。
