Pular para o conteúdo

Implementando um tradutor de línguas no seu web site

Neste artigo mostro como criar uma interface transparente para o programa de tradução de línguas Babelfish.AltaVista.com usando sockets e expressões regulares.
Fábio Berbert de Paula fabio
Hits: 48.288 Categoria: PHP Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 2: Implementando o script - parte 2

Implementando o script - parte 2


O coração do nosso programa é a parte que efetua comunicação com o babelfish. Abriremos uma conexão via sockets com o programa engine e enviaremos as informações necessárias, que serão as constantes que definimos, o texto a ser traduzido e a linguagem selecionada. Neste procedimento estaremos simulando um browser, que envia a requisição ao programa CGI e aguarda a resposta. Assim que recebermos a resposta,trataremos o código HTML retornado com expressões regulares de modo a buscar apenas o que nos interessa, o texto traduzido.

Vamos ao código da rotina:
<?
function traduzir($urltext,$lp) {
// definição de variáveis
$host = 'babelfish.altavista.com';
// codificar a linha que será enviada ao programa CGI do babelfish
$vars = "doit=$DOIT&tt=$TT&urltext=" . urlencode(utf8_encode($urltext))
. "&lp=$lp";
$url = "/tr?$vars";

// efetuando conexão com o babelfish
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
if (!$fp) {
echo "Ocorreu um erro ao tentar conexão com $host:
$errstr ($errno)<br>\n";
exit;
} else {
// informações adicionais: nossa localidade e mapa
// de caracteres
$addinfo .= "Accept-Language: en\r\nAccept-Charset:
iso-8859-1,*,utf-8\r\n";
// envie as informações e jogue todo o retorno para a
// variável $html
fputs ($fp,
"GET $url HTTP/1.1\r\nHost: $host\r\n$addinfo\r\n");
while (!feof($fp)) {
$html .= fgets ($fp,128);
}
fclose ($fp);
}
// removendo quebras de linhas do resultado para facilitar
// a expressão regular
$html = ereg_replace("\n"," ",$html);

// capturando o texto traduzido, que está na linha que casa
// com a expressão abaixo
ereg("name=\"q\" value=(.*)>",$html,$saida);
$traducao = $saida[1];
$traducao = ereg_replace(">.*$","",$traducao);

// decodificar a string, pois os acentos vem em formato UNICODE,
// ilegíveis para
// nós
$traducao = utf8_decode($traducao);

return($traducao);
}
?>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Prontinho, um tradutor web acabou de sair da boca do forno ! Que conclusão podemos tirar deste exemplo prático de programa complexo de forma simples ? Hum, conclui-seque associando os recursos de rede com expressões regulares temos a bomba atômica e o detonador em mãos para causar bastante barulho Internet à fora. Não deixem de dar atenção especial à esses dois tópicos, valem à pena.

Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Implementando o script - parte 1
   2. Implementando o script - parte 2

Descobrindo o IP externo da VPN no Linux

Desbloquear a tela do Android pelo PC (PIN)

Expressões Regulares - Entenda o que são Lookahead e Lookbehind

Armazenando a senha de sua carteira Bitcoin de forma segura no Linux

Viva o Linux finalmente de volta!

Lighttpd + SQLite + PHP

Podcast Generator - Guia de instalação e primeiro acesso

Instalando o CMS XOOPS

Chat em PHP - Cheio de recursos e fácil de instalar e usar

Conheça o PHP-Fusion

#1 Comentário enviado por arknoid em 29/12/2003 - 16:52h
hehehehehe esse é o fabiovivaolinux....
cara muito massa esse tradutor soh espero que funcione!
#2 Comentário enviado por jllucca em 01/09/2004 - 19:40h
Arknoid, perdidão... não tem o que falar mantenha-se calado!

Como sei que não vou receber cortada dele huahuahua :D
#3 Comentário enviado por comfaa em 28/10/2008 - 13:05h
muito legal !!!

Contribuir com comentário

Entre na sua conta para comentar.