使用现有翻译

Lingo.dev CLI 无缝集成到已经包含翻译文件的项目中,保留现有的翻译内容,同时补充缺失的翻译。

当您在一个已有翻译的项目中运行 CLI 时,它会分析已翻译的内容,仅为缺失的键生成内容,从而保持现有翻译的质量和一致性。

注意:请确保目标语言文件是空的,且不包含源语言的内容。在目标文件中包含源语言内容是一种不良实践,可能会干扰翻译过程。

工作原理

Lingo.dev CLI 将您的源内容与现有的目标文件进行比较,以识别缺失部分。仅生成缺失的翻译,现有的翻译内容不会被修改。

示例场景:

// locales/en.json (源文件)
{
  "welcome": "Welcome to our app",
  "button.save": "Save",
  "button.cancel": "Cancel",
  "error.network": "Network error"
}

// locales/es.json (现有的部分翻译)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

运行 npx lingo.dev@latest i18n 仅生成缺失的翻译:

// locales/es.json (CLI 运行后)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar",
  "button.cancel": "Cancelar",
  "error.network": "Error de red"
}

现有的 "welcome" 和 "button.save" 翻译保持不变。

第一次运行现有翻译

当您首次在包含现有翻译的项目中运行 Lingo.dev CLI 时,它会根据当前状态创建 i18n.lock 文件。此锁文件会跟踪已处理的内容,确保现有翻译不会被重新生成。

工作流程:

  1. 初始扫描 — CLI 识别目标文件中的现有翻译
  2. 差距分析 — 将源键与目标文件进行比较,找出缺失的翻译
  3. 翻译生成 — 仅创建缺失的翻译
  4. 锁文件创建 — 为所有源内容记录内容指纹

从传统翻译系统迁移

Lingo.dev CLI 可以处理由任何工具创建的翻译文件,只要它们遵循标准格式,例如 JSON、YAML 或其他支持的文件类型。

迁移步骤:

  1. 配置 i18n.json — 设置您的存储桶模式以匹配现有文件位置
  2. 运行初始翻译 — CLI 会填充任何缺失的翻译
  3. 审核并提交 — 保留现有翻译,仅填补空缺部分

迁移示例:

// 您现有的项目结构
locales/
  en.json    (源文件)
  es.json    (来自之前工具的部分翻译)
  fr.json    (来自之前工具的部分翻译)

// i18n.json 配置
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

CLI 会遵循您现有的文件结构和翻译内容。

处理翻译质量

现有翻译的质量可能比 AI 翻译引擎生成的翻译质量更差。Lingo.dev CLI 提供了在需要时刷新翻译的选项:

保留现有翻译:

npx lingo.dev@latest i18n

# 保留所有现有翻译,仅填补空缺部分

重新翻译特定语言:

npx lingo.dev@latest i18n --force --locale es

# 重新生成所有西班牙语翻译

重新翻译特定键:

npx lingo.dev@latest i18n --force --key error.network

# 仅重新生成所有语言中的 error.network 键

有关重新翻译的更多信息,请参阅重新翻译

空目标文件

如果您有空的目标文件或仅包含部分键的文件,Lingo.dev CLI 会将它们视为部分翻译并填充缺失内容。

示例:

// locales/de.json (空目标文件)
{}

运行 CLI 后,它将变为一个完整的翻译文件,包含所有源键的翻译内容。

锁文件初始化

首次运行会创建一个 i18n.lock 文件,该文件反映了您现有的状态。这可以防止 CLI 对已经存在的内容重新翻译,即使这些内容最初并不是由 Lingo.dev CLI 生成的。

此锁文件可确保现有翻译与新翻译之间的一致性,从而实现持续一致的行为。