Los formatos de archivo que realmente fallan en producción
La localización de software parece sencilla hasta que se pone en marcha. Un equipo escribe en.json y asume que español, alemán y árabe seguirán el mismo camino. No lo harán. Cada formato de archivo tiene una peculiaridad que rompe la compilación de una agencia que no esté preparada. Tras 14 años y varios miles de lanzamientos SaaS, disponemos de una lista breve de casos que sorprenden incluso a equipos de ingeniería maduros.
JSON, YAML y el problema del apóstrofo
JSON simple no tiene comentarios ni soporte para plurales: funciona para inglés, pero es frágil en producción cuando los traductores añaden apóstrofos tipográficos (' frente a '), espacios finos insecables alrededor de la puntuación francesa o comillas alemanas (», «). Un traductor francés que escribe correctamente L'application con un apóstrofo tipográfico pasará el control de calidad lingüístico pero romperá un analizador JSON frágil. Normalizamos los apóstrofos en la importación, validamos la presencia de BOM UTF-8 y ejecutamos una pasada de sintaxis antes de que se publique cada locale.
Android strings.xml: el escape silencioso
Android almacena los apóstrofos como \' y los símbolos de unión como &. Los traductores suelen pegar caracteres curvos de Microsoft Word que parecen idénticos y se publican, hasta que el diseño renderiza mojibake en tiempo de ejecución. Utilizamos un proceso de ida y vuelta XLIFF personalizado para recursos de Android para que el traductor nunca vea XML sin procesar, y volvemos a escapar en la exportación.
iOS .strings y .stringsdict
El problema clásico son las reglas de plural. iOS usa categorías de plural CLDR (zero, one, two, few, many, other) a través de .stringsdict. Un traductor inexperto tratará el archivo como uno a uno y perderá variantes de plural: su aplicación en alemán dirá entonces "1 Nachrichten". Usamos un editor consciente de plurales que muestra cada categoría CLDR según sea necesario para el locale de destino y rechaza la exportación si falta alguna categoría.
.NET .resx y Java .properties
.resx acepta comentarios XML y referencias de código incrustadas; .properties usa ISO-8859-1 por defecto (las cadenas de herramientas modernas sí admiten UTF-8, pero la combinación incorrecta aún publica escapes \uXXXX que desconciertan a los traductores). Forzamos UTF-8 en la importación y emitimos escapes nativos solo en tiempo de compilación.
El proceso de ida y vuelta con XLIFF
Siempre que es posible, extraemos los archivos de origen a XLIFF 1.2 o 2.0, traducimos dentro de nuestro editor con contexto adjunto y volvemos a fusionar. Esto permite que los traductores vean el comentario de origen, la captura de pantalla y la restricción (límite de caracteres, forma plural ICU, indicador de reflejo RTL) sin tocar nunca el archivo de origen. El pipeline de compilación se fusiona de vuelta al formato que confirmaron sus desarrolladores.