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
end
end
+end