Fluido 1.0: sistema de localización flexible



Fluent es una familia de especificaciones, implementaciones y prácticas de localización desarrolladas por Mozilla. Ahora se usa en el navegador Firefox. Usando Fluent, los traductores pueden escribir traducciones más naturales en su idioma nativo. Hoy presentamos la especificación de formato de archivo Fluent versión 1.0. Invitamos a los desarrolladores de herramientas de traducción a que lo prueben y cuenten sus impresiones.


¿Qué problemas resuelve Fluent?


El navegador Firefox admite alrededor de cien idiomas, y desafía a los desarrolladores en términos de localización. Muchos problemas son difíciles de resolver utilizando enfoques tradicionales. La localización del software está dominada por el principio de marcar las traducciones uno a uno con el texto fuente. La gramática del idioma de origen (en el caso de Mozilla - Inglés) impone serias restricciones a la disponibilidad de medios expresivos en la traducción.


Considere el siguiente mensaje que aparece cuando un usuario intenta cerrar una ventana de Firefox con varias pestañas.


tabs-close-warning-multiple = You are about to close {$count} tabs. Are you sure you want to continue? 

Un mensaje solo se muestra si hay 2 o más pestañas. En inglés, la palabra tabulación siempre estará en plural - pestañas. Un desarrollador de habla inglesa estará contento con tal mensaje. Suena correcto para cualquier valor de $ count.

fluido

En inglés, para todos los valores de $ count, una variante del mensaje es suficiente.


Muchos traductores notarán que la pestaña de palabras puede tomar diferentes formas dependiendo del valor de $ count.


En el enfoque tradicional de localización, la responsabilidad del procesamiento correcto del mensaje recaerá en los traductores. Deben tener en cuenta que en otros idiomas puede haber varias formas múltiples de la palabra, incluso si en inglés es solo una. Cuantos más idiomas admita la aplicación, más grave será el problema.


  • En algunos idiomas, los sustantivos tienen un género, lo que requerirá cambios en adjetivos y participios. En francés, las palabras connecté, connectée, connectés y connectées se traducen al inglés como conectado.
  • La guía de estilo puede requerir el uso de ciertos términos dependiendo de la plataforma en la que se ejecuta el software. En la versión en inglés de Firefox, por ejemplo, Configuración se usa en la plataforma de Windows y Preferencias en otros sistemas, para cumplir con los estándares adoptados en estos sistemas. En japonés, la diferencia puede ser aún más interesante: la elección de un sistema de escritura para algunos términos de computadora depende del sistema operativo.
  • El contexto y el público objetivo de la aplicación pueden requerir modificaciones adicionales al texto. Una aplicación en inglés para trabajar con contabilidad puede usar el formato de números diferentes de los que se usan en sitios regulares en Internet. Pero en otros idiomas, tal separación puede no ser necesaria.

Hay muchas variaciones gramaticales y estilísticas que no pueden correlacionarse directamente entre los dos idiomas. Respaldar todos estos matices utilizando el enfoque tradicional puede ser difícil. En algunos idiomas debe comprometerse, en otros no habrá una solución adecuada.


Localización asimétrica


El fluido cambia la distribución de roles en la localización. En lugar de exigir a los desarrolladores que consideren todos los matices posibles de todos los idiomas, Fluent intenta mantener los textos en el idioma de origen en la forma más simple posible.


Hacemos posible transmitir la gramática y el estilo de otros idiomas, independientemente del texto fuente. Todo sucede de forma aislada. El hecho de que un idioma pueda usar una lógica más avanzada en la localización no afecta a otros idiomas de traducción. Cada localización en el programa mismo decide qué tan complejo debe ser el texto de traducción.


Por ejemplo, veamos la traducción de un mensaje sobre el cierre de pestañas al checo. La palabra panel (pestaña) debe tomar una de dos formas: panel para el número de pestañas 2, 3 y 4, y panelů para todos los demás valores.


 tabs-close-warning-multiple = {$count -> [few] Chystáte se zavřít {$count} panely. Opravdu chcete pokračovat? *[other] Chystáte se zavřít {$count} panelů. Opravdu chcete pokračovat? } 

Con fluidez, los traductores pueden escribir oraciones gramaticalmente correctas y usar libremente los medios expresivos de su lenguaje. Gracias a Fluent, la traducción al checo usa las formas plurales correctas para cualquier posible valor de $ count.

fluent_cz En checo, con valores de $ count de 2, 3 y 4, el sustantivo requiere una forma plural especial.

Al mismo tiempo, no se requieren cambios en el código fuente o código. La lógica en la localización checa no afecta a todas las demás localizaciones del programa. En francés, esta oración será tan simple como el inglés:



 tabs-close-warning-multiple = Vous êtes sur le point de fermer {$count} onglets. Voulez-vous vraiment continuer ? 

El concepto de localización asimétrica es una innovación fluida clave, posible gracias a la experiencia de Mozilla en el desarrollo de software multilingüe durante más de 20 años. Muchas ideas clave para Fluent se tomaron prestadas de MessageFormat de ICU (Componente internacional para Unicode) y del formato XLIFF .


A primera vista, Fluent es como otras soluciones de localización que le permiten usar variantes de palabras para múltiples sustantivos y palabras con un género gramatical. En contraste, Fluent adopta un enfoque holístico para la localización. Fluent desarrolla estas ideas definiendo la sintaxis para todo el archivo de texto donde se almacenan las traducciones y permitiendo enlaces de un mensaje a otro.


Términos y enlaces


Un archivo Fluent puede contener muchos mensajes, cada uno de los cuales está traducido al idioma del traductor. Los mensajes pueden referirse a otros mensajes dentro del mismo archivo o a mensajes de otros archivos. En tiempo de ejecución, Fluent combina archivos en paquetes y los enlaces se resuelven dentro de ese conjunto.


Link to posts es una herramienta poderosa para mantener traducciones consistentes. Una vez que cierta traducción puede ser reutilizada en otras traducciones. Fluent admite un tipo especial de mensaje llamado término, muy adecuado para su reutilización. El término identificador siempre comienza con un guión.



 -sync-brand-name =  Firefox 

Una vez definido, el término -sync-brand-name se puede usar de otros mensajes como una variable, siempre devolviendo el texto correcto. Los términos ayudan a introducir la uniformidad de acuerdo con las pautas de estilo. Por ejemplo, se pueden modificar para compilaciones no oficiales de marca específicamente o versiones beta.


 sync-dialog-title = {-sync-brand-name} sync-headline-title = {-sync-brand-name}: The best way to bring your data always with you sync-signedout-account-title =    {-sync-brand-name} 

Usar el término directamente en el medio de una oración puede causar problemas en idiomas flexivos o en idiomas con otras reglas de mayúsculas de texto. El significado del término se puede definir en varios aspectos, dependiendo del contexto. Considere la siguiente definición del término -sync-brand-name en italiano.


 -sync-brand-name = {$capitalization -> *[uppercase] Account Firefox [lowercase] account Firefox } 

Debido a la naturaleza asimétrica de Fluent, un traductor de italiano puede definir dos formas para escribir una marca. La variante en mayúscula (predeterminada) es adecuada para uso independiente o para usar al comienzo de una oración. Se puede solicitar una opción en minúscula pasando un parámetro de mayúsculas cuando el término se usa dentro de una oración grande.


 sync-dialog-title = {-sync-brand-name} sync-headline-title = {-sync-brand-name}: il modo migliore per avere i tuoi dati sempre con te #      . sync-signedout-account-title = Connetti il tuo {-sync-brand-name(capitalization: "lowercase")} 

La definición de varias variantes del término es una técnica conveniente que le permite cumplir con las reglas gramaticales de muchos idiomas. En el siguiente ejemplo, el traductor de polaco puede usar declinaciones para construir la oración correcta en el mensaje sync -ignedout-account-title.


 -sync-brand-name = {$case -> *[nominative] Konto Firefox [genitive] Konta Firefox [accusative] Kontem Firefox } sync-signedout-account-title = Zaloguj do {-sync-brand-name(case: "genitive")} 

Fluent le permite incrustar lógica de construcción de lenguaje complejo donde lo necesite. Al mismo tiempo, simplemente traducir sigue siendo simple. Fluent no agrega implementaciones complejas a diseños simples.


 sync-signedout-caption = Take Your Web With You sync-signedout-caption = Il tuo Web, sempre con te sync-signedout-caption = Zabierz swoją sieć ze sobą sync-signedout-caption = So haben Sie das Web überall dabei. 

Sintaxis fluida


Hoy anunciamos el primer lanzamiento estable de Fluent Syntax. Esta es una especificación del formato de archivo para almacenar traducciones, así como una versión beta de analizadores para JavaScript, Python y Rust.


En los ejemplos anteriores, viste de qué se trata la sintaxis Fluent. Fue creado para ser comprensible para las personas con poco conocimiento técnico, y le permite verificar y editar texto con un número mínimo de errores. La recuperación de errores es un punto importante: una traducción incorrecta no romperá todo el archivo o las traducciones adyacentes. Los comentarios son útiles para transmitir el contexto de un mensaje en particular o de un grupo completo. Las traducciones pueden tomar varias líneas, lo que facilita el trabajo y el marcado de grandes fragmentos de texto.


Los archivos fluidos se pueden abrir en cualquier editor de texto, lo que reduce el umbral de entrada para desarrolladores y localizadores. El formato ya es compatible con la plataforma de traducción de software Pontoon de código abierto de Mozilla.

campo de juego fluido Fluent Playground es un sandbox para probar Fluent directamente en el navegador.

Para obtener detalles sobre la sintaxis, consulte la Guía de sintaxis fluida . Se puede encontrar una definición formal en la especificación de sintaxis fluida . Y si solo quieres probar Fluent, usa Fluent Playground , un editor en línea con fragmentos para compartir.


Retroalimentación


Firefox es un factor importante en el desarrollo de Fluent. Firefox ya usa más de 3,000 publicaciones fluidas . La migración a Fluent comenzó el año pasado y ahora está en pleno apogeo. El formato Fluent ha demostrado ser una solución estable y flexible para interfaces complejas, como la página de configuración de Firefox. También se usa en muchas páginas web de Mozilla, como Firefox Send y Common Voice .


Creemos que Fluent es una excelente opción para aplicaciones donde la simplicidad y la velocidad son importantes, pero al mismo tiempo requieren la visualización de elementos de interfaz dependiendo de muchas variables. En particular, Fluent ayuda a crear oraciones naturales en diferentes idiomas en un espacio limitado de interfaces móviles; en plataformas de redes sociales ricas en información; y en los juegos para transmitir estadísticas del juego y explicar la mecánica al jugador.


Nos encantaría saber de desarrolladores o vendedores con fluidez. Fluent se está desarrollando como un estándar del futuro, por lo que invitamos a todos a probarlo y contarnos qué otros problemas enfrenta en su trabajo. Con su ayuda, podremos mejorar Fluent para trabajar en muchas plataformas y en muchas situaciones.


Estamos abiertos a la crítica constructiva. Obtenga más información sobre Fluent en el sitio web del proyecto . Si tiene una historia que contar, contáctenos en Fluent Discourse .



De un traductor: documentación de sintaxis en ruso .

Source: https://habr.com/ru/post/448944/


All Articles