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

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

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

Платформы

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

GitHub

Lingo.dev поддерживает два способа запустить непрерывную локализацию на GitHub: управляемый GitHub App и @lingo.dev/cli внутри задания GitHub Actions.

Какой способ выбрать?

Начните с GitHub App — он работает на стороне сервера, автоматически реагирует на пуши и pull request'ы и не требует ни раннера, ни секрета с API-ключом, ни управления lockfile. Переходите к GitHub Actions, если хотите запускать локализацию в собственном пайплайне вместе с другими шагами CI.

GitHub App (рекомендуется)#

GitHub App — самый простой способ запустить непрерывную локализацию на GitHub. Установите один раз, укажите движок — и приложение будет реагировать на каждый пуш и pull request.

  1. Установите приложение со страницы GitHub App и предоставьте ему доступ к репозиторию.
  2. Добавьте .lingo/config.json в корень репозитория: опишите бакеты и локали, укажите engineId движка, который должно использовать приложение. Формат файла — в разделе Конфигурация.
  3. Сделайте пуш. Приложение локализует изменённый контент на стороне сервера и коммитит результаты (или открывает pull request), автоматически поддерживая .lingo/lock.json в актуальном состоянии.

Так как приложение работает на стороне сервера, не нужно поддерживать раннер, хранить секрет LINGO_API_KEY или запускать команды для управления lockfile.

GitHub Actions#

Чтобы запустить локализацию в собственном пайплайне, установите CLI в задании, выполните lingo push, а затем закоммитьте результаты или откройте pull request с помощью ваших инструментов.

Сохраните API-ключ как секрет репозитория с именем LINGO_API_KEY (Settings > Secrets and variables > Actions). CLI считывает его из окружения.

Коммит в текущую ветку#

Создайте .github/workflows/localize.yml:

yaml
name: Localize
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  localize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - name: Install Lingo.dev CLI
        run: npm install -g @lingo.dev/cli
      - name: Localize
        run: lingo push
        env:
          LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
      - name: Commit translations
        run: |
          git config user.name "Lingo.dev"
          git config user.email "support@lingo.dev"
          git add .
          git diff --staged --quiet || git commit -m "feat: update translations"
          git push

Локализует изменённый контент и коммитит результаты прямо в ветку при каждом пуше.

Открытие pull request#

Если хотите, чтобы переводы проходили проверку перед слиянием, а не коммитились напрямую, — отправьте результаты в ветку и откройте pull request. В этом примере используется GitHub CLI, предустановленный на раннерах GitHub:

yaml
name: Localize
on:
  push:
    branches: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  localize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - name: Install Lingo.dev CLI
        run: npm install -g @lingo.dev/cli
      - name: Localize
        run: lingo push
        env:
          LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
      - name: Open pull request
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git config user.name "Lingo.dev"
          git config user.email "support@lingo.dev"
          branch="lingo/translations-${{ github.run_id }}"
          git checkout -b "$branch"
          git add .
          git diff --staged --quiet && exit 0
          git commit -m "feat: update translations"
          git push origin "$branch"
          gh pr create --fill --base "${{ github.ref_name }}" --head "$branch"

Для рабочих процессов на основе PR включите Settings > Actions > General > Allow GitHub Actions to create and approve pull requests.

Задание работает и на feature-ветках — измените фильтр on.push.branches (например, branches-ignore: [main]), чтобы контролировать, где запускается локализация.

Что дальше#

GitHub App
Управляемая альтернатива — без runner, секрета и lockfile
Справочник CLI
Команды, конфигурация и использование в CI
Продвинутые сценарии
Проверки локализации, конфликты слияния, выбор рабочего процесса
GitLab CI/CD
Настройте интеграцию с GitLab CI/CD

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

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