Google翻訳APIで文字列を翻訳するモジュールを書いた
Google翻訳APIで文字列を翻訳するモジュールを書きました。
- 対象とする文字列と翻訳元/翻訳先言語を指定して呼び出すと、翻訳された文字列が返されます。
- 使用可能な言語はこの辺を参照。
- プロキシが必要なら「Translate.set_proxy」で事前に設定してください。
require 'rubygems' require 'json/lexer' require 'httpclient' require 'uri' #Google 翻訳APIで文字列を翻訳する module Translate URL = "http://ajax.googleapis.com/ajax/services/language/translate" @@proxy = nil #プロキシ設定を行なう。 def self.set_proxy( proxy ) @@proxy = proxy @@client = nil end #文字列を指定された言語に翻訳する。 def self.translate( q, from, to ) @@client ||= HTTPClient.new( @@proxy, "Client") result = @@client.get( "#{URL}?v=1.0&q=#{URI.encode(q)}&langpair=#{from}%7C#{to}" ) parsed = JSON::Lexer.new(result.content).nextvalue raise parsed["responseDetails"].to_s if parsed["responseStatus"] != 200 parsed["responseData"]["translatedText"] end end class String # 文字列を日本語と見なして英語に翻訳する。 def to_en Translate.translate( self, "ja", "en" ) end end #呼び出しサンプル Translate.set_proxy( "http://proxy.com:80" ) # 必要であれば。 puts "文字列を日本語と見なして英語に翻訳する".to_en
実行結果です。
Considers to be translated into English and Japanese text
さて、これで「それっぽい英語リソースファイル」を作るかな。