Ticket #367 (new melhoria)

Opened 12 years ago

Last modified 10 years ago

Padronizar mensagens de internacionalização

Reported by: wmerlotto Owned by: alguem
Priority: média Milestone: Backlog do Produto
Component: API Version:
Severity: média Keywords: internacionalizacao padrao
Cc: niltonneto WorkGroup:

Description

Fizemos todo um esforço para internacionalizar o Expresso, mas não foi definido um padrão para escrita das mensagens. Por exemplo:

-$errors[] = lang('Failed to change password.  Please contact your administrator.');
+$errors[] = lang('Failed to change password') . ". " . lang('Please contact your administrator') . '.';

Qual seria o melhor modelo para colocar as mensagens no código e arquivos de tradução? Completa, incluindo pontuação ou quebrada em várias mensagens/partes?

Change History

comment:1 follow-up: ↓ 2 Changed 12 years ago by rodsouza

Das inúmeras formas de criar aplicações que possuam mais de um idioma, na minha opinião, a que está sendo utilizada no ExpressoLivre? é uma das mais sensatas.

Todavia a alteração apresentada acima não é uma boa idéia, devido ao fato que a pontuação não é exatamente a mesma em todas os idiomas.

No caso acima onde o sinal gráfico é um "." (ponto final) este fato não pode ser facilmente observado. Entretando levando em consideração uma indagação, na maioria dos idiomas é necessário apenas uma "?" (interrogação) ao fim da oração porém quando o idioma em questão é algum derivado do Espanhol se faz necessário a "?" (interrogação, mas dessa vez a invertida) no início da oração.

Mesmo considerando o reuso das orações em diversos locais da aplicação, a repetição da oração na base de tradução não pode ser caracterizado como excessivo pois o conteúdo em questão não é "Os Lusíadas de Luís de Camões".

Caso a questão de processamento de máquina ou consumo de banda seja abordada, ai o tópico não seria a forma de como fazer a tradução e sim de como utilizar o melhorar a performace.

comment:2 in reply to: ↑ 1 Changed 12 years ago by wmerlotto

Replying to rodsouza:

Das inúmeras formas de criar aplicações que possuam mais de um idioma, na minha opinião, a que está sendo utilizada no ExpressoLivre? é uma das mais sensatas.

Bacana! Mas você poderia destacar esse diferencial? O que há de tão diferente na internacionalização do Expresso para torná-la tão boa?

Todavia a alteração apresentada acima não é uma boa idéia, devido ao fato que a pontuação não é exatamente a mesma em todas os idiomas. No caso acima onde o sinal gráfico é um "." (ponto final) este fato não pode ser facilmente observado. Entretando levando em consideração uma indagação, na maioria dos idiomas é necessário apenas uma "?" (interrogação) ao fim da oração porém quando o idioma em questão é algum derivado do Espanhol se faz necessário a "?" (interrogação, mas dessa vez a invertida) no início da oração.

Realmente... A pontuação é um problema. Mas ainda há outro, os valores dinâmicos que em alguma situações tem sua ordem alterada. Um exemplo é a data no momento da resposta de e-mail:

Em 05/11/2008 às 08:21 horas, "ExpressoLivre" ...
At 11/09/2008, 17:15 hours, "ExpressoLivre" ...
En 11/09/2008 las 17:15 horas, "ExpressoLivre" ...

Essas informações não podem estar quebradas no código, devem estar em uma única frase.

Mesmo considerando o reuso das orações em diversos locais da aplicação, a repetição da oração na base de tradução não pode ser caracterizado como excessivo pois o conteúdo em questão não é "Os Lusíadas de Luís de Camões".

Sim, são poucas frases...

Caso a questão de processamento de máquina ou consumo de banda seja abordada, ai o tópico não seria a forma de como fazer a tradução e sim de como utilizar o melhorar a performace.

Creio que o problema não é e nem será performance... É mais uma questão para facilitar o desenvolvimento e até a tradução, já que mais e mais pessoas estão participando do projeto.

comment:3 Changed 12 years ago by rodsouza

Como citei a forma que a tradução do ExpressoLivre? é feita é uma das melhores, não significa exatamente que seja muito boa. Assim sendo não é um diferencial e sim que o meio em questão está muito perto ter excelência.

Diferentemente de muitas aplicações a tradução pode ser realizada tanto em tempo de execução como em tempo de renderização, e essa é uma característica extremamente importante, não que seja assim hoje. Porém se existir pretensão de criar realmente portabilidade o fato acima é extremamente relevante.

Portabilidade não significa usar um browser e sim a capacidade de renderização nos mais diversos dispositivos.

Na minha opinião deveria ser utilizado apenas referências as frases dentro do código fonte e não a literal como é feita hoje. Entenda-se referência por índice. Todavia a falta de documentação do ExpressoLivre? não permite que esse princípio seja aplicado.

Mesmo não sendo muitas frases, se for mensurado o número delas que são utilizadas em cada renderização, será obtido um resultado de uso desnecessário ou de processamento ou de banda.

Levando em consideração o excesso citado acima a performance é diretamente afetada.

Facilidade não é realizar decisões sumárias e sim prover documentação e padrões para que os codificadores tenha subsídios para desenvolverem um bom trabalho. A falta de documentação e padronização gera código que não expressam realmente abstrações (classes) e sim um pacote de funções desestruturadas.

Voltado a tradução, concordo que mudança são necessárias, todavia discordo do meio que está sendo proposto. Minha opinião, realizar uma mudança em um procedimento que já possui uma funcionalidade perto da desejada seria gerar um trabalho extraordinário que demandaria de tempo, o qual é vital a outras atividades relevantes e de extrema importância.

comment:4 Changed 11 years ago by niltonneto

  • Component changed from ExpressoMail to API
  • Milestone Expresso 1.2 deleted

comment:5 Changed 11 years ago by wmerlotto

  • Keywords padrao added
  • Priority changed from pequena to media
  • Version set to Trunk (trunk)
  • Milestone set to Expresso 2.1

comment:6 Changed 11 years ago by wmerlotto

  • Milestone changed from Expresso 2.1 to Expresso 2.2

comment:7 Changed 10 years ago by niltonneto

  • Milestone changed from Expresso 2.2 to Expresso 3.0

comment:8 Changed 10 years ago by niltonneto

  • Version trunk deleted
  • Severity set to média
Note: See TracTickets for help on using tickets.