diff options
author | Erik Troan <ewt@redhat.com> | 2001-01-25 04:41:33 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 2001-01-25 04:41:33 +0000 |
commit | 6388b600842cdb0aae71b62f24d4b87bf28bef5c (patch) | |
tree | 0eee1dde7402843943ada0b63fa0dda018e59eb4 | |
parent | 2614338022649458a0f95a6382ad89a2763caeae (diff) | |
download | anaconda-6388b600842cdb0aae71b62f24d4b87bf28bef5c.tar.gz anaconda-6388b600842cdb0aae71b62f24d4b87bf28bef5c.tar.xz anaconda-6388b600842cdb0aae71b62f24d4b87bf28bef5c.zip |
more language changes -- why not?
-rw-r--r-- | comps.py | 1 | ||||
-rwxr-xr-x | gui.py | 30 | ||||
-rw-r--r-- | iw/keyboard_gui.py | 2 | ||||
-rw-r--r-- | iw/language_gui.py | 5 | ||||
-rw-r--r-- | text.py | 20 | ||||
-rw-r--r-- | textw/timezone_text.py | 1 | ||||
-rw-r--r-- | todo.py | 50 |
7 files changed, 54 insertions, 55 deletions
@@ -350,6 +350,7 @@ class ComponentSet: if tags and "lang" not in tags: newTruth = 1 else: + #print "check", l, "in", langs if len(l) != 2: raise ValueError, "too many arguments for lang" if l[1] and l[1][0] == "!": @@ -1,6 +1,8 @@ import os os.environ["PYGTK_FATAL_EXCEPTIONS"] = "1" os.environ["GNOME_DISABLE_CRASH_DIALOG"] = "1" +# msw says this is a good idea +os.environ["LC_ALL"] = "C" from gtk import * from gtk import _root_window from _gtk import gtk_set_locale @@ -374,29 +376,21 @@ class InstallControlWindow: return self.lang def setLanguage (self, lang): - newlangs = [lang] - - if len(lang) > 2: - newlangs.append(lang[:2]) - self.lang = lang - - os.environ["LC_ALL"] = lang - os.environ["LANG"] = lang - self.locale = lang[:2] - - cat.setlangs (newlangs) + self.todo.instTimeLanguage.setRuntimeLanguage(lang) gtk_set_locale () gtk_rc_init () found = 0 - for l in newlangs: + for l in self.todo.instTimeLanguage.getCurrentLangSearchList(): if os.access ("/etc/gtk/gtkrc." + l, os.R_OK): rc_parse("/etc/gtk/gtkrc." + l) found = 1 if not found: rc_parse("/etc/gtk/gtkrc") + if not self.__dict__.has_key('window'): return + self.window.reset_rc_styles () # XXX recreate html widget to set new locale @@ -654,12 +648,7 @@ class InstallControlWindow: self.ii = ii self.todo = todo self.steps = steps - if os.environ.has_key ("LC_ALL"): - self.locale = os.environ["LC_ALL"][:2] - self.lang = os.environ["LC_ALL"] - else: - self.locale = "C" - self.lang = "en_US" + self.setLanguage(todo.instTimeLanguage.getCurrent()) def keyRelease (self, window, event): if ((event.keyval == KP_Delete or event.keyval == Delete) @@ -937,12 +926,9 @@ class InstallControlState: text = None if self.htmlFile: file = self.htmlFile - langs = cat.getlangs() - if not langs or langs[0] == "en_US": - langs = [ 'C' ] for path in self.searchPath: - for lang in langs: + for lang in self.todo.instTimeLanguage.getCurrentLangSearchList(): try: text = open("%s/help/%s/s1-help-screens-%s.html" % (path, lang, file)).read () diff --git a/iw/keyboard_gui.py b/iw/keyboard_gui.py index beab39646..08201608e 100644 --- a/iw/keyboard_gui.py +++ b/iw/keyboard_gui.py @@ -100,6 +100,7 @@ class KeyboardWindow (InstallWindow): self.modelList.connect_after ("draw", moveto) self.modelList.thaw () sw.add (self.modelList) + sw.set_policy (POLICY_NEVER, POLICY_AUTOMATIC) box.pack_start (sw, TRUE) box.pack_start (GtkLabel (_("Layout")), FALSE) @@ -119,6 +120,7 @@ class KeyboardWindow (InstallWindow): self.layoutList.connect_after ("draw", moveto) self.layoutList.thaw () sw.add (self.layoutList) + sw.set_policy (POLICY_NEVER, POLICY_AUTOMATIC) box.pack_start (sw, TRUE) box.pack_start (GtkLabel (_("Dead Keys")), FALSE) diff --git a/iw/language_gui.py b/iw/language_gui.py index 902903d9d..f19209b48 100644 --- a/iw/language_gui.py +++ b/iw/language_gui.py @@ -24,7 +24,7 @@ class LanguageWindow (InstallWindow): def getNext (self): if self.lang: - self.icw.setLanguage (self.todo.instTimeLanguage.getLangNick(self.lang)) + self.icw.setLanguage (self.lang) #--Go ahead and pull the release notes into memory. This allows them to be viewed #--during package installation @@ -77,8 +77,7 @@ class LanguageWindow (InstallWindow): n = 0 for locale in self.languages: row = self.language.append ((locale,)) - nick = self.todo.instTimeLanguage.getLangNick(locale) - if nick == self.icw.getLanguage (): + if locale == self.todo.instTimeLanguage.getCurrent(): self.lang = locale default = n n = n + 1 @@ -72,7 +72,6 @@ class LanguageWindow: if (button == string.lower(_("Back"))): return INSTALL_BACK choice = languages[choice] - lang = todo.instTimeLanguage.getLangNick(choice) if (todo.setupFilesystems and choice == "Japanese" and not isys.isPsudoTTY(0)): @@ -91,12 +90,7 @@ class LanguageWindow: screen.finish() os.execv ("/sbin/loader", args) - os.environ["LC_ALL"] = lang - os.environ["LANG"] = lang - newlangs = [lang] - if len(lang) > 2: - newlangs.append(lang[:2]) - cat.setlangs (newlangs) + todo.instTimeLanguage.setRuntimeLanguage(choice) if not todo.serial: map = todo.instTimeLanguage.getFontMap(choice) @@ -857,12 +851,8 @@ class ProgressWindow: class InstallInterface: def helpWindow(self, screen, key, firstTime = 1): try: - langs = cat.getlangs() - if not langs or langs[0] == "en_US": - langs = [ 'C' ] - f = None - for lang in langs: + for lang in self.todo.instTimeLanguage.getCurrentLangSearchList(): fn = "/usr/share/anaconda/help/%s/s1-help-screens-%s.txt" \ % (lang, key) try: @@ -877,7 +867,7 @@ class InstallInterface: if not f: if firstTime: - return self.helpWindow(screen, "helponhelp", firstTime = 0) + return self.helpWindow(screen, "helponhelp", todo, firstTime = 0) else: ButtonChoiceWindow(screen, _("Help not available"), _("No help is available for this install."), @@ -997,8 +987,6 @@ class InstallInterface: self.dir = 1 signal.signal(signal.SIGINT, signal.SIG_IGN) signal.signal(signal.SIGTSTP, signal.SIG_IGN) - if os.environ.has_key ("LC_ALL"): - cat.setlangs ([os.environ["LC_ALL"][:2]]) def __del__(self): self.screen.finish() @@ -1007,6 +995,8 @@ class InstallInterface: if todo.serial: self.screen.suspendCallback(spawnShell, self.screen) + self.todo = todo + if todo.reconfigOnly: self.commonSteps = [ [N_("Welcome"), ReconfigWelcomeWindow, diff --git a/textw/timezone_text.py b/textw/timezone_text.py index 978a5dc42..f96cbcacb 100644 --- a/textw/timezone_text.py +++ b/textw/timezone_text.py @@ -64,6 +64,7 @@ class TimezoneWindow: (default, asUtc, asArc) = rc else: default = todo.instTimeLanguage.getDefaultTimeZone() + asUtc = 0 bb = ButtonBar(screen, [(_("OK"), "ok"), (_("Back"), "back")]) t = TextboxReflowed(30, @@ -25,6 +25,7 @@ from mouse import Mouse from xf86config import XF86Config import errno import raid +from translate import cat import timer import fstab import time @@ -213,6 +214,18 @@ class Desktop (SimpleConfigFile): def set (self, desktop): self.info ['DESKTOP'] = desktop +def expandLangs(str): + langs = [str] + # remove charset ... + if '.' in str: + langs.append(string.split(str, '.')[0]) + + # also add 2 character language code ... + if len(str) > 2: + langs.append(str[:2]) + + return langs + class InstallTimeLanguage: def __init__ (self): @@ -279,6 +292,9 @@ class InstallTimeLanguage: def available (self): return self.langList + def getCurrentLangSearchList(self): + return expandLangs(self.langNicks[self.getCurrent()]) + ['C'] + def getCurrent(self): if os.environ.has_key('LANG'): what = os.environ['LANG'] @@ -286,19 +302,19 @@ class InstallTimeLanguage: what = 'en_US' return self.getLangNameByNick(what) -class Language (SimpleConfigFile): + def setRuntimeLanguage(self, name): + lang = self.langNicks[name] - def rpmifyLang(self, str): - langs = [str] - # remove charset ... - if '.' in str: - langs.append(string.split(str, '.')[0]) + #os.environ["LC_ALL"] = lang + os.environ["LANG"] = lang + os.environ["LC_NUMERIC"] = 'C' - # also add 2 character language code ... - if len(str) > 2: - langs.append(str[:2]) + newlangs = [lang] + if len(lang) > 2: + newlangs.append(lang[:2]) + cat.setlangs (newlangs) - return langs +class Language (SimpleConfigFile): def __init__ (self): self.info = {} @@ -365,11 +381,11 @@ class Language (SimpleConfigFile): self.info["SUPPORTED"] = None self.supported = langlist rpm.delMacro ("_install_langs") - if langlist: + elif langlist: rpmNickList = [] for name in langlist: (lang, map, font) = self.langInfoByName[name] - rpmNickList = rpmNickList + self.rpmifyLang(lang) + rpmNickList = rpmNickList + expandLangs(lang) linguas = string.join (rpmNickList, ':') self.info["SUPPORTED"] = linguas @@ -381,6 +397,12 @@ class Language (SimpleConfigFile): self.info["SUPPORTED"] = None rpm.delMacro ("_install_langs") self.supported = None + + if self.info["SUPPORTED"]: + os.environ ["LINGUAS"] = self.info["SUPPORTED"] + print os.environ["LINGUAS"] + else: + del os.environ ["LINGUAS"] class Firewall: def __init__ (self): @@ -1244,9 +1266,7 @@ class ToDo: langName = todo.language.getLangNameByNick(todo.instClass.language) todo.language.setSupported([langName]) todo.language.setDefault(langName) - os.environ['LANG'] = todo.instClass.language - os.environ['LC_ALL'] = todo.instClass.language - os.environ['LC_NUMERIC'] = 'C' + todo.instTimeLanguage.setRuntimeLanguage(langName) if todo.instClass.keyboard: todo.keyboard.set(todo.instClass.keyboard) |