Sha256: cd3df0e6670eada08568c4576c811b014abd340fcb84b697a8b3d08ced051df8

Contents?: true

Size: 703 Bytes

Versions: 3

Compression:

Stored size: 703 Bytes

Contents

require 'open-uri'

module I18nModelsGeneratorModule
  class Translator
    def initialize(lang)
      @lang, @cache = lang, {}
    end

    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 = ActiveSupport::JSON.decode(json)
        return @cache[word] = result['responseData']['translatedText'] if result['responseStatus'] == 200
      rescue => e
        puts %Q[failed to translate "#{word}" into "#{@lang}" language.]
        word
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
amatsuda-i18n_generators-0.0.6 generators/i18n_models/lib/translator.rb
amatsuda-i18n_generators-0.0.7 generators/i18n_models/lib/translator.rb
amatsuda-i18n_generators-0.0.8 generators/i18n_models/lib/translator.rb