]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/language.rb
Fix help (one more time)
[user/henk/code/ruby/rbot.git] / lib / rbot / language.rb
index 9788b2bb4908e63e2b09c3a80704b63e25888465..1a4a889aadc206acff56e83aa92c2f58023e42db 100644 (file)
@@ -1,14 +1,27 @@
 module Irc
+module Language
 
   class Language
-    def initialize(language, file="")
-      @language = language
-      if file.empty?
-        file = File.dirname(__FILE__) + "/languages/#{@language}.lang"
-      end
+    BotConfig.register BotConfigEnumValue.new('core.language', 
+      :default => "english", :wizard => true,
+      :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)
+      set_language language
+    end
+
+    def set_language(language)
+      file = Config::datadir + "/languages/#{language}.lang"
       unless(FileTest.exist?(file))
-        raise "no such language: #{@language} (no such file #{file})"
+        raise "no such language: #{language} (no such file #{file})"
       end
+      @language = language
       @file = file
       scan
     end
@@ -53,3 +66,4 @@ module Irc
   end
 
 end
+end