summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2001-01-25 04:41:33 +0000
committerErik Troan <ewt@redhat.com>2001-01-25 04:41:33 +0000
commit6388b600842cdb0aae71b62f24d4b87bf28bef5c (patch)
tree0eee1dde7402843943ada0b63fa0dda018e59eb4
parent2614338022649458a0f95a6382ad89a2763caeae (diff)
downloadanaconda-6388b600842cdb0aae71b62f24d4b87bf28bef5c.tar.gz
anaconda-6388b600842cdb0aae71b62f24d4b87bf28bef5c.tar.xz
anaconda-6388b600842cdb0aae71b62f24d4b87bf28bef5c.zip
more language changes -- why not?
-rw-r--r--comps.py1
-rwxr-xr-xgui.py30
-rw-r--r--iw/keyboard_gui.py2
-rw-r--r--iw/language_gui.py5
-rw-r--r--text.py20
-rw-r--r--textw/timezone_text.py1
-rw-r--r--todo.py50
7 files changed, 54 insertions, 55 deletions
diff --git a/comps.py b/comps.py
index 84aab7aa9..cbe3e1594 100644
--- a/comps.py
+++ b/comps.py
@@ -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] == "!":
diff --git a/gui.py b/gui.py
index 219728bb6..11541b5e7 100755
--- a/gui.py
+++ b/gui.py
@@ -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
diff --git a/text.py b/text.py
index 4c482c65c..62d67cc4f 100644
--- a/text.py
+++ b/text.py
@@ -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,
diff --git a/todo.py b/todo.py
index eae8c4dd2..1f4acc46e 100644
--- a/todo.py
+++ b/todo.py
@@ -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)