Rafael Clares


Traduzindo Textos com PHP + Google Translate Tool
Outubro 17, 2008, 2:04 am
Arquivado em: PHP | Tags: , , ,

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, 


4 Comentários até o momento
Deixe um comentário

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

Comentário por Fábio Penna

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

Comentário por Rafael Clares

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 ?

Comentário por Miguel Melo

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

Comentário por Rafael Clares




Deixe um comentário
Linhas e parágrafos quebram automaticamente, endereços de email não serão mostrados, HTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>