Blob Blame History Raw
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