1 from Screen import Screen
4 from Components.ActionMap import ActionMap,NumberActionMap
5 from Components.Language import language
6 from Components.config import config
7 from Components.Sources.List import List
8 from Components.Label import Label
9 from Components.Pixmap import Pixmap
10 from Components.language_cache import LANG_TEXT
13 return LANG_TEXT.get(config.osd.language.value, {}).get(x, "")
15 from Screens.Rc import Rc
17 from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN
19 from Tools.LoadPixmap import LoadPixmap
21 def LanguageEntryComponent(file, name, index):
22 png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/" + file + ".png"))
24 png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/missing.png"))
25 res = (index, name, png)
28 from Plugins.SystemPlugins.FactoryTest.plugin import FactoryTest
30 class LanguageSelection(Screen):
31 def __init__(self, session):
32 Screen.__init__(self, session)
34 self.oldActiveLanguage = language.getActiveLanguage()
37 self["languages"] = List(self.list)
38 self["languages"].onSelectionChanged.append(self.changed)
41 self.onLayoutFinish.append(self.selectActiveLanguage)
43 self["actions"] = NumberActionMap(["OkCancelActions","NumberActions"],
46 "cancel": self.cancel,
47 "1": self.keyNumberGlobal,
48 "2": self.keyNumberGlobal,
49 "3": self.keyNumberGlobal,
50 "4": self.keyNumberGlobal,
51 "5": self.keyNumberGlobal,
52 "6": self.keyNumberGlobal,
53 "7": self.keyNumberGlobal,
54 "8": self.keyNumberGlobal,
55 "9": self.keyNumberGlobal,
56 "0": self.keyNumberGlobal,
61 def keyNumberGlobal(self, number):
62 self.testkey = self.testkey * 10 + number
63 if self.testkey > 10000:
64 self.testkey = self.testkey%10000
65 if self.testkey == 4599:
66 self.session.open(FactoryTest)
67 print "testkey", self.testkey
69 def selectActiveLanguage(self):
70 activeLanguage = language.getActiveLanguage()
73 if x[0] == activeLanguage:
74 self["languages"].index = pos
83 language.activateLanguage(self.oldActiveLanguage)
86 def run(self, justlocal = False):
87 print "updating language..."
88 lang = self["languages"].getCurrent()[0]
89 config.osd.language.value = lang
90 config.osd.language.save()
91 self.setTitle(_cached("T2"))
96 language.activateLanguage(lang)
97 config.misc.languageselected.value = 0
98 config.misc.languageselected.save()
101 def updateList(self):
102 first_time = not self.list
104 languageList = language.getLanguageList()
105 if not languageList: # no language available => display only english
106 list = [ LanguageEntryComponent("en", _cached("en_EN"), "en_EN") ]
108 list = [ LanguageEntryComponent(file = x[1][2].lower(), name = _cached("%s_%s" % x[1][1:3]), index = x[0]) for x in languageList]
111 #list.sort(key=lambda x: x[1][7])
115 self["languages"].list = list
117 self["languages"].updateList(list)
121 self.run(justlocal = True)
124 class LanguageWizard(LanguageSelection, Rc):
125 def __init__(self, session):
126 LanguageSelection.__init__(self, session)
128 self.onLayoutFinish.append(self.selectKeys)
130 self["wizard"] = Pixmap()
131 self["text"] = Label()
134 def selectKeys(self):
135 self.clearSelectedKeys()
137 self.selectKey("DOWN")
140 self.run(justlocal = True)
146 self["text"].setText(_cached("T1"))