英語→日本語は簡単にできるが、
日本語→英語が文字化けしてしまう。
どうもnet/httpなどが、utf-8の文章をsjis
で解釈してしまっているのが問題なのかもしれないが
よくわからない。
とりあえず、今のところmechanaize(ブラウザのような
イメージでwebを操れるクラス)を利用して、ブラウザを
IEに偽装したらうまくいくようになった。
使いすぎるとどうなるかは予想がつかない。
結構無理やり。本家のAPIでないので。
mechanizeは
gem install mechanize
でインストール可能です。
hapricot
gem install hpricot
ruby gems はここから入手
http://rubyforge.org/frs/?group_id=126
こいつを参照。
http://blog.himika.com/2010/05/cygwinruby-gem.html
cygwinの場合は、libxmlで詰まることがあるので、
setup.exeの中の、libsの下にある
それらしいものをインストールする。
→develの中のそれらしいやつも必要 libxml2
あと、gccもmakeも必要。
libの中の
libxml2-dvel
libxslt-dvel
みたいのが必要。
require 'rubygems' require 'hpricot' require 'mechanize' require 'kconv' require 'uri' $KCODE="u" text="そのネコが好きです。" puts text; #検索文字列のURLエンコード str2=URI.encode(text.toutf8) str3= "/translate_t?hl=ja&tl=en&text="+str2 #Mechanize(ブラウザ)の初期化 agent = WWW::Mechanize.new #新しいバージョンでは、 # agent=Mechanize.net #ブラウザをIEに偽装 agent.user_agent_alias='Windows IE 7' #URLをget response= agent.get('http://translate.google.com'+str3).body #getしたtextのxml解析 doc = Hpricot(response) puts (doc/"#result_box").inner_text.toutf8
今回の翻訳は。
http://jugyo.org/blog/2650
を参照。これを日本語→英語に対応させた。
Javascriptで本当のAPIからちゃんと作ったものは、
http://d.hatena.ne.jp/unageanu/20090829/1251530725
だそうです。先輩よりきく。
mechanizeについては、
http://d.hatena.ne.jp/kitamomonga/20081209/kaisetsu_for_ver_0_9_ruby_www_mechanize