diff --git a/HISTORY b/HISTORY index e85d68b..7cc5d7d 100644 --- a/HISTORY +++ b/HISTORY @@ -93,3 +93,4 @@ Version 0.0.6 - fixed Bug that channel info was not shown when displaying reruns with epgsearch +- using VDRs OSD Language instead of system language diff --git a/config.c b/config.c index 71c9387..b13c358 100644 --- a/config.c +++ b/config.c @@ -23,6 +23,7 @@ cDesignerConfig::cDesignerConfig() { SetSkin(); SetOSDSize(); SetOSDFonts(); + osdLanguage = Setup.OSDLanguage; } cDesignerConfig::~cDesignerConfig() { @@ -157,6 +158,14 @@ bool cDesignerConfig::OsdFontsChanged(void) { return changed; } +bool cDesignerConfig::OsdLanguageChanged(void) { + if (osdLanguage.compare(Setup.OSDLanguage)) { + osdLanguage = Setup.OSDLanguage; + return true; + } + return false; +} + cString cDesignerConfig::GetSkinRessourcePath(void) { return cString::sprintf("%s%s", *skinPath, osdSkin.c_str()); } diff --git a/config.h b/config.h index fe5c991..e5f2c7d 100644 --- a/config.h +++ b/config.h @@ -23,6 +23,7 @@ private: string fontFix; string fontOsd; string fontSml; + string osdLanguage; map < string, map < int, string > > plugins; map < string, map < int, string > >::iterator plugIt; public: @@ -43,6 +44,7 @@ public: bool OsdSizeChanged(void); void SetOSDFonts(void); bool OsdFontsChanged(void); + bool OsdLanguageChanged(void); cString GetSkinRessourcePath(void); void AddPlugin(string name, map < int, string > &menus); void InitPluginIterator(void); diff --git a/designer.c b/designer.c index 5da39d6..be6f874 100644 --- a/designer.c +++ b/designer.c @@ -168,7 +168,7 @@ void cSkinDesigner::ListCustomTokens(void) { * PRIVATE FUNCTIONS *********************************************************************************/ void cSkinDesigner::Init(void) { - if (init || config.OsdSizeChanged() || config.SkinChanged()) { + if (init || config.OsdSizeChanged() || config.SkinChanged() || config.OsdLanguageChanged()) { if (init) { config.SetSkin(); diff --git a/libtemplate/globals.c b/libtemplate/globals.c index 9e9ce5f..af83da2 100644 --- a/libtemplate/globals.c +++ b/libtemplate/globals.c @@ -6,18 +6,7 @@ cGlobals::cGlobals(void) { fonts.insert(pair("vdrOsd", Setup.FontOsd)); fonts.insert(pair("vdrFix", Setup.FontFix)); fonts.insert(pair("vdrSml", Setup.FontSml)); - - string loc = setlocale(LC_NAME, NULL); - size_t index = loc.find_first_of("."); - string langISO = ""; - if (index > 0) { - langISO = loc.substr(0, index); - } - if (langISO.size() == 5) { - language = langISO.c_str(); - } else { - language = "en_EN"; - } + language = Setup.OSDLanguage; dsyslog("skindesigner: using language %s", language.c_str()); }