+ // 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') && $lang != 'C') 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();
+}
+//---------------------------------------------------------------------------------------------
+// Non standard (manually entered) languages support.
+//