现有翻译

更新时间:上个月 · 预计阅读 1 分钟

你无需从空白项目起步。如果项目里已经有翻译文件,CLI 可以直接配合现有内容工作:自动补齐缺失项,同时保留你已有的翻译。

让配置指向现有内容#

设置源语言、目标语言和文件匹配规则,对应到你当前存放翻译文件的位置:

json
{
  "sourceLocale": "en",
  "targetLocales": ["de", "fr"],
  "files": [{ "pattern": "locales/en.json" }]
}

如果 locales/de.json 和 locales/fr.json 已经存在,就会原样保留。

补齐缺失项#

bash
lingo push --backfill-missing

--backfill-missing 只会生成缺失的目标内容——比如某个语言环境还没有对应文件,或者(首次运行后)某些键尚未被引擎翻译。你已有的文件不会被覆盖。

text
✓ Run lfr_a8c...: localized 1 target file(s), 2 already up-to-date.

锁定特定值#

如果某些现有翻译已经过人工审核,之后绝不能改动,可以将它们标记为 preservedKeys,这样后续任何一次运行都不会触碰这些内容:

json
{ "pattern": "locales/en.json", "preservedKeys": ["legal.terms"] }

lockfile 的初始化方式#

首次 push 会在 .lingo/lock.json 中记录每个源文件的哈希值。此后,普通的 lingo push 只会发送发生变更的源文件——除非你修改了源文件或主动强制执行,否则现有翻译不会被重复发送。请将 lockfile 与翻译文件一并提交。参见 Configuration。

有意覆盖

--backfill-missing绝不会进行覆盖。若要在模型或规则变更后有意重新生成现有译文,请使用限定范围的 --force 推送。