Lingo.dev ofrece dos formas de ejecutar localización continua en GitHub: con la GitHub App administrada o ejecutando @lingo.dev/cli dentro de un job de GitHub Actions.
¿Cuál me conviene usar?
Empieza con la GitHub App: se ejecuta del lado del servidor, responde automáticamente a los pushes y pull requests, y no requiere runner, secreto de API key ni gestión del lockfile. Usa GitHub Actions cuando quieras que la localización corra dentro de tu propio pipeline, junto con otros pasos de CI.
GitHub App (recomendada)#
La GitHub App es la forma más fácil de ejecutar localización continua en GitHub. Instálala una vez, apúntala a 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 archivo
.lingo/config.jsonen la raíz del repositorio donde describas 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 del lado del servidor el contenido modificado y hace commit de los resultados de vuelta (o abre un pull request), manteniendo
.lingo/lock.jsonactualizado automáticamente.
Como la app se ejecuta del lado del servidor, no hay runner que mantener, ni secreto de LINGO_API_KEY que guardar, ni comandos de lockfile que ejecutar.
GitHub Actions#
Para ejecutar la localización dentro de tu propio flujo de trabajo, instala el CLI en un job y ejecuta lingo push; luego haz commit de los resultados o abre un pull request con las herramientas que ya usas.
Guarda tu API key como un secreto del repositorio llamado LINGO_API_KEY (Settings > Secrets and variables > Actions). El 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 un pull request#
Si prefieres integrar las traducciones mediante revisión en lugar de hacer commit directo, haz push de los resultados a una rama y abre un 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 feature: cambia el filtro on.push.branches (por ejemplo, branches-ignore: [main]) para controlar dónde se ejecuta la localización.
