Cursos Magento

Magento multi idioma: Os desafios por trás da internacionalização

,

Publicado em 07 de maio de 2019

Há algumas semanas lancei a versão internacional do Magenteiro.com, a fim de oferecer os cursos de Magento em um segundo idioma.

O Magento nos permite criar novas visões de loja com outros idiomas, e separar as configurações. E isso tudo de forma nativa, através dos níveis de escopo.

Ou seja, através do domínio dos escopos e configurações do Magento, é possível ter meios de pagamento, frete, taxas e impostos, design, e produtos diferentes em cada visão de uma mesma instância magento.

A tradução vai muito além de um arquivo CSV

Na prática, traduzir um e-commerce vai muito além de criar um novo arquivo CSV com o novo idioma.

No caso do Magenteiro e da maioria dos e-commerces, há muitos outros sistemas envolvidos. No caso do Magenteiro, veja algumas das coisas que tive que me preocupar:

  • Tradução de peças de e-mails em sistemas externos
  • Tradução de e-mails transacionais
  • Tradução de materiais enviados aos alunos (apostilas)
  • Tradução de certificado de conclusão
  • Criação de atributos de produto para mostrar quais cursos estão ou não disponíveis em outros idiomas
  • Criação de novas páginas e blocos CMS no outro idioma
  • Tradução das configurações do tema na outra visão
  • Mudança nas integrações com sistema de e-mail marketing para setar a preferência de recebimento de e-mails no outro idioma, evitando disparar e-mail marketing em portugues
  • Traduzir status dos pedidos
  • Buscar partes não traduzidas por todos os sistemas (que eventualmente não estarão no CSV)
  • Alterar regras de impostos para outros países
  • Criar regras de redirecionamento manual para produtos e páginas
  • Configuração e customização de meios de pagamento regionais (de acordo com o país)

Apesar de específicos, você pode usar a lista acima como uma checklist para seu projeto de internacionalização.

Multi moeda no Magento 1

Além de toda a tradução, o objetivo do projeto envolveu a criação de um site multi moeda.

O Magento possuí o recurso padrão de aceitar multi moedas, inclusive com atualização da cotação de forma automática via webservice.

No caso do Magenteiro, meu objetivo foi fazer com que esta exibição ocorresse de forma automática, baseada na localização do usuário e não permitisse ser alterada manualmente como ocorre por padrão.

Para isso, foi necessário:

  • Utilizar um módulo de AutoCurrency do Chapagain que seleciona automaticamente a moeda baseado na localização via IP
  • Customizar o módulo Mage_Directory para desabilitar a seleção de moedas via dropdown (e via controller)

O módulo do Chapagain necessitou de algumas alterações e melhorias a fim de suportar a nova versão do GeoIp v2, mas o resultado valeu a pena.

Sem validação de CPF = Loja aberta aos Robots Russos

Antes da internacionalização o Magenteiro exigia e validava os CPFs e CNPJs de novos alunos e clientes. Esta é uma exigência dos meios de pagamento nacionais.

Com a validação de CPF/CNPJ nossa loja fica menos vulnerável aos ataques dos famosos robôs russos que criam milhares de pedidos e/ou clientes em poucas horas em nossa loja.

No entanto, ao internacionalizar a loja, e ciente do problema que a remoção desta validação poderia causar, tive que implementar um recurso de captcha.

A escolha foi pelo novo Invisible Captcha v2 do Google, por ser pouco intrusivo. E o melhor de tudo, já tinha um módulo para isso de um vizinho aqui da Austrália mesmo.

Para o captcha, utilizei o ProxiBlue_ReCaptcha. Este módulo substituí o captcha padrão do Magento pelo captcha do Google, podendo ser no modo invisível ou no modo “eu não sou um robô”.

O suporte e correção de bugs que encontrei no módulo se deram de forma muito rápida pelo desenvolvedor. O resultado também foi excelente e super discreto.

Invisible Captcha no Magento

O desafio de imagem só é exibido em casos suspeitos

A opção pela não utilização do captcha nativo do Magento é que o mesmo já vem sendo decifrado pelos robôs russos. Além disso, não quero contar apenas com o firewall da hospedagem para lidar com eles. Acho que você deve fazer o mesmo. 😉

O SEO esquecido

Posicionamento nos mecanismos de busca (lê-se Google) é uma preocupação constante de qualquer site, principalmente e-commerces.

Durante o desenvolvimento e mesmo homologação, cometi o erro de negligenciar e adiar tal questão. Pensei que apenas algumas tags extras (como hreflang) apontando o caminho da versão alternativa seriam suficientes e poderiam ser implementadas na semana seguinte.

Errado! O google recomenda – entre outras coisas – que usemos URL’s diferentes para versões/idiomas diferentes de nossas páginas.

Até o momento do lançamento, quase todas as páginas e URL’s possuíam o mesmo URL. O idioma também era detectado automaticamente por outra customização minha.

Isso trouxe uma série de problemas, entre eles o mais básico de todos: eu não conseguia compartilhar o link de um curso garantindo a linguagem que seria exibida.

Além do problema de SEO: os robôs do Google não informam o header “Accept-Language”, usado para “descobrir” qual idioma preferido pelo visitante.

“Se você preferir alterar dinamicamente o conteúdo ou redirecionar o usuário com base nas configurações de idioma, saiba que o Google poderá não encontrar e rastrear todas as suas variações. Isso ocorre porque o rastreador do Googlebot geralmente tem origem nos EUA. Além disso, o rastreador envia solicitações HTTP sem definir Accept-Language no cabeçalho da solicitação.” – Google

Fica a dica: Leia o manual antes de usar. 🙂

Solução

Praticamente no mesmo dia após lançar o site, tive que correr para corrigir o problema.

Criei um subdomínio (en.magenteiro.com) que sempre exibirá a visão em Inglês por padrão. Com isso, também tive que adquirir e configurar certificados de segurança (https) para o subdomínio em questão. Além é claro, de garantir que as configurações e todo o resto estavam em seu devido lugar.

O Magento também permite a geração de sitemaps específicos por visão de loja. Neste caso, um sitemap somente para o Inglês foi gerado.

Redirects

Certamente alguns produtos e páginas não terão as mesmas URL’s em outros idiomas. E o Magento não tem como adivinhar quais são essas URLs.

No entanto, você pode(deve!) criar regras de reescrita manuais para estes cenários.

Dica: você pode ter problemas com a reescrita de URLs manuais no seu Magento em Português (dependendo do pacote de tradução), devido a um problema na tradução que fará você confundir a ordem dos campos durante a criação da regra de redirecionamento no seu admin. Tivemos um momento “a-ha!” no nosso grupo privado aqui do Magenteiro com esta descoberta.

Redirecionando o cliente para Visão correta

Outro desafio de um e-commerce ou site multi idioma é carregar a visão correta automaticamente.

Como vimos acima, isso é geralmente feito através da leitura do header Accept-Language, enviado pelos navegadores. Este parâmetro reflete a configuração do navegador e preferência do usuário.

Preferências de idioma no Firefox

Este valor fica disponível na variável $_SERVER['HTTP_ACCEPT_LANGUAGE']. A solução no meu caso, foi selecionar a visão de loja baseado no URL da loja e também nos idiomas aceitos, tendo o português como padrão.

Fiz isso através de um include diretamente no index.php do Magento, a fim de definir a variável $mageRunCode, que corresponde ao código da visão de loja que será exibido. Acredito que esta seja uma das poucas situações onde sobrescrever um arquivo do core do Magento é aceitável e considerado uma prática comum.

Conclusão

Como podemos ver, a “tradução” de um e-commerce vai muito além de arquivos CSV com textos a serem traduzidos. No caso do Magenteiro, envolveram pelo menos 20 itens documentados e esperados, fora aqueles que foram corrigidos ou implementados nos últimos minutos.

No caso do Magenteiro este será um trabalho constante e muito ainda precisa ser melhorado, inclusive nas próprias traduções. Além de oferecer cursos de Magento em Inglês, o objetivo deste projeto foi também facilitar a inscrição de alunos que buscam cursos Magento e que residem em outros países que também falam Português mas não possuem documentos nem cartões de crédito nacional. E isso já era uma demanda frequente de alunos e empresas de Portugal por exemplo.

Se tudo correr como planejado, quando este artigo for publicado, uma aula bônus já deve ter sido disponibilizada aos alunos do curso de criação de módulos para Magento 1 com mais detalhes, códigos e exemplos das customizações realizadas aqui.

Imagem principal por 200 Degrees no Pixabay

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-1/magento-internacionalizacao-traducao/"]