diff -rup system-config-language-1.3.5-old/src/language_backend.py system-config-language-1.3.5/src/language_backend.py
--- system-config-language-1.3.5-old/src/language_backend.py 2012-11-02 17:33:07.242616808 +0530
+++ system-config-language-1.3.5/src/language_backend.py 2012-11-02 17:33:23.235617174 +0530
@@ -37,6 +37,9 @@ class LanguageBackend:
if os.access(path, os.R_OK) == 0:
return None, None
else:
+ locale_path = '/etc/locale.conf'
+ if os.access(locale_path, os.R_OK) != 0:
+ path = locale_path
fd = open(path, "r")
self.originalFile = fd.readlines()
fd.close()
@@ -97,40 +100,65 @@ class LanguageBackend:
return lines
def writeI18N(self, defaultLang, modules, sysfont, sysfontacm):
- fd = open('/etc/sysconfig/i18n', 'w')
- if self.originalFile:
- for line in self.originalFile:
- if line[:5] == "LANG=":
- fd.write('LANG="' + defaultLang + '"\n')
- #XXX - horrible hack to make simplified chinese work
- if defaultLang == "zh_CN.GB18030":
- fd.write('LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"\n')
-
- elif line[:8] == "SYSFONT=":
- fd.write('SYSFONT="' + sysfont + '"\n')
- elif line[:11] == 'SYSFONTACM=':
- fd.write('SYSFONTACM="' + sysfontacm + '"\n')
- elif line[:9] == 'LANGUAGE=':
- #XXX - horrible hack to make simplified chinese work
- if defaultLang != "zh_CN.GB18030":
- pass
+ locale_path = '/etc/locale.conf'
+ if os.access(locale_path, os.R_OK) != 0:
+ fd = open(locale_path, 'w')
+ if self.originalFile:
+ for line in self.originalFile:
+ if line[:5] == "LANG=":
+ fd.write('LANG="' + defaultLang + '"\n')
+ #XXX - horrible hack to make simplified chinese work
+ if defaultLang == "zh_CN.GB18030":
+ fd.write('LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"\n')
+ elif line[:9] == 'LANGUAGE=':
+ #XXX - horrible hack to make simplified chinese work
+ if defaultLang != "zh_CN.GB18030":
+ pass
+ else:
+ fd.write(line)
+ else:
+ fd.write('LANG="' + defaultLang + '"\n')
+ vsconsole_file = "/etc/vconsole.conf"
+ fd = open(vsconsole_file, "r")
+ vsconsole_data = fd.readlines()
+ fd.close()
+ fd = open(vsconsole_file, "w")
+ for line in vsconsole_data:
+ if line[:5] == "FONT=":
+ fd.write('FONT="' + sysfont + '"\n')
else:
fd.write(line)
-
+ fd.close()
else:
- fd.write('LANG="' + defaultLang + '"\n')
- if modules:
- fd.write('SUPPORTED="' + modules + '"\n')
- fd.write('SYSFONT="' + sysfont + '"\n')
- if sysfontacm != "utf8":
- fd.write('SYSFONTACM="' + sysfontacm + '"\n')
-
- #XXX - horrible hack to make simplified chinese work
- if defaultLang == "zh_CN.GB18030":
- fd.write('LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"\n')
-
-
- fd.close()
+ fd = open('/etc/sysconfig/i18n', 'w')
+ if self.originalFile:
+ for line in self.originalFile:
+ if line[:5] == "LANG=":
+ fd.write('LANG="' + defaultLang + '"\n')
+ #XXX - horrible hack to make simplified chinese work
+ if defaultLang == "zh_CN.GB18030":
+ fd.write('LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"\n')
+ elif line[:8] == "SYSFONT=":
+ fd.write('SYSFONT="' + sysfont + '"\n')
+ elif line[:11] == 'SYSFONTACM=':
+ fd.write('SYSFONTACM="' + sysfontacm + '"\n')
+ elif line[:9] == 'LANGUAGE=':
+ #XXX - horrible hack to make simplified chinese work
+ if defaultLang != "zh_CN.GB18030":
+ pass
+ else:
+ fd.write(line)
+ else:
+ fd.write('LANG="' + defaultLang + '"\n')
+ if modules:
+ fd.write('SUPPORTED="' + modules + '"\n')
+ fd.write('SYSFONT="' + sysfont + '"\n')
+ if sysfontacm != "utf8":
+ fd.write('SYSFONTACM="' + sysfontacm + '"\n')
+ #XXX - horrible hack to make simplified chinese work
+ if defaultLang == "zh_CN.GB18030":
+ fd.write('LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"\n')
+ fd.close()
# hack for writing information to grub.conf, thanks to Hans de Goede <hdegoede@redhat.com> for mentioning this.
# resolves RHBZ bug # 545499