Повторный перевод

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

Система отпечатков содержимого в CLI гарантирует, что переводы всегда синхронизированы с изменениями исходника, избегая ненужного повторного перевода неизменённого контента.

Автоматический повторный перевод

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

Пример рабочего процесса:

// locales/en.json (original)
{
  "button.save": "Save changes"
}

// locales/es.json (generated)
{
  "button.save": "Guardar cambios"
}

После обновления исходника:

// locales/en.json (modified)
{
  "button.save": "Save all changes"
}

Запуск npx lingo.dev@latest run повторно переводит испанскую версию:

// locales/es.json (updated)
{
  "button.save": "Guardar todos los cambios"
}

CLI сравнивает новый отпечаток содержимого с i18n.lock и определяет, какие переводы нужно обновить.

Ручной повторный перевод

Иногда нужно повторно перевести контент, даже если исходник не менялся. Это бывает, когда вы обновляете AI-модели, меняете промпты для перевода или хотите обновить переводы с учётом нового контекста.

Полный повторный перевод

Принудительный полный повторный перевод:

npx lingo.dev@latest run --force

Это игнорирует lockfile и повторно переводит весь контент, заново создавая файл i18n.lock.

Точечный повторный перевод

Для определённых языков:

npx lingo.dev@latest run --target-locale es

Повторно переводит только испанский контент, не трогая остальные языки.

Для определённых типов файлов:

npx lingo.dev@latest run --bucket json

Повторно переводит только JSON-файлы — удобно, если разные типы файлов обновляются с разной частотой.

Перевод для определённых ключей:

npx lingo.dev@latest run --key welcome.title

Переводит отдельный ключ во всех целевых языках. Для вложенных ключей используйте точечную нотацию:

npx lingo.dev@latest run --key header.navigation.about

Перевод для определённых файлов:

npx lingo.dev@latest run --file blog.[locale].json

Переводит определённые файлы в ваших бакетах. Можно выбрать несколько файлов:

npx lingo.dev@latest run --file landing.[locale].json --file pricing.[locale].json

Комбинирование опций

Можно комбинировать параметры для более точного управления:

npx lingo.dev@latest run --force --bucket json --target-locale es

Это переводит весь JSON-контент, но только для испанского языка.

Обновления контекста перевода

Когда вы меняете настройки AI-перевода, существующие переводы не обновляются автоматически. Нужно вручную перезапустить перевод, чтобы применить новые подсказки или модели к уже переведённому контенту.

Типичные ситуации, когда требуется повторный перевод:

  • Переход на другую AI-модель
  • Обновление подсказок для перевода для лучшего контекста
  • Переход с обычных LLM API на Lingo.dev Engine
  • Улучшение терминологической согласованности в уже переведённых текстах при использовании обычных LLM API

Интеграция с lockfile

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

Lockfile предотвращает циклы повторного перевода и сохраняет преимущества производительности инкрементального перевода даже после ручных операций повторного перевода.