Работа с существующими переводами
Lingo.dev CLI легко интегрируется с проектами, которые уже содержат файлы переводов, сохраняя существующую работу и заполняя только недостающие переводы.
Когда вы запускаете CLI на проекте с уже существующими переводами, он анализирует, что уже переведено, и генерирует контент только для отсутствующих ключей, сохраняя качество и согласованность ваших текущих переводов.
Примечание: Убедитесь, что файлы целевого языка пусты и не содержат контента на исходном языке. Наличие исходного языка в файлах целевого языка считается плохой практикой и может помешать процессу перевода.
Как это работает
Lingo.dev CLI сравнивает ваш исходный контент с существующими файлами целевого языка, чтобы выявить пробелы. Генерируются только недостающие переводы, а ваша текущая работа остается нетронутой.
Пример сценария:
// locales/en.json (исходный файл)
{
"welcome": "Welcome to our app",
"button.save": "Save",
"button.cancel": "Cancel",
"error.network": "Network error"
}
// locales/es.json (существующие частичные переводы)
{
"welcome": "Bienvenido a nuestra aplicación",
"button.save": "Guardar"
}
Запуск команды npx lingo.dev@latest i18n
генерирует только недостающие переводы:
// locales/es.json (после запуска CLI)
{
"welcome": "Bienvenido a nuestra aplicación",
"button.save": "Guardar",
"button.cancel": "Cancelar",
"error.network": "Error de red"
}
Ваши существующие переводы "welcome" и "button.save" остаются без изменений.
Первый запуск с существующими переводами
Когда вы впервые запускаете Lingo.dev CLI на проекте с существующими переводами, создается файл i18n.lock
на основе текущего состояния. Этот lockfile отслеживает, какой контент был обработан, чтобы существующие переводы не генерировались заново.
Рабочий процесс:
- Первичное сканирование — CLI определяет существующие переводы в файлах целевого языка
- Анализ пробелов — Сравнивает ключи исходного языка с файлами целевого языка, чтобы найти недостающие переводы
- Генерация переводов — Создает только недостающие переводы
- Создание lockfile — Фиксирует отпечатки контента для всего исходного материала
Миграция с устаревших систем перевода
Lingo.dev CLI работает с файлами перевода, созданными любыми инструментами, если они соответствуют стандартным форматам, таким как JSON, YAML или другим поддерживаемым типам файлов.
Шаги миграции:
- Настройте i18n.json — Установите шаблоны bucket, чтобы они соответствовали существующим расположениям файлов.
- Запустите начальный перевод — CLI заполнит все отсутствующие переводы.
- Проверьте и зафиксируйте изменения — Существующие переводы сохраняются, заполняются только пробелы.
Пример миграции:
// Ваша существующая структура проекта
locales/
en.json (исходный файл)
es.json (частичные переводы из предыдущего инструмента)
fr.json (частичные переводы из предыдущего инструмента)
// Конфигурация i18n.json
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
CLI учитывает вашу существующую структуру файлов и переводы.
Управление качеством перевода
Существующие переводы могут быть хуже по качеству, чем переводы, созданные с помощью AI-движков перевода. Lingo.dev CLI предоставляет опции для обновления переводов при необходимости:
Сохранение существующих переводов:
npx lingo.dev@latest i18n
# Сохраняет все существующие переводы, заполняет пробелы
Перевод определённых языков заново:
npx lingo.dev@latest i18n --force --locale es
# Переводит все испанские строки заново
Перевод определённых ключей заново:
npx lingo.dev@latest i18n --force --key error.network
# Переводит только ключ error.network для всех языков
Для получения дополнительной информации о повторном переводе см. Повторный перевод.
Пустые целевые файлы
Если у вас есть пустые целевые файлы или файлы с только некоторыми ключами, Lingo.dev CLI рассматривает их как частично переведённые и заполняет недостающий контент.
Пример:
// locales/de.json (пустой целевой файл)
{}
После запуска CLI он становится полным файлом перевода со всеми исходными ключами, переведёнными.
Инициализация lock-файла
Первый запуск создает файл i18n.lock
, который отражает ваше текущее состояние. Это предотвращает повторный перевод контента, который уже был в наличии, даже если он изначально не был сгенерирован с помощью Lingo.dev CLI.
Этот lock-файл обеспечивает согласованное поведение между существующими и новыми переводами в будущем.