ジョジョの奇妙な冒険→WRYYYと翻訳する翻訳機をRubyCocoaで作る

せっかくMacBookが手元にあるのだから*1Macならではのことがしたいなあと思っていたので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:研究室から支給してもらった