WordPress multilanguage com qTranslate
by Felipe 'chronos' Prenholato on Segunda, 10 Maio/2010, under Multilanguage, My Blog
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):
- 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
- Descompacte o arquivo:
unzip -x qtranslate.2.3.4.zip
- Ative o plugin na área administrativa do seu blog
- 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:
- 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 %.
- 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.
- 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:
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 **
- Nós temos um post mais atualizado no blog do Bruno Eleutero, baseado no meu post: http://www.brunoeleutero.com/2010/wordpress-multilanguage-com-qtranslate/
43 Comments for this entry
1 Trackback or Pingback for this entry
-
Wordpress multilanguage com qTranslate | Bruno Eleutero Silva
quinta, 30 em dezembro/2010 on 09:41[...] este código terá o nome da linguagem ao lado do widget, clique aqui para ver um exemplo) Ou [sourcecode language="php"] <?echo [...]

sexta, 24 em abril/2009 on 04:56
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.
segunda, 18 em maio/2009 on 14:40
Valeu pelo tutorial!
sexta, 29 em maio/2009 on 09:46
Muito bom o post, estava a procura dessa solução para um cliente, estou testando é muito prático, um abraço!
sexta, 29 em maio/2009 on 09:53
Fico realmente muito feliz que possa ter sido util a tanta gente
.
Estou trabalhando em novos e bom posts, devagar, mas com qualidade
Thx!
quinta, 04 em junho/2009 on 10:04
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.
quinta, 04 em junho/2009 on 10:16
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) :]
sábado, 04 em julho/2009 on 19:29
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
domingo, 05 em julho/2009 on 18:17
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!
terça, 07 em julho/2009 on 10:23
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
segunda, 13 em julho/2009 on 00:24
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
sábado, 18 em julho/2009 on 16:15
Estou com o seguinte problema: qTranslate Services could not load OpenSSL! Não sei o que fazer.
sábado, 18 em julho/2009 on 16:55
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.
domingo, 19 em julho/2009 on 15:24
Oi Felipe, os serviços do qtranslate já estavam desabilitados. Sabe como faço para dar suporte SSL ao PHP?
Obrigado pela ajuda
domingo, 19 em julho/2009 on 16:52
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
terça, 18 em agosto/2009 on 11:59
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
terça, 18 em agosto/2009 on 14:01
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!
quarta, 19 em agosto/2009 on 23:48
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;}
quinta, 20 em agosto/2009 on 00:16
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.
, boa noite, bjos
Te add no gtalk, qq coisa podemos falar por lá
quinta, 17 em dezembro/2009 on 16:22
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.
quinta, 21 em janeiro/2010 on 14:22
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.
quinta, 21 em janeiro/2010 on 14:51
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é!
quinta, 28 em janeiro/2010 on 22:00
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
domingo, 31 em janeiro/2010 on 18:44
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.
domingo, 31 em janeiro/2010 on 23:09
Valeu Tiago, algo bem simples como
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.
segunda, 08 em março/2010 on 19:15
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!
segunda, 08 em março/2010 on 20:55
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!
domingo, 09 em maio/2010 on 20:48
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
domingo, 09 em maio/2010 on 23:58
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
quarta, 27 em abril/2011 on 10:27
Olá! O meu qtranlator instala tudo beleza, mais na hora que vou para o post ele da um erro:
The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. This is done to prevent WordPress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version.
Já viu algo parecido. Abraço.
domingo, 22 em maio/2011 on 02:28
Oi Gustavo, isso acontece simplismente pq o qtranslate não suporta sua versão do WordPress, tem que aguardar um pouco
sexta, 29 em julho/2011 on 14:59
No Qtranslate ativei o services para ver o que acontecia… agora não consigo acionar a aba idiomas mais… mensagem que aparece quando clico:
PHP Warning: openssl_pkey_export() [function.openssl-pkey-export]: cannot get key from parameter 1 in E:\home\clubedoautor2\web\escrevoaovivo\wp-content\plugins\qtranslate\qtranslate_services.php on line 97
PHP Warning: openssl_pkey_get_details() expects parameter 1 to be resource, boolean given in E:\home\clubedoautor2\web\escrevoaovivo\wp-content\plugins\qtranslate\qtranslate_services.php on line 98
PHP Warning: openssl_open() [function.openssl-open]: unable to coerce parameter 4 into a private key in E:\home\clubedoautor2\web\escrevoaovivo\wp-content\plugins\qtranslate\qtranslate_services.php on line 138
PHP Warning: openssl_free_key() expects parameter 1 to be resource, boolean given in E:\home\clubedoautor2\web\escrevoaovivo\wp-content\plugins\qtranslate\qtranslate_services.php on line 144
PHP Warning: Invalid argument supplied for foreach() in E:\home\clubedoautor2\web\escrevoaovivo\wp-content\plugins\qtranslate\qtranslate_services.php on line 228
PHP Warning: Invalid argument supplied for foreach() in E:\home\clubedoautor2\web\escrevoaovivo\wp-content\plugins\qtranslate\qtranslate_services.php on line 405
terça, 27 em setembro/2011 on 10:54
Desculpa a demora, não tinha visto seu comentário.
Se você ainda não resolveu, eu reinstalaria completamente o qtranslate, ou pelo menos tentaria ‘acertar’ as opções na base de dados do mysql
sexta, 30 em setembro/2011 on 12:19
Oi Felipe,
Muito bom o seu blogue, eu estou me deparando com uma situação igual á do philadelfo, sabe para quando vem essa versão nova?
sexta, 21 em outubro/2011 on 02:59
Olá,
estou traduzindo meu site para inglês e espanhol com o qtranslate e estou adorando. Somente tenho uma dúvida: tenho uma imagem no meu header (que é uma frase em portugues) e que preciso mudar conforme o idioma. No style.css tenho:
.widget-area .textwidget .cabecalho { background: url(…… como faço para customizar por linguagem ?
domingo, 30 em outubro/2011 on 02:26
O qTranslate oferece algumas funções para saber qual a linguagem usada, você pode usar isso.
O método em si é o qtrans_getLanguage().
Você deve visitar o post com os métodos disponiveis em http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=9
quarta, 26 em outubro/2011 on 13:42
Amigo,
obrigado pela ajuda, mas preciso traduzir também o menu. que no meu header.php tá ‘menu’) ); ?>
eu precisava q qnd traduzisse pra BR, além de trocar o conteúdo (ja funciona) trocasse o codigo para ‘menuBR’) ); ?>
Alguém ai ja fez isso?
domingo, 30 em outubro/2011 on 02:26
Desculpa a demora.
O qTranslate oferece algumas funções para saber qual a linguagem usada, você pode usar isso.
O método em si é o
qtrans_getLanguage().Você deve visitar o post com os métodos disponiveis em http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=9
Abc
quarta, 09 em maio/2012 on 18:07
Oi. Conhecia o plugin já e cheguei até aqui procurando a solução para um problema que encontrei.
Estou desenvolvendo um site que necessita que as suas URLs também sejam alteradas de acordo com a linguagem selecionada. Pelo que vi, no seu exemplo você possui também apenas uma URL para quaisquer dos idiomas que aplique. Não acho que isso seja certo. Afinal, se o título da página é “Maçã”, nada mais justo que a sua URL também seja “maca”, e não “Apple”, como prega a política de links da aplicação.
Se alguém tiver a solução para este quase bug (do ponto de vista dos mecanismos de busca é um desastre) me avisem.
Parabéns pelo blog e sorte o/
domingo, 17 em junho/2012 on 23:06
Gostaria de sabe como vc configurou pra coloca as imagens no seu topo personalizado o link das bandeiras.
Vc falou pra gente da uma olhada aqui:
qtrans_generateLanguageSelectCode. Seu uso é bastante simples, veja como usei em meu blog:
Só que não mostrou de como usou?
Estou tentando coloca aqui neste site, nas bandeiras no topo:
http://www.renatalaterza.com.br/
Se vc alguém me ajuda serei muito grato..
valeuwww
sábado, 23 em junho/2012 on 14:41
Olá a todos e principalmente ao dono do post.
Eu já tinha algum tempo configurado o qTranslate em site que estou construindo mas, outros plugins que possuem linguagem eles não mudam de acordo com que ocorre com mudança de idioma.
O site todo paginas, tags, categorias e tudo mais que é wordpress vai ok. Agora o language de outros plugins tem o Mo pt_BR e en_US mas não muda juntamente com qTranslate alguém tem alguma dica?
segunda, 20 em agosto/2012 on 12:24
Olá! Eu não consegui visualizar o código para eu colocar na página principal, acima dos menus como vc fez… Vc pode me passar? Obrigada.
terça, 16 em outubro/2012 on 10:54
Por favor eu instalei aqui o qtranslate mas só funciona para os posts, eu percebi que no seu caso quando se troca de idioma ele troca tambem o menu como eu faço isso???
terça, 16 em outubro/2012 on 11:25
Ja aprendi é só adicionar rotulos valew!