some basic language support (already working a bit)
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Thu, 17 Nov 2005 21:27:22 +0000 (21:27 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Thu, 17 Nov 2005 21:27:22 +0000 (21:27 +0000)
lib/python/Components/Language.py [new file with mode: 0644]
lib/python/Components/Makefile.am
lib/python/Components/SetupDevices.py
lib/python/Screens/NetworkSetup.py
lib/python/Screens/Satconfig.py
lib/python/Screens/ScanSetup.py
mytest.py

diff --git a/lib/python/Components/Language.py b/lib/python/Components/Language.py
new file mode 100644 (file)
index 0000000..8d966b6
--- /dev/null
@@ -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
index 0e1894a..f49c754 100644 (file)
@@ -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
index 612bb8c..6ce8737 100644 (file)
@@ -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") );
index 8b55265..5637d88 100644 (file)
@@ -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)
index 1e3cbd5..204c6a8 100644 (file)
@@ -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):
index 40bfcb8..6b05cd4 100644 (file)
@@ -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"]):
index ef2f6fb..745c47c 100644 (file)
--- 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