17 pontos por xguru 2024-05-03 | 4 comentários | Compartilhar no WhatsApp
  • Localização assimétrica: busca traduções naturais usando gênero/maiúsculas e minúsculas apenas quando necessário. A expressividade não fica limitada pela gramática do idioma de origem
  • Aprimoramento progressivo: cada tradução é gerenciada de forma independente e não afeta outros locais. É possível melhorar iterativamente as traduções sem impactar outros idiomas
  • Vários recursos: formatação de data, hora e números. Categorias de plural. Suporte bidirecional. Formatação personalizada. Sintaxe legível. Tradução e retradução em tempo de execução. Tratamento robusto de erros
  • Open source sob licença Apache. Implementações de servidor disponíveis em JS, Python e Rust, além de bindings para React

Por que o Fluent foi criado

  • A localização de software tem sido dominada por um paradigma ultrapassado de tradução como mapeamento um a um da cópia em inglês
  • A gramática do idioma de origem limita a expressividade da tradução
  • O Fluent foi criado para mudar esse paradigma
    • Tradutores devem poder usar todo o potencial expressivo do idioma sem precisar pedir permissão aos desenvolvedores
    • No Fluent, a tradução é assimétrica. Uma string simples em inglês pode ser mapeada para uma tradução complexa com múltiplas variantes em outro idioma
  • Com o Fluent, é possível atender à gramática e ao estilo de vários idiomas independentemente do idioma de origem
  • É independente
    • O fato de um idioma aproveitar os benefícios de uma lógica avançada não exige que outras localizações também a adotem
    • Cada localização controla individualmente o nível de complexidade das suas traduções

4 comentários

 
yangeok 2024-05-09

Nossa, é bem impressionante ver isso saindo do antigo paradigma de correspondência 1:1.

 
iolothebard 2024-05-03

Versão degradada do gettext exclusiva para JavaScript.

 
xguru 2024-05-03

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

Se você colocar nesses termos, está tratando este projeto de forma leve demais.

 
iolothebard 2024-05-13

A resposta foi tão sem capricho(?) que talvez dê para entender por que você viu dessa forma. Vou tentar escrever com mais cuidado.

A tabela comparativa, de qualquer forma, acaba sendo definida por quem é o objeto da comparação, então não tem muito significado,

O motivo de eu ter sentido que era uma versão inferior é... que me passou a impressão de não respeitar o know-how acumulado no gettext ao longo de muitos anos por muita gente.

Foi dito que o gettext só funciona com C, mas entre as linguagens principais, qual não oferece suporte a gettext?
Disseram que usaram parâmetros baseados em chave para levar em conta o problema da ordem das palavras, mas nem toda linguagem tem dicionário embutido como padrão; nessas linguagens, passa a ser necessário algum recurso adicional (por exemplo, em Java algo como Map). O gettext é baseado em posição, mas também leva em conta a mudança da ordem das palavras.

Enfim, escrevi um monte,
mas, na verdade... o motivo de eu não ter gostado desde o começo foi porque era {$...} e não ${...} ^^

Pessoalmente, gosto muito de "reinventar a roda", mas sair alardeando isso como se tivesse inventado uma roda que nunca existiu no mundo não me parece muito bom.