summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2002-02-06 17:48:27 +0000
committerMatt Wilson <msw@redhat.com>2002-02-06 17:48:27 +0000
commit8a93f6a1a7a6f5062e7179840541fba6154b60e8 (patch)
tree6564d6c1177f86661444213128cfeac78fb1b0f9
parentf30ead9067dc1a9ded72532055f5e6354981cd5a (diff)
downloadanaconda-8a93f6a1a7a6f5062e7179840541fba6154b60e8.tar.gz
anaconda-8a93f6a1a7a6f5062e7179840541fba6154b60e8.tar.xz
anaconda-8a93f6a1a7a6f5062e7179840541fba6154b60e8.zip
autogenerate unicode language names and read that in at install time
-rw-r--r--Makefile6
-rw-r--r--iw/language_gui.py18
-rw-r--r--language.py27
3 files changed, 30 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index 349227871..4357eebf3 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,10 @@ CATALOGS = po/anaconda.pot
PYFILES = $(wildcard *.py)
-all: subdirs _xkb.so xmouse.so $(CATALOGS) lang-table
+all: subdirs _xkb.so xmouse.so $(CATALOGS) lang-table lang-names
+
+lang-names: lang-table
+ (cd scripts; $(PYTHON) getlangnames.py) > lang-names
_xkb.so: xkb.c
gcc -Wall -o _xkb.o -O2 -fPIC -I$(PYTHONINCLUDE) `pkg-config --cflags gtk+-2.0` -c xkb.c
@@ -69,6 +72,7 @@ install:
install -m 644 anaconda.conf $(DESTDIR)/$(ANACONDADATADIR)
cp -var $(PYFILES) $(DESTDIR)/$(PYTHONLIBDIR)
cp -a lang-table $(DESTDIR)/$(PYTHONLIBDIR)
+ cp -a lang-names $(DESTDIR)/$(PYTHONLIBDIR)
cp -a lang-table-kon $(DESTDIR)/$(PYTHONLIBDIR)
./py-compile --basedir $(DESTDIR)/$(PYTHONLIBDIR) $(PYFILES)
cp -a *.so $(DESTDIR)/$(PYTHONLIBDIR)
diff --git a/iw/language_gui.py b/iw/language_gui.py
index 25eb7130e..72e896ad0 100644
--- a/iw/language_gui.py
+++ b/iw/language_gui.py
@@ -23,7 +23,7 @@ class LanguageWindow (InstallWindow):
def __init__ (self, ics):
InstallWindow.__init__ (self, ics)
-
+
def getNext (self):
rc = self.listView.get_selection().get_selected()
if rc:
@@ -46,17 +46,6 @@ class LanguageWindow (InstallWindow):
col = self.listView.get_column(0)
self.listView.scroll_to_cell(path, col, gtk.TRUE, 0.5, 0.5)
- # return the language writtin in its native script
- def native(self, locale):
- dict = {'Japanese': u'\u65e5\u672c\u8a9e',
- 'Russian': u'\u0420\u0443\u0441\u0441\u043a\u0438\u0439',
- 'Korean':u'\ud55c\uad6d\uc5b4'}
-
-
- if dict.has_key(locale):
- return ' (%s)' % (dict[locale],)
- return ''
-
# LanguageWindow tag="lang"
def getScreen (self, intf, instLang):
self.running = 0
@@ -82,8 +71,9 @@ class LanguageWindow (InstallWindow):
for locale in instLang.available():
iter = self.listStore.append()
- self.listStore.set_value(iter, 0, "%s%s" % (_(locale),
- self.native(locale)))
+ self.listStore.set_value(iter, 0,
+ "%s (%s)" % (_(locale),
+ instLang.getNativeLangName(locale)))
self.listStore.set_value(iter, 1, locale)
self.listStore.set_sort_column_id(0, gtk.SORT_ASCENDING)
diff --git a/language.py b/language.py
index 82c830718..e04d42fe6 100644
--- a/language.py
+++ b/language.py
@@ -46,12 +46,24 @@ class InstallTimeLanguage:
self.current = os.environ["LANG"]
else:
self.current = "en_US"
- if os.access("lang-table", os.R_OK):
- f = open("lang-table", "r")
- elif os.access("/etc/lang-table", os.R_OK):
- f = open("/etc/lang-table", "r")
- else:
- f = open("/usr/lib/anaconda/lang-table", "r")
+ self.nativeLangNames = {}
+
+ search = ('lang-names', '/usr/lib/anaconda/lang-names')
+ for path in search:
+ if os.access(path, os.R_OK):
+ f = open(path, 'r')
+ for line in f.readlines():
+ lang, native = line.split(' ', 1)
+ native = native.strip()
+ self.nativeLangNames[lang] = native
+ break
+
+ search = ('lang-table', '/etc/lang-table',
+ '/usr/lib/anaconda/lang-table')
+ for path in search:
+ if os.access(path, os.R_OK):
+ f = open(path, "r")
+ break
lines = f.readlines ()
f.close()
@@ -97,6 +109,9 @@ class InstallTimeLanguage:
# returns the short locale ID
return self.langNicks[lang]
+ def getNativeLangName(self, lang):
+ return self.nativeLangNames.get(lang)
+
def getLangNameByNick(self, lang):
# The nick we get here may be long (fr_FR@euro), when we need
# shorter (fr_FR), so be a bit fuzzy