Команда run обрабатывает задачи перевода параллельно, распределяя их по пулу воркеров. Каждая комбинация локаль/файл становится отдельной задачей, и воркеры выполняют их одновременно.
Использование#
# Default concurrency (10 workers)
npx lingo.dev@latest run
# Custom concurrency
npx lingo.dev@latest run --concurrency 20Как это работает#
- Создание задач — CLI анализирует ваш
i18n.jsonи создаёт отдельные задачи для каждой комбинации локаль/файл - Распределение по воркерам — задачи назначаются доступным воркерам с помощью балансировки нагрузки
- Параллельная обработка — воркеры переводят одновременно, а блокировки файловой системы предотвращают конфликты записи
- Сбор результатов — готовые переводы безопасно записываются в целевые файлы
Параметры таргетинга#
Все параметры таргетинга из команды run работают и при параллельной обработке:
| Параметр | Описание |
|---|---|
--target-locale es | Обрабатывать только указанные целевые языки |
--source-locale en | Переопределить исходную локаль |
--bucket json | Обрабатывать только указанные типы бакетов |
--file components/header | Обрабатывать только указанные файлы (поддерживаются glob-шаблоны) |
--key welcome.title | Обрабатывать только указанные ключи (поддерживаются glob-шаблоны) |
--force | Игнорировать lockfile и заново перевести всё |
--frozen | Завершиться с ошибкой, если какой-либо контент требует перевода |
--concurrency 20 | Задать количество параллельных воркеров |
Автоматическое кэширование#
При использовании API Lingo.dev большие файлы локалей разбиваются на части. Целевые файлы заполняются постепенно по мере получения каждой части из API. Если процесс прервётся, при следующем запуске он продолжится с того места, на котором остановился.
Для повторного перевода сначала используйте purge, затем run без --force. Так вы задействуете встроенный механизм кэширования и получите более эффективную обработку по сравнению с run --force.
Безопасность#
Пул воркеров защищает файлы от повреждения за счёт:
- Синхронизации I/O — операции файловой системы выполняются последовательно для каждого файла
- Защиты lockfile — атомарные операции предотвращают повреждение
i18n.lockпри одновременном доступе - Транзакционной обработки — каждая задача либо полностью завершается, либо завершается с чистой ошибкой
