Существующие переводы

Max PrilutskiyГенеральный директор и соучредительUpdated в прошлом месяце · 1 min read

Начинать с пустого проекта не обязательно. Если у вас уже есть переведённые файлы, CLI работает вместе с ними: добавляет недостающее и сохраняет существующие переводы без изменений.

Укажите в конфигурации, что у вас уже есть#

Задайте исходную и целевые локали, а также шаблоны файлов так, чтобы они соответствовали тому, где уже лежат ваши переводы:

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

Если locales/de.json и locales/fr.json уже есть, они останутся без изменений.

Заполните недостающее#

bash
lingo push --backfill-missing

--backfill-missing создаёт только те целевые файлы, которых ещё нет: локаль, для которой пока нет файла, или, после первого запуска, ключи, которые движок ещё не перевёл. Файлы, которые у вас уже есть, не перезаписываются.

text
✓ Run lfr_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 вместе с переводами. См. Конфигурация.

Перезапись по необходимости

--backfill-missing никогда не перезаписывает существующие переводы. Чтобы обновить их намеренно (например, после смены модели или правил), используйте --force при пуше.