|
Документация
Заказать демоПлатформа
ПлатформаMCPCLIAPIРабочие процессы
РуководстваЖурнал изменений

Непрерывная локализация

  • Как это работает
  • Настройка

Платформы

  • GitHub App
  • GitHub
  • GitLab CI/CD
  • Bitbucket Pipelines
  • Продвинутые сценарии

Непрерывная локализация

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:

  1. Отслеживает изменения — по умолчанию реагирует на push'и в ветку по умолчанию, а после включения onPullRequest — и на pull request, сверяя изменённые файлы с настроенными вами шаблонами исходников
  2. Переводит дельту — отправляет изменённый исходный контент через движок, указанный в engineId
  3. Возвращает результаты в GitHub — при push'ах в ветку по умолчанию открывает или обновляет pull request с переводами; в pull request коммитит переведённые файлы в ветку PR и публикует статусный комментарий
  4. Восстанавливает и разбивает на части — обнаруживает изменения, пропущенные предыдущим запуском, и делит очень крупные обновления на несколько коммитов

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

  1. Находит исходные файлы — читает вашу bucket configuration, чтобы определить контент для перевода
  2. Определяет изменения — сравнивает с lockfile .lingo/lock.json, находит новые или изменённые строки и переводит только их
  3. Переводит — отправляет изменённый контент через настроенный движок локализации с применением всех правил: глоссария, тональности бренда и настроек модели для каждой локали
  4. Записывает результаты — обновляет файлы целевой локали и обновляет .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)#

Четыре шаблона рабочего процесса покрывают большинство сценариев команд:

Рабочий процессТриггерРезультат
Коммит в mainPush в mainПереводы коммитятся напрямую в main
PR из mainPush в mainPull request с переводами
Коммит в feature-веткуPush в feature-веткуПереводы коммитятся в ветку
PR из feature-веткиPush в feature-веткуPull request из ветки

Первый вариант — коммит в main — самый простой. Переводы появляются автоматически без участия разработчиков. Варианты с PR добавляют этап проверки до того, как переводы попадут в основную ветку.

Подробнее о выборе между ними — в разделе Advanced Patterns.

Что дальше#

GitHub App
Управляемая непрерывная локализация — установите один раз, без пайплайна
Настройка
Настройте непрерывную локализацию с GitHub App или CLI
GitHub Actions
Запустите CLI в пайплайне GitHub Actions
Advanced Patterns
Выбор рабочего процесса, проверка переводов, конфликты слияния

Эта страница была полезной?

Max PrilutskiyMax Prilutskiy·Обновлено 16 дней назад·3 минуты чтения