A Lingo.dev suporta duas formas de executar a Localização Contínua no GitHub: com a GitHub App gerida e executando @lingo.dev/cli num job do GitHub Actions.
Qual devo usar?
Comece pela GitHub App — corre no servidor, reage automaticamente a pushes e pull requests e não precisa de runner, segredo de chave API nem gestão de lockfiles. Recorra ao GitHub Actions quando quiser que a localização corra no seu próprio pipeline, em conjunto com outros passos de CI.
GitHub App (recomendada)#
A GitHub App é a forma mais simples de executar a Localização Contínua no GitHub. Instale-a uma vez, aponte-a para um motor e reagirá a cada push e pull request.
- Instale a app a partir da página da GitHub App e conceda-lhe acesso ao seu repositório.
- Faça commit de um
.lingo/config.jsonna raiz do repositório, descrevendo os seus buckets e idiomas, incluindo oengineIddo motor que a app deve usar. Consulte Configuration para ver o formato do ficheiro. - Faça push. A app localiza o conteúdo alterado no servidor e faz commit dos resultados de volta ao repositório (ou abre um pull request), mantendo
.lingo/lock.jsonautomaticamente atualizado.
Como a app corre no servidor, não há runners para manter, nenhum segredo LINGO_API_KEY para guardar, nem comandos de lockfile para executar.
GitHub Actions#
Para executar a localização no seu próprio pipeline, instale a CLI num job e execute lingo push; depois, faça commit dos resultados ou abra um pull request com as ferramentas que já utiliza.
Guarde a sua chave API como um segredo do repositório com o nome LINGO_API_KEY (Settings > Secrets and variables > Actions). A CLI lê-a a partir 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 pushIsto localiza o conteúdo alterado e faz commit dos resultados diretamente na branch a cada push.
Abrir um pull request#
Para integrar traduções através de revisão, em vez de fazer commit diretamente, envie os resultados para uma branch e abra um pull request. Este exemplo usa a GitHub CLI, que vem pré-instalada nos runners alojados 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 feature branches — altere o filtro on.push.branches (por exemplo, branches-ignore: [main]) para controlar onde a localização corre.
