既存の翻訳

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

空のプロジェクトから始める必要はありません。すでに翻訳ファイルがあるなら、CLIはそのまま併用できます。不足分を補いながら、既存の翻訳はそのまま維持します。

今あるものを設定で指定する#

ソースロケールとターゲットロケール、そしてファイルパターンを設定し、既存の翻訳ファイルが置かれている場所に合わせて指定します。

json
{
  "sourceLocale": "en",
  "targetLocales": ["de", "fr"],
  "files": [{ "pattern": "locales/en.json" }]
}

locales/de.json と locales/fr.json がすでにある場合は、そのまま保持されます。

不足分だけを埋める#

bash
lingo push --backfill-missing --wait

--waitを使うと、同じコマンドでファイルまで書き出せます。これを使わない場合は、lingo pullで収集してください。--backfill-missingが生成するのは、まだ存在しない対象、つまりファイルがまだないロケールだけです。すでにあるファイルにキーが追加されることはありません。新しいキーや変更されたキーは、通常のlingo pushで処理されます。すでにあるファイルが上書きされることもありません。

text
✓ Run lrg_a8c...: localized 1 target file(s), 2 already up-to-date.

特定の値を固定する#

既存の翻訳の中に、人手でレビュー済みで今後いっさい変更したくないものがある場合は、preservedKeys として指定してください。以後の実行ではそれらに一切触れません。

json
{ "pattern": "locales/en.json", "preservedKeys": ["legal.terms"] }

lockfileが初回設定を支える仕組み#

最初のpushで、すべてのソースファイルのハッシュが .lingo/lock.json に記録されます。それ以降、通常の lingo push で送信されるのは変更のあったソースだけです。ソースを変更するか強制しない限り、既存の翻訳が再送信されることはありません。lockfileは翻訳ファイルと一緒にコミットしてください。Configuration を参照してください。

意図的に上書きする場合

--backfill-missing が上書きされることはありません。既存の翻訳をあえて再生成する場合は(モデルやルールを変更した後など)、対象を限定した --force push を使用します。