CLI Lingo.dev легко встраивается в проекты, где уже есть файлы переводов. Он сравнивает исходные ключи с существующими целевыми файлами, генерирует переводы только для недостающих ключей и не затрагивает уже готовый перевод.
Как это работает#
Когда вы запускаете CLI в проекте с частично переведённым контентом, он анализирует, чего не хватает:
// 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 заполняет только недостающие ключи:
// 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 и т. д.):
Настройте i18n.json
Укажите шаблоны bucket, соответствующие расположению существующих файлов.
Запустите перевод
CLI заполнит недостающие ключи, сохранив существующие переводы.
Проверка и коммит
Заполняются только пропуски. Существующие переводы остаются без изменений.
Обновление переводов#
Если в существующих переводах есть проблемы с качеством, вы можете выборочно запустить повторный перевод:
# 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Другие варианты см. в разделе Повторный перевод.
