X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fload-gettext.rb;h=e95d406837ccecceee52d43af7dcc1f792c4fef1;hb=bbf05f99728a39280a19d60cc428a40b2f094ce5;hp=8a74a1d1d31af52db4560503e772f4b4ab69593e;hpb=dda088467e4cfdd776d291396f596395e641bbc2;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/load-gettext.rb b/lib/rbot/load-gettext.rb index 8a74a1d1..e95d4068 100644 --- a/lib/rbot/load-gettext.rb +++ b/lib/rbot/load-gettext.rb @@ -1,4 +1,9 @@ -# load gettext module and provide fallback in case of failure +#-- vim:sw=2:et +#++ +# +# :title: GetText interface for rbot +# +# Load gettext module and provide fallback in case of failure class GetTextVersionError < Exception end @@ -9,12 +14,16 @@ begin gettext_version = GetText::VERSION.split('.').map {|n| n.to_i} include Comparable # required for Array#between? - raise GetTextVersionError unless gettext_version.between? [1, 8, 0], [1, 10, 0] + unless gettext_version.between? [1, 8, 0], [1, 10, 0] + raise GetTextVersionError, "Unsupported ruby-gettext version installed: #{gettext_version.join '.'}; supported versions are 1.8.0-1.10.0" + end require 'gettext' include GetText + add_default_locale_path(File.join(Irc::Config.datadir, "../locale/%{locale}/LC_MESSAGES/%{name}.mo")) + bindtextdomain 'rbot' module GetText @@ -27,20 +36,28 @@ begin def bound_targets(*a) # :nodoc: orig_bound_targets(*a) rescue orig_bound_targets(Object) end - end - begin require 'stringio' - gettext_info = StringIO.new - current_textdomain_info(:out=>gettext_info) # fails sometimes - debug 'using ruby-gettext' - gettext_info.string.each_line {|l| debug l} - rescue Exception - warn "ruby-gettext was loaded but appears to be non-functional. maybe an mo file doesn't exist for your locale." + + # This method is used to output debug information on the GetText + # textdomain, and it's called by the language setting routines + # in rbot + def rbot_gettext_debug + begin + gettext_info = StringIO.new + current_textdomain_info(:out => gettext_info) # fails sometimes + rescue Exception + warning "gettext failed to set call textdomain info. maybe an mo file doesn't exist for your locale." + ensure + gettext_info.string.each_line { |l| debug l} + end + end end + log "gettext loaded" + rescue LoadError, GetTextVersionError - warn 'ruby-gettext package not available, or its version is unsupported; translations are disabled' + warn "failed to load ruby-gettext package: #{$!}; translations are disabled" # dummy functions that return msg_id without translation def _(s)