1 from Screen import Screen
3 from Components.ActionMap import ActionMap
4 from Components.Language import language
5 from Components.config import config
6 from Components.Sources.List import List
7 from Components.Label import Label
8 from Components.Pixmap import Pixmap
9 from Components.language_cache import LANG_TEXT
12 return LANG_TEXT.get(config.osd.language.value, {}).get(x, "")
14 from Screens.Rc import Rc
16 from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN
18 from Tools.LoadPixmap import LoadPixmap
20 def LanguageEntryComponent(file, name, index):
21 png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/" + file + ".png"))
23 png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/missing.png"))
24 res = (index, name, png)
27 class LanguageSelection(Screen):
28 def __init__(self, session):
29 Screen.__init__(self, session)
31 self.oldActiveLanguage = language.getActiveLanguage()
34 self["languages"] = List(self.list)
35 self["languages"].onSelectionChanged.append(self.changed)
38 self.onLayoutFinish.append(self.selectActiveLanguage)
39 self["actions"] = ActionMap(["OkCancelActions"],
42 "cancel": self.cancel,
45 def selectActiveLanguage(self):
46 activeLanguage = language.getActiveLanguage()
49 if x[0] == activeLanguage:
50 self["languages"].index = pos
59 language.activateLanguage(self.oldActiveLanguage)
62 def run(self, justlocal = False):
63 print "updating language..."
64 lang = self["languages"].getCurrent()[0]
65 config.osd.language.value = lang
66 config.osd.language.save()
67 self.setTitle(_cached("T2"))
72 language.activateLanguage(lang)
73 config.misc.languageselected.value = 0
74 config.misc.languageselected.save()
78 first_time = not self.list
80 languageList = language.getLanguageList()
81 if not languageList: # no language available => display only english
82 list = [ LanguageEntryComponent("en", _cached("en_EN"), "en_EN") ]
84 list = [ LanguageEntryComponent(file = x[1][2].lower(), name = _cached("%s_%s" % x[1][1:3]), index = x[0]) for x in languageList]
87 #list.sort(key=lambda x: x[1][7])
91 self["languages"].list = list
93 self["languages"].updateList(list)
97 self.run(justlocal = True)
100 class LanguageWizard(LanguageSelection, Rc):
101 def __init__(self, session):
102 LanguageSelection.__init__(self, session)
104 self.onLayoutFinish.append(self.selectKeys)
106 self["wizard"] = Pixmap()
107 self["text"] = Label()
110 def selectKeys(self):
111 self.clearSelectedKeys()
113 self.selectKey("DOWN")
116 self.run(justlocal = True)
122 self["text"].setText(_cached("T1"))