i18n.lock ロックファイル

i18n.lockは、不要な再翻訳を防止し、Lingo.dev CLIのパフォーマンスを最適化するために、コンテンツのチェックサムを追跡するロックファイルです。

i18n.lockは、ソースコンテンツと翻訳キーのチェックサムを保存して、翻訳実行間で変更された内容を識別します。その結果、新規または変更されたコンテンツのみが翻訳され、処理時間と翻訳コストが削減されます。

ロックファイルの構造

i18n.lockはコンテンツチェックサムを保存するために構造化されたYAML形式を使用します:

version: 1
checksums:
  a07974ea09011daa56f9df706530e442:
    key: f8692d39317193acf0e2e47172703c46
  b18975fb19122ebb67g0ef817641f553:
    key: g9703e40428204bdf1f3f58283814d57

設定要素:

  • version — 移行互換性のためのロックファイルスキーマバージョン
  • checksums — 翻訳されたコンテンツを追跡するコンテンツチェックサムからキーチェックサムへのマッピング
  • checksums.[content-hash] — ソースコンテンツのSHA-256ハッシュで、一意の識別子として機能
  • checksums.[content-hash].key — キーの名前変更検出を可能にする翻訳キーのSHA-256ハッシュ

Lingo.dev CLIは、異なるキーチェックサムで同一のコンテンツを検出した場合、既存の翻訳を保持します。再翻訳は行われず、キーの組織変更を可能にしながら翻訳の一貫性を維持します。キーの名前変更についての詳細をご覧ください。

ワークフロー統合

i18n.lockは翻訳ワークフロー中に自動的に動作します:

初回実行 — 初期コンテンツチェックサムでロックファイルを作成します:

npx lingo.dev@latest i18n

# すべてのソースコンテンツチェックサムを含むi18n.lockを作成

ロックファイルの再作成 — ロックファイルを最初から再作成します:

npx lingo.dev@latest lockfile --force

# すべてのソースコンテンツチェックサムを含むi18n.lockを再作成

ヒント:マージコンフリクト解決中にロックファイルを真の状態にリセットするために、このコマンドを安全に使用できます。

後続の実行 — 変更されたコンテンツのみを処理します:

npx lingo.dev@latest i18n

# 現在のコンテンツとi18n.lockを比較

# 新規または変更されたコンテンツのみを翻訳

強制再翻訳 — ロックファイルの最適化をバイパスし、すべてのコンテンツを再翻訳してロックファイルを再作成します:

npx lingo.dev@latest i18n --force

# i18n.lockを無視してすべてのコンテンツを再翻訳します

フローズン検証 — 翻訳の完全性を検証します:

npx lingo.dev@latest i18n --frozen

# 翻訳が必要なコンテンツがある場合は失敗します

# CI/CDで完全な翻訳を確保するために使用されます

バージョン管理システムとの統合

i18n.lockは翻訳ファイルと共にバージョン管理システムにコミットする必要があります。

ロックファイルはLingo.dev CLIの増分翻訳システムの重要な部分であり、あらゆる規模のプロジェクトに実用的です。