diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | iw/language_gui.py | 18 | ||||
-rw-r--r-- | language.py | 27 |
3 files changed, 30 insertions, 21 deletions
@@ -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 |