键重命名

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

已弃用

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

Lingo.dev CLI 能在你重命名翻译键时自动识别并保留已有译文。只要键名变了、源内容没变,CLI 就会把现有译文应用到新键上——无需重新翻译。

工作原理#

CLI 比较的是内容指纹,而不是键名。当它在不同的键下发现相同指纹时,就会将其识别为重命名。

json
// locales/en.json (before refactoring)
{
  "welcome_msg": "Welcome to our platform",
  "btn_save": "Save"
}

// locales/es.json (existing translations)
{
  "welcome_msg": "Bienvenido a nuestra plataforma",
  "btn_save": "Guardar"
}

在源文件中重命名键之后:

json
// locales/en.json (after refactoring)
{
  "homepage.welcome": "Welcome to our platform",
  "button.save": "Save"
}

运行 npx lingo.dev@latest run 后,译文会被保留下来:

json
// locales/es.json (translations carried forward)
{
  "homepage.welcome": "Bienvenido a nuestra plataforma",
  "button.save": "Guardar"
}

检测规则#

满足以下条件时,会检测为键重命名:

  • 键名发生变化
  • 源内容保持完全一致
  • 该键存在于同一个 bucket 中

以下情况不会被检测为键重命名:

  • 键名和内容同时变化(会被视为新键)
  • 只有内容发生变化(会被视为内容更新,并触发重新翻译)

批量重构#

重命名检测在任何规模下都适用。无论是把扁平键重组为嵌套命名空间,还是重构整套键结构,CLI 都能在一次运行中延续所有匹配的现有译文。

下一步#