Tutoriales//8 min de lectura

Sincronización de GitHub para Traducciones: Automatiza Tu Flujo de Trabajo i18n

Ali Osman Delismen
Compartir

El flujo de trabajo manual de traducciones es un impuesto silencioso sobre la velocidad de ingeniería. Cada vez que un desarrollador añade una nueva cadena, alguien tiene que:

  1. Notar que la nueva clave existe
  2. Exportar el archivo de traducción
  3. Enviarlo a los traductores (o un TMS)
  4. Esperar las traducciones
  5. Importar los archivos traducidos
  6. Hacer el commit de los cambios
  7. Desplegar

Si tu ciclo de versiones es semanal, esto es manejable. Si despliegas varias veces al día, se rompe rápido. Las cadenas quedan sin traducir. Las funciones se lanzan solo en inglés. "Arreglaremos las traducciones en la próxima versión" se convierte en el estándar, y terminas con una deuda de localización cara de pagar.

La sincronización de GitHub elimina este impuesto.

Qué Hace Realmente la Sincronización de GitHub

Cuando conectas Better i18n a tu repositorio de GitHub, la sincronización funciona en ambas direcciones:

Código → TMS (al hacer push):

  • Cuando haces push de un commit que añade o modifica archivos de traducción fuente, Better i18n detecta los cambios
  • Las nuevas claves se añaden al TMS automáticamente
  • Las cadenas fuente modificadas se marcan para re-traducción en todos los idiomas de destino
  • Las claves eliminadas se archivan (nunca se borran inmediatamente)

TMS → Código (después de la traducción):

  • Cuando las traducciones son aprobadas en el TMS, Better i18n abre automáticamente un pull request con los archivos de traducción actualizados
  • El PR describe exactamente qué cambió y en qué idiomas
  • Lo fusionas como cualquier otro PR

Configurando la Sincronización de GitHub con Better i18n

Paso 1: Conecta tu repositorio

En el panel de Better i18n, ve a tu proyecto → Configuración → GitHub Sync. Haz clic en "Conectar Repositorio" y autentícate con GitHub.

Paso 2: Configura los patrones de archivos

Indica a Better i18n dónde viven tus archivos de traducción:

source:
  branch: main
  path: src/locales/en.json
  format: json

targets:
  - path: src/locales/{locale}.json
    languages: [de, fr, es, ja, zh, pt-BR]

Better i18n soporta JSON, YAML, PO/POT, XLIFF, Android XML, iOS strings, Flutter ARB y más.

Paso 3: Configura el flujo de trabajo de traducción

Elige qué sucede cuando se detectan nuevas claves:

Opción A: Traducción AI + PR automático — Las nuevas claves se traducen automáticamente con IA y se abre un PR inmediatamente.

Opción B: Traducción AI + revisión requerida — Las nuevas claves se traducen con IA pero requieren revisión humana antes de abrir el PR.

Opción C: Solo traducción humana — Las nuevas claves se añaden a la cola de traducción para traductores humanos.

Puedes configurar diferentes flujos para diferentes prefijos de clave — IA para ui.* y revisión humana para legal.*.

El Flujo de Trabajo de Pull Request

Cuando Better i18n abre un PR de traducción, se ve así:

feat(i18n): add translations for de, fr, es [Better i18n]

Traducidas 14 nuevas claves añadidas en los commits a1b2c3d..f4e5d6c

Idiomas:
✅ Alemán (de) — 14/14 claves
✅ Francés (fr) — 14/14 claves
✅ Español (es) — 14/14 claves
⏳ Japonés (ja) — 8/14 claves (6 pendientes de revisión)

Integración con CI/CD

# Verifica la cobertura de traducción antes del despliegue
better-i18n check --project mi-proyecto --require-languages de,fr,es --min-coverage 95
# .github/workflows/i18n-check.yml
name: Verificación de Cobertura de Traducción

on:
  pull_request:
    paths:
      - 'src/locales/en.json'

jobs:
  i18n-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx @better-i18n/cli check --require-languages de,fr,es
        env:
          BETTER_I18N_API_KEY: ${{ secrets.BETTER_I18N_API_KEY }}

Esto bloquea los merges que enviarían nuevas cadenas en inglés sin traducciones en tus idiomas críticos.

Antes y Después

Antes de la Sincronización de GitHubDespués
Nueva cadena añadidaEl desarrollador añade la clave, notifica manualmente al equipoLa sincronización detecta el cambio automáticamente
Traducción completaEl traductor envía un correo al desarrolladorPR abierto automáticamente
DespliegueImportación manual de archivos traducidosFusiona el PR, listo
Visibilidad de coberturaAd-hoc, a menudo descubierta al lanzarPanel en tiempo real + checks de CI
Tiempo de código a traducidoDías a semanasHoras a días
Tiempo de ingeniería en coordinación i18n2-4 horas/semana< 30 minutos/semana

Cómo Empezar

  1. Crea una cuenta de Better i18n (el plan gratuito incluye sincronización de GitHub)
  2. Conecta tu repositorio en el panel
  3. Configura tus patrones de archivos y lista de idiomas
  4. Haz push de un commit con una nueva clave de traducción — observa la magia

La primera sincronización importa todos tus archivos de traducción existentes y calcula la cobertura. A partir de entonces, cada commit se gestiona automáticamente.

Configura la Sincronización de GitHub →

Comments

Loading comments...