Class: Google::Translator

Inherits:
Object
  • Object
show all
Defined in:
lib/google_translate.rb

Defined Under Namespace

Classes: InvalidResponse, MissingFromLanguage, MissingTestText, MissingText, MissingTextLanguage, MissingToLanguage, TranslateServerIsDown

Constant Summary collapse

URL_STRING =
"http://ajax.googleapis.com/ajax/services/language/"
URL2_STRING =
"http://translate.google.com"

Instance Method Summary collapse

Instance Method Details

#detect_language(test_text) ⇒ Object

Raises:



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/google_translate.rb', line 55

def detect_language(test_text)
  raise(MissingTestText) if test_text.nil?

  request = URL_STRING + "detect?v=1.0&q=" + CGI.escape(test_text) 

  begin
    response = call_service(request, [:response_data]) 
    response_data = response[:response_data]

    raise(TranslateServerIsDown) if response.empty?

    response_data
  rescue OpenURI::HTTPError
    raise(TranslateServerIsDown)
  end
end

#supported_languagesObject



72
73
74
# File 'lib/google_translate.rb', line 72

def supported_languages
  call_service2(URL2_STRING , [])
end

#translate(from, to, from_text, options = {}) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/google_translate.rb', line 33

def translate(from, to, from_text, options={})
  raise(MissingFromLanguage) if from.nil?
  raise(MissingToLanguage) if to.nil?
  raise(MissingTextLanguage) if from_text.nil?

  request = URL_STRING + "translate?v=1.0&langpair=#{from}%7C#{to}&q=" + CGI.escape(from_text) 
  
  begin
    response = call_service(request, [:response_status, :response_details, :response_data])

    raise(TranslateServerIsDown) if response.empty?

    raise(InvalidResponse, response[:response_details]) if response[:response_status] != 200 # success

    to_text = response[:response_data]['translatedText']

    (options[:html]) ? CGI.unescapeHTML(to_text) : to_text
  rescue OpenURI::HTTPError
    raise(TranslateServerIsDown)
  end
end