WordPress

Inscreva-se em nosso canal no Youtube Daviwp

Template com suporte a multi-idiomas no WordPress

19/04/2011 WordPress (1) comentário

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();
 
$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"); ?-->
<!--?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');

daviwp

Meu nome é Davi Alves desenvolvedor web e WordPress developer, residente de Belo Horizonte, sou um dos organizadores do WordCamp evento oficial do WordPress em BH e co-fundador do Belo Horizonte WordPress Group juntamente com o fundador Mateus Neves, sou articulista de alguns sites, e fundador do daviwp.com, aqui compartilho conhecimentos para toda galera aficionada em WordPress.

  • Super ecxtied to see more of this kind of stuff online.