Lingo.dev поддерживает синхронизацию переводов с вашим кодом. При каждом изменении сервис определяет, какой контент обновился, переводит его через подключённый движок локализации — с единообразным применением правил глоссария, тональности бренда и настроек модели для каждой локали, — а затем коммитит результат или открывает pull request. Незавершённые переводы никогда не попадают в продакшен.
Выберите интеграцию#
Для каждой интеграции есть отдельное руководство. Выберите вариант, который подходит вашей конфигурации:
| Интеграция | Как работает |
|---|---|
| GitHub App | Установите один раз — и Lingo.dev будет запускать локализацию за вас при push'ах в ветку по умолчанию, а также в pull request, если эта функция включена. Без runner'а, без секрета API-ключа и без lockfile. |
| GitHub Actions | Устанавливает @lingo.dev/cli и запускает lingo push в пайплайне GitHub Actions, затем фиксирует результаты или открывает PR. |
| GitLab CI/CD | Устанавливает @lingo.dev/cli и запускает lingo push в задании пайплайна GitLab. |
| Bitbucket Pipelines | Устанавливает @lingo.dev/cli и запускает lingo push в шаге пайплайна Bitbucket. |
GitHub App работает на серверах Lingo.dev. Все остальные интеграции используют Lingo.dev CLI — то есть любая CI/CD-среда с Node.js 22+ может запускать локализацию напрямую, даже без готовой интеграции.
Как работает GitHub App#
Установите приложение один раз и добавьте .lingo/config.json в репозиторий. После этого Lingo.dev будет запускать локализацию за вас — без пайплайна, без секрета API-ключа и без lockfile:
- Отслеживает изменения — по умолчанию реагирует на push'и в ветку по умолчанию, а после включения
onPullRequest— и на pull request, сверяя изменённые файлы с настроенными вами шаблонами исходников - Переводит дельту — отправляет изменённый исходный контент через движок, указанный в
engineId - Возвращает результаты в GitHub — при push'ах в ветку по умолчанию открывает или обновляет pull request с переводами; в pull request коммитит переведённые файлы в ветку PR и публикует статусный комментарий
- Восстанавливает и разбивает на части — обнаруживает изменения, пропущенные предыдущим запуском, и делит очень крупные обновления на несколько коммитов
Вы можете добавить этап согласования перед запуском или запускать перевод вручную командами /lingo в pull request. Полную конфигурацию смотрите в руководстве по GitHub App.
Как работают интеграции с CLI#
Интеграции с GitHub Actions, GitLab CI/CD и Bitbucket запускают один и тот же Lingo.dev CLI как шаг в вашем пайплайне. Нужны всего две вещи: конфигурация .lingo/config.json и LINGO_API_KEY для аутентификации.
При каждом запуске задание устанавливает CLI (npm install -g @lingo.dev/cli) и выполняет lingo push, который:
- Находит исходные файлы — читает вашу bucket configuration, чтобы определить контент для перевода
- Определяет изменения — сравнивает с lockfile
.lingo/lock.json, находит новые или изменённые строки и переводит только их - Переводит — отправляет изменённый контент через настроенный движок локализации с применением всех правил: глоссария, тональности бренда и настроек модели для каждой локали
- Записывает результаты — обновляет файлы целевой локали и обновляет
.lingo/lock.json
Пайплайн фиксирует результаты или открывает pull request с помощью инструментов вашей платформы. Так как переводятся только изменённые строки, запуски выполняются быстро и без лишних затрат — даже при работе с десятками локалей.
Варианты рабочего процесса#
GitHub App#
Поведение приложения настраивается в .lingo/config.json:
| Параметр | Что делает |
|---|---|
Push в ветку по умолчанию (onPushToDefaultBranch) | Включено по умолчанию. Открывает или обновляет PR с переводами, когда изменения в исходниках попадают в ветку по умолчанию. |
Перевод pull request (onPullRequest) | По умолчанию отключено. Коммитит переводы в ветку PR по мере изменений в pull request. |
Этап согласования (requireApproval) | По умолчанию отключено. Требует Approve/Deny в check run или /lingo approve в PR, прежде чем автоматические запуски начнут перевод. |
Ручные команды (/lingo translate) | Позволяет в любой момент дозаполнить переводы или принудительно запустить перевод для конкретных файлов из комментария в PR. |
Полную конфигурацию и справочник команд смотрите в руководстве по GitHub App.
CLI в CI/CD (GitHub Actions, GitLab CI, Bitbucket)#
Четыре шаблона рабочего процесса покрывают большинство сценариев команд:
| Рабочий процесс | Триггер | Результат |
|---|---|---|
| Коммит в main | Push в main | Переводы коммитятся напрямую в main |
| PR из main | Push в main | Pull request с переводами |
| Коммит в feature-ветку | Push в feature-ветку | Переводы коммитятся в ветку |
| PR из feature-ветки | Push в feature-ветку | Pull request из ветки |
Первый вариант — коммит в main — самый простой. Переводы появляются автоматически без участия разработчиков. Варианты с PR добавляют этап проверки до того, как переводы попадут в основную ветку.
Подробнее о выборе между ними — в разделе Advanced Patterns.
