summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-config/mv_locale.py
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2012-11-07 21:10:44 (GMT)
committerJames Meyer <james.meyer@operamail.com>2012-11-07 21:10:44 (GMT)
commitc6127b6661439b1c7fa2240a102cd4dcb02ddba8 (patch)
treec317a4bd6b3acaf78f9b119ba90c185e96cc01a5 /abs/core/LinHES-config/mv_locale.py
parent5ec18757188fa4a0d90f5f6cf0943fd20bd8be34 (diff)
downloadlinhes_pkgbuild-c6127b6661439b1c7fa2240a102cd4dcb02ddba8.zip
linhes_pkgbuild-c6127b6661439b1c7fa2240a102cd4dcb02ddba8.tar.gz
linhes_pkgbuild-c6127b6661439b1c7fa2240a102cd4dcb02ddba8.tar.bz2
LinHES-config: add support for selecting the lang/country during install.
The lang is then translated to a locale which is then applied to the system by mv_locale. The lang->locale lookup is done inside mv_locale with a static dict. refs #738 refs #100 refs #680
Diffstat (limited to 'abs/core/LinHES-config/mv_locale.py')
-rw-r--r--abs/core/LinHES-config/mv_locale.py89
1 files changed, 89 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..e1bc59c
--- /dev/null
+++ b/abs/core/LinHES-config/mv_locale.py
@@ -0,0 +1,89 @@
+# -*- 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_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")
+ 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)
+