Lanzar una app en un solo idioma es sencillo. Lanzarla en diez es donde empiezan los problemas: los archivos de traducción se desincronizan, las claves se renombran en un idioma pero no en los demás, y nadie sabe qué textos están realmente listos para publicar.
La solución no es una hoja de cálculo más grande. Es tratar las traducciones como código, porque es lo que son: viven en tu repositorio, cambian con cada funcionalidad y merecen el mismo flujo de revisión.
Por qué las traducciones pertenecen a tu repositorio
Cuando los archivos de traducción viven en Git, cada cambio queda registrado. Puedes ver quién renombró una clave, cuándo se añadió un idioma y qué commit introdujo una traducción que falta. Las ramas te dan espacios de trabajo aislados, de modo que una actualización de alemán a medias nunca bloquea un hotfix urgente.
Compáralo con las alternativas habituales: hojas de cálculo enviadas por email sin historial, o una herramienta de traducción que guarda tus textos en su propia base de datos sin un camino claro de vuelta a tu repositorio.
Los archivos que ya tienes
La mayoría de stacks ya guardan las traducciones como archivos de texto plano:
- JSON para apps web, un archivo por idioma como
en.jsonyes.json - .strings o .xcstrings para iOS y macOS
- strings.xml para Android
- archivos .po para proyectos basados en gettext
Un archivo JSON típico tiene este aspecto:
{
"checkout.title": "Checkout",
"checkout.pay": "Pay now",
"checkout.empty_cart": "Your cart is empty"
}Estos archivos muestran diferencias limpias, se revisan bien en pull requests y funcionan con cualquier pipeline de CI que ya tengas.
Un flujo de trabajo que escala
El flujo que funciona para la mayoría de equipos es este: los desarrolladores añaden claves en el idioma fuente, la herramienta de traducción se sincroniza con el repositorio, los traductores completan el resto y los idiomas terminados vuelven como commits. Sin exportaciones, sin copiar y pegar, sin archivos "final_v3_REVISADO".
Si un cambio de traducción no puede revisarse en un pull request, tarde o temprano romperá algo en producción.
Este es exactamente el flujo para el que está construido MovaBase. Conecta tu repositorio y tus archivos JSON, .strings y XML de Android se mantienen sincronizados en ambas direcciones: los traductores trabajan en un editor pensado para ellos mientras los desarrolladores mantienen todo en Git. Puedes probarlo con tu propio repositorio en app.movabase.com.
Empieza poco a poco: mueve un archivo de idioma a tu repositorio, conecta la sincronización y deja que el historial de pull requests hable por sí solo.