並列処理

Lingo.dev CLIrunコマンドを通じて並列処理を提供し、複数のローカリゼーションタスクを同時に処理することで、大規模プロジェクトの翻訳時間を劇的に短縮します。

runコマンドは将来のバージョンでi18nコマンドを徐々に置き換え、同じ機能を提供しながら、並行処理による大幅なパフォーマンス向上を実現します。

基本的な使用方法

並列処理ですべての翻訳を処理する:

npx lingo.dev@latest run

並行レベルを制御する:

npx lingo.dev@latest run --concurrency 20

runコマンドは標準のi18nコマンドと同じi18n.json設定とi18n.lockファイルを使用します。

並列処理の仕組み

Lingo.dev CLIはローカリゼーションタスクを複数の同時実行ワーカーに分散させ、異なる言語ペアとファイルパターンを同時に処理します。

アーキテクチャ概要:

  1. タスク作成 — CLIが設定を分析し、各ロケール/ファイルの組み合わせに対して個別のタスクを作成
  2. ワーカー分散 — タスクが複数のワーカープロセスに分散
  3. 並行処理 — ワーカーがファイルの競合を防ぎながら翻訳を同時に処理
  4. 結果の集約 — 完了した翻訳が対象ファイルに安全に書き込まれる

並行性の制御

ワーカー数の設定:

npx lingo.dev@latest run --concurrency 15

デフォルトの並行性は10ワーカーです。値を高くすると翻訳処理が速くなりますが、システムリソースの消費が増え、APIレート制限に達する可能性があります。

最適な並行性はシステム能力と翻訳プロバイダーの制限によって異なります。デフォルトから始めて、パフォーマンスに基づいて調整してください。

ターゲットを絞った処理

特定の言語を処理する:

npx lingo.dev@latest run --locale es --locale fr

特定のファイルタイプを処理する:

npx lingo.dev@latest run --bucket json

特定のファイルを処理する:

npx lingo.dev@latest run --file components/header

特定のキーを処理する:

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

強制的に再翻訳する:

npx lingo.dev@latest run --force

これらのターゲティングオプションはi18nコマンドと同じように機能しますが、タスクを並列に処理します。

競合状態の防止

Lingo.dev CLIは並列処理中のファイル破損を複数の安全対策によって防止します:

I/O同期化 — ファイルシステム操作は同期化され、複数のワーカーが同時に同じファイルに書き込むことを防ぎます。

ロックファイル保護i18n.lockファイルはアトミック操作を使用して、同時更新中の破損を防止します。

トランザクション処理 — 各タスクは完全に完了するか、クリーンに失敗し、一貫したファイル状態を確保します。

パフォーマンス最適化

高い同時実行値を使用する場合はシステムリソースを監視してください。CLIは効率性を考慮して設計されていますが、非常に大規模なプロジェクトではリソース監視が有益な場合があります。

デフォルト設定から始める:

npx lingo.dev@latest run

# 最適化された同時実行設定を使用

徐々にスケールアップする:

npx lingo.dev@latest run --concurrency 20

# システムが負荷を適切に処理できる場合は増やす

反復処理のために特定のコンテンツをターゲットにする:

npx lingo.dev@latest run --file src/components

# 変更されたコンポーネントのみを処理

互換性

runコマンドは既存の設定との完全な互換性を維持します:

  • 同じi18n.json形式 — 設定変更は不要
  • 同じi18n.lockの動作 — 増分翻訳追跡は同様に機能
  • 同じファイル形式 — すべてのバケットタイプをサポート
  • 同じターゲティングオプション--locale--bucket--key--file--forceフラグは同様に機能

i18nコマンドからの移行:


# 現在のコマンド

npx lingo.dev@latest i18n

# 並列処理の同等コマンド

npx lingo.dev@latest run

すべての機能は大幅に向上したパフォーマンスで直接移行できます。

ワーカープールアーキテクチャ

Lingo.dev CLIは高度なワーカープールシステムを使用しています:

動的割り当て — システムリソースと同時実行設定に基づいてワーカーが作成されます。

タスク分配 — 最適化されたアルゴリズムを使用してタスクがワーカー間で均等に分配されます。

進捗追跡 — すべての並列操作におけるリアルタイムの進捗監視。

リソース管理 — 処理完了時の自動クリーンアップとリソース解放。