Начинать с пустого проекта не обязательно. Если у вас уже есть переведённые файлы, CLI работает вместе с ними: добавляет недостающее и сохраняет существующие переводы без изменений.
Укажите в конфигурации, что у вас уже есть#
Задайте исходную и целевые локали, а также шаблоны файлов так, чтобы они соответствовали тому, где уже лежат ваши переводы:
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [{ "pattern": "locales/en.json" }]
}Если locales/de.json и locales/fr.json уже есть, они останутся без изменений.
Заполните недостающее#
lingo push --backfill-missing--backfill-missing создаёт только те целевые файлы, которых ещё нет: локаль, для которой пока нет файла, или, после первого запуска, ключи, которые движок ещё не перевёл. Файлы, которые у вас уже есть, не перезаписываются.
✓ Run lfr_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 вместе с переводами. См. Конфигурация.
Перезапись по необходимости
--backfill-missing никогда ничего не перезаписывает. Если нужно намеренно заново сгенерировать существующие переводы, например после смены модели или инструкций, используйте выборочный push с --force.
