|
Documentación
Agenda una demoPlataforma
PlataformaMCPCLIAPIFlujos de trabajo
GuíasRegistro de cambios

Localización continua

  • Cómo funciona
  • Configuración

Plataformas

  • App de GitHub
  • GitHub Actions
  • GitLab CI/CD
  • Bitbucket Pipelines
  • Patrones avanzados

Patrones avanzados

Patrones avanzados para localización en CI/CD: elección de flujo de trabajo, comprobación de traducciones completas y resolución de conflictos de merge.

Cómo elegir un flujo de trabajo#

Estos cuatro patrones de flujo de trabajo cubren la mayoría de las configuraciones de equipo. Cada uno implica distintos trade-offs en automatización, carga de revisión e higiene de ramas.

Flujo de trabajoIdeal paraTrade-off
Commit a mainEquipos pequeños, actualizaciones sin fricciónSin paso de revisión para las traducciones
PR desde mainEquipos que quieren revisar las traduccionesRequiere aprobación manual del PR
Commit a feature branchFeature branches de larga duraciónCommits de traducción en el historial de la rama
PR desde feature branchMáximo control por funcionalidadHay que gestionar varios PR por funcionalidad

Si no estás seguro, empieza con "Commit a main". Es el flujo de trabajo más simple y evita por completo los conflictos de merge, ya que no hay divergencia entre ramas.

Comprobar que las traducciones estén completas#

La bandera --frozen verifica que todo el contenido esté traducido sin generar nuevas traducciones. Devuelve un código de salida distinto de cero si falta contenido:

bash
npx lingo.dev@latest run --frozen

Úsala como control de despliegue para evitar publicar contenido sin traducir.

yaml
name: Check translations
on: [push, pull_request]
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npx lingo.dev@latest run --frozen

Resolver conflictos de merge#

Los conflictos de merge ocurren cuando el archivo i18n.lock diverge entre ramas, normalmente cuando las traducciones se actualizan de forma independiente en distintas ramas.

Prevención#

Hacer commit de las traducciones directamente en main (en lugar de usar feature branches para las traducciones) elimina por completo los conflictos del lockfile.

Resolución mediante merge#

1

Inicia el merge

bash
git merge <branch-name>
2

Elimina el lockfile en conflicto

bash
rm i18n.lock
3

Completa el merge

bash
git add .
git merge --continue
4

Regenera el lockfile

bash
npx lingo.dev@latest lockfile --force

Esto reconstruye el lockfile a partir del estado actual de tus archivos fuente sin activar nuevas traducciones.

Resolución mediante rebase#

El mismo enfoque funciona con rebase: elimina i18n.lock en cada paso del conflicto, continúa el rebase y luego regenera el lockfile al final:

bash
git rebase <branch-name>
# On each conflict: rm i18n.lock && git add . && git rebase --continue
npx lingo.dev@latest lockfile --force

Próximos pasos#

GitHub Actions
Configura la GitHub Action oficial
i18n.lock
Cómo el lockfile rastrea el estado de las traducciones
Cómo funciona
El pipeline de localización para CI/CD
Configuración
Configura CI/CD para tu proyecto

¿Te resultó útil esta página?

Max PrilutskiyMax Prilutskiy·Actualizado hace 4 meses·2 min de lectura