Merge branch 'obi/master'
[enigma2.git] / lib / python / Screens / About.py
1 from Screen import Screen
2 from Components.ActionMap import ActionMap
3 from Components.Sources.StaticText import StaticText
4 from Components.Harddisk import harddiskmanager
5 from Components.NimManager import nimmanager
6 from Components.About import about
7
8 from Tools.DreamboxHardware import getFPVersion
9
10 class About(Screen):
11         def __init__(self, session):
12                 Screen.__init__(self, session)
13
14                 self["EnigmaVersion"] = StaticText("Enigma: " + about.getEnigmaVersionString())
15                 self["ImageVersion"] = StaticText("Image: " + about.getImageVersionString())
16
17                 self["TunerHeader"] = StaticText(_("Detected NIMs:"))
18
19                 fp_version = getFPVersion()
20                 if fp_version is None:
21                         fp_version = ""
22                 else:
23                         fp_version = _("Frontprocessor version: %d") % fp_version
24
25                 self["FPVersion"] = StaticText(fp_version)
26
27                 nims = nimmanager.nimList()
28                 for count in (0, 1, 2, 3):
29                         if count < len(nims):
30                                 self["Tuner" + str(count)] = StaticText(nims[count])
31                         else:
32                                 self["Tuner" + str(count)] = StaticText("")
33
34                 self["HDDHeader"] = StaticText(_("Detected HDD:"))
35                 hddlist = harddiskmanager.HDDList()
36                 hdd = hddlist and hddlist[0][1] or None
37                 if hdd is not None and hdd.model() != "":
38                         self["hddA"] = StaticText(_("%s\n(%s, %d MB free)") % (hdd.model(), hdd.capacity(),hdd.free()))
39                 else:
40                         self["hddA"] = StaticText(_("none"))
41
42                 self["actions"] = ActionMap(["SetupActions", "ColorActions"], 
43                         {
44                                 "cancel": self.close,
45                                 "ok": self.close,
46                                 "green": self.showTranslationInfo
47                         })
48
49         def showTranslationInfo(self):
50                 self.session.open(TranslationInfo)
51
52 class TranslationInfo(Screen):
53         def __init__(self, session):
54                 Screen.__init__(self, session)
55                 # don't remove the string out of the _(), or it can't be "translated" anymore.
56
57                 # TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline)
58                 info = _("TRANSLATOR_INFO")
59
60                 if info == "TRANSLATOR_INFO":
61                         info = "(N/A)"
62
63                 infolines = _("").split("\n")
64                 infomap = {}
65                 for x in infolines:
66                         l = x.split(': ')
67                         if len(l) != 2:
68                                 continue
69                         (type, value) = l
70                         infomap[type] = value
71                 print infomap
72
73                 self["TranslationInfo"] = StaticText(info)
74
75                 translator_name = infomap.get("Language-Team", "none")
76                 if translator_name == "none":
77                         translator_name = infomap.get("Last-Translator", "")
78
79                 self["TranslatorName"] = StaticText(translator_name)
80
81                 self["actions"] = ActionMap(["SetupActions"], 
82                         {
83                                 "cancel": self.close,
84                                 "ok": self.close,
85                         })