17 puntos por xguru 2024-05-03 | 4 comentarios | Compartir por WhatsApp
  • Localización asimétrica: busca traducciones naturales usando género/mayúsculas solo cuando es necesario. La expresividad no está limitada por la gramática del idioma original
  • Mejora progresiva: cada traducción se gestiona de forma independiente y no afecta a otros locales. Es posible mejorar las traducciones de manera iterativa sin impactar otros idiomas
  • Varias funciones: formato de fecha, hora y números. Categorías de plural. Soporte bidireccional. Formato definido por el usuario. Sintaxis fácil de leer. Traducción y retraducción en tiempo de ejecución. Manejo robusto de errores
  • Código abierto con licencia Apache. La implementación de servidor está disponible en JS, Python y Rust, y también ofrece bindings para React

Por qué se creó Fluent

  • La localización de software ha estado dominada por un paradigma anticuado de traducción que mapea uno a uno con el texto en inglés
  • La gramática del idioma original limita la expresividad de la traducción
  • Fluent fue creado para cambiar ese paradigma
    • Los traductores deberían poder usar toda la expresividad del idioma sin tener que pedir permiso a los desarrolladores
    • En Fluent, las traducciones son asimétricas. Una cadena simple en inglés puede mapearse a una traducción compleja con múltiples variantes en otro idioma
  • Con Fluent, es posible satisfacer la gramática y el estilo de distintos idiomas sin importar cuál sea el idioma fuente
  • Es independiente
    • Aunque un idioma aproveche lógica avanzada, no hace falta que otras localizaciones la adopten para aplicarla
    • Cada localización controla por separado qué tan complejas se vuelven sus traducciones

4 comentarios

 
yangeok 2024-05-09

Oh, es muy interesante que se esté alejando del antiguo paradigma de correspondencia 1:1

 
iolothebard 2024-05-03

Una versión degradada de gettext exclusiva para JavaScript.

 
xguru 2024-05-03

https://github.com/projectfluent/fluent/wiki/Fluent-vs-gettext

Dicho así, le estás quitando demasiado peso a este proyecto.

 
iolothebard 2024-05-13

La respuesta fue tan poco elaborada (?) que quizá lo hayan visto así. Voy a intentar escribirlo con un poco más de cuidado.

La tabla comparativa, al final, se define según con quién se esté comparando, así que no tiene mucho significado,

pero la razón por la que yo sentí que era una versión degradada es... porque me da la impresión de que no respeta el conocimiento acumulado en gettext a lo largo de muchos años y por muchísimas personas.

Dijeron que gettext solo servía para C, pero ¿qué lenguaje importante no tiene soporte para gettext?
Mencionan que usaron parámetros basados en claves para considerar el problema del orden de las palabras, pero no todos los lenguajes tienen diccionarios integrados por defecto, así que en esos lenguajes se necesita un método adicional (por ejemplo, en Java algo como Map). gettext se basa en posiciones, pero sí contempla el cambio en el orden de las palabras.

Lo escribí medio al tuntún,
pero, en realidad... la razón por la que no me gustó desde el principio fue porque era {$...} y no ${...} ^^

En lo personal me encanta "reinventar la rueda", pero no me parece muy bien andar proclamándolo como si hubieran inventado una rueda que nunca había existido.