Ticket #367 (new melhoria)
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:2 in reply to: ↑ 1 Changed 15 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 15 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 15 years ago by niltonneto
- Component changed from ExpressoMail to API
- Milestone Expresso 1.2 deleted
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.