Configurando plugin polyglot no wordpress

Polyglot é um plugin que oferece suporte a múltiplos idiomas no wordpress. Ele funciona direitinho, mas é muito mal documentado, pelo menos pra mim, que não conheço muito bem o wordpress internamente. Levei quase 3 horas pra colocar ele funcionando, e agora faço minha parte aqui.

passo 1: baixe o polyglot em http://fredfred.net/skriker/index.php/2005/02/page/2/ (procure por download)

passo 2: descompacte-o em seuwordpressroot/wp-contents/plugins/

passo 3: ative-o no painel de configuração de plugins na interface de administração do seu wordpress

passo 4: configure o arquivo polyglot.php, modificando os campos:

(coloque seu idioma padrão):

$polyglot_settings[‘default_lang’] = ‘pt’;

(adicione os idiomas que você vai utilizar):

$polyglot_settings[‘trans’][‘pt’] = ‘Portuguese’;
$polyglot_settings[‘trans’][‘en’] = ‘English’;
$polyglot_settings[‘trans’][‘fr’] = ‘Français’;

(adicione nesse vetor os idiomas que você vai utilizar):

$polyglot_settings[‘knownlangs’] = array(‘pt’,’en’,’fr’);

(pra não desconfigurar o locale padrão adicione FALSE nesse campo):

$polyglot_settings[‘lang_change_locale’] = FALSE;

(adicione TRUE pra usar as bandeirinhas):

$polyglot_settings[‘use_flags’] = true;

passo 5: adicione o seguinte código no seu index.php (atenção! É o index.php do tema que você está usando. Isso pode ser feito pela interface de administração do wordpress, em Presentation, Theme editor):

if(function_exists(‘lp_other_langs’)) {
//display existing language versions of the post
lp_other_langs(‘ ‘,’ ‘, ‘ ‘, ‘ ‘, ‘ ‘);
}

O que esse código faz é listar os idiomas disponíveis (usando as bandeirinhas) para cada post do seu blog. Uma boa idéia é colocá-lo logo após o campo que lista o título do post, no index.php do seu tema. Esse mesmo procedimento pode ser feito pros arquivos do seu tema, como por exemplo o single.php.

passo 6: teste se está funcionando: escreva um post como algo assim:

<lang_pt>esse é um texto em português</lang_pt>
<lang_en>this is a text in english</lang_en>
<lang_fr>c’est un texte en français</lang_fr>

Esse é o funcionamento padrão do plugin. Ele te dá mais opções, como por exemplo criar feeds RSS diferentes para cada idioma. Eu ainda não usei, mas logo que configurar isso eu posto aqui os detalhes. Outra opção interessante é permitir que o usuário escolha o idioma padrão que ele quer ler no seu site nos próximos acessos. Ele pode sempre querer abrir seu blog com os posts em inglês, por exemplo, e isso pode ser guardado em cookies. Para ativar essa opção, adicione o seguinte código no seu menu (mais uma vez editando um dos arquivos do tema que você está usando):

if(function_exists(‘polyglot_list_langs’)) {
polyglot_list_langs(false);
}

O que esse código faz é listar em bandeiras (se o parâmetro da função é false) ou em texto (se o parâmetro é true) os idiomas que você configurou naquele vetor no arquivo polyglot.php. No meu caso esse código foi inserido dentro do arquivo tabnav, mas quando seu tema tem uma coluna de menus, você pode inserí-lo no sidebar.php. O problema aqui é que os links gerados por essa função são permalinks que você deve ter disponível. Os permalinks são do tipo: http://hackers.gnosislivre.org/~tiago/blog/lang-pref/en/

Na primeira tentativa você vai receber um 404 do HTTP, o que é normal se você ainda não criou esses permalinks. Esse foi um ponto não documentado que eu me bati bastante pra descobrir. Pra resolver esse problema você deve criar um arquivo .htaccess dentro do diretório raiz do seu blog (ex. ~/tiago/public_html/wordpress/) e adicionar algumas regras de escrita do apache. O conteúdo do meu arquivo .htaccess é este:

RewriteEngine On
RewriteRule ^(.*)lang-pref/en/$ /~tiago/blog/$1?lp_lang_pref=en [QSA]
RewriteRule ^(.*)lang-pref/pt/$ /~tiago/blog/$1?lp_lang_pref=pt [QSA]
RewriteRule ^(.*)lang-pref/fr/$ /~tiago/blog/$1?lp_lang_pref=fr [QSA]

Mude os parâmetros das regras de acordo com sua necessidade.

Bom, agora estamos já utilizando duas features do plugin. A primeira foi listar os idiomas disponíveis pra cada post, e a segunda foi dar a opção de setar o idioma padrão para todos os posts e criar cookies para os próximos acessos.

Por fim eu modifiquei algumas coisas nos fontes do plugin, pra evitar bordas nas imagens das bandeiras e ordená-las horizontalmente em vez de verticalmente, como é o padrão. Se você seguiu esse mini-tutorial e teve problemas, contacte que posso tentar te ajudar. Eu ainda tô tentando descobrir como colocar pra funcionar a tradução dos ítens do menu. Devo postar algo aqui em breve em relação a isso.

2 Comments

  1. Leonardo Garcia
    Posted February 24, 2007 at 00:36 | Permalink

    valeu… obrigado .. vc salvou meus milhoes …

    vc já está no meus favoritos!
    abs

  2. riesel
    Posted October 21, 2007 at 13:46 | Permalink

    Eu sei que esse post é antigo, mas me ajudou a instalar esse plugin.
    Só para poder ajudar tive que fazer algumas alterações, não sei se é porque estou com outra versão do plugin ou do WordPress, assim os post tive que fazer com [lang_pt] em vez de e o código no index.php teve que ser:

    <?php if(function_exists(‘polyglot_other_langs’)) {
    //display existing language versions of the post
    polyglot_other_langs(‘ ‘,”, ”, ”, ”);
    }?>
    Mais detalhes em http://www.fredfred.net/skriker/index.php/polyglot
    Parabens e obrigado

%d bloggers like this: