return strtab2htsmsg(conn_limit_type_tab, 1, lang);
}
-static htsmsg_t *
+htsmsg_t *
language_get_list ( void *obj, const char *lang )
{
htsmsg_t *m = htsmsg_create_map();
.type = PT_STR,
.islist = 1,
.id = "info_area",
- .name = N_("Information Area"),
+ .name = N_("Information area"),
.set = config_class_info_area_set,
.get = config_class_info_area_get,
.list = config_class_info_area_list,
.opts = PO_LORDER,
.group = 3
},
+ {
+ .type = PT_STR,
+ .id = "ulanguage",
+ .name = N_("User language"),
+ .list = language_get_list,
+ .off = offsetof(config_t, ulanguage),
+ .group = 3
+ },
{
.type = PT_STR,
.id = "muxconfpath",
return "eng";
return s;
}
+
+const char *config_get_ulanguage ( void )
+{
+ const char *s = config.ulanguage;
+ if (s == NULL || *s == '\0')
+ return NULL;
+ return s;
+}
char *server_name;
char *language;
char *info_area;
+ char *ulanguage;
char *muxconf_path;
int prefer_picon;
char *chicon_path;
const char *config_get_server_name ( void );
const char *config_get_language ( void );
+const char *config_get_ulanguage ( void );
#endif /* __TVH_CONFIG__H__ */
char *lang_code_user( const char *ucode )
{
- const char *codes = config_get_language(), *s;
+ const char *pucode = config_get_ulanguage(), *s;
+ const char *codes = config_get_language();
char *ret;
- if (!codes)
+ if (!pucode && !codes)
return ucode ? strdup(ucode) : NULL;
- if (!ucode)
- return codes ? strdup(codes) : NULL;
- ret = malloc(strlen(codes) + strlen(ucode ?: "") + 1);
+ ret = malloc(strlen(pucode ?: "") + strlen(codes ?: "") +
+ strlen(ucode ?: "") + 3);
strcpy(ret, ucode);
- while (codes && *codes) {
- s = codes;
- while (*s && *s != ',')
- s++;
- if (strncmp(codes, ucode ?: "", s - codes)) {
- strcat(ret, ",");
- strncat(ret, codes, s - codes);
+ if (pucode && strcmp(ret, pucode)) {
+ strcat(ret, ",");
+ strcat(ret, pucode);
+ }
+ if (codes) {
+ while (codes && *codes) {
+ s = codes;
+ while (*s && *s != ',')
+ s++;
+ if (strncmp(codes, ucode ?: "", s - codes) &&
+ strncmp(codes, pucode ?: "", s - codes)) {
+ strcat(ret, ",");
+ strncat(ret, codes, s - codes);
+ }
+ if (*s && *s == ',')
+ s++;
+ codes = s;
}
- if (*s && *s == ',')
- s++;
- codes = s;
}
return ret;
}