Caracteres especiales y Net::HTTP

Un poco de ruby en este email,

estoy intentado automatizar la traducción de unos textos y creo que
no existen bindings para ruby que se entiendan con el traductor de
Google (existen?) y quien sabe si al final se transforma en una gema
el asunto!

el plan es net::http + open-uri + hpricot

tengo esto, al final se crea un fichero con el resultado

===== CODE

=======

text = “mamá”
Net::HTTP.start(‘translate.google.com’, 80) {|http| response =
http.post(“/translate_t?”,
“text=#{text}&hl=es&langpair=es|en&tbb=1”)

doc = Hpricot(response.body)
(doc/“div[@id=‘result_box’]”).each do |translation|
results = File.new(File.dirname(FILE) + ‘/response’, ‘w+’)
results.write translation.inner_html
end
}

========================================================================

el caso es que parece que Net::HTTP no envía bien las tildes y
entonces pues google no encuentra la palabra…
he probado con entidades pero no funciona… alguien sabe si se le
puede pasar algo tipo chars de active_support?
hay alguna otra opción?

gracias gente!
marze

Hola,

Yo hice el traductor [1] de esa manera, en este momento no tengo acá el
código, pero en unas horas te mando la manera en que lo solucioné.

[1] http://translate20.com

saludos,
Juan P.

Aquí te dejo el código de mi aplicacion que se comunica con el servidor
de
google y hacer la traducción.

def traducir_texto # se comunica con el servidor de google y traduce el
texto
@texto = “mamá”
@direction = “es|en”
uri = “http://translate.google.com/translate_t

    res = Net::HTTP.post_form(URI.parse(uri), {"commit" =>

“Translate”,
“text” => @texto,

                        "langpair" => @direction, "ie" => 'UTF8'})

    doc = res.body.split('id=result_box dir=ltr>')
    doc = doc[1].split('</div></td></tr><tr><td id=submitcell>')

    @texto_traducido = Translate.pasar_a_utf(doc[0].to_s)

end

Espero que te sirva! Si haces una gem con el código avísame.

saludos,
Juan P…

hey! es un código de puta madre, te has repasado bien la API!
si al final lo transformo en gem lo hacemos a pachas
gracias

marze

El 21/05/2007, a las 7:01, Juan P. escribió:

aquí estaba el problem!

“ie” => ‘UTF8’

no sabía que se le podía pasar este parámetro
gracias de nuevo

marze

A mi me había pasado lo mismo al principio, es que ese campo es oculto
en el
formulario de google.

Yo uso FireFox y mirando la información de la pagina, donde dice
formulario
fue que me di cuenta del problema.

saludos,
Juan P…

esa api no parece documentada, no?
siendo de google me parece raro

El 22/05/2007, a las 0:56, Juan P. escribió:

Es que en realidad google no tiene un api para el traductor, mi método
se
comunica directamente con el servidor como si estuvieras en su pagina,
como
cualquier usuario.

si si, es lo mismo que he hecho yo, pero con hpricot…
de todas formas como es un request con ajax funciona bien…

El 22/05/2007, a las 1:07, Juan P. escribió: