大規模プロジェクト

更新日:4 日前 · 読了目安 1分

翻訳はサーバー側で実行されるため、スケール対応の大半はあなたではなくエンジンが引き受けます。lingo push がジョブを送信し、エンジンが処理するので、ワーカープールや並行処理を設定する必要はありません。あなたがコントロールするのは、一度にどこまでプッシュするか と どう復旧するか です。

変更分だけをプッシュする#

デフォルトでは、lingo push が各ソースを lockfile と照らし合わせてハッシュを取り、変更があったものだけを送信します。大規模なリポジトリでは、これがもっとも低コストなルートです。変更のないコーパスはサーバーとの往復も発生しない no-op になります。差分に任せて、全面的な --force は避けましょう。

大きな変更は範囲を絞る#

再翻訳が必要な場合でも、プロジェクト全体ではなくサブツリー単位に絞って実行しましょう。

bash
lingo push 'content/en/marketing/**/*.md' --force

こうすることで、大規模な実行でも範囲を限定でき、見通しよく進められます。詳しくは 再翻訳 を参照してください。

大規模な実行前に見積もる#

大きな実行は、始める前にコストを見積もっておきましょう。

bash
lingo push --backfill-missing --estimate

見積もりコストを表示して終了します。初回のフル翻訳や、多数のロケールにまたがるモデル切り替えの前に便利です。

実行に張り付く必要はない#

pushは実行が終わるまで居続けるのではなく、実行状態に記録して終了するため、あとから同じチェックアウトで結果を収集できます。

bash
# kick it off
lingo push --backfill-missing

# later — same machine, same checkout
lingo pull

最初からやり直さずに復旧する#

大規模な実行が途中で失敗しても、全体を再プッシュする必要はありません。lingo resume は追加コストをかけずにキャッシュ済みの結果を再出力し、そのうえで --backfill-missing が不足分を埋めます。

自動化する#

常に最新の状態を保ちたい大規模プロジェクトでは、CI でマージ時に翻訳を実行し、結果を PR として開く運用がおすすめです。詳しくは CI/CD を参照してください。

旧CLIを使っていた方へ

旧CLIではローカルマシン上で翻訳していたため、クライアント側の並行処理設定(ワーカープールや parallel フラグ)を公開していました。現在の CLI はサーバー側で翻訳するため、そうした調整項目はなくなっています。スケール対応は自動で処理されます。いま重視すべきなのは、スコープ、バックフィル、resume です。