WordPress multilanguage com qTranslate

14 Abr

A pedido do nosso amigo Handrus Nogueira, meu amigo e colega de trabalho a muito tempo, vou hoje postar sobre como estou trabalhando com multilanguage no WordPress.

Existia um conceito básico em manter um blog multilanguage, até um certo tempo atráz, que era: mantenha dois blogs e poste de acordo em cada um deles.

Com o plugin qTranslate para o WordPress as coisas ficaram mais fáceis. O qTranslate te permite trabalhar as diferentes linguagens para categorias, posts, titulo do post, etc. Com essa facilidade fica fácil postar em duas linguagens sem precisar manter dois WordPress rodando.

Vamos a instalação, baseada na página do qTranslate e no que eu fiz aqui (eu tenho uma conta na dreamhost):

  1. Faça o download na pasta de plugins do seu WordPress, a última versão hoje é a 2.3.4:
    cd pasta/de/plugins;
    wget http://downloads.wordpress.org/plugin/qtranslate.2.3.4.zip
  2. Descompacte o arquivo:
    unzip -x qtranslate.2.3.4.zip
  3. Ative o plugin na área administrativa do seu blog
  4. Na página de plugins do seu blog, na linha do qTranslate, existe um link Settings, é lá que você configura seu qTranslate. Clique e você poderá configurar quais linguagens vai usar e quais não.

Agora, na configuração do qTranslate será feita da seguinte maneira:

  1. Vá a parte de ‘Languages’, onde você deve adicionar a sua linguagem caso ela não exista, remover ou não as não usadas (eu removi para não ter uma lista longa a toa) e configurar as ativas e não ativas. A linguagem pt_BR não existe por default quando instalei, então precisei criar. A adição de uma nova é bem simples, preencha com os dados:
    • Language Code: pt
    • Flag: br.png (pode ter várias br.png, escolha a correta)
    • Name: o nome desejado, eu coloquei Português
    • Locale: nome da locale correta, no estilo usado pelo WordPress, PHP, gettext, o correto para nós é pt_BR
    • Date format: formato da data baseado na função strftime do PHP, meu valor é: %A, %d em %B/%G
    • Time format: formato da hora baseado na função strftime do PHP, meu valor é: %H:%M
    • Not avaliable message: mensagem para caso não for achado um post naquela linguagem, meu valor é: Sorry, this entry is only available in %LANG:, : and %.
  2. Ative as linguagens desejadas e selecione a linguagem padrão. Eu marquei as caixas ‘Hide Untranslated Content’ e ‘Detect Browser Language’ também, a descrição segue ao lado delas no seu WordPress.
  3. Em ‘Advanced Settings’ você configura como o qTranslate vai trabalhar no seu WordPress. Leia atentamente todas as opções, mas aqui destaco as três mais importantes para mim:
    • URL Modification Mode: define como vai ser exibido os posts em teu site de acordo com a linguagem.
    • Update Gettext Databases: pode ser útil para tradução da sua interface do WordPress.
    • Date / Time Conversion: marque ‘Use strftime instead of date and replace formats with the predefined formats for each language.’. Isto permite que você possa até usar a saida de data de acordo com o país, e já garante que os nomes de dias e meses saim com a linguagem correta.

Pronto, vá a página de posts e caso esteja usando o editor visual irá ver as abas correspondentes as linguagens selecionadas bem como o título.nn Veja como ficou minha janela:

qTranslate in post page.

qTranslate in post page.

Uma última dica, é, como a página do qTranslate indica, ativar o widget para mudança de linguagem. Este widget fornece os links para as linguagens usadas para caso o ususuário queira mudar de linguagem e adiciona um widget na sidebar. Eu como prefiri colocar ele no header do site e no tema que escolhi não havia nada para configurar no header sem ser fuçei um pouco no código do qTranslate e achei a função qtrans_generateLanguageSelectCode. Seu uso é bastante simples, veja como usei em meu blog:

Agora é postar a vontade em qualquer linguagem :). Comentários ou dicas sobre o assunto por favor, é muito muito bem vindo.

Abraços!

** Alguns links **

  • qTranslate FAQ (erros básicos e suas soluções são listadas aqui): http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=3&start=10
  • Um TAR com os arquivos .po e .mo (usados pelo qTranslate para traduzir) usados no meu blog: http://chronosbox.org/gettext_blog_files.tbz2 (não deixe de checar o MD5).

** updates **

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

31 Responses to “WordPress multilanguage com qTranslate”

  1. James fevereiro 20, 2013 at %H:%M 12Wed, 20 Feb 2013 00:29:27 +000027. #

    Olá! Como faço para o campo de descrição da categoria ser traduzida? Estou usando a tag description category para puxar as informações da descrição da categoria, mas nesse campo do WordPress não há opção de idioma. Obrigado

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
  2. CARISSABoyle abril 19, 2012 at %H:%M 01Thu, 19 Apr 2012 13:31:10 +000010. #

    If you want to buy real estate, you will have to receive the credit loans. Moreover, my sister always utilizes a auto loan, which seems to be really useful.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
  3. Paulo maio 9, 2010 at %H:%M 08Sun, 09 May 2010 20:48:56 +000056. #

    Olá Felipe, eu já estava pensando em montar um blog bilingue, e com a ajuda do seu ótimo post resolvi apostar no qtranslate, porém, já fiz várias tentativas sem sucesso para habilitar a língua portuguesa. Já instalei, reinstalei, etc e mesmo seguindo os passos do seu post o resultado é “Language is already enabled or invalid!”. Outra coisa que não consegui fazer funcionar é a tradução automática que supostamente o plugin oferece. Estou usando o WP 2.9.2 e o qTranslate 2.5.7. Teria alguma idéia do que está acontecendo???
    obrigado.
    abs
    Paulo

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato maio 9, 2010 at %H:%M 11Sun, 09 May 2010 23:58:42 +000042. #

      Boas Paulo, obrigado pela visita :). A única vez que eu vi este problema ocorrer, foi em um ambiente de testes com uma base de dados ‘latin1’. Descobri que o problema era a base dados quando vi esta entrada no FAQ do qTranslate: http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=3&p=1407#p2543

      Nos envie mais detalhes do ambiente que esta subindo o blog e/ou visite o FAQ, creio que assim podemos averiguar melhor o problema 😉

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  4. Bruno Said março 8, 2010 at %H:%M 07Mon, 08 Mar 2010 19:15:23 +000023. #

    Urgentíssimo.

    Como você faz pra ele traduzir os titulos do Widget?

    Estou louco com isso. Não tenho nenhuma idéia de como fazer ele traduzir automaticamente os títulos.

    Preciso de uma resposta rápida.
    Help! =/

    Abraços!

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato março 8, 2010 at %H:%M 08Mon, 08 Mar 2010 20:55:25 +000025. #

      E ai Bruno, como vai ?

      É o seguinte, eu baseei minha instalação no wordpress em pt-BR, que sempre sai um pouco depois da versão oficial.

      Você pode tentar com ele, ou copiar os arquivos .po e .mo que existirem para o pt_BR :).

      Eu criei um TAR para vc poder baixar os meus aqui: http://chronosbox.org/gettext_blog_files.tbz2 (não deixe de checar o MD5.

      Thx!

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  5. Tiago janeiro 31, 2010 at %H:%M 06Sun, 31 Jan 2010 18:44:41 +000041. #

    Opa, Felipe, muito bom seu tutorial. Queria mudar a cor do texto de Englis e Portugues que estão vermelho. Você pode me falar qual o codigo pra o style. Também Não estou entendendo porque o flag em Ingles ta vindo primeiro do que portugues que coloquei em defalt. Valeu.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato janeiro 31, 2010 at %H:%M 11Sun, 31 Jan 2010 23:09:23 +000023. #

      Valeu Tiago, algo bem simples como

      a.qtrans_flag_and_text { color: #000000; }

      mudaria o estilo do translate. O porque de o inglês vir primeiro que o português eu não sei, bate um papo com o Bruno Eleutero que no blog dele ele acertou esta ordem :). Abraços.

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  6. Bruno Eleutero janeiro 28, 2010 at %H:%M 10Thu, 28 Jan 2010 22:00:44 +000044. #

    Obrigado!

    Publiquei o artigo, pode ser acessado no link: http://www.brunoeleutero.com/2010/wordpress-multilanguage-com-qtranslate/ , se houver algo de errado no artigo me envie um email: brunosilva.ti@gmail.com
    Também gostei muito de seu blog, estou acompanhando seus posts 🙂

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
  7. Bruno Eleutero janeiro 21, 2010 at %H:%M 02Thu, 21 Jan 2010 14:22:01 +000001. #

    Olá,

    Primeiro parabéns pelo artigo.
    Consegui realizar a instalação e configuração de outra forma e gostaria de replicar seu artigo em meu site: (http://brunoeleutero.com) se preferir vamos conversando por email.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato janeiro 21, 2010 at %H:%M 02Thu, 21 Jan 2010 14:51:22 +000022. #

      Muito obrigado Bruno, fique a vontade para reproduzir o artigo, apenas não esqueça de citar as fontes originais :). Seu blog parece muito interessante, vou ficar de olho nele :), se puder colocar o meio alternativo que você fez a configuração em um comentário ou me enviar por email, eu atualizo o meu artigo aqui.

      Até!

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  8. André Canhadas dezembro 17, 2009 at %H:%M 04Thu, 17 Dec 2009 16:22:57 +000057. #

    Tive o mesmo problema com o openssl, não conseguia adicionar pelos widgets, a solução foi colocar o codigo citado:()no sidebar.php do meu tema ativo.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
  9. carol agosto 19, 2009 at %H:%M 11Wed, 19 Aug 2009 23:48:48 +000048. #

    Felipe,

    copieir o codigo da tua página e vi como vc fez… com spans e puxando as flags… diferente do que tava no post, mas outra opção… só coloquei um li na instrução acima usando uma versão adaptada da classe dos menus logo abaixo. Só não entendo pq q acavala assim.
    Alguma sugestão?

    ficou:

    e no stylesheet:

    .header li.lang_item a, .header li.lang_item a:visited {list-style-type: none; float: right; font-size: 12px; background-color: none; color: #FFF; padding: 5px 5px 0px 5px; margin-left: 10px; text-decoration: none;}

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato agosto 20, 2009 at %H:%M 12Thu, 20 Aug 2009 00:16:09 +000009. #

      humm, esse padding é quem é o cara mau, se vc remover ele (o 5px 5px 0 5px) a lista do qtranslate não vai mais ficar zoada, testei aqui com o firebug no seu site.
      Te add no gtalk, qq coisa podemos falar por lá :), boa noite, bjos

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  10. carol agosto 18, 2009 at %H:%M 11Tue, 18 Aug 2009 11:59:05 +000005. #

    Oi Felipe, valeu pelo tutorial. Não conseguia por as flags no site. Deve ser algo bobo mas não consigo pôr elas lado a lado como ficou no seu. Alguma dica?

    Grata,

    carol

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato agosto 18, 2009 at %H:%M 02Tue, 18 Aug 2009 14:01:01 +000001. #

      Oi Carol, é um simples CSS, basta flutuar as ‘<li's e elas ficarão lado a lado, se tiver alguma dúvida quanto a isso posso te ajudar mais a noite.

      Abraços!

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  11. Rodrigo julho 19, 2009 at %H:%M 03Sun, 19 Jul 2009 15:24:46 +000046. #

    Oi Felipe, os serviços do qtranslate já estavam desabilitados. Sabe como faço para dar suporte SSL ao PHP?
    Obrigado pela ajuda

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato julho 19, 2009 at %H:%M 04Sun, 19 Jul 2009 16:52:41 +000041. #

      Opa Rodrigo. Se você estiver com um servidor onde você possa compilar o PHP, você deve ter instalado o OpenSSL e acertar corretamente o PHP (algumas distros devem ter o pacote separado). Caso seu site esteja hospedado com um serivço de hosting, você vai precisar entrar em contato com eles. Te passo abaixo o link para a página referente a OpenSSL no manual do PHP: http://br2.php.net/openssl

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  12. Rodrigo julho 18, 2009 at %H:%M 04Sat, 18 Jul 2009 16:15:40 +000040. #

    Estou com o seguinte problema: qTranslate Services could not load OpenSSL! Não sei o que fazer.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato julho 18, 2009 at %H:%M 04Sat, 18 Jul 2009 16:55:06 +000006. #

      Olá Rodrigo. O problema parece bem simples, seu PHP parece não ter suporte a SSL. O qTranslate exige suporte a SSL quando seus serviços estão habilitados.
      Tente ou dar suporte a SSL para seu PHP ou siga os seguintes passos:

      1. Logue no admin do WP.
      2. Vá para Settings -> Languages.
      3. Desça até ‘qTranslate Services Settings’ e desabilite os serviços.

      Deve deixar o qTranslate funcionando :).

      Se funcionar ou não só confirme 🙂

      Abraços.

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  13. Lu julho 7, 2009 at %H:%M 10Tue, 07 Jul 2009 10:23:29 +000029. #

    Oi Felipe, super obrigada !
    Já instalei e desinstalei e nada …
    Tenho uma desconfiança de incopatibilidade com algum outro plugin instalado, testei num outro blog e funcionou perfeitamente.
    Deixei meu gmail,se puder entrar em contato, agradeço sua ajuda ! 🙂
    bjs

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato julho 13, 2009 at %H:%M 12Mon, 13 Jul 2009 00:24:31 +000031. #

      Embora já tenhamos tentado resolver o problema do plugin acho interessante notar que temos uma nova versão do qTranslate que saiu hoje, http://wordpress.org/extend/plugins/qtranslate/, suportando WP 2.8.1 ou superior. Lu, acho que caso ainda não tenha feito este é um bom motivo para atualizar sua versão do WordPress 🙂

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  14. Lu julho 4, 2009 at %H:%M 07Sat, 04 Jul 2009 19:29:09 +000009. #

    Oi Felipe, tudo bem ?
    Instalei o plugin no meu blog, mas não consigo adicionar a opção do português.
    Recebo esta mensagem: Language is already enabled or invalid!
    Tentei editar o codigo do plugin,mas isso gerou um série de erros. Você teria alguma idéia do que acontece ?
    Desde já obrigada !
    Luciana

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato julho 5, 2009 at %H:%M 06Sun, 05 Jul 2009 18:17:35 +000035. #

      Olá Luciana. Eu nunca vi acontecer, mas eu tentaria, na ordem:
      1 – remover e reinstalar plugin
      2 – checar permissionamento
      3 – adicionar novamente a linguagem
      Caso não funcione, e quiser entrar em contato comigo por email/msn/gmail podemos verificar juntos o que acontece, e de quebra deixar documentado.

      Abraços!

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  15. Gustavo Fernandes junho 4, 2009 at %H:%M 10Thu, 04 Jun 2009 10:04:00 +000000. #

    Gostei do qTranslate também é uma ótimo solução. Agora pesquiso uma forma de traduzir também o resumo (excerpt) pois esse fica igual em todas as linguas. Você conhece alguma solução? Abraços.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato junho 4, 2009 at %H:%M 10Thu, 04 Jun 2009 10:16:14 +000014. #

      Poxa, eu não conheço…. talvez a melhor maneira seria adicionar isso ao qTranslate mesmo, não creio que sejam necessárias muitas modificações e ainda se melhora um ótimo plugin (enquanto o WP não suportar isso nativamente) :]

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  16. Assis Santos maio 29, 2009 at %H:%M 09Fri, 29 May 2009 09:46:42 +000042. #

    Muito bom o post, estava a procura dessa solução para um cliente, estou testando é muito prático, um abraço!

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    • Felipe 'chronos' Prenholato maio 29, 2009 at %H:%M 09Fri, 29 May 2009 09:53:46 +000046. #

      Fico realmente muito feliz que possa ter sido util a tanta gente :).
      Estou trabalhando em novos e bom posts, devagar, mas com qualidade 🙂
      Thx!

      VA:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)
  17. Eduardo maio 18, 2009 at %H:%M 02Mon, 18 May 2009 14:40:30 +000030. #

    Valeu pelo tutorial!

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
  18. Duhh abril 24, 2009 at %H:%M 04Fri, 24 Apr 2009 04:56:54 +000054. #

    Muito bom artigo, parabéns,
    utilizei ele para aprender a mexer com esse qtranslator, para montar o blog de um cliente aestevam.com.br

    Um abraço
    Vlwwss pela dica.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)

Trackbacks and Pingbacks

  1. Wordpress multilanguage com qTranslate | Bruno Eleutero Silva - dezembro 30, 2010

    […] este código terá o nome da linguagem ao lado do widget, clique aqui para ver um exemplo) Ou [sourcecode language="php"] <?echo […]

Leave a Reply