From: Stefan Pluecken Date: Thu, 17 Nov 2005 21:27:22 +0000 (+0000) Subject: some basic language support (already working a bit) X-Git-Tag: 2.6.0~5101 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/bb59fd202b257cce05684912216678d9872ff0cc some basic language support (already working a bit) --- diff --git a/lib/python/Components/Language.py b/lib/python/Components/Language.py new file mode 100644 index 00000000..8d966b68 --- /dev/null +++ b/lib/python/Components/Language.py @@ -0,0 +1,28 @@ +import gettext +import os + +class Language: + def __init__(self): + gettext.install('enigma2', '/enigma2/po') + self.lang = [] + # FIXME make list dynamically + self.addLanguage(_("English"), "en") + self.addLanguage(_("German"), "de") + + def addLanguage(self, name, lang): + try: + self.lang.append((_(name), gettext.translation('enigma2', '/enigma2/po', languages=[lang]))) + except: + print "Language " + str(name) + " not found" + + def activateLanguage(self, index): + print "Activating language " + str(self.lang[index][0]) + self.lang[index][1].install() + + def getLanguageList(self): + list = [] + for x in self.lang: + list.append(x[0]) + return list + +language = Language() \ No newline at end of file diff --git a/lib/python/Components/Makefile.am b/lib/python/Components/Makefile.am index 0e1894aa..f49c7545 100644 --- a/lib/python/Components/Makefile.am +++ b/lib/python/Components/Makefile.am @@ -9,4 +9,4 @@ install_PYTHON = \ GUIComponent.py MenuList.py TextInput.py __init__.py MovieList.py \ InputDevice.py ServicePosition.py SetupDevices.py Harddisk.py \ AVSwitch.py Network.py RFmod.py DiskInfo.py NimManager.py Lcd.py \ - EpgList.py ScrollLabel.py Timezones.py + EpgList.py ScrollLabel.py Timezones.py Language.py diff --git a/lib/python/Components/SetupDevices.py b/lib/python/Components/SetupDevices.py index 612bb8c8..6ce8737b 100644 --- a/lib/python/Components/SetupDevices.py +++ b/lib/python/Components/SetupDevices.py @@ -6,6 +6,7 @@ from config import ConfigSlider from config import configSelection from config import configText from Components.Timezones import timezones +from Components.Language import language def InitSetupDevices(): @@ -26,7 +27,12 @@ def InitSetupDevices(): config.osd.alpha = configElement("config.osd.alpha", ConfigSlider, 0, ""); config.osd.bright = configElement("config.osd.bright", ConfigSlider, 5, ""); config.osd.contrast = configElement("config.osd.contrast", ConfigSlider, 5, ""); - config.osd.language = configElement("config.osd.language", configSelection, 0, ("English", "English US") ); + + def languageNotifier(configElement): + language.activateLanguage(configElement.value) + + config.osd.language = configElement("config.osd.language", configSelection, 0, language.getLanguageList() ); + config.osd.language.addNotifier(languageNotifier) config.parental = ConfigSubsection(); config.parental.lock = configElement("config.parental.lock", configSelection, 1, ("Enable", "Disable") ); diff --git a/lib/python/Screens/NetworkSetup.py b/lib/python/Screens/NetworkSetup.py index 8b552654..5637d88d 100644 --- a/lib/python/Screens/NetworkSetup.py +++ b/lib/python/Screens/NetworkSetup.py @@ -39,10 +39,10 @@ class NetworkSetup(Screen): self.list.append(getConfigListEntry("Use DHCP", config.network.dhcp)) if (config.network.dhcp.value == 0): - self.list.append(getConfigListEntry("IP Address", config.network.ip)) - self.list.append(getConfigListEntry("Netmask", config.network.netmask)) - self.list.append(getConfigListEntry("Gateway", config.network.gateway)) - self.list.append(getConfigListEntry("Nameserver", config.network.dns)) + self.list.append(getConfigListEntry(_('IP Address'), config.network.ip)) + self.list.append(getConfigListEntry(_('Netmask'), config.network.netmask)) + self.list.append(getConfigListEntry(_('Gateway'), config.network.gateway)) + self.list.append(getConfigListEntry(_('Nameserver'), config.network.dns)) self["config"].list = self.list self["config"].l.setList(self.list) diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index 1e3cbd51..204c6a80 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -10,27 +10,27 @@ from Components.config import getConfigListEntry class NimSetup(Screen): def createSimpleSetup(self, nim, list, mode): if mode == 0: #single Sat - list.append(getConfigListEntry("Satellite", config.Nims[nim.slotid].diseqcA)) + list.append(getConfigListEntry(_("Satellite"), config.Nims[nim.slotid].diseqcA)) else: # > 1 Sats - list.append(getConfigListEntry("Port A", config.Nims[nim.slotid].diseqcA)) + list.append(getConfigListEntry(_("Port A"), config.Nims[nim.slotid].diseqcA)) if mode >= 1: # > 1 Sats - list.append(getConfigListEntry("Port B", config.Nims[nim.slotid].diseqcB)) + list.append(getConfigListEntry(_("Port B"), config.Nims[nim.slotid].diseqcB)) if mode >= 3: # > 2 Sats - list.append(getConfigListEntry("Port C", config.Nims[nim.slotid].diseqcC)) - list.append(getConfigListEntry("Port D", config.Nims[nim.slotid].diseqcD)) + list.append(getConfigListEntry(_("Port C"), config.Nims[nim.slotid].diseqcC)) + list.append(getConfigListEntry(_("Port D"), config.Nims[nim.slotid].diseqcD)) def createPositionerSetup(self, nim, list): - list.append(getConfigListEntry("Longitude", config.Nims[nim.slotid].longitude)) - list.append(getConfigListEntry("Latitude", config.Nims[nim.slotid].latitude)) + list.append(getConfigListEntry(_("Longitude"), config.Nims[nim.slotid].longitude)) + list.append(getConfigListEntry(_("Latitude"), config.Nims[nim.slotid].latitude)) pass def createSetup(self): self.list = [ ] - self.list.append(getConfigListEntry("Configmode", config.Nims[self.nim.slotid].configMode)) + self.list.append(getConfigListEntry(_("Configmode"), config.Nims[self.nim.slotid].configMode)) if config.Nims[self.nim.slotid].configMode.value == 0: #simple setup - self.list.append(getConfigListEntry("Diseqcmode", config.Nims[self.nim.slotid].diseqcMode)) + self.list.append(getConfigListEntry(_("Diseqcmode"), config.Nims[self.nim.slotid].diseqcMode)) if (0 <= config.Nims[self.nim.slotid].diseqcMode.value < 4): self.createSimpleSetup(self.nim, self.list, config.Nims[self.nim.slotid].diseqcMode.value) @@ -43,9 +43,9 @@ class NimSetup(Screen): self["config"].l.setList(self.list) def newConfig(self): - if self["config"].getCurrent()[0] == "Diseqcmode": + if self["config"].getCurrent()[0] == _("Diseqcmode"): self.createSetup() - if self["config"].getCurrent()[0] == "Configmode": + if self["config"].getCurrent()[0] == _("Configmode"): self.createSetup() def keyLeft(self): diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py index 40bfcb85..6b05cd47 100644 --- a/lib/python/Screens/ScanSetup.py +++ b/lib/python/Screens/ScanSetup.py @@ -72,10 +72,10 @@ class ScanSetup(Screen): # single transponder scan if (config.scan.type.value == 0): if (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-S"]): - self.list.append(getConfigListEntry("Satellite", config.scan.satselection[config.scan.nims.value])) - self.list.append(getConfigListEntry("Frequency", config.scan.sat.frequency)) - self.list.append(getConfigListEntry("Inversion", config.scan.sat.inversion)) - self.list.append(getConfigListEntry("Symbolrate", config.scan.sat.symbolrate)) + self.list.append(getConfigListEntry(_('Satellite'), config.scan.satselection[config.scan.nims.value])) + self.list.append(getConfigListEntry(_('Frequency'), config.scan.sat.frequency)) + self.list.append(getConfigListEntry(_('Inversion'), config.scan.sat.inversion)) + self.list.append(getConfigListEntry(_('Symbolrate'), config.scan.sat.symbolrate)) self.list.append(getConfigListEntry("Polarity", config.scan.sat.polarization)) self.list.append(getConfigListEntry("FEC", config.scan.sat.fec)) if (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-C"]): diff --git a/mytest.py b/mytest.py index ef2f6fb6..745c47c0 100644 --- a/mytest.py +++ b/mytest.py @@ -1,6 +1,8 @@ from enigma import * from tools import * +from Components.Language import language + import traceback import Screens.InfoBar