summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-04-20 20:48:07 +0200
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-04-20 22:23:39 +0200
commitbeefd7fc3973320ee6ecc6ac0b6201343ed2549d (patch)
treecac4a617a5234d9b3563105b13b6cce08fd9a0e5
parentffef18a2e81a0fff2c4dbf4c0b78fc54881d06f8 (diff)
gettext: support version 2
GetText version 2 has some significant difference from earlier version. * different syntax to set the default locale path * different syntax to set non-cached mode * different way to handle bound targets Most of the changes are relative to significant functionality split between the GetText submodules (LocalePath, TextDomain etc), so most of the changes are just a matter of moving the defines where appropriate. The bound_targets patch needed to cope with anonymous modules is not needed with gettext >= 2.0.0
-rw-r--r--lib/rbot/load-gettext.rb26
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/rbot/load-gettext.rb b/lib/rbot/load-gettext.rb
index 3eb7c30f..505a28bc 100644
--- a/lib/rbot/load-gettext.rb
+++ b/lib/rbot/load-gettext.rb
@@ -22,25 +22,33 @@ begin
include GetText
- add_default_locale_path(File.join(Irc::Bot::Config.datadir, "../locale/%{locale}/LC_MESSAGES/%{name}.mo"))
+ rbot_locale_path = File.join(Irc::Bot::Config.datadir, "../locale/%{locale}/LC_MESSAGES/%{name}.mo")
+ if gettext_version < [2, 0, 0]
+ add_default_locale_path(rbot_locale_path)
+ else
+ LocalePath.add_default_rule(rbot_locale_path)
+ end
if GetText.respond_to? :cached=
GetText.cached = false
+ elsif TextDomain.respond_to? :cached=
+ TextDomain.cached = false
else
warning 'This version of ruby-gettext does not support non-cached mode; mo files are not reloaded when setting language'
end
bindtextdomain 'rbot'
module GetText
- # patch for ruby-gettext 1.8.0 up to 1.10.0 (and more?) to cope with anonymous
- # modules used by rbot
- # FIXME remove the patch when ruby-gettext is fixed, or rbot switches to named modules
- if !instance_methods.include?('orig_bound_targets')
+ # patch for ruby-gettext 1.x to cope with anonymous modules used by rbot.
+ # bound_targets and related methods are not used nor present in 2.x, and
+ # this patch is not needed
+ if instance_methods.include?('bound_targets') and not instance_methods.include?('orig_bound_targets')
alias :orig_bound_targets :bound_targets
- end
- def bound_targets(*a) # :nodoc:
- bt = orig_bound_targets(*a) rescue []
- bt.empty? ? orig_bound_targets(Object) : bt
+
+ def bound_targets(*a) # :nodoc:
+ bt = orig_bound_targets(*a) rescue []
+ bt.empty? ? orig_bound_targets(Object) : bt
+ end
end
require 'stringio'