Настройте непрерывную локализацию для GitHub Action, GitLab CI/CD, Bitbucket Pipelines или отдельного CLI. Во всех случаях в вашем пайплайне запускается CLI Lingo.dev, поэтому настройка везде одинакова и состоит из трёх шагов: настройте CLI, добавьте API-ключ и выберите рабочий процесс.
Настраиваете GitHub App?
GitHub App работает не по этому сценарию: здесь не нужен локальный CLI, i18n.json или секрет с API-ключом. Достаточно один раз установить приложение и добавить .lingo/config.json в репозиторий. Вместо этого воспользуйтесь руководством по GitHub App.
Что понадобится
Прежде чем добавлять CI/CD, у вас должна быть рабочая настройка CLI с файлом i18n.json и возможностью запускать npx lingo.dev@latest run локально.
Шаг 1. Настройте CLI#
Если вы ещё этого не сделали, следуйте руководству Настройка CLI. В результате у вас должно быть:
- Файл
i18n.jsonв корне проекта - API-ключ (либо
LINGO_API_KEYдля движка Lingo.dev, либо ключ провайдера, напримерOPENAI_API_KEY) - Возможность локально генерировать переводы с помощью
npx lingo.dev@latest run
Шаг 2. Добавьте API-ключ в секреты CI#
Сохраните API-ключ в менеджере секретов вашей CI-платформы:
- Перейдите в Settings > Secrets and variables > Actions
- Нажмите New repository secret
- Имя:
LINGODOTDEV_API_KEY, значение: ваш API-ключ - Нажмите Add secret
Шаг 3. Выберите рабочий процесс и добавьте конфигурацию#
Выберите рабочий процесс, который подходит вашей команде, а затем перейдите к инструкции для нужной платформы:
| Рабочий процесс | Лучше всего подходит для |
|---|---|
| Commit в main | Небольших команд, которым нужны незаметные обновления переводов без лишних действий |
| PR из main | Команд, которые хотят проверять переводы до попадания в main |
| Commit в feature branch | Команд с долгоживущими feature branch |
| PR из feature branch | Команд, которым нужен максимальный контроль над каждым изменением перевода |
Не уверены, что выбрать? Начните с "Commit в main" — это самый простой вариант. Позже вы сможете переключиться, не меняя свой i18n.json.
Инструкции по настройке для конкретных платформ и примеры рабочих процессов смотрите здесь:
Проверьте настройку#
После настройки рабочего процесса CI внесите изменение, чтобы его запустить. Интеграция должна:
- Запустить пайплайн перевода
- Закоммитить переводы или открыть PR — в зависимости от выбранного рабочего процесса
- Обновить файл
i18n.lock
Чтобы убедиться в CI, что все переводы готовы, не генерируя новые, используйте флаг --frozen:
npx lingo.dev@latest run --frozenКоманда завершится с ненулевым статусом, если какой-то контент останется непереведённым. Это удобно использовать как барьер для деплоя. Примеры смотрите в разделе Продвинутые сценарии.
