Objota O mundo orientado a objetos

Como criar plugins para wordpress – Parte 3 – Internacionalização

Posted on janeiro 28, 2011

Vamos abordar neste artigo como internacionalizar o seu plugin. Apesar de parecer complicado e demorado, hoje existem ferramentas para automatizar este processo. O WordPress é capaz de interpretar arquivos .mo e mostrar o idioma de acordo com a localização informada pelo browser do usuário.

Sendo um plugin feito no idioma inglês, ele terá tradução para, por exemplo, português (Brasil) e vários outros. Mas esta tradução é você quem faz. Então vamos logo a um exemplo prático.

Funções __() e _e()

__() – Esta função retorna a tradução disponível para o idioma capturado. Recebe dois parâmetros. O primeiro é a string (frase) escrita em seu idioma de origem. O segundo é o nome de domínio de texto. Veja adiante com detalhes.

_e() – Esta tem as mesmas características da anterior, porém ao invés de retornar a string ela ecoa na tela ( com echo ).

Este nome de domínio de texto deve ser único, e sempre deve ser fornecido a estas duas funções, pois ele será utilizado como prefixo dos arquivos  “.mo e “.po” de tradução. Por tanto..

Optei por fazer algumas mudanças no plugin do artigo anterior para que possamos utilizá-lo neste artigo. Faça download aqui.

Veja que já incluí as funções __() e _e(). E o nome de domínio é “meu-wp”.

Estando o plugin em inglês e vamos traduzi-lo para português (final pt_BR), o nome dos arquivos .mo e .po seriam respectivamente: meu-wp-pt_BR.po e meu-wp-pt_BR.mo.

Mas como criar estes arquivos?

Através de um software free chamado PoEdit.
Instale-o: PoEdit download

Um arquivo .po é um catálogo de tradução, ao criá-lo o PoEdit cria automaticamente o arquivo .mo , que é o arquivo interpretado pelo wordpress. Ele é bem fácil e intuitivo de usar.

Tendo instalado o PoEdit, mão na massa!

1.       Arquivo > Novo Catálogo

2.       No diálogo que aparece, na primeira aba, Insira nome do projeto e versão; Time de tradutores; E email de contato. (não é necessário preencher mais nenhum campo).

3.       Agora na segunda Aba (caminhos). No campo caminho base, se estiver com um “.” ponto não altere em nada. Abaixo clique no botão (Novo ítem) e informe o caminho onde se encontra os scripts de seu plugin. No meu caso ficou assim: C:\xampp\htdocs\blog\wp-content\plugins\meu-wp.

4.       Agora na aba (Palavras chave). Estão os nomes das funções de que capturam os textos a serem traduzidos. Clique em (novo item) e adicione o nome ­__ e em seguida o nome _e. São justamente o nome das funções que foram implementadas para tradução.

Explicando

O que este software faz não tem segredo, mas ajuda muito na tradução de plugins. Ele faz uso de expressão regular para encontrar as strings a serem traduzidas. Se der uma fuçada vai ver que existe uma variedade de linguagens que ele dá suporte. Basicamente o que ele faz é abrir recursivamente todos os arquivos do diretório que informamos. Neste caso os scripts php.

Depois disso confirme e salve o arquivo dentro da pasta lang, dentro do diretório do plugin. Dê o nome meu-wp-pt_BR, ele será salvo como .po e será criado o .mo simultaneamente.

Se ele ao não encontrou nenhuma string a traduzir você pode forçar outra busca clicando no botão atualizar na barra de ferramentas. Ele irá listar todas as frase e palavras encontradas para tradução. Ao clicar em uma linha a frase aparece num campo abaixo, logo abaixo da frase está um input onde você irá inserir a respectiva tradução para aquela sentença. Agora vem o trabalho de tradução. Ainda não acabou...

Carregando os arquivos de tradução

O WordPress interpreta, porém não carrega automaticamente, você deve informá-lo a respeito dos arquivos, com a função:

load_plugin_textdomain('meu-wp', false, 'meu-wp/lang');

Passando por parâmetro, respectivamente: o nome de domínio, false, e o caminho relativo ao diretório onde se encontram as traduções em formato .mo .

Você deve chamar esta função com um gancho init. Ex:

function iniciar(){
  load_plugin_textdomain('meu-wp', false, 'meu-wp/lang');
}
add_action('init', 'iniciar');

Antes de testar

O plugin foi feito em inglês, mas ele só irá traduzir os plugin se em seu cms estiver configurado como pt_BR , verifique em seu wp-config.php se está configurado desta forma. Estando tudo ok, é só testar.

Se tudo deu certo seu plugin foi traduzido com sucesso. O mesmo se aplica para tradução de temas, mas a função é diferente. Porém com essa base já dá pra andar com as próprias pernas.

É isso! próximo artigo será: o 4º da séria - como publicar seu plugin.


Posted by Rodrigo Ireno

Comentários (1) Trackbacks (0)
  1. Excelente tutorial!!! Consegui criar uma tradução para um plugin aq q eu estava precisando graças a ele. Muito obrigado por sua disponibilidade e iniciativa!!!


Leave a comment

Sem trackbacks