/** * Loads localized strings */ function load_i18n_strings() { AgenDAVConf.i18n = {}; var i18n_ajax_req = $.ajax({ async: false, url: base_app_url + 'strings/load/' + agendav_version, dataType: 'json', method: 'GET', ifModified: false // TODO set to true + cache }); i18n_ajax_req.done(function(data, textStatus, jqXHR) { AgenDAVConf.i18n = data; // Localized names set_default_datepicker_options(); }); i18n_ajax_req.fail(function(jqXHR, textStatus, errorThrown) { show_error('Error loading translation', 'Please, contact your system administrator'); }); } /** * Function that translates a given label/message */ function t(mtype, s, params) { var ret = '[' + mtype + ':' + s + ']'; if (typeof(AgenDAVConf.i18n)!= 'undefined' && (mtype == 'messages' || mtype == 'labels')) { if (mtype == 'labels' && AgenDAVConf.i18n.labels[s]) { ret = AgenDAVConf.i18n.labels[s]; } else if (mtype == 'messages' && AgenDAVConf.i18n.messages[s]) { ret = AgenDAVConf.i18n.messages[s]; } } for (var i in params) { ret = ret.replace(i, params[i]); } return ret; } /** * Returns an array of labels using the parameter 'arr' as the index for * the desired labels */ function labels_as_array(arr) { if (!$.isArray(arr)) { return []; } var result = []; var total_arr = arr.length for (var i=0; i