CLI Lingo.dev переводит приложения и контент: читает единый файл конфигурации i18n.json, извлекает переводимые строки из исходных файлов и направляет их через движок локализации или напрямую к LLM-провайдеру. Затем записывает переводы обратно на диск и отслеживает изменения, чтобы при следующем запуске обрабатывать только дельту.
Пятишаговый пайплайн#
Когда вы запускаете npx lingo.dev@latest run, CLI последовательно выполняет пять шагов:
Поиск контента
CLI сканирует проект и находит исходные и целевые файлы на основе конфигураций bucket в i18n.json. Каждый bucket задаёт формат файла и набор шаблонов включения и исключения, которые подсказывают CLI, где находится переводимый контент.
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
},
"markdown": {
"include": ["docs/[locale]/*.md"]
}
}
}Плейсхолдер [locale] во время выполнения подставляет настроенные коды исходной и целевой локали.
Очистка данных
Не весь контент нужно переводить. CLI отфильтровывает значения, которые должны оставаться неизменными в любых языках: числа, логические значения, даты ISO, UUID, URL и пустые строки. Это уменьшает объём данных, отправляемых в переводческий бэкенд, и снижает расход токенов и время обработки.
Вычисление дельты
CLI вычисляет SHA-256-отпечатки для каждой исходной строки и сравнивает их с предыдущим состоянием, сохранённым в i18n.lock. В пайплайн перевода попадает только новый или изменённый контент. Неизменённые строки полностью пропускаются.
Благодаря такому инкрементальному подходу в проекте с 10 000 ключей, где изменились только 12, будут переведены именно эти 12 ключей, а не весь набор.
Локализация
Дельта отправляется в настроенный переводческий бэкенд. CLI поддерживает два режима:
| Режим | Как это работает |
|---|---|
| Движок Lingo.dev | Направляет запросы через ваш движок локализации, автоматически применяя тональность бренда, glossary, instructions и конфигурацию модели. |
| Raw LLM provider | Отправляет запросы на перевод напрямую в OpenAI, Anthropic, Google, Mistral, OpenRouter или Ollama с пользовательским промптом. |
CLI повторяет неудачные запросы с экспоненциальной задержкой, сохраняет частичный прогресс и параллельно обрабатывает несколько целевых языков.
Запись контента
Переведённые строки записываются обратно на диск точно в те места, где находится исходный контент. CLI сохраняет структуру и форматирование файлов, чтобы изменения были минимальными и удобными для ревью. Если в проекте настроен Prettier, результат будет соответствовать вашим правилам форматирования.
Выходные файлы#
Типичный запуск даёт два типа изменений:
- Файлы локалей — файлы целевых языков с новыми и обновлёнными переводами
i18n.lock— обновляется отпечатками контента для отслеживания состояния
Оба типа изменений нужно закоммитить в систему контроля версий — вручную или автоматически через интеграцию CI/CD.
