Set default lang and create default locale files early
If you import locale before the file(s) get created, you end up with a
traceback from locale that says:
Error: unsupported locale setting
And this happens no matter what the locale is.
We used to create the locale files for the default lang in loader, so
now let's have anaconda declare a default locale and build its locale
data before we import locale.
---
anaconda | 7 ++++++-
pyanaconda/constants.py | 3 +++
pyanaconda/language.py | 6 +++---
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/anaconda b/anaconda
index 0094ef9..a123bee 100755
--- a/anaconda
+++ b/anaconda
@@ -614,7 +614,7 @@ if __name__ == "__main__":
# pull this in to get product name and versioning
from pyanaconda import product
- from pyanaconda.constants import ROOT_PATH
+ from pyanaconda.constants import ROOT_PATH, DEFAULT_LANG
from pyanaconda import isys
isys.initLog()
@@ -625,6 +625,11 @@ if __name__ == "__main__":
from pyanaconda import vnc
from pyanaconda import kickstart
ANACONDA_CLEANUP = "anaconda-cleanup"
ROOT_PATH = "/mnt/sysimage"
+
+# NOTE: this should be LANG.CODESET, e.g. en_US.UTF-8
+DEFAULT_LANG = "en_US.UTF-8"
diff --git a/pyanaconda/language.py b/pyanaconda/language.py
index cb90085..f49c041 100644
--- a/pyanaconda/language.py
+++ b/pyanaconda/language.py
@@ -26,7 +26,7 @@ import string
import locale
import gettext
-from pyanaconda.constants import ROOT_PATH
+from pyanaconda.constants import ROOT_PATH, DEFAULT_LANG
import localeinfo
from simpleconfig import SimpleConfigFile
import system_config_keyboard.keyboard as keyboard
@@ -51,7 +51,7 @@ class Language(object):
self._instLang = value
# If we're running in text mode, value may not be a supported language
- # to display. We need to default to en_US.UTF-8 for now.
+ # to display. Fall back to the default for now.
if self.displayMode == 't':
for (lang, info) in self.localeInfo.iteritems():
if lang == self._instLang and info[2] == "False":
@@ -117,7 +117,7 @@ class Language(object):
systemLang = property(lambda s: s._systemLang, lambda s, v: s._setSystemLang(v))