Gettext no Wordpress do zero

Wordpress utiliza as funções __ e _e para tradução.

Este tutorial rápido explica como criar um novo arquivo POT para pt_BR.

cd /WORDPRESS_DIR/wp-content/themes/THE_THEME/
mkdir languages
touch languages/pt_BR.po
find . -iname "*.php" | xargs xgettext -j -o languages/pt_BR.po -k__ -k_e

Onde

  • -j OR --join-existing => Junta a mensagem com um arquivo existente.
  • -k[keywordspec] OR --keyword[=keywordspec] => Especifica keywordspec como keyword adicional para ser procurada.
  • -ofile--output=file => Escreve a saída em arquivo específicado.

Altere as seguintes linhas de acordo:

"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-25 22:37-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Rafael Goulart <rafaelgou@gmail.com>\n"
"Language-Team: RGOU <rafaelgou@rgou.net>\n"
"Language: Brazilian Porguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

Não esqueça de alterar o charset para UTF-8.

Agora traduza o arquivo POT criado e enfim gere o arquivo MO:

msgfmt languages/pt_BR.po -o languages/pt_BR.mo

Você pode adicionar mais traduções rodando o comando xgettext novamente para adicionar novas entrdas, traduzindo e regereando o arquivo MO:

find . -iname "*.php" | xargs xgettext -j -o languages/pt_BR.po -k__ -k_e

... faça suas novas traduções e:

msgfmt languages/pt_BR.po -o languages/pt_BR.mo