http://simultechnology.blendmix.jp/blog/archives/1101
2010 年 6 月 12 日 simultechnology コメントをどうぞ コメント
以前、phpで簡単な辞書アプリを作ったり、twitterの翻訳botを作ったりしたのだけど、その時はgoogleのAPIと英語学習サイトのiknowのAPIを使っていた。
ikowで「ruby」という単語の情報を取得した場合
http://api.iknow.co.jp/items/matching/ruby.xml Google翻訳APIのページ
http://code.google.com/intl/ja/apis/ajaxlanguage/documentation/
今、サーバを止めている状態なので、そのアプリは動いてないんだけど、ちょっとまた翻訳APIを使ってみようと思った。
そこで、以前androidもくもく勉強会でhさんにMicrosoftの翻訳APIはかなり正確だと言われたのを思い出し、試してみた。
Microsoftの翻訳APIを使うには「AD697D10EC7A3751BB125AB58715693EBCB224E2」というようなキーを取得しなければいけないらしい。
参考にさせていただいた以下のページ通りに進めたら、キーの取得も含めて、簡単に試せた。
http://bit.ly/9Bwv20
以下、MicrosoftとGoogleの翻訳APIをrubyで使ってみた。
translate.rb
#code(ruby){{
# -*- coding:utf-8 -*-
require 'net/http' require 'rexml/document' require 'json' # 引数が無い場合はエラー if !ARGV.length raise "1 argument is needed" end # 翻訳対象の文 text = URI.escape(ARGV[0]) h = Net::HTTP.new("api.microsofttranslator.com") response = h.get("/V2/Http.svc/Translate?appid=AD697D10EC7A3751BB125AB58715693EBCB224E2&from=en&to=ja&text=#{text}") if response.message == 'OK' doc = REXML::Document.new(response.body) puts sprintf("Microsoft API : %s", doc.root.text) end h2 = Net::HTTP.new("ajax.googleapis.com") response2 = h2.get("/ajax/services/language/translate?v=1.0&q=#{text}&langpair=en|ja") if response2.message == 'OK' j = JSON.parse(response2.body) puts sprintf("Google API : %s", j["responseData"]["translatedText"]) end
}}