Internacionalizar um plugin (torná-lo disponível em várias línguas através de arquivos de tradução) é a melhor forma de ampliar a comunidade de possíveis desenvolvedores contribuindo para sua evolução. O mais interessante é que o o wordpress permite a internacionalização de forma bastante prática, tanto para plugins quanto para temas.
Em primeiro lugar você deve ter uma versão do programa que permite traduzir o plugin, o poEdit. Isto porque, existe a facilidade de tradução está nos mágicos arquivos de extensão .po
Os arquivos .po permitem que qualquer um traduza o seu plugin desde que conheça a linguagem original (daí, sugiro que se possível, a linguagem original deve ser inglês e o português se uma das traduções). Este arquivo permite que você não precise fazer mudanças no código para traduzir nem que as mudanças no código impactem em traduções já feitas.
O Wordpress faz uso do GNU gettext para as traduções. Na prática existem duas funções que podem ser usada pelos autores de plugins: __(mensagem, domínio) and _e(mensagem, domínio) e todas as saídas de texto devem usar uma destas duas funções.
O primeiro argumento mensagem é obrigatório e um dominio é opcional. Para quem criar plugins no entanto, este segundo não é opcional pois deve indicar um nome único para seu plugin, podem ser as iniciais de seu plugin e/ou de sua URL. Uma vez que você tenha colocado todas saídas de textos no formato adequado para internacionalização, é preciso configurar no plugin uma indicação de que ele deve ler um arquivo .mo, que é a versão compilada do .po (o poEdit gera automaticamente ao salvar).
load_plugin_textdomain(’superpluginpauloduarte’, “/wp-content/plugins/superplugin/”);
Onde “superpluginpauloduarte” será o mesmo domínio que você usou em suas chamadas _e e __ dentro do plugin. O “/wp-content/plugins/superplugin/” deve ser substituído pelo caminho, que é relativo ao ABSPATH do seu wp-config.php (normalmente a raiz ou um diretório /blog). Se seu plugin não usar uma pasta, deixe o valor em branco. Atenção: todos arquivos .mo devem ter como o nome o mesmo domínio, no exemplo, superpluginpauloduarte-pt_BR.mo (no caso do Brasil).
Ok. Agora que já está definido como implementar para permitir internacionalização, vamos examinar rapidamente como criar o arquivo de tradução.
Vá em File => New catalog…
Aparecerá uma tela de configuração (”Settings”) preencha as informações do projeto e coloque o chaset para UTF-8 (que é normalmente usado pelo Wordpress). Indique a linguagem e o país. Na aba “Paths” coloque “.” (considerando que os arquivos de tradução vão ficar na pasta do seu plugin)
Defina as Keywords como sendo _e e __ , para que o poEdit as localize, basta clicar no botão “New Item“.
Confirme e salve o arquivo .po na pasta de seu plugin. Depois que você salvar o arquivo .po, uma janela irá mostrar as frases encontradas. Se sua intenção é apenas disponibilizar o arquivo para que outras pessoas traduzam para suas línguas, você pode salvá-lo como está e distribuir junto com seu plugin. Se não, basta navegar pelo texto e traduzir, adicionando o texto na nova linguagem na caixa inferior.
Importante: para salvar o arquivo ele deve usar sempre o nome do domínio que você definiu adicionado da localização daquela tradução. Por exemplo: superpluginpauloduarte-pt_BR.
Ao salvar o arquivo já serão gerados os arquivos .po e .mo.
Observação: internacionalização utiliza o WPLANG definido em wp-config.php, esse tutorial serve para aqueles que querem traduzir plugins que já existem para o português desde que tenham traduzido seu wordpress desta forma (algumas pessoas, por desconhecerem isto, traduzem parte do tema, datas, etc alterando o código do wordpress, principalmente o arquivo locale que contém as datas, isto é desnecessário e provavelmente vai ser sobrescrito numa futura atualização).
Baixe o poEdit, ou na UFPR ou no SourceForge
PS. Essas informações foram usadas para um plugin que fiz mas que percebi já existir uma implementação mais madura disponível no repositório. Mas pretendo usar no próximo plugin que implementar, se fizer sentido ser internacionalizado.
Leia também:
Using poEdit to translate a plugin or theme
Creating POT Files
Localizing Plugins and Themes





por Leonardo, em agosto 8 2008 as 17:33
Fala Paulo, tudo tranquilo?
Tenho uma dúvida, como faço para aplicar essa tradução no plugin? Por exemplo, o plugin Role Manager veio com a lingua nativa (inglês), mas existe uma pasta ‘languages’ que possui os arquivos .mo e .po em português, com os nomes: ‘role-manager-pt_PT.mo’ e ‘role-manager-pt_PT.po’. Como faço para aplicá-los ao plugin, deixando-o em português?
Abraços. e desde já agradeço.
por Paulo Duarte, em agosto 8 2008 as 19:05
@Leonardo:
A tradução deve ficar na pasta do plugin. Se o seu wplang estiver com “pt_BR” você pode alterar o nome do arquivo.
por Fernando Lopes, em setembro 5 2008 as 17:17
Paulo, gostei muito de sua explicação. Já uso o poEdit para traduzir plugins para o português. Se possível gostaria que você fizesse um tutorial mais aprofundado sobre como implementar tais traduções em plugins que não foram feitos para usar os arquivos .mo. Citanto exemplos.
Muito obrigado.
por Paulo Duarte, em setembro 5 2008 as 17:22
Fernado,
Pretendo fazer isto sim. Em breve.
Obrigado pela sugestão.