重新翻译

Lingo.dev CLI 会在源文本发生更改时自动重新翻译内容,并在你需要因其他原因刷新翻译时,提供手动重新翻译选项。

CLI 的内容指纹系统确保翻译与源内容变更保持同步,同时避免对未变更内容进行不必要的重新翻译。

自动重新翻译

当你修改源内容时,Lingo.dev CLI 会通过内容指纹检测到更改,并在下次运行时重新翻译受影响的键。

示例工作流程:

// locales/en.json (original)
{
  "button.save": "Save changes"
}

// locales/es.json (generated)
{
  "button.save": "Guardar cambios"
}

更新源内容后:

// locales/en.json (modified)
{
  "button.save": "Save all changes"
}

运行 npx lingo.dev@latest run 会重新翻译西班牙语版本:

// locales/es.json (updated)
{
  "button.save": "Guardar todos los cambios"
}

CLI 会将新的内容指纹与 i18n.lock 进行比对,识别需要更新的翻译。

手动重新翻译

有时即使源内容未变更,你也需要重新翻译内容。这通常发生在你更新 AI 模型、更改翻译提示,或希望通过改进的上下文刷新翻译时。

全量重新翻译

强制全量重新翻译:

npx lingo.dev@latest run --force

此操作会跳过 lockfile,重新翻译所有内容,并从头生成 i18n.lock 文件。

定向重新翻译

定向特定语言:

npx lingo.dev@latest run --target-locale es

仅重新翻译西班牙语内容,其他语言保持不变。

定向特定文件类型:

npx lingo.dev@latest run --bucket json

仅重新翻译 JSON 文件,当不同文件类型的更新频率不同步时非常有用。

定向特定翻译键:

npx lingo.dev@latest run --key welcome.title

可在所有目标语言中重新翻译单个键。对于嵌套键,请使用点号表示法:

npx lingo.dev@latest run --key header.navigation.about

定向特定文件:

npx lingo.dev@latest run --file blog.[locale].json

可在您的 bucket 中重新翻译指定文件。支持同时定向多个文件:

npx lingo.dev@latest run --file landing.[locale].json --file pricing.[locale].json

组合选项

您可以组合定向选项,实现精确控制:

npx lingo.dev@latest run --force --bucket json --target-locale es

这会重新翻译所有 JSON 内容,但仅限于西班牙语。

翻译上下文更新

当您修改 AI 翻译设置时,现有翻译不会自动更新。需要手动重新翻译,才能将新提示词或模型应用于已翻译内容。

常见需要重新翻译的场景:

  • 从一个 AI 模型切换到另一个
  • 更新翻译提示词以获得更好上下文
  • 从原始 LLM API 迁移到 Lingo.dev Engine
  • 使用原始 LLM API 时提升现有翻译的术语一致性

Lockfile 集成

重新翻译会用新内容指纹更新 i18n.lock 文件。这确保后续运行能正确追踪哪些内容已在当前翻译设置下处理。

lockfile 可防止重复翻译循环,并在手动重新翻译后依然保持增量翻译的性能优势。