Lingo.dev ofrece dos formas de ejecutar localización continua en GitHub: la GitHub App gestionada y la ejecución de @lingo.dev/cli dentro de un job de GitHub Actions.
¿Cuál debería usar?
Empieza por la GitHub App: se ejecuta en el servidor, reacciona automáticamente a los pushes y las pull requests, y no necesita runner, ningún secreto de API key ni gestionar el lockfile. Recurre a GitHub Actions cuando quieras que la localización se ejecute dentro de tu propio flujo de trabajo, junto con otros pasos de CI.
GitHub App (recomendada)#
La GitHub App es la forma más sencilla de ejecutar localización continua en GitHub. Instálala una vez, asígnale un motor y reaccionará a cada push y pull request.
- Instala la app desde la página de la GitHub App y dale acceso a tu repositorio.
- Haz commit de un
.lingo/config.jsonen la raíz del repositorio que describa tus buckets e idiomas, incluida laengineIddel motor que debe usar la app. Consulta Configuration para ver el formato del archivo. - Haz push. La app localiza en el servidor el contenido modificado y hace commit de los resultados de vuelta (o abre una pull request), manteniendo
.lingo/lock.jsonactualizado automáticamente.
Como la app se ejecuta en el servidor, no hay ningún runner que mantener, ningún secreto LINGO_API_KEY que guardar ni ningún comando de lockfile que ejecutar.
GitHub Actions#
Si quieres ejecutar la localización en tu propio flujo de trabajo, instala la CLI en un job y ejecuta lingo push; después, haz commit de los resultados o abre una pull request con tus herramientas habituales.
Guarda tu API key como un secreto del repositorio llamado LINGO_API_KEY (Settings > Secrets and variables > Actions). La CLI la lee desde el entorno.
Hacer commit en la rama actual#
Crea .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 pushEsto localiza el contenido modificado y hace commit de los resultados directamente en la rama con cada push.
Abrir una pull request#
Si prefieres que las traducciones pasen por revisión en lugar de confirmarlas directamente, haz push de los resultados a una rama y abre una pull request. Este ejemplo usa la GitHub CLI, que viene preinstalada en los runners alojados por 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"Activa Settings > Actions > General > Allow GitHub Actions to create and approve pull requests para los flujos de trabajo basados en PR.
El mismo job funciona en ramas de funcionalidades: cambia el filtro on.push.branches (por ejemplo, branches-ignore: [main]) para controlar dónde se ejecuta la localización.
