既存の翻訳
空のプロジェクトから始める必要はありません。すでに翻訳ファイルがあるなら、CLIはそのまま併用できます。不足分を補いながら、既存の翻訳はそのまま維持します。
今あるものを設定で指定する#
ソースロケールとターゲットロケール、そしてファイルパターンを設定し、既存の翻訳ファイルが置かれている場所に合わせて指定します。
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [{ "pattern": "locales/en.json" }]
}locales/de.json と locales/fr.json がすでにある場合は、そのまま保持されます。
不足分だけを埋める#
lingo push --backfill-missing --wait--waitを使うと、同じコマンドでファイルまで書き出せます。これを使わない場合は、lingo pullで収集してください。--backfill-missingが生成するのは、まだ存在しない対象、つまりファイルがまだないロケールだけです。すでにあるファイルにキーが追加されることはありません。新しいキーや変更されたキーは、通常のlingo pushで処理されます。すでにあるファイルが上書きされることもありません。
✓ Run lrg_a8c...: localized 1 target file(s), 2 already up-to-date.特定の値を固定する#
既存の翻訳の中に、人手でレビュー済みで今後いっさい変更したくないものがある場合は、preservedKeys として指定してください。以後の実行ではそれらに一切触れません。
{ "pattern": "locales/en.json", "preservedKeys": ["legal.terms"] }lockfileが初回設定を支える仕組み#
最初のpushで、すべてのソースファイルのハッシュが .lingo/lock.json に記録されます。それ以降、通常の lingo push で送信されるのは変更のあったソースだけです。ソースを変更するか強制しない限り、既存の翻訳が再送信されることはありません。lockfileは翻訳ファイルと一緒にコミットしてください。Configuration を参照してください。
意図的に上書きする場合
--backfill-missing が上書きされることはありません。既存の翻訳をあえて再生成する場合は(モデルやルールを変更した後など)、対象を限定した --force push を使用します。