IA y Tecnología
Cómo traducir subtítulos SRT sin perder las marcas de tiempoPor qué la traducción de subtítulos es un trabajo de precisión Un archivo SRT es un formato muy estructurado. Cada bloq…
Amanda Lee
Los archivos de idioma PO, YAML, .properties, RESX, XLIFF y JSON parecen listas de frases, pero solo los valores son prosa. Las claves son identificadores que el código busca; los marcadores de posición son huecos que el código rellena en tiempo de ejecución; los escapes y el marcado son sintaxis de la que depende el analizador. Un traductor que trate toda la línea como texto producirá un archivo que se lee de maravilla y no se carga, o que se carga y después falla la primera vez que una pantalla da formato a un número. El fallo suele aparecer en un solo idioma, lo que lo convierte en el tipo de error más difícil de detectar en una revisión.
El inglés tiene dos formas de plural, así que es tentador pensar que todos los idiomas las tienen. El manual de GNU gettext muestra por qué eso falla: cada idioma declara su propia regla Plural-Forms, el inglés usa nplurals=2 y el ruso necesita tres formas elegidas según las últimas cifras del número. Un archivo PO traducido al ruso con solo dos formas rellenas compila, se ejecuta e imprime la gramática incorrecta para cada cantidad que termina en 2, 3 o 4. Gestionar bien los plurales significa producir el número de entradas msgstr que exige el idioma de destino, no el número que resultó tener el idioma de origen.
El orden de las palabras varía entre idiomas, así que una frase con dos valores a menudo tiene que colocarlos al revés. Los marcadores posicionales como %1$s y %2$s, o los nombrados como {count} y {user}, existen precisamente para eso: la traducción puede reordenarlos, pero cada uno debe seguir presente exactamente una vez. Los marcadores anónimos, como un %s a secas, no se pueden reordenar con seguridad, y es un problema que conviene corregir en las cadenas de origen antes de traducir, no después.
Cada formato tiene sus propias aristas. En YAML, la especificación da a un bloque literal (|) y a un bloque plegado (>) un comportamiento distinto con los saltos de línea, y los anclajes (&) y alias (*) permiten que un nodo reutilice otro, así que ambos deben pasar intactos. XLIFF 2.1 envuelve el formato original en elementos en línea como <ph> y <pc>, que la traducción debe mantener en su sitio alrededor de las palabras correctas. En .NET, los recursos RESX se buscan por nombre en tiempo de ejecución para la referencia cultural de la interfaz actual, así que un elemento data renombrado recurre en silencio al idioma predeterminado. Y un archivo .properties de Java trata el primer =, : o espacio en blanco sin escapar como separador de la clave, así que unos dos puntos sueltos en una clave traducida la parten en dos.
Casi siempre porque se modificó un marcador de posición solo en ese idioma: se renombró, se eliminó o se duplicó. El código pasa los mismos argumentos a todos los idiomas, así que la única traducción que ya no coincide con ellos falla cuando se da formato a esa pantalla.
Las reglas de plural pertenecen al idioma, no al software. Gettext permite que cada idioma declare su propia regla; el ruso elige entre tres formas según las últimas cifras del número, así que una traducción con solo dos formas imprime la gramática incorrecta para muchas cantidades.
Porque el clásico Properties.load(InputStream) lee el archivo como Latin-1. Los caracteres fuera de ese rango deben escribirse como escapes \uXXXX, o el archivo debe cargarse con un lector que use la codificación correcta.
Sí, cuando son posicionales (%1$s, %2$s) o nombrados ({count}, {user}); a menudo reordenarlos es necesario para un orden natural de las palabras. Cada marcador debe seguir apareciendo exactamente una vez. Los marcadores %s a secas no se pueden reordenar con seguridad.
Las claves son identificadores, no texto. El código pide una cadena por su clave; una clave traducida significa que la búsqueda falla y la aplicación muestra una clave sin procesar o recurre al idioma predeterminado.
Suba un archivo PO, YAML, .properties o RESX y recíbalo con las claves, los marcadores de posición, los escapes y la estructura exactamente donde estaban.
Traducir un Archivo de Idioma Gratis
IA y Tecnología
Cómo traducir subtítulos SRT sin perder las marcas de tiempoPor qué la traducción de subtítulos es un trabajo de precisión Un archivo SRT es un formato muy estructurado. Cada bloq…
Amanda Lee
IA y Tecnología
Cómo traducir una presentación de PowerPoint en líneaEl verdadero reto de traducir una presentación Una presentación de PowerPoint es más que texto. Cada diapositiva es un …
Amanda Lee