include GetText
- rbot_locale_path = File.join(Irc::Bot::Config.datadir, "../locale/%{locale}/LC_MESSAGES/%{name}.mo")
+ rbot_locale_path = File.join(Irc::Bot::Config.datadir,
+ gettext_version < [2, 2, 0] ?
+ "../locale/%{locale}/LC_MESSAGES/%{name}.mo" :
+ "../locale/%{lang}/LC_MESSAGES/%{name}.mo")
+
if gettext_version < [2, 0, 0]
add_default_locale_path(rbot_locale_path)
else
else
warning 'This version of ruby-gettext does not support non-cached mode; mo files are not reloaded when setting language'
end
- bindtextdomain 'rbot'
+
+ begin
+ bindtextdomain 'rbot'
+ rescue NoMethodError => e
+ error e
+ warning 'Trying to work around RubyGems/GetText incompatibility'
+ module ::Gem
+ def self.all_load_paths
+ result = []
+
+ Gem.path.each do |gemdir|
+ each_load_path all_partials(gemdir) do |load_path|
+ result << load_path
+ end
+ end
+
+ result
+ end
+ end
+ retry
+ end
+
+
module GetText
# patch for ruby-gettext 1.x to cope with anonymous modules used by rbot.
opts = {:with_messages => false, :with_paths => false, :out => STDOUT}.merge(options)
ret = nil
# this is for 2.1.0
- TextDomainManager.each_textdomains(self) {|textdomain, lang|
+ TextDomainManager.each_text_domains(self) {|textdomain, lang|
opts[:out].puts "TextDomain name: #{textdomain.name.inspect}"
opts[:out].puts "TextDomain current locale: #{lang.to_s.inspect}"
opts[:out].puts "TextDomain current mo path: #{textdomain.instance_variable_get(:@locale_path).current_path(lang).inspect}"