Работа с существующими переводами

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 отслеживает, какой контент был обработан, чтобы существующие переводы не генерировались заново.

Рабочий процесс:

  1. Первичное сканирование — CLI определяет существующие переводы в файлах целевого языка
  2. Анализ пробелов — Сравнивает ключи исходного языка с файлами целевого языка, чтобы найти недостающие переводы
  3. Генерация переводов — Создает только недостающие переводы
  4. Создание lockfile — Фиксирует отпечатки контента для всего исходного материала

Миграция с устаревших систем перевода

Lingo.dev CLI работает с файлами перевода, созданными любыми инструментами, если они соответствуют стандартным форматам, таким как JSON, YAML или другим поддерживаемым типам файлов.

Шаги миграции:

  1. Настройте i18n.json — Установите шаблоны bucket, чтобы они соответствовали существующим расположениям файлов.
  2. Запустите начальный перевод — CLI заполнит все отсутствующие переводы.
  3. Проверьте и зафиксируйте изменения — Существующие переводы сохраняются, заполняются только пробелы.

Пример миграции:

// Ваша существующая структура проекта
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-файл обеспечивает согласованное поведение между существующими и новыми переводами в будущем.