@lingo.dev/cli

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

@lingo.dev/cli はソースコンテンツを ローカライゼーションエンジン に送信し、サーバー側で翻訳したうえで、出力をディスクへ書き戻します。--wait を使えば同じコマンド内で完結し、lingo pull なら後から取得できます。従来の npx lingo.dev フローに代わる仕組みで、同じプロジェクトでもアーキテクチャは根本から異なります。

従来の CLI との違い#

従来の CLI(npx lingo.dev run)は文字列を抽出し、手元のマシンから直接 LLM を呼び出して、そのまま 1 回でファイルを書き出していました。現在の CLI では、この処理を push と pull に分けています。

  • lingo push はソースをエンジンにアップロードし、サーバー側のワークフローを開始して、完了まで待機するか、run ID を返してすぐに終了します
  • lingo pull は直近の push の出力を取得します。翻訳の途中でターミナルを閉じても、同じマシンの同じチェックアウトで pull すれば利用できます。
  • lockfile(.lingo/lock.json)は各ターゲットのサーバー上の最新既知バージョンを追跡し、上書き前にローカルでの編集を競合として検出できるようにします

これにより、従来のCLIではできなかったことが可能になります。ターミナルを開いたまま待たなくても長時間の翻訳を実行でき、push してターミナルを閉じ、結果は後から pull できます。

結果を待つ#

lingo push はソースをアップロードし、サーバー側のワークフローを開始すると、実行が送信された時点ですぐに終了します。翻訳の完了は待たず、結果の書き込みも行いません。出力は lingo pull で取得するか、--wait(-w)を付けてひとつのコマンドでまとめて実行できます。

bash
lingo push            # submit the run and exit (default)
lingo pull            # later: re-attach to the most recent push and download its outputs

lingo push --wait     # submit, wait, and write outputs in one command
  • --wait(-w)はワークフローが完了するまで待機し、同じコマンド内で出力を書き込みます。
  • lingo pull はこのプロジェクトの直近の push に再接続し、出力をダウンロードします。ターミナルを閉じたあとでも利用できます。実行状態はマシンごとに ~/.lingo/runs/<project-hash>.json で管理され、プロジェクトパスをキーにしているため、pull は同じマシンの同じチェックアウトから再開されます。

認証: どちらのコマンドも LINGO_API_KEY(または --api-key、もしくは lingo login セッション)を参照します。CI では LINGO_API_KEY を設定するだけで十分です。

push モード#

コマンドモード使うタイミング
lingo pushインクリメンタル — ソースを .lingo/lock.json と比較して差分を取り、新規または変更されたキーだけを既存のターゲットに翻訳し、それ以外はそのまま保持します通常の実行は毎回これで十分(CI では --wait を追加)
lingo push --backfill-missingブートストラップ — まだ存在しないターゲット FILES を埋めます最初の push、または新しいロケールを追加したあと
lingo push --force完全再翻訳 — すべてのターゲットを上書きします(手動編集を含む)。--yes/-y を付けると確認プロンプトをスキップしますごくまれに(例: 用語集 / エンジンの変更後)

--backfill-missing はブートストラップ用のフラグです。対象を絞った新規リクエストを行い、不足しているターゲットファイル全体だけを追加します。すでに翻訳済みのファイルに新しく追加されたキーは翻訳されません(run では "already up-to-date" と表示され、そのキーはスキップされます)。継続的な編集には通常の lingo push を使ってください。

翻訳を手動で編集する#

通常の lingo push では、キー単位で手動編集が保持されます。

  • ターゲット文字列を編集した場合(対応するソースが未変更)→ その文字列は保持され、ほかのキーは引き続き更新されます。
  • 手動編集したキーに対応するソースが変更された場合 → そのキーには新しい翻訳が生成され、手動編集は置き換えられます。
  • 新しいソースキーが追加された場合 → 手動編集のあるファイルであっても、翻訳されて追加されます。

このセクションの内容#

クイックスタート
インストール、認証、エンジンへのリンク、最初の push と pull の実行方法。
設定
`.lingo/config.json`、`.lingo/lock.json`、および `~/.lingo/runs/<hash>.json` に保存されるマシンごとの run 状態。
lingo push
ソースを送信して翻訳実行を開始します。同じコマンドで出力まで書き込むには `--wait` を追加します。スコープ付きパターン、`--force`、再試行の挙動に対応。
lingo pull
直近の push の出力を取得します。ターミナルのセッションをまたいでも、同じマシンなら利用できます。競合検出にも対応。
その他のコマンド
login、logout、link、unlink、whoami — セットアップと認証まわりのコマンドです。