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.

[ Hits: 47.953 ]

Por: Fábio Berbert de Paula em 04/11/2002 | Blog: https://fabio.automatizando.dev


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);
}
?>
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

Página anterior    

Páginas do artigo
   1. Implementando o script - parte 1
   2. Implementando o script - parte 2
Outros artigos deste autor

Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota

Tecnologia a seu favor: 3 motivos para ter um sistema financeiro e ganhar tempo no trabalho

ATUALIZADO 19/01: Tragédia em Nova Friburgo/RJ

Viva o Linux com bate-papo via web

Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante

Leitura recomendada

Captive Portal Customizado

Gerando documento PDF em PHP

Boleto Bancário em PHP ou ASP

Construindo componentes em PHP e jQuery

Deixando seu PHPNuke mais 'esperto'

  
Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts