diff options
Diffstat (limited to 'abs/core/LinHES-config/mv_locale.py')
-rw-r--r-- | abs/core/LinHES-config/mv_locale.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/mv_locale.py b/abs/core/LinHES-config/mv_locale.py new file mode 100644 index 0000000..973be31 --- /dev/null +++ b/abs/core/LinHES-config/mv_locale.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +import logging, mv_common +import os, re +config_file = "mv_config" + +lan_map = {'bg':'bg_BG', + 'cs':'cs_CZ', + 'da':'da_DK', + 'de':'de_DE', + 'el':'el_GR', + 'en_ca':'en_CA', + 'en_ca':'en_CA', + 'en_gb':'en_US', + 'en_GB':'en_US', + 'en_us':'en_US', + 'es_es':'es_ES', + 'es':'es_ES', + 'et':'et_EE', + 'fi':'fi_FI', + 'fr':'fr_FR', + 'he':'he_IL', + 'hr':'hr_HR', + 'hu':'hu_HU', + 'it':'it_IT', + 'ja':'ja_JP', + 'nb':'nb_NO', + 'nl':'nl_NL', + 'pl':'pl_PL', + 'pt_br':'pt_BR', + 'pt':'pt_PT', + 'ru':'ru_RU', + 'sv':'sv_SE', + 'zh_cn':'zh_CN', + 'zh_hk':'zh_HK' } + + +def genlocale(locale_list): + logging.info(" Generating locales") + localefile="/etc/locale.gen" + f = open(localefile) + lines = f.readlines() + f.close() + + f = open(localefile,'w') + + for line in lines: + outline = line + for locale in locale_list: + #print locale, line + if locale in line: + outline = line.replace('#','') + f.write(outline) + f.close() + cmd = "/usr/sbin/locale-gen" + mv_common.runcmd(cmd) + + +def update_locale_conf(locale): + logging.info(" Updating /etc/locale.conf") + line='''LOCALE="%s"''' %locale + try: + f = open('/etc/locale.conf',"w") + f.write(line) + f.write("\n") + f.close() + except: + logging.debug("* couldn't update /etc/locale.conf") + + +def setup_locale(systemconfig): + logging.info("____Start of locale/lang config ____") + + if mv_common.read_config(mv_common.module_config,"lang") == False : + logging.info("____Skipping of lang, config disabled____") + return + + try: + language = systemconfig.get("language").lower() + except: + language = "en_us" + + try: + locale = lan_map[language]+".UTF-8" + except: + locale = "en_US.UTF-8" + logging.info(" locale is: %s" %locale) + + genlocale([locale]) + update_locale_conf(locale) + |