summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-11-22 12:19:13 +0100
committerlouis <louis.braun@gmx.de>2014-11-22 12:19:13 +0100
commita3d636ce9287b3206a1818426e02bca07ac42549 (patch)
tree6558719317612517c1e0aaa65681fb9a5b46333b
parent77368ebbd181ceb3b25545d6331f30d72900fa70 (diff)
downloadvdr-plugin-skindesigner-a3d636ce9287b3206a1818426e02bca07ac42549.tar.gz
vdr-plugin-skindesigner-a3d636ce9287b3206a1818426e02bca07ac42549.tar.bz2
using VDRs OSD Language instead of system language
-rw-r--r--HISTORY1
-rw-r--r--config.c9
-rw-r--r--config.h2
-rw-r--r--designer.c2
-rw-r--r--libtemplate/globals.c13
5 files changed, 14 insertions, 13 deletions
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<string, string>("vdrOsd", Setup.FontOsd));
fonts.insert(pair<string, string>("vdrFix", Setup.FontFix));
fonts.insert(pair<string, string>("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());
}