ジョジョの奇妙な冒険→WRYYYと翻訳する翻訳機をRubyCocoaで作る
せっかくMacBookが手元にあるのだから*1、Macならではのことがしたいなあと思っていたのでRubyCocoaをさわってみた。
RubyCocoaについてはPsychsさんのすばらしいチュートリアルをまず読むのがいいと思う。
このチュートリアルを見ながらGoogle翻訳を使った翻訳機(= Gtranslateと命名)を作ってみました。できあがった画面は下のとおり。
プルダウンメニューで選択することにより、日英・英日の両方に対応しています。
最初のチュートリアルの通りにボタンを選んで、少しコードを書いただけでこんなのがすぐできてしまうのがすごい。
コントローラーは次のように書いた。
Mechanizeをインストールしていない場合は、gem install mechanizeで。このときにHpricotも入っていなければ一緒にインストールされるはず。
GtranslateController.rb
require 'rubygems' require 'hpricot' require 'mechanize' require 'kconv' class GtranslateController < OSX::NSObject include OSX ib_outlet :window, :originText, :opCombo, :transText def translate(sender) agent = WWW::Mechanize.new agent.user_agent_alias = 'Mac Safari' original_word = @originText.stringValue.to_s.toutf8 page = agent.get("http://www.google.co.jp/translate_t?hl=ja") post_form = page.forms.first post_form['hl'] = "ja" post_form['ie'] = "UTF8" post_form['text'] = original_word case @opCombo.selectedItem.title.to_s when '日→英' post_form['langpair'] = "ja|en" when '英→日' post_form['langpair'] = "en|ja" end search_results = agent.submit(post_form) translate_word = (search_results/"td.almost_half_cell").inner_text @transText.setStringValue(translate_word) end ib_action :translate end
そして最後に
.xcodeproj のあるディレクトリで xcodebuild と打ってビルド完了。
Macをお持ちの方はぜひ"ジョジョの奇妙な冒険"と入れて"WRYYY"と翻訳される快感を味わってください。
Google翻訳を使えば辞書では出てこないような単語もうまく翻訳できる場合もあって便利。単語レベルではなかなかの精度です。
さすがGoogleの統計的機械翻訳。
参考: Googleすげえwwww :F速VIP(・ω・)y-
もっといろんなアイディアやコーディング力があればいろんなことがRubyCocoaでできそうだ。
*1:研究室から支給してもらった