Повторный перевод
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 предотвращает циклы повторного перевода и сохраняет преимущества производительности инкрементального перевода даже после ручных операций повторного перевода.