GitHub Actions

Max Prilutskiy·Updated about 1 month ago·2 min read

The official Lingo.dev GitHub Action runs the localization pipeline on every push, committing translations directly or opening a pull request depending on your workflow.

Prerequisites

Complete the CI/CD Setup first. You need a working i18n.json and LINGODOTDEV_API_KEY stored as a repository secret.

Minimal setup

Create .github/workflows/translate.yml:

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 }}

This commits translations directly to main on every push.

Workflow examples

Commit to main

Pull request from main

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 }}

Enable Settings > Actions > General > Allow GitHub Actions to create and approve pull requests for PR-based workflows.

Commit to feature branch

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 from feature branch

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 }}

Available inputs

Input Default Description
api-key Required Lingo.dev API key
pull-request false Create a pull request instead of committing directly
commit-message feat: update translations via @LingoDotDev Custom commit message
pull-request-title feat: update translations via @LingoDotDev Custom PR title
commit-author-name Lingo.dev Git commit author name
commit-author-email support@lingo.dev Git commit author email
working-directory . Working directory for monorepos
process-own-commits false Process commits made by this action
parallel false Run in parallel mode
version latest Lingo.dev CLI version

Next Steps

Advanced Patterns GitLab CI/CD Bitbucket Pipelines Connect Your Engine