O jCom oferece múltiplas ferramentas de internacionalização, que são utilizadas de forma complementar para tornar sua loja virtual acessível em outros idiomas.
A língua padrão da loja é configurada no arquivo /conf/jcom.xml, na propriedade "locale". Esta propriedade geralmente contém "pt_BR" para o idioma Português-brasileiro.
Arquivo de mensagens
Um arquivo de mensagens contém palavras e frases curtas em um idioma; são definidos arquivos diferentes para cada idioma, dentro do diretório /conf. Estes arquivos possuem estrutura simples, com um identificador e um conjunto de palavras em cada linha. Linhas iniciadas por # são ignoradas e podem ser usadas para organizar o arquivo.
Veja o exemplo:
# Este é o arquivo /conf/pt_BR.txt name=Nome pass=Senha msgTeste=Esta é uma mensagem de teste error.badPassword=Senha ou e-mail incorretos. Por favor tente novamente.
Por iniciar com #, a primeira linha será ignorada pelo jCom.
A segunda linha contém a frase "name", a segunda a frase "pass" e assim por diante. A última linha contém a mensagem de erro que é apresentada ao usuário caso preencha incorretamente o formulário de login da loja virtual.
As frases definidas no arquivo podem ser facilmente acessadas através da variável $msg, em qualquer página ou template:
$msg.name (resulta em "Nome") $msg.msgTeste (resulta em "Esta é uma mensagem de teste")
Páginas alternativas
Arquivos de mensagens são ideais para a tradução de mensagens curtas e elementos isolados. Contudo, dividir páginas inteiras e textos extensos em frases diferentes é impraticável. Para páginas com muito conteúdo textual, o jCom permite a definição de páginas e templates alternativos para cada idioma.
Ao receber a requisição de uma página, o jCom verifica a existência de uma página específica para o idioma selecionado pelo cliente. Assim, se requisitamos a página "index.htm", o jCom irá primeiro tentar utilizar o arquivo "index_pt_BR.htm" ou "index_en_US.htm", dependendo do idioma escolhido. Caso não encontre, será utilizado o arquivo normal.
O mesmo procedimento é realizado para templates: o jCom tentará utilizar primeiro o template "default_pt_BR.htm" e em seguida o template "default.htm".
Imagens
Além de textos, algumas imagens podem conter palavras ou frases que precisam ser traduzidas. A melhor forma de oferecer imagens sensíveis ao idioma selecionado é separá-las em diretórios, um para cada idioma. Por exemplo, podemos ter dois botões com o texto "comprar": uma no diretório /images/pt_BR/ e outra no diretório /images/en_US/.
A tag <img> pode então ser alterada para tirar proveito da variável $language definida pelo jCom, desta forma:
<img src="/images/$language/comprar.gif" border="0"/>
Permitindo a troca do idioma
Para completar a internacionalização da loja virtual, precisamos permitir a troca do idioma pelo cliente. O serviço languageService nos permite realizar esta troca de forma fácil, através do comando setLanguage. Este comando pode ser chamado em um formulário ou através de um link, conforme o exemplo a seguir:
<a href='?action=languageService.setLanguage&language=en_US'>English</a> <a href='?action=languageService.setLanguage&language=pt_BR'>Português</a>
Quando requisitado, o serviço armazena o novo idioma e recarrega a página atual, utilizando o novo idioma.

