end
end
+ def languages
+ @languages ||= @translators.map { |t| t.last.directions.keys }.flatten.uniq
+ end
+
def update_default
@default_translators = bot.config['translator.default_list'] & @translators.keys
end
def cmd_translator(m, params)
params[:to] = @bot.config['translator.destination'] if params[:to].nil?
- translator = @default_translators.find {|t| @translators[t].support?(params[:from], params[:to])}
+ # Use google translate as translator if source language has not been given
+ # and auto-detect it
+ if params[:from].nil?
+ params[:from] = "auto"
+ translator = "google_translate"
+ else
+ translator = @default_translators.find {|t| @translators[t].support?(params[:from], params[:to])}
+ end
+
if translator
cmd_translate m, params.merge({:translator => translator, :show_provider => true})
else
end
m.reply(if params[:show_provider]
_('%{translation} (provided by %{translator})') %
- {:translation => translation, :translator => tname}
+ {:translation => translation, :translator => tname.gsub("_", " ")}
else
translation
end)
end
plugin = TranslatorPlugin.new
-plugin.map 'translator :from [:to] *phrase',
- :action => :cmd_translator, :thread => true
+req = Hash[*%w(from to).map { |e| [e.to_sym, /#{plugin.languages.join("|")}/] }.flatten]
+
+plugin.map 'translate [:from] [:to] *phrase',
+ :action => :cmd_translator, :thread => true, :requirements => req
+plugin.map 'translator [:from] [:to] *phrase',
+ :action => :cmd_translator, :thread => true, :requirements => req