zeit009 | |
| 2011-03-31 13:36 - Respuestas: 0 - Tema nº: 2776613
ubuntu
buenas!
recientemente he empezado a trabajar con perl, cgi, etc.... y ando un poco perdido.
mi problema es el siguiente: he creado un pequeño formulario para que la gente introduzca un texto, y dicho texto lo quiero traducir llamando a un programa de perl que lo tengo guardado en /lib/cgi-bin/ que se conecta a google y utilizando las api de google translate me devuelva el resultado.
el formulario es el siguiente (sencillito) y lo he guardado en / var / www:
1.
method = post
2.
web translator
3.
border=0> param('textointroducido');
en este punto, consigo guardar el texto introducido por el usuario ("textointroducido") en $txt. ahora mi problema es a la hora de hacer las llamadas google.
he encontrado un programa escrito en perl que traduce del inglés al francés (en mi caso yo quiero que traduzca de ingles a español..pero bueno sirve de ejemplo) el problema de este programa es que el texto que queremos traducir es introducido a través de la entrada estándar . aqui os muestro el codigo
1.
#!/usr/bin/perl
2.
3.
use rest::client;
4.
use json;
5.
use html::entities qw(decode_entities);
6.
7.
8.
while (1)
9.
{
10.
print "please enter english word: ";
11.
chop ( $_ = );
12.
13.
my $client = rest::client->new();
14.
$client->get("https://www.googleapis.com/language/translate/v2?key=aizasyacjybem6lyelnyhzzxfydtk-v6-uz48bq&en&target=fr&q=$_");
15.
$response = $client->responsecontent();
16.
17.
$json_text = from_json( $response );
18.
19.
foreach my $french(@{$json_text->{data}->{translations}})
20.
{
21.
my %ep_hash = ();
22.
$ep_hash{translatedtext} = "translated to french: $french->{translatedtext}";
23.
24.
# print french
25.
while (my($key, $value) = each (%ep_hash))
26.
{
27.
print decode_entities($value);
28.
}
29.
}
30.
print "\n";
31.
}
bueno, he tratado de integrar el código escrito por mí en este programa de perl y nada. he leído que a lo mejor hay que codificar la variable $txt uri:: encode para integrarlo en la url...no sé...he estado leyendo y tampoco se cómo se haria ..
bueno, a ver si alguien me puede ayudar o si alguien sabe de alguna manera más fácil de hacer lo que quiero que me lo comente...cualquier comentario o sugerencia es bienvenida.
gracias!
un saludo!
| |
|
|