Traduzindo Textos com PHP + Google Translate Tool

  • Autor do post:
  • Categoria do post:PHP DEV

Mudando o idioma com PHP + Google Translate Tool Class

Olá,
E ai, cansado de colar o texto no google translate para traduzir para outros idiomas?

Vamos implementar aqui um exemplo de como fazer isso automaticamente com PHP (of coùrse).
Vamos começar pela class googleTranslateTool.class.php (faça o download)
A classe possui um array com os idiomas que o google é capaz de traduzir e pode ser baixada no PHPClasses.org, porém percebi que não havia nosso idioma e decidi dar uma de louco e incluir o pt-br no array da classe que para minha surpresa funcionou de prima. Então baixem a classe que eu modifiquei.

Bem, vamos partir para o arquivo que irá instanciar o objeto e nos dar o que interessa.

chamei o arquivo de index.php (só para não perder o costume) 
mas se quiser salve-o como jane.php ou paul.php 😉

<?php
# Incluindo cabecalho que tratara os acentos (pt-br)
@header(‘Content-Type: text/html; charset=iso-8859-1’);

# Incluindo a classe
require(‘googleTranslateTool.class.php’);

# Iniciando o tradutor de ‘pt-br’ para ‘en’ (ingles) 
$translator = new googleTranslateTool(‘pt-br‘,‘en’);

# Informando e Traduzindo o texto de pt-br para en (informado no parametro)
$result = $translator->translate_Text(“Oi, sou Rafael e estou testando a classe googleTranslate!“);
# Checando o resultado
if ( $result===false )
{
 # Exibindo o erro
 echo $translator->return_error();
}
else
{
 # Exibindo a resultado traduzido
 echo $result;
}
?>

Importante: É preciso que a extensão cUrl esteja ativada em seu PHP, se não estiver basta descomentar a linha extension=php_curl.dll (removendo o “;” ) no arquivo php.ini
 
Claro que você pode recuperar esse texto de diversas formas, banco de dados, POST, Strings….
Example with Strings:  

$str = “Eu quero aprender mais sobre PHP e Sistemas on-line! “; 
$str .= “Preciso comprar livros? “;
$str .= “Alguém indica algum blog ou material didática? “;  
$result = $translator->translate_Text(“$str“);

Caso queria utilizar o envio através de POST, você precisará tratar o encoding com o htmlentities().

Exemplo:

if
(isset($_POST[‘texto‘]))
{
 $str = htmlentities($_POST[‘texto‘]);
}

Com isso você estará enviando  “&agrave” ao invés de “á” e é a forma como o translate irá entender. 
 
Is Cool …

Pessoal, só uma coisa, a tradução é feita pelo Google então cuidado para não concatenar a bíblia sagrada e querer traduzir para aramaico… A tradução google sabemos que é ideal para pequenas frases e palavras comuns, não vá colocar aí na string “Orra mano que brisa essa classe véio” e querer traduzir, certo?

Exemplo funcionando | Download do Exemplo

Abraços e até a próxima,

Rafael, 

Este post tem 13 comentários

  1. Fábio Penna

    Olá Amigo! Eu estava utilizando o script, quando ele parou de funcionar, e agora só aparece a mensagem “302 Moved 302 Moved The document has moved here.” e não traduz mais nada.
    Você o porque e como resolver?

    Obrigado

    1. Rafael Clares

      Fábio, baixe novamente o pacote pois acabei de testar e está funcionando normalmente. abraços,

  2. Miguel Melo

    Boas,

    Aconteceu-me o mesmo que ao utilizador anterior .. estava a usar sem problemas e de um dia para o outro deixou de traduzir … agr só aparece 302 Moved 302 Moved The Document has moved here.

    Alguem pode ajudar ?

    1. Rafael Clares

      Miguel, precisa ver no google se houve alteração do serviço. No meu caso a tradução de algumas palavras mudou.

    1. Rafael Clares

      João Paulo, muito obrigado por contribuir, depois que escreveu pude reparar que o exemplo que dei já não funciona mais.
      Forte abraço

  3. Jaelson

    tem alguma forma de reproduzir o áudio da tradução automaticamente??

  4. Paulo

    Voces sabem como poderia fazer isso com um link atualizado??

    Obrigado

  5. Carlos Stenzel

    Texto traduzido: “Google TranslateJS_ERR_COUNT = 0;JS_ERR_ARR = [];function _gtErr(e,url,line){++JS_ERR_COUNT;var i=new Image();var err=’e=’+e.substr(0,1500)+’,url=’+url.substr(0,400)+’,line=’+line+’,count=’+JS_ERR_COUNT;if (JS_ERR_COUNT”

    e esse problema como resolver ???

  6. jarlesson Laughton Pereira

    olá eu adcionei o código no meu site e não aparece o tradutor do google,porque isso acontece?O tradutor ele funciona em todos os sites?

  7. Anderson Carvalho

    Útil mais, quero saber como traduzir um arquivo php para português!

Os comentários estão encerrados.