ylanguage.cpp: add neutrino locale as an additional locale file for yWeb

Origin commit data
------------------
Branch: ni/coolstream
Commit: 5324c57a38
Author: vanhofen <vanhofen@gmx.de>
Date: 2013-11-08 (Fri, 08 Nov 2013)

Origin message was:
------------------
- ylanguage.cpp: add neutrino locale as an additional locale file for yWeb

------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2013-11-08 15:07:02 +01:00
parent 801b866b98
commit 4ba7183735
3 changed files with 34 additions and 0 deletions

View File

@@ -15,6 +15,9 @@
#include "ytypes_globals.h"
#include "ylanguage.h"
#include "yconnection.h"
#include <global.h>
//=============================================================================
// Instance Handling - like Singelton Pattern
//=============================================================================
@@ -24,6 +27,7 @@
CLanguage* CLanguage::instance = NULL;
CConfigFile* CLanguage::DefaultLanguage = NULL;
CConfigFile* CLanguage::ConfigLanguage = NULL;
CConfigFile* CLanguage::NeutrinoLanguage = NULL;
std::string CLanguage::language = "";
std::string CLanguage::language_dir = "";
//-----------------------------------------------------------------------------
@@ -49,6 +53,7 @@ CLanguage::CLanguage(void)
{
DefaultLanguage = new CConfigFile(',');
ConfigLanguage = new CConfigFile(',');
NeutrinoLanguage = new CConfigFile(',');
language = "";
language_dir =getLanguageDir();
}
@@ -58,6 +63,7 @@ CLanguage::~CLanguage(void)
{
delete DefaultLanguage;
delete ConfigLanguage;
delete NeutrinoLanguage;
}
//=============================================================================
@@ -67,6 +73,23 @@ void CLanguage::setLanguage(std::string _language){
language=_language;
ConfigLanguage->loadConfig(language_dir + "/" + _language);
DefaultLanguage->loadConfig(language_dir + "/" + HTTPD_DEFAULT_LANGUAGE);
const char * path[2] = { CONFIGDIR "/locale/", DATADIR "/neutrino/locale/"};
for (int i = 0; i < 2; i++)
{
std::string filename = path[i];
filename += g_settings.language;
filename += ".locale";
if(access(filename.c_str(), F_OK) == 0) {
NeutrinoLanguage->loadConfig(filename, ' ');
break;
}
else if (i == 2) {
// load neutrino default language
NeutrinoLanguage->loadConfig(DATADIR "/neutrino/locale/english.locale", ' ');
}
}
}
//-----------------------------------------------------------------------------
@@ -74,6 +97,8 @@ void CLanguage::setLanguage(std::string _language){
//-----------------------------------------------------------------------------
std::string CLanguage::getTranslation(std::string id){
std::string trans=ConfigLanguage->getString(id,"");
if(trans=="")
trans=NeutrinoLanguage->getString(id,"");
if(trans=="")
trans=DefaultLanguage->getString(id,"");
return trans;