Este é um post de José Lopes.
Este post explica como criar para plugins do Wordpress o ficheiro linguístico base (.POT) e os ficheiros específicos para cada língua (.PO e .MO), por modo a internacionalizar os plugins.
O Wordpress explica no seu site como criar estes ficheiros mas eu acho a sua explicação um pouco confusa e espalhada por vários links, pelo que espero a concentrar neste post.
Partindo do princípio que escreveu o seu plugin e que pretende o internacionalizar, deve ter antes do mais:
if(function_exists('load_plugin_textdomain')) load_plugin_textdomain('NOME PLUGIN','wp-content/plugins/DIRECTORIA PLUGIN');
__("TEXTO A TRADUZIR","NOME PLUGIN")
Estes dois detalhes são cruciais para se poder gerar os ficheiros linguísticos e para que o Wordpress encontre automaticamente a versão correcta de acordo com as definições do utilizador.
Começamos então por gerar o ficheiro .POT, bastando escrever numa shell de um sistema Linux:
xgettext NOME PLUGIN.pot
Isto cria o ficheiro .POT que tem o aspecto:
# translation of hideshowcomments.po to # Jose Lopes <jose.lopes@paxjula.com>, 2007. msgid "" msgstr "" "Project-Id-Version: hideshowcomments\n" "POT-Creation-Date: 2007-09-18 10:42+0100\n" "PO-Revision-Date: 2007-09-18 02:33+0200\n" "Last-Translator: Jose Lopes <jose.lopes@paxjula.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: __;_e\n" "X-Generator: KBabel 1.10.2\n" #: hideshowcomments.php:42 msgid "Click here to see or add comments" msgstr ""
Como podem ver nas linhas finais, este ficheiro vai ter para cada linha do plugin onde definimos o texto a traduzir, neste exemplo para o plugin hideshowcomments, a versão em inglês em msgid (como default) e o espaço para a versão da nova língua em msgstr.
Para criar uma versão para uma língua deve-se partir deste ficheiro, editando-o por exemplo no KBabel,
e gravando-o com o nome:
NOME PLUGIN-CÓDIGO LÍNGUA_PAÍS.po
Deve-se utilizar os standards para definir língua_país (exemplo: pt_PT para português de Portugal e pt_BR para português do Brasil).
Para mais informação sobre os códigos língua_país ver os links:
Uma vez feita a tradução podemos criar o ficheiro .MO, bastando para isso escrever numa shell:
msgfmt -o NOME PLUGIN-CÓDIGO LÍNGUA_PAÍS.mo NOME PLUGIN-CÓDIGO LÍNGUA_PAÍS.po
Numa distribuição de Plugin devemos facultar os ficheiros .MO de cada língua juntamente com o ficheiro .POT, para permitir que alguém traduza para outra língua não disponibilizada.