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

Обновлено: 2 квартала назад · 2 мин чтения

Устаревшее

Эта документация охватывает устаревший CLI (v0). Актуальная версия — CLI v1. Перейти к актуальной документации CLI

CLI Lingo.dev легко встраивается в проекты, где уже есть файлы переводов. Он сравнивает исходные ключи с существующими целевыми файлами, генерирует переводы только для недостающих ключей и не затрагивает уже готовый перевод.

Как это работает#

Когда вы запускаете CLI в проекте с частично переведённым контентом, он анализирует, чего не хватает:

json
// locales/en.json (source - 4 keys)
{
  "welcome": "Welcome to our app",
  "button.save": "Save",
  "button.cancel": "Cancel",
  "error.network": "Network error"
}

// locales/es.json (existing - 2 keys translated)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

Запуск npx lingo.dev@latest run заполняет только недостающие ключи:

json
// locales/es.json (after run - all 4 keys present)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar",
  "button.cancel": "Cancelar",
  "error.network": "Error de red"
}

Существующие переводы в welcome и button.save остаются без изменений.

Первый запуск#

При первом запуске CLI создаёт файл i18n.lock на основе текущего состояния проекта. Этот lockfile сохраняет отпечатки всего исходного контента, чтобы существующие переводы не генерировались заново при следующих запусках — даже если изначально они были созданы другим инструментом.

Убедитесь, что в файлах целевого языка нет текста на исходном языке. Непереведённый исходный текст в целевых файлах может мешать корректно определять пропуски.

Переход с других инструментов#

CLI работает с файлами переводов, созданными в любом инструменте, если они используют поддерживаемый формат (JSON, YAML, PO и т. д.):

1

Настройте i18n.json

Укажите шаблоны bucket, соответствующие расположению существующих файлов.

2

Запустите перевод

CLI заполнит недостающие ключи, сохранив существующие переводы.

3

Проверка и коммит

Заполняются только пропуски. Существующие переводы остаются без изменений.

Обновление переводов#

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

bash
# Retranslate all Spanish content
npx lingo.dev@latest run --force --target-locale es

# Retranslate a specific key across all languages
npx lingo.dev@latest run --force --key error.network

Другие варианты см. в разделе Повторный перевод.

Следующие шаги#