既存の翻訳との連携

Lingo.dev CLIは、既に翻訳ファイルを持つプロジェクトとシームレスに統合し、既存の作業を保持しながら不足している翻訳を補完します。

既存の翻訳があるプロジェクトでCLIを実行すると、既に翻訳されている内容を分析し、不足しているキーのコンテンツのみを生成することで、既存の翻訳品質と一貫性を維持します。

注意:ターゲット言語ファイルが空であり、ソース言語のコンテンツが含まれていないことを確認してください。ターゲットファイルにソース言語のコンテンツが含まれているのは悪い慣習であり、翻訳プロセスに支障をきたす可能性があります。

仕組み

Lingo.dev CLIは、ソースコンテンツと既存のターゲットファイルを比較してギャップを特定します。不足している翻訳のみが生成され、既存の作業はそのまま残ります。

シナリオ例:

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

// locales/es.json (existing partial translations)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

npx lingo.dev@latest runを実行すると、不足している翻訳のみが生成されます:

// locales/es.json (after CLI run)
{
  "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. レビューとコミット — 既存の翻訳は保持され、ギャップのみが埋められます

移行例:

// Your existing project structure
locales/
  en.json    (source)
  es.json    (partial translations from previous tool)
  fr.json    (partial translations from previous tool)

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

CLIは既存のファイル構造と翻訳を尊重します。

翻訳品質の管理

既存の翻訳は、AI翻訳エンジンによって生成された翻訳よりも品質が低い場合があります。Lingo.dev CLIは、必要に応じて翻訳を更新するオプションを提供します:

既存の翻訳を保持:

npx lingo.dev@latest run
# Preserves all existing translations, fills in gaps

特定の言語を再翻訳:

npx lingo.dev@latest run --force --target-locale es
# Regenerates all Spanish translations

特定のキーを再翻訳:

npx lingo.dev@latest run --force --key error.network
# Regenerates just the error.network key across all languages

再翻訳の詳細については、再翻訳を参照してください。

空のターゲットファイル

空のターゲットファイルや一部のキーのみを含むファイルがある場合、Lingo.dev CLIはそれらを部分的に翻訳されたものとして扱い、不足しているコンテンツを補完します。

例:

// locales/de.json (empty target file)
{}

CLIを実行すると、すべてのソースキーが翻訳された完全な翻訳ファイルになります。

ロックファイルの初期化

初回実行時に、既存の状態を反映したi18n.lockファイルが作成されます。これにより、Lingo.dev CLIによって元々生成されていなくても、既に存在していたコンテンツが再翻訳されることを防ぎます。

このロックファイルにより、既存の翻訳と新しい翻訳の間で一貫した動作が保証されます。