覆盖

更新时间:上季度 · 预计阅读 1 分钟

已弃用

这些文档介绍的是旧版 CLI(v0)。当前 CLI 版本为 v1。 查看当前 CLI 文档

Lingo.dev CLI 会保留你在目标文件中的手动修改。当你直接编辑目标文件,覆盖自动生成的翻译时,只要源内容没有变化,CLI 就会在后续运行中持续保留你的修改。

覆盖机制如何运作#

CLI 跟踪的是源内容的指纹,而不是目标内容的指纹。当你在目标文件中手动修改某条翻译时,源内容指纹不会变化,因此 CLI 会将这个 key 视为已翻译并跳过处理。

1

CLI 生成翻译

json
// locales/es.json (generated)
{ "greeting": "Bienvenido a nuestra plataforma" }
2

你手动覆盖它

json
// locales/es.json (manually edited)
{ "greeting": "¡Bienvenido a nuestro espacio digital!" }
3

后续运行会保留你的覆盖

bash
npx lingo.dev@latest run
# Your custom translation remains unchanged

覆盖何时会被替换#

如果源内容发生变化,CLI 会检测到新的指纹,并重新翻译这个 key——你的覆盖也会被替换:

json
// locales/en.json (source updated)
{ "greeting": "Welcome to our new platform" }

新的指纹与 lockfile 中的记录不匹配,因此 CLI 会为这个 key 生成一条全新的翻译。

Key 重命名#

即使 key 被重命名,只要内容保持不变,CLI 依然会保留翻译。lockfile 会同时跟踪内容指纹和 key 指纹,因此支持 key renaming,不会丢失已有的翻译成果。

下一步#