Как это работает
Lingo.dev CLI скрывает сложный процесс локализации за элегантным интерфейсом командной строки.
Когда вы запускаете npx lingo.dev@latest run, CLI читает стандартный файл конфигурации i18n.json и выполняет следующие 5 шагов:
1. Поиск контента
Lingo.dev CLI рассматривает ваш проект как единственный источник правды. Он рекурсивно сканирует проект в поисках исходных и целевых файлов для перевода на основе ваших bucket-конфигураций, загружая их в память для обработки.
Этап поиска учитывает:
- Шаблоны включения, такие как
locales/[locale].json - Шаблоны исключения для файлов, которые вы хотите пропустить
- Несколько bucket-конфигураций для разных типов файлов
2. Очистка данных
Не весь контент требует перевода. В продакшн-приложениях встречаются числа, булевы значения, даты, UUID и фрагменты кода, которые обычно не меняются при локализации.
Lingo.dev CLI умно фильтрует:
- Числовые значения, такие как
42или3.14 - Булевы значения (
true/false) - Даты и временные метки в формате ISO
- UUID и похожие идентификаторы
- Блоки кода и технические сниппеты
Такое фильтрование снижает стоимость работы LLM и ускоряет обработку, фокусируясь только на переводимом контенте.
3. Вычисление дельты
Контент, который не изменился, не должен переводиться заново. Lingo.dev CLI использует продвинутую систему версионирования, которая:
- Создаёт отпечатки контента с помощью SHA-256 хеширования
- Сравнивает текущий контент с предыдущим состоянием, сохранённым в
i18n.lock - Определяет новые, изменённые и удалённые ключи перевода
- Отправляет только дельту в движок перевода
Такой инкрементальный подход позволяет платить только за новый или изменённый контент, а не за всю библиотеку при каждом запуске.
Подробнее: i18n.lock Lockfile
4. Локализация
Локализация должна быть надёжной, даже при нестабильном интернете или сбоях у LLM-провайдера. На этом этапе Lingo.dev CLI берёт дельту и отправляет её в настроенный вами backend для перевода.
CLI реализует:
- Экспоненциальную стратегию повторных попыток при сетевых сбоях
- Автоматическое восстановление после ошибок и сохранение частичного прогресса
- Поддержку как raw LLM API (OpenAI, Anthropic), так и Lingo.dev Engine
- Параллельную обработку для нескольких целевых языков
Каждый запрос на перевод содержит контекстную информацию, чтобы обеспечить согласованность и качество по всему вашему проекту.
5. Внедрение контента
Чтобы изменения были чистыми и легко проверяемыми, Lingo.dev CLI вставляет переводы точно в те места, где находится исходный контент. Такой подход:
- Сохраняет структуру и форматирование файлов
- Избегает ненужных конфликтов в git
- Создаёт минимальные, сфокусированные диффы
- Учитывает вашу существующую конфигурацию Prettier, если она есть
В результате вы получаете локализованные файлы, которые выглядят так, будто их переводили вручную — они готовы к code review и деплою.
Полный рабочий процесс
Эти пять шагов обычно приводят к двум типам изменений:
- Файлы локализации — обновляются с новыми и изменёнными переводами
- Файл i18n.lock — обновляется с отпечатками контента для отслеживания состояния
Оба файла стоит коммитить в репозиторий — вручную или автоматически через CI/CD-интеграции.
Такая архитектура позволяет Lingo.dev CLI эффективно масштабироваться: от одного разработчика, переводящего несколько строк, до команд, управляющих миллионами слов на десятках языков.
Следующие шаги
Теперь, когда вы понимаете, как Lingo.dev CLI работает внутри, вы можете:
- Присоединиться к нашему сообществу: Discord — общайтесь с другими разработчиками, использующими Lingo.dev CLI, делитесь отзывами и получайте помощь по вопросам локализации;
- Внести вклад в проект: Open issues — Lingo.dev CLI — это open source, и мы рады любым вкладчикам. Просматривайте открытые задачи, предлагайте новые функции или отправляйте pull request'ы, чтобы сделать инструмент лучше для всех.
Готовы начать? Запустите npx lingo.dev@latest init, чтобы настроить свой первый проект.