Class: I27r::Translator
- Inherits:
-
Object
- Object
- I27r::Translator
- Defined in:
- lib/generators/i18n_translation/lib/translator.rb
Instance Method Summary collapse
-
#initialize(lang) ⇒ Translator
constructor
A new instance of Translator.
- #translate(word) ⇒ Object
Constructor Details
#initialize(lang) ⇒ Translator
Returns a new instance of Translator.
6 7 8 |
# File 'lib/generators/i18n_translation/lib/translator.rb', line 6 def initialize(lang) @lang, @cache = lang, {} end |
Instance Method Details
#translate(word) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/generators/i18n_translation/lib/translator.rb', line 10 def translate(word) return @cache[word] if @cache[word] begin w = CGI.escape ActiveSupport::Inflector.humanize(word) json = OpenURI.open_uri("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=#{w}&langpair=en%7C#{@lang}").read result = if RUBY_VERSION >= '1.9' ::JSON.parse json else ActiveSupport::JSON.decode(json) end result['responseStatus'] == 200 ? (@cache[word] = result['responseData']['translatedText']) : word rescue => e puts %Q[failed to translate "#{word}" into "#{@lang}" language.] word end end |