class TranslatorSrt::GoogleTranslate::Service
Constants
- GOOGLE_TRANSLATE_SERVICE_URL
Public Instance Methods
translate(from_lang, to_lang, text)
click to toggle source
# File lib/translator_srt/google_translate/service.rb, line 11 def translate(from_lang, to_lang, text) raise("Missing 'from' language") unless from_lang raise("Missing 'to' language") unless to_lang raise("Missing text for translation") unless text r = call_translate_service(from_lang, to_lang, text) result = JSON.parse(r.gsub('[,', '[')) raise("Translate Server is down") if (!result || result.empty?) result end
Private Instance Methods
call_service(url, q)
click to toggle source
# File lib/translator_srt/google_translate/service.rb, line 39 def call_service url, q accessor = ResourceAccessor.new accessor.get_response url: url, :method => :post, :body => {q: q} end
call_translate_service(from_lang, to_lang, text)
click to toggle source
# File lib/translator_srt/google_translate/service.rb, line 31 def call_translate_service from_lang, to_lang, text url = translate_url(from_lang, to_lang) response = call_service(url, normalize_to_translate(text)) response.body.split(',').collect { |s| s == '' ? "\"\"" : s }.join(",") # fix json object end
normalize_to_translate(text)
click to toggle source
# File lib/translator_srt/google_translate/service.rb, line 45 def normalize_to_translate text text.gsub(":", "#").gsub(",", "##").gsub("-->", "###") end
translate_url(from_lang, to_lang)
click to toggle source
# File lib/translator_srt/google_translate/service.rb, line 27 def translate_url(from_lang, to_lang) "https://#{GOOGLE_TRANSLATE_SERVICE_URL}/translate_a/single?client=t&sl=#{from_lang}&tl=#{to_lang}&hl=en&dt=bd&dt=ex&dt=ld&dt=md&dt=qc&dt=rw&dt=rm&dt=ss&dt=t&dt=at&dt=sw&ie=UTF-8&oe=UTF-8&prev=btn&rom=1&ssel=0&tsel=0" end