再翻訳

更新日:2 か月前 · 読了目安 1分

lingo push は、変更があった内容だけを翻訳します。各ソースは lockfile と照合するためにハッシュ化され、一致するものはスキップされます。これは通常のデフォルトとして適切ですが、エンジンのモデルを切り替えたあとや、ルールや用語集を更新したあと、品質上の問題を修正したあとなど、ソーステキストが同じでもコンテンツを再翻訳したいことがあります。

方法は 3 つあり、費用もそれぞれ異なります。個別の文字列には --key、ファイル全体にはスコープ付きの --force push、ロケール全体には purge のあとに通常の push を使います。やり直したい範囲をカバーできる中で、いちばん小さい単位の方法を選びましょう。

特定のキーを再翻訳する#

--key は、指定したキーだけを再翻訳し、既存の翻訳にマージします。それ以外のキーは 1 バイトたりとも変わりません。ソースの差分は無視されるため、英語がまったく変わっていない文字列でも再翻訳されます。

bash
lingo push --key auth.login

複数のキーを指定する場合は、このフラグを繰り返してください。

bash
lingo push --key auth.login --key billing.plan

パターンは、キーへの完全一致、.・/・-・[ のいずれかの境界で終わる接頭辞一致、または glob として扱われます。つまり auth.login は auth.login.title にも一致しますが、auth.login_url には一致しません。プレーンな auth は auth 配下全体に一致しますが、authority には一致しません。glob は引用符で囲んでください。囲まないと、CLI が受け取る前にシェルで展開されてしまいます。

bash
lingo push --key "auth.*"

これは他と比べて圧倒的に安価なオプションです。料金が発生するのは、指定したキーに対してのみで、それ以外はかかりません。既存の翻訳にマージする必要があるため、まだ一度も翻訳したことのないロケールはスキップされ、--backfill-missing を案内するメッセージが表示されます。形式によっては、キーのスコープ自体を指定できないものもあります。どの形式が該当するか、またその理由については、Formats に一覧されています。

詳しい挙動は lingo push を参照してください。指定しなかったキーがどう扱われるかも確認できます。

スコープ付き push を強制する#

--force は、既存の翻訳やサーバー側キャッシュを無視して、一致したすべての対象を再翻訳します。本当にプロジェクト全体をやり直すのでなければ、スコープを付けて使いましょう。引数なしの lingo push --force は、設定されているすべてのパターンを対象にし、それを止めるのは確認プロンプトだけです。

単一ファイル#

bash
lingo push content/en/landing.mdx --force

サブツリー#

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

すべて#

bash
lingo push --backfill-missing --force --yes

--force は上書き前に確認を求めます。確認を省略するには --yes を指定してください(CI 向け)。利用できるフラグの一覧は、lingo push を参照してください。

1 つのロケールだけを再翻訳する#

push にはロケールごとのフラグはありません。1 つの言語だけをやり直したい場合は、そのファイルを削除して backfill します。

bash
lingo purge --locale fr
lingo push --backfill-missing

purge で fr のターゲットを削除し、そのあと --backfill-missing で不足分だけを再生成します。他のロケールには影響しません。また、--force よりも低コストです。fr 以外はすべてキャッシュヒットのままだからです。詳しくは Purge を参照してください。

費用をかける前に見積もる#

どの push でも --estimate を指定でき、翻訳は実行せずに料金を見積もって終了します。

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

これは --key とも組み合わせられるので、実行前にキースコープの料金を見積もれます。

bash
lingo push --key auth.login --estimate

見積もりはあくまで目安であり、確定額ではありません。最終的な費用は異なる場合があります。

再翻訳が必要なタイミング#

状況実行するもの
ソーステキストが変更された不要 — 通常の lingo push で反映されます
気になる文字列が少しだけあるlingo push --key auth.login --key billing.plan
エンジンのモデルを切り替えたlingo push <scope> --force
ルール / 用語集の更新lingo push --key <affected keys>、または lingo push <scope> --force
1 つのロケールで品質がよくないlingo purge --locale <code> のあとに lingo push --backfill-missing
完全にまっさらな状態から始めるlingo push --backfill-missing --force --yes