Class: Oversetter::Glosbe::Translate
- Inherits:
-
Object
- Object
- Oversetter::Glosbe::Translate
- Defined in:
- lib/oversetter/glosbe/translate.rb
Overview
Fetches translations from Glosbe.
Instance Method Summary collapse
-
#authors(authors) ⇒ Object
Prints a list of translation authors.
-
#entities(result) ⇒ Object
Replaces HTML entities w/ UTF-8 characters.
- #get_trans(search, params) ⇒ Object
-
#mean(mean) ⇒ Object
Meaning handler.
-
#phrase(phrase) ⇒ Object
Phrase handler.
-
#quote(result) ⇒ Object
Replaces " HTML entity w/ character escapes for JSON.
Instance Method Details
#authors(authors) ⇒ Object
Prints a list of translation authors.
74 75 76 77 78 79 |
# File 'lib/oversetter/glosbe/translate.rb', line 74 def () .map { |k,v| source = v puts Rainbow("Author|#{source['N']}|URL|#{source['url']}").bright } end |
#entities(result) ⇒ Object
Replaces HTML entities w/ UTF-8 characters.
65 66 67 68 69 70 |
# File 'lib/oversetter/glosbe/translate.rb', line 65 def entities(result) Encoding.default_external = "UTF-8" coder = HTMLEntities.new result = coder.decode(result.force_encoding('UTF-8')) return result end |
#get_trans(search, params) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/oversetter/glosbe/translate.rb', line 12 def get_trans(search, params) func, result = 'translate', nil tran = Oversetter::Glosbe.new result = tran.get_word(search, func, params, result) if result =~ /"/i q = Oversetter::Glosbe::Translate.new q.quote(result) end if result =~ /&[a-z]*;/i ent = Oversetter::Glosbe::Translate.new ent.entities(result) end result = MultiJson.load(result) if result['result'] == 'ok' st = { 'searchterm' => URI.decode(search) } type = { 'type' => 'translation' } Oversetter.tofile(st) Oversetter.tofile(type) = result['authors'] if params[:auth] == true a = Oversetter::Glosbe::Translate.new a.() end label = 'Translation' Oversetter.label(label) tuc = result['tuc'] #array of hashes x, y = 0, tuc.length - 1 while x <= y item = tuc[x] mean = item['meanings'] #array of hashes if mean != nil m = Oversetter::Glosbe::Translate.new m.mean(mean) end phrase = item['phrase'] #hash if phrase != nil p = Oversetter::Glosbe::Translate.new p.phrase(phrase) end x += 1 end end end |
#mean(mean) ⇒ Object
Meaning handler.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/oversetter/glosbe/translate.rb', line 83 def mean(mean) a, b = 0, mean.length - 1 while a <= b meaning = mean[a] #hash mtext = meaning['text'] mlang = meaning['language'] print Rainbow("Meaning|").bright puts "#{mtext}|#{mlang}|" mt = { 'meaning' => mtext } ml = { 'language' => mlang } Oversetter.tofile(mt) Oversetter.tofile(ml) a += 1 end end |
#phrase(phrase) ⇒ Object
Phrase handler.
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/oversetter/glosbe/translate.rb', line 101 def phrase(phrase) ptext = phrase['text'] plang = phrase['language'] print Rainbow("Phrase|").bright print "#{ptext}|#{plang}|" pt = { 'phrase' => ptext } pl = { 'language' => plang } Oversetter.tofile(pt) Oversetter.tofile(pl) end |
#quote(result) ⇒ Object
Replaces " HTML entity w/ character escapes for JSON.
58 59 60 61 |
# File 'lib/oversetter/glosbe/translate.rb', line 58 def quote(result) result = result.gsub('"', "\\\"") return result end |