Sempre pensei em um método que traduzisse uma String, na linguagem mesmo, encapsulado, sem precisar de classes de terceiros, etc. Há algum tempo atrás resolvi fazê-lo em Ruby e ficou guardado um bom tempo, até eu realmente precisar usá-lo, aproveito e mostro a vocês.
require "net/http"; require "uri"; require "hpricot"; class String def translate(from, to, opts={}) params = { "text" => self, "langpair" => "#{from}|#{to}", "ie" => opts.delete(:encode) || "UTF-8", "hl" => "pt-BR" }.merge(opts); text = Net::HTTP.post_form(URI.parse("http://translate.google.com/translate_t"), params).body; Hpricot(text).search("#result_box").inner_html; end end "A simple text to be translated".translate(:en, :pt); #=> "Um simples texto a ser traduzido"
Ele faz uma consulta ao Google Tradutor e retorna o resultado traduzido. O primeiro parâmetro é a abreviação da língua na qual a String foi escrita e o segundo a língua para qual ela será traduzida, há também um terceiro, um hash com dados a serem enviados via POST. Ele usa a biblioteca Hpricot para buscar o trecho correspondente à tradução no documento HTML, poderia ser feito com expressões regulares, mas ficaria feio.
Ho, muito bão isso ae heim…
Rapaz… põe bom nisso! Show de bola!
Fala meu velho… parabens pelo post, muito legal!
Sobre essa biblioteca ‘require “uri”;’ isso é uma gem?? Como faço para instalar…
abraço,
Joao.
I love your site!
_____________________
Experiencing a slow PC recently? Fix it now!
dedicated server europe
Método Para Traduzir String | Bernardo Rufino