Lingo.dev mantiene las traducciones sincronizadas con tu código. En cada cambio, detecta qué contenido se modificó, lo traduce con tu motor de localización conectado —aplicando de forma consistente las reglas del glosario, la voz de marca y la configuración del modelo por idioma—, y hace commit de los resultados o abre un pull request. Las traducciones incompletas nunca llegan a producción.
Elige tu integración#
Cada integración tiene su propia guía. Elige la que mejor se adapte a tu configuración:
| Integración | Cómo se ejecuta |
|---|---|
| GitHub App | Instálala una sola vez. Lingo.dev ejecuta la localización por ti en los pushes a la rama predeterminada y, cuando lo habilitas, también en los pull requests; sin runner, sin secreto de API key y sin lockfile. |
| GitHub Actions | Instala @lingo.dev/cli y ejecuta lingo push en tu pipeline de GitHub Actions; luego hace commit de los resultados o abre un PR. |
| GitLab CI/CD | Instala @lingo.dev/cli y ejecuta lingo push en un job de pipeline de GitLab. |
| Bitbucket Pipelines | Instala @lingo.dev/cli y ejecuta lingo push en un paso del pipeline de Bitbucket. |
La GitHub App se ejecuta en los servidores de Lingo.dev. Todas las demás integraciones ejecutan la Lingo.dev CLI, así que cualquier entorno de CI/CD con Node.js 22+ puede ejecutar la localización directamente, incluso sin una integración nativa.
Cómo funciona la GitHub App#
Instala la app una vez y agrega un .lingo/config.json al repositorio. A partir de ahí, Lingo.dev ejecuta la localización por ti, sin pipeline, sin secreto de API key y sin lockfile:
- Monitorea los cambios - responde a los pushes en la rama predeterminada desde el primer momento y a los pull requests una vez que habilitas
onPullRequest, revisando los archivos modificados según los patrones de origen que configures - Traduce el delta - envía el contenido de origen modificado a través del motor indicado por
engineId - Escribe los resultados de vuelta en GitHub - en los pushes a la rama predeterminada abre o actualiza un pull request de traducción; en los pull requests, hace commit de los archivos traducidos en la rama del PR y publica un comentario de estado
- Recupera y agrupa - detecta cambios que una ejecución anterior no alcanzó a procesar y divide actualizaciones muy grandes en múltiples commits
Puedes poner las ejecuciones detrás de un paso de aprobación o activar las traducciones manualmente con comandos /lingo en un pull request. Consulta la guía de GitHub App para ver la configuración completa.
Cómo funcionan las integraciones con CLI#
Las integraciones de GitHub Actions, GitLab CI/CD y Bitbucket ejecutan la misma Lingo.dev CLI como un paso dentro de tu pipeline actual. Necesitan dos cosas: tu configuración en .lingo/config.json y un LINGO_API_KEY para autenticarse.
En cada ejecución, el job instala la CLI (npm install -g @lingo.dev/cli) y ejecuta lingo push, que:
- Detecta los archivos de origen - lee tu configuración de bucket para encontrar contenido traducible
- Detecta cambios: compara con el archivo lock
.lingo/lock.jsonpara identificar cadenas nuevas o modificadas, de modo que solo se traduzca el delta - Traduce - envía el contenido modificado a través de tu motor de localización configurado, con todas las reglas aplicadas: glosario, voz de marca y ajustes del modelo por idioma
- Escribe los resultados: actualiza los archivos del idioma de destino directamente y refresca
.lingo/lock.json
Después, tu pipeline hace commit de los resultados o abre un pull request con las herramientas propias de tu plataforma. Como solo se traducen las cadenas modificadas, las ejecuciones son rápidas y rentables, incluso en docenas de idiomas.
Opciones de flujo de trabajo#
GitHub App#
El comportamiento de la App se configura en .lingo/config.json:
| Opción | Qué hace |
|---|---|
Push a la rama predeterminada (onPushToDefaultBranch) | Está habilitado de forma predeterminada. Abre o actualiza un PR de traducción cuando los cambios de origen llegan a la rama predeterminada. |
Traducción en pull request (onPullRequest) | Está deshabilitada de forma predeterminada. Hace commit de las traducciones en la rama del PR a medida que este cambia. |
Paso de aprobación (requireApproval) | Está deshabilitado de forma predeterminada. Requiere Approve/Deny en la ejecución de verificación, o /lingo approve en un PR, antes de que las ejecuciones automáticas traduzcan. |
Comandos manuales (/lingo translate) | Completa traducciones faltantes o fuerza traducciones para archivos específicos desde un comentario en el PR, en cualquier momento. |
Consulta la guía de GitHub App para ver la configuración completa y la referencia de comandos.
CLI en CI/CD (GitHub Actions, GitLab CI, Bitbucket)#
Cuatro patrones de flujo de trabajo cubren la mayoría de las configuraciones de equipo:
| Flujo de trabajo | Disparador | Resultado |
|---|---|---|
| Commit a main | Push a main | Traducciones enviadas directamente a main |
| PR desde main | Push a main | Pull request con traducciones |
| Commit a la rama feature | Push a la rama feature | Traducciones enviadas a la rama |
| PR desde la rama feature | Push a la rama feature | Pull request desde la rama |
La primera opción —commit a main— es la más simple. Las traducciones aparecen automáticamente, sin intervención del equipo de desarrollo. Las opciones basadas en PR agregan un paso de revisión antes de que las traducciones se integren.
Para conocer más detalles sobre cómo elegir entre estas opciones, consulta Patrones avanzados.
