diff options
| -rw-r--r-- | admin_media.php | 15 | ||||
| -rw-r--r-- | admin_modules.php | 15 | ||||
| -rw-r--r-- | admin_site_logs.php | 16 | ||||
| -rw-r--r-- | admin_users.php | 15 | ||||
| -rw-r--r-- | includes/functions/functions_print_lists.php | 163 | ||||
| -rw-r--r-- | library/WT/I18N.php | 42 |
6 files changed, 54 insertions, 212 deletions
diff --git a/admin_media.php b/admin_media.php index 65643b1bff..53c1db0e75 100644 --- a/admin_media.php +++ b/admin_media.php @@ -1044,20 +1044,7 @@ if (check_media_structure()) { ->addInlineJavaScript(' jQuery("#media_table").dataTable( { "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'./* I18N: Display %s [records per page], %s is a placeholder for listbox containing numeric options */ WT_I18N::translate('Display %s', '<select><option value=\"10\">10<option value=\"25\">25</option><option value=\"50\">50</option><option value=\"100\">100</option><option value=\"500\">500</option><option value=\"-1\">'.WT_I18N::translate('All').'</option></select>').'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "aaSorting": [[ 1, "asc" ]], diff --git a/admin_modules.php b/admin_modules.php index 65575a631f..b6c25380be 100644 --- a/admin_modules.php +++ b/admin_modules.php @@ -92,20 +92,7 @@ $controller var oTable = jQuery("#installed_table").dataTable( { "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'./* I18N: Display %s [records per page], %s is a placeholder for listbox containing numeric options */ WT_I18N::translate('Display %s', '<select><option value=\"10\">10<option value=\"25\">25</option><option value=\"50\">50</option><option value=\"100\">100</option><option value=\"-1\">'.WT_I18N::translate('All').'</option></select>').'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "aaSorting": [[ 1, "asc" ]], diff --git a/admin_site_logs.php b/admin_site_logs.php index 87900ed27b..eea89bbe42 100644 --- a/admin_site_logs.php +++ b/admin_site_logs.php @@ -184,21 +184,7 @@ $controller "bProcessing": true, "bServerSide": true, "sAjaxSource": "'.WT_SERVER_NAME.WT_SCRIPT_PATH.WT_SCRIPT_NAME.'?action=load_json&from='.$from.'&to='.$to.'&type='.$type.'&text='.rawurlencode($text).'&ip='.rawurlencode($ip).'&user='.rawurlencode($user).'&gedc='.rawurlencode($gedc).'", - "oLanguage": { - "sLengthMenu": "'./* I18N: Display %s [records per page], %s is a placeholder for listbox containing numeric options */ WT_I18N::translate('Display %s', '<select><option value=\"10\">10<option value=\"20\">20</option><option value=\"50\">50</option><option value=\"100\">100</option><option value=\"500\">500</option><option value=\"1000\">1000</option><option value=\"-1\">'.WT_I18N::translate('All').'</option></select>').'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N(array(10,20,50,100,500,1000,-1)).', "bJQueryUI": true, "bAutoWidth":false, "aaSorting": [[ 0, "desc" ]], diff --git a/admin_users.php b/admin_users.php index f5fb7b75c5..cfae4e36a5 100644 --- a/admin_users.php +++ b/admin_users.php @@ -697,20 +697,7 @@ default: ->addInlineJavaScript(' var oTable = jQuery("#list").dataTable({ "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'./* I18N: Display %s [records per page], %s is a placeholder for listbox containing numeric options */ WT_I18N::translate('Display %s', '<select><option value=\"10\">10<option value=\"25\">25</option><option value=\"50\">50</option><option value=\"100\">100</option><option value=\"500\">500</option><option value=\"-1\">'.WT_I18N::translate('All').'</option></select>').'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bProcessing" : true, "bServerSide" : true, "sAjaxSource" : "'.WT_SCRIPT_NAME.'?action=loadrows", diff --git a/includes/functions/functions_print_lists.php b/includes/functions/functions_print_lists.php index f8c96894e9..a5478ae73f 100644 --- a/includes/functions/functions_print_lists.php +++ b/includes/functions/functions_print_lists.php @@ -41,16 +41,6 @@ function print_indi_table($datalist, $option='') { $SHOW_EST_LIST_DATES=get_gedcom_setting(WT_GED_ID, 'SHOW_EST_LIST_DATES'); if ($option=='MARR_PLAC') return; - $pagination= - '<select>'. - '<option value="10">'.WT_I18N::number('10').'</option>'. - '<option value="20">'.WT_I18N::number('20').'</option>'. - '<option value="30">'.WT_I18N::number('30').'</option>'. - '<option value="50">'.WT_I18N::number('50').'</option>'. - '<option value="100">'.WT_I18N::number('100').'</option>'. - '<option value="-1">'.WT_I18N::translate('All').'</option>'. - '</select>'; - $controller ->addExternalJavaScript(WT_STATIC_URL.'js/jquery/jquery.dataTables.min.js') ->addInlineJavaScript(' @@ -60,21 +50,7 @@ function print_indi_table($datalist, $option='') { jQuery.fn.dataTableExt.oSort["num-html-desc"]=function(a,b) {a=parseFloat(a.replace(/<[^<]*>/, "")); b=parseFloat(b.replace(/<[^<]*>/, "")); return (a>b) ? -1 : (a<b ? 1 : 0);}; var oTable'.$table_id.' = jQuery("#'.$table_id.'").dataTable( { "sDom": \'<"H"<"filtersH_'.$table_id.'"><"dt-clear">pf<"dt-clear">irl>t<"F"pl<"dt-clear"><"filtersF_'.$table_id.'">>\', - "oLanguage": { - "sLengthMenu": "'.addslashes(/* I18N: Display %s [records per page], %s is a placeholder for listbox containing numeric options */ WT_I18N::translate('Display %s', $pagination)).'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "bProcessing": true, @@ -482,16 +458,6 @@ function print_fam_table($datalist, $option='') { $table_id = 'ID'.floor(microtime()*1000000); // lists requires a unique ID in case there are multiple lists per page if ($option=='BIRT_PLAC' || $option=='DEAT_PLAC') return; - $pagination= - '<select>'. - '<option value="10">'.WT_I18N::number('10').'</option>'. - '<option value="20">'.WT_I18N::number('20').'</option>'. - '<option value="30">'.WT_I18N::number('30').'</option>'. - '<option value="50">'.WT_I18N::number('50').'</option>'. - '<option value="100">'.WT_I18N::number('100').'</option>'. - '<option value="-1">'.WT_I18N::translate('All').'</option>'. - '</select>'; - $controller ->addExternalJavaScript(WT_STATIC_URL.'js/jquery/jquery.dataTables.min.js') ->addInlineJavaScript(' @@ -499,21 +465,7 @@ function print_fam_table($datalist, $option='') { jQuery.fn.dataTableExt.oSort["unicode-desc"]=function(a,b) {return b.replace(/<[^<]*>/, "").localeCompare(a.replace(/<[^<]*>/, ""))}; var oTable'.$table_id.'=jQuery("#'.$table_id.'").dataTable( { "sDom": \'<"H"<"filtersH_'.$table_id.'"><"dt-clear">pf<"dt-clear">irl>t<"F"pl<"dt-clear"><"filtersF_'.$table_id.'">>\', - "oLanguage": { - "sLengthMenu": "'.addslashes(WT_I18N::translate('Display %s', $pagination)).'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "bProcessing": true, @@ -959,16 +911,6 @@ function print_fam_table($datalist, $option='') { function print_sour_table($datalist) { global $SHOW_LAST_CHANGE, $WT_IMAGES, $controller; - $pagination= - '<select>'. - '<option value="10">'.WT_I18N::number('10').'</option>'. - '<option value="20">'.WT_I18N::number('20').'</option>'. - '<option value="30">'.WT_I18N::number('30').'</option>'. - '<option value="50">'.WT_I18N::number('50').'</option>'. - '<option value="100">'.WT_I18N::number('100').'</option>'. - '<option value="-1">'.WT_I18N::translate('All').'</option>'. - '</select>'; - $table_id = "ID".floor(microtime()*1000000); // lists requires a unique ID in case there are multiple lists per page $controller ->addExternalJavaScript(WT_STATIC_URL.'js/jquery/jquery.dataTables.min.js') @@ -977,21 +919,7 @@ function print_sour_table($datalist) { jQuery.fn.dataTableExt.oSort["unicode-desc"]=function(a,b) {return b.replace(/<[^<]*>/, "").localeCompare(a.replace(/<[^<]*>/, ""))}; jQuery("#'.$table_id.'").dataTable( { "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'.addslashes(WT_I18N::translate('Display %s', $pagination)).'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "bProcessing": true, @@ -1116,16 +1044,6 @@ function print_sour_table($datalist) { function print_note_table($datalist) { global $SHOW_LAST_CHANGE, $WT_IMAGES, $controller; - $pagination= - '<select>'. - '<option value="10">'.WT_I18N::number('10').'</option>'. - '<option value="20">'.WT_I18N::number('20').'</option>'. - '<option value="30">'.WT_I18N::number('30').'</option>'. - '<option value="50">'.WT_I18N::number('50').'</option>'. - '<option value="100">'.WT_I18N::number('100').'</option>'. - '<option value="-1">'.WT_I18N::translate('All').'</option>'. - '</select>'; - $table_id = 'ID'.floor(microtime()*1000000); // lists requires a unique ID in case there are multiple lists per page $controller ->addExternalJavaScript(WT_STATIC_URL.'js/jquery/jquery.dataTables.min.js') @@ -1134,21 +1052,7 @@ function print_note_table($datalist) { jQuery.fn.dataTableExt.oSort["unicode-desc"]=function(a,b) {return b.replace(/<[^<]*>/, "").localeCompare(a.replace(/<[^<]*>/, ""))}; jQuery("#'.$table_id.'").dataTable({ "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'.addslashes(WT_I18N::translate('Display %s', $pagination)).'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "bProcessing": true, @@ -1234,16 +1138,6 @@ function print_note_table($datalist) { function print_repo_table($repos) { global $SHOW_LAST_CHANGE, $WT_IMAGES, $SEARCH_SPIDER, $controller; - $pagination= - '<select>'. - '<option value="10">'.WT_I18N::number('10').'</option>'. - '<option value="20">'.WT_I18N::number('20').'</option>'. - '<option value="30">'.WT_I18N::number('30').'</option>'. - '<option value="50">'.WT_I18N::number('50').'</option>'. - '<option value="100">'.WT_I18N::number('100').'</option>'. - '<option value="-1">'.WT_I18N::translate('All').'</option>'. - '</select>'; - $table_id = 'ID'.floor(microtime()*1000000); // lists requires a unique ID in case there are multiple lists per page $controller ->addExternalJavaScript(WT_STATIC_URL.'js/jquery/jquery.dataTables.min.js') @@ -1252,21 +1146,7 @@ function print_repo_table($repos) { jQuery.fn.dataTableExt.oSort["unicode-desc"]=function(a,b) {return b.replace(/<[^<]*>/, "").localeCompare(a.replace(/<[^<]*>/, ""))}; jQuery("#'.$table_id.'").dataTable({ "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'.addslashes(WT_I18N::translate('Display %s', $pagination)).'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "bProcessing": true, @@ -1342,16 +1222,6 @@ function print_repo_table($repos) { function print_media_table($datalist) { global $SHOW_LAST_CHANGE, $WT_IMAGES, $controller; - $pagination= - '<select>'. - '<option value="10">'.WT_I18N::number('10').'</option>'. - '<option value="20">'.WT_I18N::number('20').'</option>'. - '<option value="30">'.WT_I18N::number('30').'</option>'. - '<option value="50">'.WT_I18N::number('50').'</option>'. - '<option value="100">'.WT_I18N::number('100').'</option>'. - '<option value="-1">'.WT_I18N::translate('All').'</option>'. - '</select>'; - $table_id = 'ID'.floor(microtime()*1000000); // lists requires a unique ID in case there are multiple lists per page $controller ->addExternalJavaScript(WT_STATIC_URL.'js/jquery/jquery.dataTables.min.js') @@ -1360,21 +1230,7 @@ function print_media_table($datalist) { jQuery.fn.dataTableExt.oSort["unicode-desc"]=function(a,b) {return b.replace(/<[^<]*>/, "").localeCompare(a.replace(/<[^<]*>/, ""))}; jQuery("#'.$table_id.'").dataTable({ "sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\', - "oLanguage": { - "sLengthMenu": "'.addslashes(WT_I18N::translate('Display %s', $pagination)).'", - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'", - "sInfoEmpty": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '0', '0', '0').'", - "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'", - "sProcessing": "'.WT_I18N::translate('Loading...').'", - "sSearch": "'.WT_I18N::translate('Filter').'", - "oPaginate": { - "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'", - "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'", - "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'", - "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'" - } - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "bAutoWidth":false, "bProcessing": true, @@ -1752,10 +1608,7 @@ function print_changes_table($change_ids, $sort) { "bAutoWidth":false, "bLengthChange": false, "bFilter": false, - "oLanguage": { - "sZeroRecords": "'.WT_I18N::translate('No records to display').'", - "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'" - }, + '.WT_I18N::datatablesI18N().', "bJQueryUI": true, "aaSorting": ['.$aaSorting.'], "aoColumns": [ @@ -1850,7 +1703,7 @@ function print_events_table($startjd, $endjd, $events='BIRT MARR DEAT', $only_li ->addInlineJavaScript(' jQuery("#'.$table_id.'").dataTable({ "sDom": \'t\', - "oLanguage": {"sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'"}, + '.WT_I18N::datatablesI18N().', "bAutoWidth":false, "bPaginate": false, "bLengthChange": false, diff --git a/library/WT/I18N.php b/library/WT/I18N.php index 50d61f9a5b..17f35dab86 100644 --- a/library/WT/I18N.php +++ b/library/WT/I18N.php @@ -452,4 +452,46 @@ class WT_I18N { return WT_I18N::plural('%d second ago', '%d seconds ago', $seconds, $seconds); } } + + // Generate consistent I18N for datatables.js + static function datatablesI18N(array $lengths=null) { + if ($lengths===null) { + $lengths=array(10, 20, 30, 50, 100, -1); + } + + $length_menu=''; + foreach ($lengths as $length) { + $length_menu.= + '<option value="'.$length.'">'. + ($length==-1 ? /* I18N: listbox option, e.g. "10,25,50,100,all" */ WT_I18N::translate('All') : WT_I18N::number($length)). + '</option>'; + } + $length_menu='<select>'.$length_menu.'</select>'; + $length_menu=/* I18N: Display %s [records per page], %s is a placeholder for listbox containing numeric options */ WT_I18N::translate('Display %s', $length_menu); + + // Which symbol is used for separating numbers into groups + $symbols = Zend_Locale_Data::getList(WT_LOCALE, 'symbols'); + + return + '"oLanguage": {'. + ' "oPaginate": {'. + ' "sFirst": "'./* I18N: button label, first page */ WT_I18N::translate('first').'",'. + ' "sLast": "'./* I18N: button label, last page */ WT_I18N::translate('last').'",'. + ' "sNext": "'./* I18N: button label, next page */ WT_I18N::translate('next').'",'. + ' "sPrevious": "'./* I18N: button label, previous page */ WT_I18N::translate('previous').'"'. + ' },'. + ' "sEmptyTable": "'.WT_I18N::translate('No records to display').'",'. + ' "sInfo": "'./* I18N: %s are placeholders for numbers */ WT_I18N::translate('Showing %1$s to %2$s of %3$s', '_START_', '_END_', '_TOTAL_').'",'. + ' "sInfoEmpty": "'.WT_I18N::translate('Showing %1$s to %2$s of %3$s', 0, 0, 0).'",'. + ' "sInfoFiltered": "'./* I18N: %s is a placeholder for a number */ WT_I18N::translate('(filtered from %s total entries)', '_MAX_').'",'. + ' "sInfoPostfix": "",'. + ' "sInfoThousands": "'.$symbols['group'].'",'. + ' "sLengthMenu": "'.addslashes($length_menu).'",'. + ' "sLoadingRecords": "'.WT_I18N::translate('Loading...').'",'. + ' "sProcessing": "'.WT_I18N::translate('Loading...').'",'. + ' "sSearch": "'.WT_I18N::translate('Filter').'",'. + ' "sUrl": "",'. + ' "sZeroRecords": "'.WT_I18N::translate('No records to display').'"'. + '}'; + } } |
