Tradução 100% do Magento – Que Mentira!

Escrito por Mario SAM

Por que é tão difícil encontrar uma tradução do Magento CE português brasil completa e de qualidade? Essa é a dúvida que acompanha todos que estão começando com Magento e você provavelmente já se fez essa pergunta.

Pois eu vou mostrar pra você por que nunca teremos uma tradução 100% completa, e quais as dificuldades ocultas para traduzir o sistema.

Mas eu já vi…

Você pode ter visto (assim como eu vi) em outros sites, algumas traduções extra-oficiais falando que são 100% traduzidas. Até mesmo no Magento Connect você encontra tal falácia.

Pois eu afirmo que é mentira! Não é possível traduzir o sistema por completo.

O máximo que podemos fazer, é traduzir 100% dos arquivos CSV.

Tecnicamente falando

Vou explicar resumidamente e rapidamente como funciona o sistema de tradução do Magento CE.

Existem os arquivos CSV (comma-separated values) com milhares de linhas. Cada linha possui um par de valores. A esquerda o valor que chamamos de chave, e a direita o valor que corresponde a sua tradução.

"best value","melhor preço"

Na hora de escrever as páginas do sistema Magento (e seus templates), os desenvolvedores devem obrigatoriamente utilizar as chaves destes arquivos.

$this->__('best value') ou Mage::helper('adminhtml')->__('best value')

E aqui começamos a enfrentar o primeiro grande problema.

Errar é humano

Quando você tem meia dúzia de palavras simples para se preocupar, tudo bem! Mas e quando você tem centenas de palavras e frases, e algumas são uma mistura de links com caracteres sem sentido?

Somasse a isso outros fatores de desenvolvimento, como testes, prazos de entrega, horários de trabalho, fome, conversas paralelas, etc, etc, etc. Temos os erros de digitação e vício de imagem (quando você olha mas não enxerga).

Então o programador ao criar a tela digita a chave:

$this->__('best price')

Mas ao criar a chave no arquivo csv, ele digita:

$this->__('best value')

ou ainda,

$this->__('Best price')

ou…

$this->__('best price.')

Para o Magento, são todas chaves distintas. É tudo diferente. Então você pode traduzir chaves que nunca serão usadas. E nunca vai encontrar algumas chaves nos arquivos csv.

Eu não sabia

Tem muita gente tentando ganhar dinheiro com Magento. Principalmente na parte visual, os chamados templates e temas.

Acontece que esses webdesigner’s não entendem a estrutura de templates do Magento, então acabam criando verdadeiros pesadelos em forma de código.

Obviamente eles também não conhecem os padrões de desenvolvimento, então acabam não usando nenhuma chave de tradução em seus arquivos. Ou seja, toda palavra e frase esta inserida diretamente no código.

Dica: Se encontrar um template assim fique alerta, está fora de qualquer padrão do sistema.

Se você pretende criar um template/tema e quer utilizar alguma palavra/frase que não existe nas mais de 6 mil chaves do sistema. Então você deve criar um translate.csv dentro do seu diretório template, contendo as chaves particulares do seu tema. Agora você sabe!

Uma imagem fala mais que…

O Magento foi pensado para o mercado americano. E nas primeiras versões, muitas frases e palavras estavam em imagens (jpg/png/gif). Como por exemplo o botão [Checkout].

Se você quizesse traduzir o botão para [Finalizar Pedido], era preciso abrir o photoshop e editar a imagem para sobrepor a frase.

A partir da versão 1.4.x Community Edition o Magento fez uma melhoria enorme nessa questão das imagens, mas… os banners de propaganda do template default continuam lá (em inglês).

Outros scripts

Já que citamos o exemplo das imagens, outro problema similar ocorreu com os scripts de validação e manipulação de tela. Os famosos javascript’s.

Antes da versão 1.4.x Community Edition, em muitas etapas do sistema você recebia uma mensagem em inglês que não podia ser traduzida por arquivos csv, pois os comandos em javascript não estavam preparados para ler as chaves. Isso ocorria por exemplo nos calendários e validação de formulários.

O sistema foi reestruturado, e atualmente todos os scripts conseguem ler as informações de tradução. Mas nunca se sabe, talvez um script externo, de algum outro módulo esteja fora dos padrões.

Pra completar, ainda existem scripts usando arquivos Flash, como por exemplo as rotinas de upload de arquivos que não capturam as chaves traduzidas nos arquivos csv.

Arquivos esquecidos?

Fora das páginas de templates e temas do Magento CE, temos o diretório: errors/default.

Esse diretório possui alguns arquivos como: 503.phtml, 404.phtml, etc.

Estes arquivos não possuem chaves de tradução. Então teoricamente você teria que editar arquivo por arquivo caso queira traduzir coisas como:

404 error: Page not found.
The server is temporarily unable to service your request
There has been an error processing your request

Você provavelmente já viu essas frases se tentou criar um backup do sistema ou se instalou algum módulo incompatível.

Configuração da PQP

Essa eu confesso que foi difícil de descobrir. Primeiro porque o problema não aconteceu comigo. Segundo porque acontecia com brasileiros que vivem no Japão!

Existe um arquivo de configuração no Magento CE para cada possível idioma, com as informações regionalizadas por país, como moeda, formatação de números, territórios, horários, etc. No diretório lib/Zend/Locale/Data você encontra centenas de arquivos de idioma.xml.

Para o português por exemplo, temos três arquivos. O pt.xml, o pt_BR.xml, e o pt_PT.xml. Sendo que o pt_BR e pt_PT são extensões do pt.xml. Tá, e dae!?

Agora digamos que você esteja no japão, e sua loja possui opção de idioma em português. A moeda do japão é o Iene (yen), e é representada pelo símbolo ¥. Mas no arquivo root.xml está configurado como JP¥.

Está ficando confuso né!? Por que diabos eu citei root.xml??? 

Porque o pt.xml, pt_PT.xml, e pt_BR.xml não sobreescrevem a configuração de moeda do japão, nesse caso utilizam a configuração padronizada em root.xml. Apenas o arquivo jp.xml (do japão) sobreescreve a configuração de moeda do japão.

Então quando você visualizava o site em japonês, o formato da moeda aparecia corretamente, e quando você mudava o idioma, o formato mudava para JP¥.

Mais tarde, com calma, dê uma olhada no arquivo root.xml para ver o tanto de informação que não é traduzida em arquivos csv.

Outras configurações XML

Além de armazenarem informações de configuração do sistema, os arquivos XML’s no Magento possuem papel fundamental na construção de templates.

Dentro destes arquivos, é possível construir diversos elementos da página, desde a chamada de outros blocos, até mesmo inserir links, imagens, e textos. Ou seja… textos que não são traduzidos pelos arquivos csv’s.

Veja por exemplo o arquivo catalog.xml, onde ele cria uma imagem e adiciona como mensagem de texto alternativo o seguinte:

Keep your eyes open for our special Back to School items and save A LOT!

Evite adicionar textos dentro dos arquivos xml’s.

Ainda tem o banco de dados

E pra encerrar, temos diversas palavras e textos armazenados no banco de dados. O que significa que seu conteúdo é dinâmico, então não é possível mapear tradução nos arquivos csv.

Basicamente são páginas dentro do sistema CMS do Magento. E os atributos dos produtos.

Então suponha que você tem dentro do seu csv a chave/tradução:

"price","preço"

E o sistema mostra na tela “price“. Provavelmente porque esse “price” é o nome do atributo sendo exibido na tela. Então nesses casos, você precisa acessar o backend do Magento e alterar atributo por atributo.

Então qual tradução é a melhor?

Com certeza é a tradução by Mario SAM disponibilizada e atualizada constantemente aqui no blog. Corra como o diabo da cruz quando alguém vier com tradução 100% pra cima de você.

A tradução by Mario SAM, além de revisada e atualizada, é totalmente interpretada, e ainda possui um script SQL para traduzir diversas palavras/frases do banco de dados. O que garante uma qualidade muito superior as traduções automatizadas por robôs, que são literais e confusas. Evite ao máximo traduções automáticas (mesmo as do google translator).

Tem muito site de empresa e blogueiro por aí copiando a tradução by Mario SAM, fazendo duas ou três alterações e distribuindo como se fosse deles, sem dar os devidos créditos. Então se você encontrar um caso destes, desconfie e pense duas vezes antes de fechar qualquer negócio com esta empresa ou freelancer.

Quer ajudar? Mostre a todos os seus amigos e comunidade Magento a melhor e mais completa tradução para Magento CE Português Brasil.

Sucesso!

O Autor

Mario SAM

Desenvolvedor Magento com certificação M1 Developer e M1 FrontEnd Developer. Graduado em Web Design e Programação, pós-graduado em Gestão de Projetos e TI. Não sou matemático mas estou aqui para somar.