]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/load-gettext.rb
Update gettext support
[user/henk/code/ruby/rbot.git] / lib / rbot / load-gettext.rb
index d45263e1c2d53de2df2333419c88527242a16c21..252e1e344f1830d8aa5e41f461778ed6215ce61d 100644 (file)
@@ -29,7 +29,11 @@ end
 
   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
@@ -43,7 +47,29 @@ end
   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.