2 from Components.Language import language
3 from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
4 import os, gettext, sha
8 PluginLanguageDomain = "WebInterface"
9 PluginLanguagePath = "Extensions/WebInterface/locale"
12 lang = language.getLanguage()[:2] # getLanguage returns e.g. "fi_FI" for "language_country"
13 os.environ["LANGUAGE"] = lang # Enigma doesn't set this (or LC_ALL, LC_MESSAGES, LANG). gettext needs it!
14 print "[WebInterface] set language to ", lang
15 gettext.bindtextdomain(PluginLanguageDomain, resolveFilename(SCOPE_PLUGINS, PluginLanguagePath))
18 t = gettext.dgettext(PluginLanguageDomain, txt)
20 print "[WebInterface] fallback to default translation for", txt
21 t = gettext.gettext(txt)
25 return reduce( lambda x,y:(x<<8L)+y, map(ord, s))
29 for byte in range(128):
30 res += chr((l >> (1024 - (byte + 1) * 8)) & 0xff)
33 def rsa_pub1024(src, mod):
34 return long2bin(pow(bin2long(src), 65537, bin2long(mod)))
36 def decrypt_block(src, mod):
37 if len(src) != 128 and len(src) != 202:
39 dest = rsa_pub1024(src[:128], mod)
40 hash = sha.new(dest[1:107])
42 hash.update(src[131:192])
43 result = hash.digest()
44 if result == dest[107:127]:
49 language.addCallback(localeInit)