function display_langs() { start_table(TABLESTYLE); $th = array(_("Language"), _("Encoding"), _("Description"), _("Install")); table_header($th); $k = 0; $langs = get_languages_list(); foreach ($langs as $pkg_name => $lang) { $available = @$lang['available']; $installed = @$lang['version']; $id = @$lang['local_id']; if (!$available) { continue; } alt_table_row_color($k); label_cell($lang['name']); label_cell($lang['encoding']); label_cell(is_array($lang['Descr']) ? implode('<br>', $lang['Descr']) : $lang['Descr']); label_cell($installed ? _("Installed") : checkbox(null, 'langs[' . $lang['package'] . ']'), "align='center'"); end_row(); } end_table(1); }
function display_languages() { global $table_style, $installed_languages, $dflt_lang, $GetText; $th = array(_("Language"), _("Name"), _("Encoding"), _("Right To Left"), _("Installed"), _("Available"), _("Default"), "", ""); $currlang = $_SESSION["language"]->code; div_start('lang_tbl'); start_form(); // // select/display system locales support for sites using native gettext // if (function_exists('gettext')) { if (check_value('DisplayAll')) { array_insert($th, 7, _("Supported")); } start_table(); check_row(_('Display also languages not supported by server locales'), 'DisplayAll', null, true); end_table(); } start_table(TABLESTYLE); table_header($th); $k = 0; // get list of all (available and installed) langauges $langs = get_languages_list(); foreach ($langs as $pkg_name => $lng) { if ($lng == 'C') { // skip default locale (aka no translation) continue; } $lang = $lng['code']; $lang_name = $lng['name']; $charset = $lng['encoding']; $rtl = @$lng['rtl'] == 'yes' || @$lng['rtl'] === true; $available = @$lng['available']; $installed = @$lng['version']; $id = @$lng['local_id']; if ($lang == $currlang) { start_row("class='stockmankobg'"); } else { alt_table_row_color($k); } $support = $GetText->check_support($lang, $charset); if (function_exists('gettext') && !$support && !get_post('DisplayAll')) { continue; } label_cell($lang); label_cell($available ? get_package_view_str($lang, $lang_name) : $lang_name); label_cell($charset); label_cell($rtl ? _("Yes") : _("No")); label_cell($id === null ? _("None") : ($available && $installed ? $installed : _("Unknown"))); label_cell($available ? $available : _("None")); label_cell($id === null ? '' : radio(null, 'CurDflt', $id, $dflt_lang == $lang, true), "align='center'"); if (function_exists('gettext') && check_value('DisplayAll')) { label_cell($support ? _("Yes") : _("No")); } if (!$available && $lang != 'C') { // manually installed language button_cell('Edit' . $id, _("Edit"), _('Edit non standard language configuration'), ICON_EDIT); } elseif (check_pkg_upgrade($installed, $available)) { // outdated or not installed language in repo button_cell('Update' . $pkg_name, $installed ? _("Update") : _("Install"), _('Upload and install latest language package'), ICON_DOWN); } else { label_cell(''); } if ($id !== null && $lang != $currlang && $lang != 'C') { delete_button_cell('Delete' . $id, _('Delete')); submit_js_confirm('Delete' . $id, sprintf(_("You are about to remove language \\'%s\\'.\nDo you want to continue ?"), $lang_name)); } else { label_cell(''); } end_row(); } end_table(); display_note(_("The marked language is the current language which cannot be deleted."), 0, 0, "class='currentfg'"); br(); submit_center_first('Refresh', _("Update default"), '', null); submit_center_last('Add', _("Add new language manually"), '', false); end_form(); div_end(); }