5 BotConfig.register BotConfigEnumValue.new('core.language',
6 :default => "english", :wizard => true,
7 :values => Dir.new(Config::DATADIR + "/languages").collect {|f|
8 f =~ /\.lang$/ ? f.gsub(/\.lang$/, "") : nil
10 :on_change => Proc.new {|bot, v| bot.lang.set_language v},
11 :desc => "Which language file the bot should use")
13 def initialize(language)
17 def set_language(language)
18 file = Config::DATADIR + "/languages/#{language}.lang"
19 unless(FileTest.exist?(file))
20 raise "no such language: #{language} (no such file #{file})"
30 IO.foreach(@file) {|l|
34 @strings[$1] = Array.new
36 elsif(l =~ /^\s*(.*)$/)
37 @strings[current_key] << $1
47 if(@strings.has_key?(key))
48 return @strings[key][rand(@strings[key].length)]
50 raise "undefined language key"
55 File.open(@file, "w") {|file|
56 @strings.each {|key,val|