|
Documentation
EnterprisePlatform
PlatformAPIReact (MCP)CLIIntegrations
React (Lingo Compiler)
Alpha
GuidesChangelog

Continuous Localization

  • How it works
  • Setup

Platforms

  • GitHub Actions
  • GitLab CI/CD
  • Bitbucket Pipelines
  • Advanced patterns

GitHub Actions

Max PrilutskiyMax Prilutskiy·Updated about 2 months 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:

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

This commits translations directly to main on every push.

Workflow examples#

Commit to 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 from 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 }}

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

Commit to feature branch#

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

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

Available inputs#

InputDefaultDescription
api-keyRequiredLingo.dev API key
pull-requestfalseCreate a pull request instead of committing directly
commit-messagefeat: update translations via @LingoDotDevCustom commit message
pull-request-titlefeat: update translations via @LingoDotDevCustom PR title
commit-author-nameLingo.devGit commit author name
commit-author-emailsupport@lingo.devGit commit author email
working-directory.Working directory for monorepos
process-own-commitsfalseProcess commits made by this action
parallelfalseRun in parallel mode
versionlatestLingo.dev CLI version

Next Steps#

Advanced Patterns
Translation checks, merge conflicts, workflow selection
GitLab CI/CD
Set up GitLab CI/CD integration
Bitbucket Pipelines
Set up Bitbucket Pipelines integration
Connect Your Engine
Route CI/CD translations through your engine

Was this page helpful?