]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/language.rb
Relocate help strings to proper locations, add help for 'mode' command
[user/henk/code/ruby/rbot.git] / lib / rbot / language.rb
index c472c12e5fe282ea6546e824746d08124249e2ce..edb3cafaaf0ade3214385d8ec93ca430a351285a 100644 (file)
@@ -4,24 +4,39 @@ module Language
   class Language
     BotConfig.register BotConfigEnumValue.new('core.language', 
       :default => "english", :wizard => true,
-      :values => Dir.new(Config::DATADIR + "/languages").collect {|f|
-                   f =~ /\.lang$/ ? f.gsub(/\.lang$/, "") : nil
-                 }.compact,   
+      :values => Proc.new{|bot|
+            Dir.new(Config::datadir + "/languages").collect {|f|
+              f =~ /\.lang$/ ? f.gsub(/\.lang$/, "") : nil
+            }.compact
+          },   
       :on_change => Proc.new {|bot, v| bot.lang.set_language v},
       :desc => "Which language file the bot should use")
     
-    def initialize(language)
+    def initialize(bot, language)
+      @bot = bot
       set_language language
     end
+    attr_reader :language
 
     def set_language(language)
-      file = Config::DATADIR + "/languages/#{language}.lang"
+      file = Config::datadir + "/languages/#{language}.lang"
       unless(FileTest.exist?(file))
         raise "no such language: #{language} (no such file #{file})"
       end
       @language = language
       @file = file
       scan
+      return if @bot.plugins.nil?
+      @bot.plugins.core_modules.each { |p|
+        if p.respond_to?('set_language')
+          p.set_language(@language)
+        end
+      }
+      @bot.plugins.plugins.each { |p|
+        if p.respond_to?('set_language')
+          p.set_language(@language)
+        end
+      }
     end
 
     def scan