A Lingo.dev oferece duas formas de executar Localização contínua no GitHub: com o GitHub App gerenciado ou rodando o @lingo.dev/cli dentro de um job do GitHub Actions.
Qual devo usar?
Comece pelo GitHub App — ele roda no servidor, responde automaticamente a pushes e pull requests e não exige runner, secret de chave de API nem gerenciamento de lockfile. Recorra ao GitHub Actions quando quiser que a localização rode dentro do seu próprio pipeline, junto com outras etapas de CI.
GitHub App (recomendado)#
O GitHub App é a maneira mais fácil de executar Localização contínua no GitHub. Instale uma vez, aponte para um engine, e ele reage a cada push e pull request.
- Instale o app pela página do GitHub App e conceda acesso ao seu repositório.
- Faça commit de um
.lingo/config.jsonna raiz do repositório, descrevendo seus buckets e idiomas, incluindo aengineIddo engine que o app deve usar. Consulte Configuration para ver o formato do arquivo. - Faça push. O app localiza o conteúdo alterado no servidor e faz commit dos resultados de volta (ou abre um pull request), mantendo
.lingo/lock.jsonsempre atualizado automaticamente.
Como o app roda no servidor, não há runner para manter, nenhum secret de LINGO_API_KEY para armazenar e nenhum comando de lockfile para executar.
GitHub Actions#
Para rodar a localização no seu próprio pipeline, instale a CLI em um job e execute lingo push; depois, faça commit dos resultados ou abra um pull request com o ferramental que você já usa.
Armazene sua chave de API como um secret do repositório chamado LINGO_API_KEY (Settings > Secrets and variables > Actions). A CLI lê esse valor do ambiente.
Fazer commit na branch atual#
Crie .github/workflows/localize.yml:
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 pushIsso localiza o conteúdo alterado e faz commit dos resultados diretamente na branch a cada push.
Abrir um pull request#
Para enviar traduções para revisão em vez de fazer commit direto, envie os resultados para uma branch e abra um pull request. Este exemplo usa a GitHub CLI, que já vem pré-instalada nos runners hospedados pelo GitHub:
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"Ative Settings > Actions > General > Allow GitHub Actions to create and approve pull requests para workflows baseados em PR.
O mesmo job funciona em branches de feature — altere o filtro on.push.branches (por exemplo, branches-ignore: [main]) para controlar onde a localização roda.
