# -*- coding: cp1252 -*- ''' Created on 14.12.2016 @author: sth2mt ''' import FertigungsTest.Support.JasonCfg as Jason LangCode = {"not def":0,"en-us":1,"de":2,"cs-cz":3,"es":4,"fr":5,"hu":6,"it":7,"pl":8,"pt-br":9,"ru":10,"sk":11,"zh-cn":12} LangFileName = {0:"not def",1:"en-us",2:"de",3:"cs-cz",4:"es",5:"fr",6:"hu",7:"it",8:"pl",9:"pt-br",10:"ru",11:"sk",12:"zh-cn"} class sysLang(object): ''' classdocs ''' # Achtung dies ist Pseudo Singleton -> variablen werden statisch verwendet. Aufgeraumt wird erst wenn alle instanzen weg sindwird nur einmal instaniiert !!!! ObjCount = 0 _Thread_name = "sysLang" stout = False fJason = file JasonExt = 'json' JasonPath = "/home/tool/config" O_Lang = None ActualLang = LangCode["not def"] sSprachtabelle=None pyjsonLang=None def __init__(self): ''' Constructor ''' sysLang.ObjCount += 1 self.printf("%i.Construktor %s Anzahl" % (sysLang.ObjCount,sysLang._Thread_name)) if sysLang.O_Lang == None: sysLang.O_Lang = Jason.Treiber() pass def __del__(self): ''' Destructor ''' self.printf("%i Destruktor %s" % (sysLang.ObjCount,sysLang._Thread_name)) if sysLang.ObjCount == 1: self.printf("Reste aufraumen") del (sysLang.O_Lang) if sysLang.ObjCount > 0: sysLang.ObjCount -= 1 pass def GetLanguage(self): svalue = "" if sysLang.ActualLang == LangCode["not def"]: s_string = self.O_Lang.ReadFile("guiconfig","/home/tool/config") if s_string != None: pyjsonCfg=self.O_Lang.Decode(s_string) svalue = self.O_Lang.GetValue(pyjsonCfg, 'global','language') sysLang.ActualLang=LangCode[svalue] self.printf("%s::GetLanguage() New language %s = %i" % (sysLang._Thread_name,svalue,sysLang.ActualLang)) return sysLang.ActualLang pass def GetText(self,s_Key,s_SektorPrimaer, s_SektorRedundanz=None): if sysLang.sSprachtabelle==None: FileName = LangFileName[self.GetLanguage()] sysLang.sSprachtabelle = self.O_Lang.ReadFile(FileName,"/home/tool/config/langs") if sysLang.sSprachtabelle != None: if sysLang.pyjsonLang==None: sysLang.pyjsonLang=self.O_Lang.Decode(sysLang.sSprachtabelle) # Erst Mal im Primaeren Abschnitt nach Übersetzung suchen sText = self.O_Lang.GetValue(sysLang.pyjsonLang, s_SektorPrimaer,s_Key) if sText == None: # Nicht gefunden, vieleicht noch woanderst nachschauen if s_SektorRedundanz != None: # Übersetzung kann in weiteren Sektor sein sText = self.O_Lang.GetValue(sysLang.pyjsonLang, s_SektorRedundanz,s_Key) if sText == None: # Leider nirgends eine Übersetzung gefunden sText = s_Key else: # Leider kein weitere Sektor zur Übersetzung vorgegeben sText = s_Key else : # keine Sprachpaket gefunden sText = s_Key return sText def GetFwText(self,s_Key): return self.GetText(s_Key, "firmware", "webgui" ) def GetGuiText(self,s_Key): return self.GetText(s_Key, "GUI", "webgui") def printf(self,string): if sysLang.stout: print string pass