並列処理
Lingo.dev CLIは、runコマンドを通じて並列処理を提供し、複数のローカライゼーションタスクを同時に処理することで、大規模プロジェクトの翻訳時間を劇的に短縮します。
runコマンドは、非推奨のi18nコマンドに代わるもので、同等の機能を提供しながら、並行処理により大幅なパフォーマンス向上を実現します。
基本的な使用方法
並列処理ですべての翻訳を処理する:
npx lingo.dev@latest run
同時実行レベルを制御する:
npx lingo.dev@latest run --concurrency 20
runコマンドは、i18nコマンドと同じi18n.json設定とi18n.lockファイルを使用します。
並列処理の仕組み
Lingo.dev CLIは、ローカライゼーションタスクを複数の同時実行ワーカーに分散し、異なる言語ペアとファイルパターンを同時に処理します。
アーキテクチャの概要:
- タスク作成 — CLIが設定を分析し、各ロケール/ファイルの組み合わせごとに個別のタスクを作成します
- ワーカー分散 — タスクが複数のワーカープロセスに分散されます
- 同時処理 — ワーカーがファイルの競合を防ぎながら翻訳を同時に処理します
- 結果の集約 — 完了した翻訳が安全にターゲットファイルに書き込まれます
同時実行制御
ワーカー数を設定する:
npx lingo.dev@latest run --concurrency 15
デフォルトの同時実行数は10ワーカーです。値を大きくすると翻訳処理が高速化されますが、システムリソースの消費が増え、APIのレート制限に達する可能性があります。
最適な同時実行数は、システムの能力と翻訳プロバイダーの制限によって異なります。デフォルトから始めて、パフォーマンスに基づいて調整してください。
ターゲットを絞った処理
特定の言語を処理する:
npx lingo.dev@latest run --target-locale es --target-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
minimatchライブラリで定義されたglobパターンを使用できます。
再翻訳を強制:
npx lingo.dev@latest run --force
ヒント: 再翻訳で最良の結果を得るには、まずpurgeコマンドを使用して翻訳を削除してから、--forceなしでrunコマンドを実行してください。このアプローチは、組み込みのキャッシュメカニズムを活用して、より効率的な再翻訳を実現します。
これらのターゲティングオプションは、i18nコマンドと同様に機能しますが、タスクを並列処理します。
競合状態の防止
Lingo.dev CLIは、複数の保護機能により、並列処理中のファイル破損を防止します。
I/O同期 — ファイルシステム操作が同期され、複数のワーカーが同時に同じファイルに書き込むことを防ぎます。
ロックファイル保護 — i18n.lockファイルはアトミック操作を使用して、同時更新中の破損を防ぎます。
トランザクション処理 — 各タスクは完全に完了するか、クリーンに失敗し、一貫したファイル状態を保証します。
パフォーマンスの最適化
高い並行性の値を使用する場合は、システムリソースを監視してください。CLIは効率性を重視して設計されていますが、非常に大規模なプロジェクトではリソース監視が有効な場合があります。
デフォルトから開始:
npx lingo.dev@latest run
# Uses optimized concurrency settings
段階的にスケールアップ:
npx lingo.dev@latest run --concurrency 20
# Increase if system handles load well
反復処理用に特定のコンテンツをターゲット:
npx lingo.dev@latest run --file src/components
# Process only changed components
互換性
runコマンドは、既存の設定との完全な互換性を維持します。
- 同じ
i18n.json形式 — 設定変更は不要 - 同じ
i18n.lock動作 — 増分翻訳トラッキングは同様に機能 - 同じファイル形式 — すべてのバケットタイプをサポート
- 同じターゲティングオプション —
--bucket、--key、--file、--forceフラグは同様に機能 - ロケールの指定オプション:
--target-localeでi18n.json設定のlocale.targetsを上書き (注:i18nコマンドの--localeオプションを置き換えます。)--source-localeでi18n.json設定のlocale.sourceを上書き
i18nコマンドからの移行:
# Current command
npx lingo.dev@latest i18n
# Parallel equivalent
npx lingo.dev@latest run
すべての機能がパフォーマンスを大幅に向上させた状態で直接移行されます。
--localeオプションは、個別の--target-localeと--source-localeオプションに置き換えられます。
ワーカープールアーキテクチャ
Lingo.dev CLIは高度なワーカープールシステムを使用します。
動的割り当て — ワーカーはシステムリソースと同時実行設定に基づいて作成されます。
タスク分散 — タスクは最適化されたアルゴリズムを使用してワーカー間に均等に分散されます。
進捗追跡 — すべての並列操作におけるリアルタイムの進捗監視。
リソース管理 — 処理完了時の自動クリーンアップとリソース解放。
自動キャッシング — Lingo.dev APIを翻訳に使用する場合、大きなロケールファイルはチャンクに分割されます。ターゲットロケールファイルは、APIから各チャンクを受信するたびに翻訳が段階的に追加されます。プロセスが中断された場合、中断した箇所から翻訳を再開できます。