From: Jaroslav Kysela Date: Tue, 23 Jun 2015 11:52:23 +0000 (+0200) Subject: intl: more string fixes (debugging, DVR state) X-Git-Tag: v4.2.1~2254 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=007aa4d0aba36fd720e09feebf6d686442fbc628;p=thirdparty%2Ftvheadend.git intl: more string fixes (debugging, DVR state) --- diff --git a/Makefile b/Makefile index 44a7fe05e..42e24a261 100644 --- a/Makefile +++ b/Makefile @@ -512,7 +512,7 @@ reconfigure: $(ROOTDIR)/configure $(CONFIGURE_ARGS) # Binary -${PROG}: check_config make_webui $(MO-FILES) $(OBJS) +${PROG}: check_config make_webui $(OBJS) $(CC) -o $@ $(OBJS) $(CFLAGS) $(LDFLAGS) # Object diff --git a/src/api/api_idnode.c b/src/api/api_idnode.c index 260a0bf16..bc2a25499 100644 --- a/src/api/api_idnode.c +++ b/src/api/api_idnode.c @@ -60,7 +60,7 @@ static struct strtab filtcmptab[] = { static void api_idnode_grid_conf - ( htsmsg_t *args, api_idnode_grid_conf_t *conf ) + ( access_t *perm, htsmsg_t *args, api_idnode_grid_conf_t *conf ) { htsmsg_field_t *f, *f2; htsmsg_t *filter, *e; @@ -104,6 +104,7 @@ api_idnode_grid_conf } /* Sort */ + conf->sort.lang = perm->aa_lang; if ((str = htsmsg_get_str(args, "sort"))) { conf->sort.key = str; if ((str = htsmsg_get_str(args, "dir")) && !strcasecmp(str, "DESC")) @@ -127,7 +128,7 @@ api_idnode_grid api_idnode_grid_callback_t cb = opaque; /* Grid configuration */ - api_idnode_grid_conf(args, &conf); + api_idnode_grid_conf(perm, args, &conf); /* Create list */ pthread_mutex_lock(&global_lock); @@ -144,7 +145,7 @@ api_idnode_grid htsmsg_add_str(e, "uuid", idnode_uuid_as_str(ins.is_array[i])); in = ins.is_array[i]; idnode_perm_set(in, perm); - idnode_read0(in, e, flist, 0); + idnode_read0(in, e, flist, 0, perm->aa_lang); idnode_perm_unset(in); htsmsg_add_msg(list, NULL, e); if (conf.limit > 0) conf.limit--; diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index 26d674a84..298514b16 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -315,10 +315,10 @@ dvr_entry_status(dvr_entry_t *de) return N_("Completed OK"); case DVR_MISSED_TIME: - return "Time missed"; + return N_("Time missed"); default: - return "Invalid"; + return N_("Invalid"); } } @@ -2274,7 +2274,7 @@ const idclass_t dvr_entry_class = { .id = "status", .name = N_("Status"), .get = dvr_entry_class_status_get, - .opts = PO_RDONLY | PO_NOSAVE, + .opts = PO_RDONLY | PO_NOSAVE | PO_LOCALE, }, { .type = PT_STR, diff --git a/src/idnode.c b/src/idnode.c index 4467fb8ff..b3c90f292 100644 --- a/src/idnode.c +++ b/src/idnode.c @@ -1112,11 +1112,12 @@ idnode_changed( idnode_t *self ) * *************************************************************************/ void -idnode_read0 ( idnode_t *self, htsmsg_t *c, htsmsg_t *list, int optmask ) +idnode_read0 ( idnode_t *self, htsmsg_t *c, htsmsg_t *list, + int optmask, const char *lang ) { const idclass_t *idc = self->in_class; for (; idc; idc = idc->ic_super) - prop_read_values(self, idc->ic_properties, c, list, optmask); + prop_read_values(self, idc->ic_properties, c, list, optmask, lang); } /** diff --git a/src/idnode.h b/src/idnode.h index fd450cc55..908169840 100644 --- a/src/idnode.h +++ b/src/idnode.h @@ -193,13 +193,13 @@ const idclass_t *idclass_find ( const char *name ); const char *idclass_get_caption ( const idclass_t *idc, const char *lang ); htsmsg_t *idclass_serialize0 (const idclass_t *idc, htsmsg_t *list, int optmask, const char *lang); htsmsg_t *idnode_serialize0 (idnode_t *self, htsmsg_t *list, int optmask, const char *lang); -void idnode_read0 (idnode_t *self, htsmsg_t *m, htsmsg_t *list, int optmask); +void idnode_read0 (idnode_t *self, htsmsg_t *m, htsmsg_t *list, int optmask, const char *lang); int idnode_write0 (idnode_t *self, htsmsg_t *m, int optmask, int dosave); #define idclass_serialize(idc, lang) idclass_serialize0(idc, NULL, 0, lang) #define idnode_serialize(in, lang) idnode_serialize0(in, NULL, 0, lang) #define idnode_load(in, m) idnode_write0(in, m, PO_NOSAVE, 0) -#define idnode_save(in, m) idnode_read0(in, m, NULL, PO_NOSAVE | PO_USERAW) +#define idnode_save(in, m) idnode_read0(in, m, NULL, PO_NOSAVE | PO_USERAW, NULL) #define idnode_update(in, m) idnode_write0(in, m, PO_RDONLY | PO_WRONCE, 1) int idnode_perm(idnode_t *self, struct access *a, htsmsg_t *msg_to_write); diff --git a/src/prop.c b/src/prop.c index e9b1ab53e..127ffaee3 100644 --- a/src/prop.c +++ b/src/prop.c @@ -22,6 +22,7 @@ #include "tvheadend.h" #include "prop.h" +#include "tvh_locale.h" #include "lang_str.h" /* ************************************************************************** @@ -246,7 +247,8 @@ prop_write_values */ static void prop_read_value - (void *obj, const property_t *p, htsmsg_t *m, const char *name, int optmask) + (void *obj, const property_t *p, htsmsg_t *m, const char *name, + int optmask, const char *lang) { const char *s; const void *val = obj + p->off; @@ -309,7 +311,7 @@ prop_read_value break; case PT_STR: if ((s = *(const char **)val)) - htsmsg_add_str(m, name, s); + htsmsg_add_str(m, name, lang ? tvh_gettext_lang(lang, s) : s); break; case PT_DBL: htsmsg_add_dbl(m, name, *(double*)val); @@ -335,14 +337,15 @@ prop_read_value */ void prop_read_values - (void *obj, const property_t *pl, htsmsg_t *m, htsmsg_t *list, int optmask) + (void *obj, const property_t *pl, htsmsg_t *m, htsmsg_t *list, + int optmask, const char *lang) { if(pl == NULL) return; if(list == NULL) { for (; pl->id; pl++) - prop_read_value(obj, pl, m, pl->id, optmask); + prop_read_value(obj, pl, m, pl->id, optmask, lang); } else { const property_t *p; htsmsg_field_t *f; @@ -354,7 +357,7 @@ prop_read_values if (b > 0) { p = prop_find(pl, f->hmf_name); if (p) - prop_read_value(obj, p, m, p->id, optmask); + prop_read_value(obj, p, m, p->id, optmask, lang); count++; } } @@ -365,7 +368,7 @@ prop_read_values if (!strcmp(pl->id, f->hmf_name)) break; if (f == NULL) - prop_read_value(obj, pl, m, pl->id, optmask); + prop_read_value(obj, pl, m, pl->id, optmask, lang); } } } @@ -485,7 +488,7 @@ prop_serialize_value /* Data */ if (obj) - prop_read_value(obj, pl, m, "value", optmask); + prop_read_value(obj, pl, m, "value", optmask, lang); htsmsg_add_msg(msg, NULL, m); } diff --git a/src/prop.h b/src/prop.h index 67701d36f..16ae92d14 100644 --- a/src/prop.h +++ b/src/prop.h @@ -56,6 +56,7 @@ typedef enum { #define PO_DURATION 0x0100 // For PT_TIME - differentiate between duration and datetime #define PO_HEXA 0x0200 // Hexadecimal value #define PO_DATE 0x0400 // Show date only +#define PO_LOCALE 0x0800 // Call tvh_locale_lang on string /* * Property definition @@ -105,7 +106,8 @@ int prop_write_values (void *obj, const property_t *pl, htsmsg_t *m, int optmask, htsmsg_t *updated); void prop_read_values - (void *obj, const property_t *pl, htsmsg_t *m, htsmsg_t *list, int optmask); + (void *obj, const property_t *pl, htsmsg_t *m, htsmsg_t *list, + int optmask, const char *lang); void prop_serialize (void *obj, const property_t *pl, htsmsg_t *m, htsmsg_t *list, diff --git a/src/webui/static/app/idnode.js b/src/webui/static/app/idnode.js index 77e52c2e9..d5dd0e81f 100644 --- a/src/webui/static/app/idnode.js +++ b/src/webui/static/app/idnode.js @@ -527,7 +527,7 @@ tvheadend.idnode_editor_field = function(f, conf) typeAhead: true, // TODO: this does strange things in multi forceSelection: false, triggerAction: 'all', - emptyText: 'Select ' + f.caption + ' ...', + emptyText: _('Select {0} ...').replace('{0}', f.caption), listeners: { beforequery: function(qe) { delete qe.combo.lastQuery; diff --git a/src/webui/static/app/tvhlog.js b/src/webui/static/app/tvhlog.js index de551eff2..b496ef472 100644 --- a/src/webui/static/app/tvhlog.js +++ b/src/webui/static/app/tvhlog.js @@ -12,7 +12,7 @@ tvheadend.tvhlog = function(panel, index) { * ***************************************************************/ var tvhlogLogPath = new Ext.form.TextField({ - fieldLabel: 'Debug log path', + fieldLabel: _('Debug log path'), name: 'tvhlog_path', allowBlank: true, width: 400 @@ -20,23 +20,23 @@ tvheadend.tvhlog = function(panel, index) { var tvhlogToSyslog = new Ext.form.Checkbox({ name: 'tvhlog_dbg_syslog', - fieldLabel: 'Debug to syslog' + fieldLabel: _('Debug to syslog') }); var tvhlogTraceOn = new Ext.form.Checkbox({ name: 'tvhlog_trace_on', - fieldLabel: 'Debug trace (low-level stuff)' + fieldLabel: _('Debug trace (low-level stuff)') }); var tvhlogDebugSubsys = new Ext.form.TextField({ - fieldLabel: 'Debug subsystems', + fieldLabel: _('Debug subsystems'), name: 'tvhlog_debug', allowBlank: true, width: 400 }); var tvhlogTraceSubsys = new Ext.form.TextField({ - fieldLabel: 'Trace subsystems', + fieldLabel: _('Trace subsystems'), name: 'tvhlog_trace', allowBlank: true, width: 400 @@ -44,7 +44,7 @@ tvheadend.tvhlog = function(panel, index) { var tvhlogLibav = new Ext.form.Checkbox({ name: 'tvhlog_libav', - fieldLabel: 'Debug libav log' + fieldLabel: _('Debug libav log') }); @@ -53,17 +53,17 @@ tvheadend.tvhlog = function(panel, index) { * ***************************************************************/ var saveButton = new Ext.Button({ - text: "Apply configuration (run-time only)", - tooltip: 'Apply changes made bellow to the run-time configuration
They will be lost on restart.', + text: _("Apply configuration (run-time only)"), + tooltip: _('Apply changes made bellow to the run-time configuration
They will be lost on restart.'), iconCls: 'apply', handler: saveChanges }); var helpButton = new Ext.Button({ - text: 'Help', - iconCls: 'help', + text: _('Help'), + iconCls: 'help', handler: function() { - new tvheadend.help('Debug Configuration', 'config_debugging.html'); + new tvheadend.help(_('Debug Configuration'), 'config_debugging.html'); } }); @@ -79,7 +79,7 @@ tvheadend.tvhlog = function(panel, index) { items.push(tvhlogLibav); var DebuggingPanel = new Ext.form.FieldSet({ - title: 'Debugging Options', + title: _('Debugging Options'), width: 700, autoHeight: true, collapsible: true, @@ -88,7 +88,7 @@ tvheadend.tvhlog = function(panel, index) { }); var confpanel = new Ext.form.FormPanel({ - title: 'Debugging', + title: _('Debugging'), iconCls: 'debug', border: false, bodyStyle: 'padding:15px', @@ -125,9 +125,9 @@ tvheadend.tvhlog = function(panel, index) { params: { op: 'saveSettings' }, - waitMsg: 'Applying Data...', + waitMsg: _('Applying Data...'), failure: function(form, action) { - Ext.Msg.alert('Apply failed', action.result.errormsg); + Ext.Msg.alert(_('Apply failed'), action.result.errormsg); } }); }