Uma das funcionalidades não inerentes
ao WordPress é o suporte multi-idiomas (ou multilíngua). Existem alguns plugins capazes
de efetuar essas traduções, mas a grande maioria trabalha com
traduções automáticas, fazendo com que os seus textos pareçam mais
um idioma extraterrestre do que propriamente uma língua fluente mundial. É importante,
portanto, tentar traduzir o seu template WordPress em multi-idioma, de
uma forma eficiente e funcional. Os colegas do CatsWhoCode realizaram uma seleção de informação interessante sobre o assunto, e o resultado é o seguinte:
1. Adicionar as funcionalidades necessárias
Vamos começar pelo básico: Copie e cole o seguinte código no seu arquivo functions.php.
load_theme_textdomain( ‘WordPressLove’, TEMPLATEPATH.’/languages’ );
$locale = get_locale();<br />
$locale_file = TEMPLATEPATH."/languages/$locale.php";
if ( is_readable($locale_file) )
require_once($locale_file);Na primeira linha, poderá ver a funcionalidade load_theme_textdomain(). Esta função permite carregar um Domínio de Texto.
Poderá escolher qualquer nome, mas tenha noção de que deverá ser
único. A melhor prática será seguramente utilizar o nome do seu
template.
2. Internacionalize o seu template
Para traduzir o nosso template WordPress, iremos utilizar as funções PHP de gettext.
O GetText tem duas funções: _e e __ (dois underscores).
A função “_e” é utiliza para imprimir texto “simples” e a função “__” é
utilizada quando texto já se encontra envolvido em tags PHP.
<?php _e("A página que procura não se encontra aqui", "WordpressLove"); ?><br /><?php the_content(__('Leia Mais', "WordpressLove")); ?>Veja novamente que o domínio de texto (WordPressLove) deverá ser o mesmo contido no arquivo functions.php.
A parte mais chata é que você terá de
substituir cada string pela função requerida. Dependendo do número de
strings que o seu template tem, este processo pode requerer algum tempo.
3. Crie seu arquivo .PO
Agora, o seu template WordPress pode ser facilmente traduzido para
qualquer língua. Mas, para apresentar textos em outra língua, é necessário
adicionar um ficheiro .po.
Os arquivos .po
significam Portable Object. Basicamente, eles contêm uma
string e a sua tradução numa outra língua. Por exemplo, ao fazer o
download da versão Francesa do WordPress, você terá um arquivo fr_FR.po
nos seus arquivos. Ele contém todas as traduções necessárias
para o seu template falar Francês, pelo que o seu tema irá seguramente
dizer Bienvenue ao invés de Bem Vindo.
As boas notícias são que você não terá
de pesquisar pelos arquivos do seu template à procura de todas as
strings que são necessárias traduzir. Uma ferramenta online gratuita,
icanlocalize.com, tem capacidade de “scannar” arquivos PHP e criar os .po por
si. O ICanLocalize irá extrair todas as strings envolvidas nas chamadas
__(“txt”, “domínio”) e _e(“txt”, “domínio”). As strings podem ser envolvidas também entre aspas (“) ou citações singulares (‘) e com qualquer caracter de codificação.

Os arquivos .PO podem ser editados com o software PoEdit, especialmente dedicado a esta função:

Como provavelmente você já adivinhou, será necessário traduzir cada uma das strings. Depois de traduzir todas, guarde o
seu arquivo .po. O PoEdit irá gerar também um ficheiro .mo, que é
basicamente uma versão compilada do ficheiro .po.
4. Implementação
Agora, você terminou a parte mais “difícil” do trabalho. A única que precisa fazer é definir a localização do seu WordPress. Para isso, a primeira coisa é conseguir o seu código de
língua e país. Por exemplo, se a sua língua é Francês e França é o seu
país de residência, o seu código será fr_FR. Para Portugal falamos em
pt_PT e para o Brasil de pt_BR.
Depois de ter os seus códigos, abra o seu ficheiro wp-config.php
e procure pela constante WPLANG. Se ela existir, simplesmente substitua
o código atual pelo seu. Se não existir, simplesmente cole a seguinte
porção de código (com o seu código claro):
define ('WPLANG', 'fr_FR');Boas traduções!
*
Publicado originalmente em http://www.catswhocode.com/blog/how-to-make-a-translatable-wordpress-theme







