再翻訳
lingo push は、変更があった内容だけを翻訳します。各ソースは lockfile と照合するためにハッシュ化され、一致するものはスキップされます。これは通常のデフォルトとして適切ですが、エンジンのモデルを切り替えたあとや、ルールや用語集を更新したあと、品質上の問題を修正したあとなど、ソーステキストが同じでもコンテンツを再翻訳したいことがあります。
方法は 3 つあり、費用もそれぞれ異なります。個別の文字列には --key、ファイル全体にはスコープ付きの --force push、ロケール全体には purge のあとに通常の push を使います。やり直したい範囲をカバーできる中で、いちばん小さい単位の方法を選びましょう。
特定のキーを再翻訳する#
--key は、指定したキーだけを再翻訳し、既存の翻訳にマージします。それ以外のキーは 1 バイトたりとも変わりません。ソースの差分は無視されるため、英語がまったく変わっていない文字列でも再翻訳されます。
lingo push --key auth.login複数のキーを指定する場合は、このフラグを繰り返してください。
lingo push --key auth.login --key billing.planパターンは、キーへの完全一致、.・/・-・[ のいずれかの境界で終わる接頭辞一致、または glob として扱われます。つまり auth.login は auth.login.title にも一致しますが、auth.login_url には一致しません。プレーンな auth は auth 配下全体に一致しますが、authority には一致しません。glob は引用符で囲んでください。囲まないと、CLI が受け取る前にシェルで展開されてしまいます。
lingo push --key "auth.*"これは他と比べて圧倒的に安価なオプションです。料金が発生するのは、指定したキーに対してのみで、それ以外はかかりません。既存の翻訳にマージする必要があるため、まだ一度も翻訳したことのないロケールはスキップされ、--backfill-missing を案内するメッセージが表示されます。形式によっては、キーのスコープ自体を指定できないものもあります。どの形式が該当するか、またその理由については、Formats に一覧されています。
詳しい挙動は lingo push を参照してください。指定しなかったキーがどう扱われるかも確認できます。
スコープ付き push を強制する#
--force は、既存の翻訳やサーバー側キャッシュを無視して、一致したすべての対象を再翻訳します。本当にプロジェクト全体をやり直すのでなければ、スコープを付けて使いましょう。引数なしの lingo push --force は、設定されているすべてのパターンを対象にし、それを止めるのは確認プロンプトだけです。
単一ファイル#
lingo push content/en/landing.mdx --forceサブツリー#
lingo push 'content/en/**/*.md' --forceすべて#
lingo push --backfill-missing --force --yes--force は上書き前に確認を求めます。確認を省略するには --yes を指定してください(CI 向け)。利用できるフラグの一覧は、lingo push を参照してください。
1 つのロケールだけを再翻訳する#
push にはロケールごとのフラグはありません。1 つの言語だけをやり直したい場合は、そのファイルを削除して backfill します。
lingo purge --locale fr
lingo push --backfill-missingpurge で fr のターゲットを削除し、そのあと --backfill-missing で不足分だけを再生成します。他のロケールには影響しません。また、--force よりも低コストです。fr 以外はすべてキャッシュヒットのままだからです。詳しくは Purge を参照してください。
費用をかける前に見積もる#
どの push でも --estimate を指定でき、翻訳は実行せずに料金を見積もって終了します。
lingo push 'content/en/**/*.md' --force --estimateこれは --key とも組み合わせられるので、実行前にキースコープの料金を見積もれます。
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 |