mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-18 10:51:12 +02:00
Separate subtitles preferences on request; Load english locale to use as default for not complete locales
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@385 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
@@ -173,6 +173,12 @@ CLocaleManager::CLocaleManager()
|
||||
localeData = new char * [sizeof(locale_real_names)/sizeof(const char *)];
|
||||
for (unsigned int i = 0; i < (sizeof(locale_real_names)/sizeof(const char *)); i++)
|
||||
localeData[i] = (char *)locale_real_names[i];
|
||||
|
||||
defaultData = new char * [sizeof(locale_real_names)/sizeof(const char *)];
|
||||
for (unsigned int i = 0; i < (sizeof(locale_real_names)/sizeof(const char *)); i++)
|
||||
defaultData[i] = (char *)locale_real_names[i];
|
||||
|
||||
loadLocale("english", true);
|
||||
}
|
||||
|
||||
CLocaleManager::~CLocaleManager()
|
||||
@@ -186,10 +192,11 @@ CLocaleManager::~CLocaleManager()
|
||||
|
||||
const char * path[2] = {"/var/tuxbox/config/locale/", DATADIR "/neutrino/locale/"};
|
||||
|
||||
CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const locale)
|
||||
CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const locale, bool asdefault)
|
||||
{
|
||||
unsigned int i;
|
||||
FILE * fd;
|
||||
char ** loadData = asdefault ? defaultData : localeData;
|
||||
|
||||
//initialize_iso639_map();
|
||||
|
||||
@@ -210,12 +217,15 @@ CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const l
|
||||
return NO_SUCH_LOCALE;
|
||||
}
|
||||
|
||||
for (unsigned j = 0; j < (sizeof(locale_real_names)/sizeof(const char *)); j++)
|
||||
if (localeData[j] != locale_real_names[j])
|
||||
{
|
||||
free(localeData[j]);
|
||||
localeData[j] = (char *)locale_real_names[j];
|
||||
if(!asdefault) {
|
||||
for (unsigned j = 0; j < (sizeof(locale_real_names)/sizeof(const char *)); j++) {
|
||||
if (loadData[j] != locale_real_names[j] && loadData[j] != defaultData[j])
|
||||
{
|
||||
free(loadData[j]);
|
||||
}
|
||||
loadData[j] = (char *)locale_real_names[j];
|
||||
}
|
||||
}
|
||||
|
||||
char buf[1000];
|
||||
|
||||
@@ -258,8 +268,8 @@ CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const l
|
||||
//printf("[%s] [%s]\n", buf,locale_real_names[i]);
|
||||
if(!strcmp(buf,locale_real_names[i]))
|
||||
{
|
||||
if(localeData[i] == locale_real_names[i])
|
||||
localeData[i] = strdup(text.c_str());
|
||||
if(loadData[i] == locale_real_names[i])
|
||||
loadData[i] = strdup(text.c_str());
|
||||
else
|
||||
printf("[%s.locale] dup entry: %s\n", locale, locale_real_names[i]);
|
||||
break;
|
||||
@@ -295,9 +305,11 @@ CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const l
|
||||
}
|
||||
fclose(fd);
|
||||
for (unsigned j = 1; j < (sizeof(locale_real_names)/sizeof(const char *)); j++)
|
||||
if (localeData[j] == locale_real_names[j])
|
||||
if (loadData[j] == locale_real_names[j])
|
||||
{
|
||||
printf("[%s.locale] missing entry: %s\n", locale, locale_real_names[j]);
|
||||
if(!asdefault)
|
||||
loadData[j] = defaultData[j];
|
||||
}
|
||||
|
||||
return (
|
||||
|
@@ -50,6 +50,7 @@ class CLocaleManager
|
||||
{
|
||||
private:
|
||||
char * * localeData;
|
||||
char * * defaultData;
|
||||
|
||||
public:
|
||||
enum loadLocale_ret_t
|
||||
@@ -62,7 +63,7 @@ class CLocaleManager
|
||||
CLocaleManager();
|
||||
~CLocaleManager();
|
||||
|
||||
loadLocale_ret_t loadLocale(const char * const locale);
|
||||
loadLocale_ret_t loadLocale(const char * const locale, bool asdefault = false);
|
||||
|
||||
const char * getText(const neutrino_locale_t keyName) const;
|
||||
|
||||
|
@@ -151,6 +151,8 @@ typedef enum {
|
||||
LOCALE_AUDIOMENU_AUTO_SUBS,
|
||||
LOCALE_AUDIOMENU_PREF_LANG_HEAD,
|
||||
LOCALE_AUDIOMENU_PREF_LANG,
|
||||
LOCALE_AUDIOMENU_PREF_SUBS_HEAD,
|
||||
LOCALE_AUDIOMENU_PREF_SUBS,
|
||||
LOCALE_AUDIOPLAYER_ADD,
|
||||
LOCALE_AUDIOPLAYER_ADD_IC,
|
||||
LOCALE_AUDIOPLAYER_ADD_LOC,
|
||||
|
@@ -151,6 +151,8 @@ const char *locale_real_names[] = {
|
||||
"audiomenu.auto_subs",
|
||||
"audiomenu.pref_lang_head",
|
||||
"audiomenu.pref_lang",
|
||||
"audiomenu.pref_subs_head",
|
||||
"audiomenu.pref_subs",
|
||||
"audioplayer.add",
|
||||
"audioplayer.add_ic",
|
||||
"audioplayer.add_loc",
|
||||
|
@@ -99,6 +99,7 @@ struct SNeutrinoSettings
|
||||
char timezone[150];
|
||||
|
||||
char pref_lang[3][30];
|
||||
char pref_subs[3][30];
|
||||
|
||||
// EPG
|
||||
int epg_save;
|
||||
|
Reference in New Issue
Block a user