La localización (i18n) es más que solo traducir palabras: se trata de gestionar estructuras de archivos complejas, manejar contenido dinámico y asegurar la calidad en todos los idiomas. Como desarrolladores, a menudo luchamos con dos puntos débiles específicos:
- Gestionar enormes archivos de traducción JSON: Detectar qué cambió entre dos versiones de un archivo JSON de 5,000 líneas es una pesadilla con herramientas de diferenciación estándar.
- Escribir mensajes ICU complejos: Los errores de sintaxis en plurales o declaraciones select a menudo bloquean las aplicaciones en tiempo de ejecución.
En IntlPull, enfrentamos estos mismos desafíos. Por eso, construimos dos herramientas poderosas para resolverlos, y las estamos poniendo a disposición de la comunidad de forma gratuita.
1. Diferenciador Visual de Traducción JSON
Las herramientas de diferenciación estándar como git diff o comparadores de texto se basan en líneas. No entienden la estructura de JSON. Si reordenas las claves o cambias la sangría, las herramientas estándar muestran todo el archivo como modificado.
Nuestro Diferenciador de Traducción JSON es semánticamente consciente. Entiende que JSON es un objeto, no solo líneas de texto.
Características Clave
- Comparación Consciente de la Estructura: Ignora los cambios en el orden de las claves y las diferencias de formato. Solo resalta los cambios de contenido reales.
- Soporte de Claves Anidadas: Aplana y compara automáticamente objetos anidados (por ejemplo,
auth.login.title) para que puedas ver exactamente qué nodo hoja cambió. - "Mostrar/Ocultar Sin Cambios": Alterna para enfocarte exclusivamente en lo que es nuevo, eliminado o modificado.
- Codificación de Colores Visual:
- <span style="color: #4ade80">Verde</span> para claves agregadas.
- <span style="color: #f87171">Rojo</span> para claves eliminadas.
- <span style="color: #facc15">Amarillo</span> para valores modificados.
- Informes Exportables: Genera un informe JSON de las diferencias para compartir con tu equipo de localización o adjuntar a un Pull Request.
Caso de Uso: Revisión de Actualizaciones de Traducción
Imagina que tu agencia de traducción envía un nuevo es.json. Antes de fusionarlo en tu base de código, quieres asegurarte de que no eliminaron accidentalmente claves o cambiaron claves que no deberían haberse tocado.
Usando el Diferenciador JSON:
- Pega tu
es.jsonoriginal a la izquierda. - Pega el nuevo archivo a la derecha.
- Ve instantáneamente que se agregaron 5 claves, se eliminaron 0 y se cambiaron 12.
- Verifica que no falten claves críticas antes de fusionar.
2. Editor y Validador de Mensajes ICU
El Formato de Mensaje ICU es el estándar de la industria para manejar plurales, selección de género y sustitución de variables. Sin embargo, la sintaxis es notoriamente difícil de escribir y fácil de romper.
Una llave de cierre faltante } o un error tipográfico en una palabra clave puede hacer que toda tu aplicación React o Next.js arroje un error en tiempo de ejecución.
Nuestro Editor de Mensajes ICU proporciona un entorno seguro para escribir, probar y validar tus mensajes.
Características Clave
- Vista Previa en Tiempo Real: Escribe tu mensaje y ve instantáneamente cómo se renderiza.
- Área de Pruebas de Variables: La herramienta detecta automáticamente las variables (por ejemplo,
{name},{count}) y genera campos de entrada para que puedas probar diferentes valores. - Validación de Sintaxis: Obtén comentarios inmediatos si tus llaves están desequilibradas o tu sintaxis es inválida.
- Plantillas Preconstruidas: ¿Confundido sobre cómo escribir un plural? Plantillas de un solo clic para:
- Plurales:
{count, plural, =0 {Sin artículos} other {# artículos}} - Select:
{gender, select, male {Él} female {Ella} other {Ellos}} - Fecha/Hora/Número: Patrones de formato estándar.
- Plurales:
Caso de Uso: Plurales Profundamente Anidados
Escribir una oración como "Tienes 3 mensajes en 2 carpetas" donde ambos números son dinámicos es complejo.
Enfoque estándar: Adivinar la sintaxis, ejecutar la aplicación, ver cómo falla, intentar de nuevo.
Con el Editor ICU:
- Abre el Editor ICU.
- Usa la plantilla "Múltiples Variables".
- Escribe:
Tienes {msgCount, plural, =1 {# mensaje} other {# mensajes}} en {folderCount, plural, =1 {# carpeta} other {# carpetas}}. - Prueba con
msgCount=1, folderCount=5-> "Tienes 1 mensaje en 5 carpetas." - Prueba con
msgCount=2, folderCount=1-> "Tienes 2 mensajes en 1 carpeta." - Copia la cadena validada a tu código.
Por Qué Construimos Esto
Construimos estas herramientas porque las necesitábamos para IntlPull, nuestra plataforma de gestión de localización. Mientras construíamos un sistema para automatizar traducciones, nos dimos cuenta de que las tareas "simples" de verificar diferencias y escribir sintaxis seguían siendo manuales y propensas a errores.
Estas herramientas son partes gratuitas de nuestra misión de mejorar la experiencia del desarrollador para la internacionalización.
¿Listo para Optimizar tu Flujo de Trabajo?
- Comienza a comparar archivos con el Diferenciador JSON.
- Prueba tus cadenas con el Editor de Mensajes ICU.
- Para una solución completa, echa un vistazo a IntlPull para automatizar todo tu flujo de trabajo de traducción.
