X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Flanguage.rb;h=1a4a889aadc206acff56e83aa92c2f58023e42db;hb=1676abaf61c9b6c40714e00d6637e3a73d8b527b;hp=ee6746d6709c139965bd3b047570e0fff8233dfe;hpb=992ef2edbf3eed7cb1d7c4c22f72cd203aff2aa5;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/language.rb b/lib/rbot/language.rb index ee6746d6..1a4a889a 100644 --- a/lib/rbot/language.rb +++ b/lib/rbot/language.rb @@ -1,21 +1,27 @@ module Irc +module Language class Language - BotConfig.register('core.language', - :default => "english", :type => :enum, - :values => Dir.new(Config::DATADIR + "/languages").collect {|f| - f =~ /\.lang$/ ? f.gsub(/\.lang$/, "") : nil - }.compact, + 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, file="") - @language = language - if file.empty? - file = Config::DATADIR + "/languages/#{@language}.lang" - end + 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 @@ -60,3 +66,4 @@ module Irc end end +end