Class: I27r::Translator

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/i18n_translation/lib/translator.rb

Instance Method Summary collapse

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