既存の翻訳との連携

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ファイルが作成されます。これにより、たとえ元々Lingo.dev CLIによって生成されたものでなくても、すでに存在するコンテンツをCLIが再翻訳することを防ぎます。

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