再翻訳

Lingo.dev CLIはソーステキストが変更された場合に自動的にコンテンツを再翻訳し、その他の理由で翻訳を更新する必要がある場合には手動の再翻訳オプションを提供します。

CLIのコンテンツフィンガープリンティングシステムにより、変更されていないコンテンツの不要な再翻訳を避けながら、翻訳がソースの変更と同期されたままであることを保証します。

自動再翻訳

ソースコンテンツを変更すると、Lingo.dev CLIはコンテンツフィンガープリンティングを通じて変更を検出し、次回の実行時に影響を受けるキーを再翻訳します。

ワークフロー例:

// locales/en.json (オリジナル)
{
  "button.save": "Save changes"
}

// locales/es.json (生成済み)
{
  "button.save": "Guardar cambios"
}

ソースを更新した後:

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

npx lingo.dev@latest i18nを実行すると、スペイン語版が再翻訳されます:

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

CLIは新しいコンテンツフィンガープリントをi18n.lockと比較し、どの翻訳を更新する必要があるかを特定します。

手動再翻訳

ソースが変更されていない場合でも、コンテンツを再翻訳する必要がある場合があります。これは、AIモデルを更新したり、翻訳プロンプトを変更したり、改善されたコンテキストで翻訳を更新したい場合に発生します。

完全再翻訳

完全再翻訳を強制する:

npx lingo.dev@latest i18n --force

これはロックファイルをバイパスし、すべてのコンテンツを再翻訳して、i18n.lockファイルを最初から再作成します。

ターゲットを絞った再翻訳

特定の言語をターゲットにする:

npx lingo.dev@latest i18n --locale es

スペイン語のコンテンツのみを再翻訳し、他の言語は保持します。

特定のファイルタイプをターゲットにする:

npx lingo.dev@latest i18n --bucket json

JSONファイルのみを再翻訳します。異なるファイルタイプで更新頻度が異なる場合に便利です。

特定の翻訳キーをターゲットにする:

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

すべてのターゲット言語で単一のキーを再翻訳します。ネストされたキーの場合は、ドット表記を使用します:

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

特定のファイルをターゲットにする:

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

バケット内の特定のファイルを再翻訳します。複数のファイルをターゲットにすることもできます:

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

オプションの組み合わせ

ターゲティングオプションを組み合わせることで、より精密な制御が可能です:

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

これにより、すべてのJSON形式のコンテンツが再翻訳されますが、スペイン語のみが対象となります。

翻訳コンテキストの更新

AI翻訳設定を変更しても、既存の翻訳は自動的に更新されません。以前に翻訳されたコンテンツに新しいプロンプトやモデルを適用するには、手動での再翻訳が必要です。

再翻訳が必要な一般的なシナリオ:

  • あるAIモデルから別のモデルへの切り替え
  • より良いコンテキストのための翻訳プロンプトの更新
  • 生のLLM APIからLingo.devエンジンへの移行
  • 生のLLM APIを使用する際の既存の翻訳全体での用語の一貫性の向上

ロックファイルの統合

再翻訳により、i18n.lockファイルが新しいコンテンツのフィンガープリントで更新されます。これにより、将来の実行時に現在の翻訳設定の下でどのコンテンツが処理されたかを正確に追跡することができます。

ロックファイルは再翻訳ループを防止し、手動の再翻訳操作の後でも増分翻訳のパフォーマンス上の利点を維持します。