From b64be129f02b7238030ea2f9e160118894b41174 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sat, 25 Aug 2007 23:05:32 +0000 Subject: [PATCH] gettext support: initial works for language -> locale mappings --- lib/rbot/language.rb | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/lib/rbot/language.rb b/lib/rbot/language.rb index edb3cafa..e77bb90a 100644 --- a/lib/rbot/language.rb +++ b/lib/rbot/language.rb @@ -1,6 +1,32 @@ +#-- vim:sw=2:et +#++ +# +# :title: Language module for rbot +# +# This module takes care of language handling for rbot: +# setting the core.language value, loading the appropriate +# .lang file etc. +# module Irc module Language + # This constant has holds the mapping + # from long language names to usual POSIX + # locale specifications + Lang2Locale = { + :english => 'en_GB', + :british_english => 'en_GB', + :american_english => 'en_US', + :italian => 'it', + :french => 'fr', + :german => 'de', + :dutch => 'nl', + :japanese => 'ja', + :russian => 'ru', + :traditional_chinese => 'zh_TW', + :simplified_chinese => 'zh_CN' + } + class Language BotConfig.register BotConfigEnumValue.new('core.language', :default => "english", :wizard => true, @@ -16,9 +42,18 @@ module Language @bot = bot set_language language end - attr_reader :language + attr_reader :language, :locale def set_language(language) + l = language.to_s.gsub(/\s+/,'_').intern + if Lang2Locale.key?(l) + @locale = Lang2Locale[l] + debug "locale set to #{@locale}" + setlocale(@locale) + else + warn "Unable to set locale, unknown language #{l}" + end + file = Config::datadir + "/languages/#{language}.lang" unless(FileTest.exist?(file)) raise "no such language: #{language} (no such file #{file})" -- 2.39.2