- begin
- translation = Timeout.timeout(@bot.config['translator.timeout']) do
- translator.translate(phrase, from, to)
+ watch_for_fail(tname) do
+ begin
+ translation = Timeout.timeout(@bot.config['translator.timeout']) do
+ translator.translate(phrase, from, to)
+ end
+ m.reply(if params[:show_provider]
+ _('%{translation} (provided by %{translator})') %
+ {:translation => translation, :translator => tname.gsub("_", " ")}
+ else
+ translation
+ end)
+
+ rescue Translator::UnsupportedDirectionError
+ m.reply _("%{translator} doesn't support translating from %{source} to %{target}") %
+ {:translator => tname, :source => from, :target => to}
+ rescue Translator::NoTranslationError
+ m.reply _('%{translator} failed to provide a translation') %
+ {:translator => tname}
+ rescue Timeout::Error
+ m.reply _('The translator timed out')