Created
October 8, 2011 10:26
Revisions
-
stpnlr created this gist
Oct 8, 2011 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1 @@ ml =GoogleTransliterate.new('poda poda').transliterated_text This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,50 @@ require 'json' require 'open-uri' class GoogleTransliterate API_URL = "http://www.google.com/uds/Gtransliterate" EN_ML_PARAM = "?context=22&langpair=en|ml&key=notsupplied&v=1.0" def initialize(words_array) if words_array.length > 5 raise 'TooManyWords' else @words = words_array end end def param '&q='+@words.join('&q=') end def result @result ||=JSON.parse(open(URI.encode(API_URL+EN_ML_PARAM+param)).read) end def transliterated_text result_str = result if result_str['responseStatus']==200 resp = result_str['responseData'] mal = '' unless resp.nil? result_str['responseData']['transliterations'].each do |trans| mal += (trans['transliteratedWords'][0] unless trans['transliteratedWords'].nil?)||trans['sourceWord'] end end mal else raise result_str['responseDetails'] nil end end end class Transliterator def initialize(source_text) words = source_text.split(/(\W)/) @words = words.each_slice(5) end def result result_text = '' @words.each do |words| ml =GoogleTransliterate.new(words).transliterated_text result_text += ml end result_text end end