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

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

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

Платформы

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

GitHub Actions

Официальный GitHub Action от Lingo.dev запускает конвейер локализации при каждом push: он либо коммитит переводы напрямую, либо открывает pull request — в зависимости от вашего рабочего процесса.

Предпочитаете управляемое решение?

GitHub App — самый простой способ запустить непрерывную локализацию в GitHub: установите его один раз, и он будет реагировать на push и pull request без runner, секрета с API-ключом и lockfile. Используйте GitHub Action (ниже), если хотите, чтобы перевод выполнялся внутри вашего собственного конвейера вместе с другими шагами CI.

Что понадобится

Сначала выполните настройку CI/CD. Вам понадобятся рабочие i18n.json и LINGODOTDEV_API_KEY, сохранённые в секрете репозитория.

Минимальная настройка#

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

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

При каждом push переводы будут коммититься напрямую в main.

Примеры рабочих процессов#

Коммит в main#

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

Pull request из main#

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
          pull-request: true
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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

Коммит в feature-ветку#

yaml
name: Translate
on:
  push:
    branches-ignore: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

Pull request из feature-ветки#

yaml
name: Translate
on:
  push:
    branches-ignore: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
          pull-request: true
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Доступные входные параметры#

ПараметрПо умолчаниюОписание
api-keyОбязательноAPI-ключ Lingo.dev
pull-requestfalseСоздать pull request вместо прямого коммита
commit-messagefeat: update translations via @LingoDotDevПользовательское сообщение коммита
pull-request-titlefeat: update translations via @LingoDotDevПользовательский заголовок PR
commit-author-nameLingo.devИмя автора Git-коммита
commit-author-emailsupport@lingo.devEmail автора Git-коммита
working-directory.Рабочий каталог для монорепозиториев
process-own-commitsfalseОбрабатывать коммиты, созданные этим action
parallelfalseЗапускать в параллельном режиме
versionlatestВерсия Lingo.dev CLI

Что дальше#

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

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

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