X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Flanguage.rb;h=edb3cafaaf0ade3214385d8ec93ca430a351285a;hb=c705ba5a89cd7b5c19677f4950c9784828ffc5c6;hp=d48607b83bef5dd4636bffa3fd9244a4da316f77;hpb=d30940cb5ff75cf7eab81f6a588b3b5297a762ad;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/language.rb b/lib/rbot/language.rb index d48607b8..edb3cafa 100644 --- a/lib/rbot/language.rb +++ b/lib/rbot/language.rb @@ -1,26 +1,42 @@ module Irc +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 @@ -63,3 +79,4 @@ module Irc end end +end