diff --git a/change-user/index.cgi b/change-user/index.cgi index 9c9aac122..e514ecbf4 100755 --- a/change-user/index.cgi +++ b/change-user/index.cgi @@ -50,6 +50,23 @@ if ($access{'lang'}) { if (!defined($user->{'langneutral'}) && $ulangused) { $ulangneutral = $ulinfo->{'neutral'}; } + my $selectjs = < +(function () { + const select = document.querySelector('select[name="lang"]'), + span = document.querySelector('span[data-neutral]'), + checkbox = document.querySelector('input[name="langneutral"]'); + const update = function() { + const selected = select.options[select.selectedIndex], + show = selected.getAttribute('data-neutral') === '1'; + span.style.visibility = show ? 'visible' : 'hidden'; + if (!show) checkbox.checked = false; + } + update(); + select.addEventListener('change', update); +})(); + +EOF print &ui_table_row($text{'index_lang'}, &ui_radio("lang_def", $ulang ? 0 : 1, [ [ 1, &text('index_langglobal2', $linfo->{'desc'}, @@ -57,14 +74,17 @@ if ($access{'lang'}) { [ 0, $text{'index_langset'} ] ])." ". &ui_select("lang", $ulang, [ map { [ $_->{'lang'}, - $_->{'desc'} ] } + $_->{'desc'}, + "data-neutral='$_->{'neutral'}'" ] } &list_languages() ]) . "  ". - &ui_checkbox("langneutral", 1, - $text{'langneutral_include'}, $ulangneutral). &ui_checkbox("langauto", 1, $text{'langauto_include'}, $ulangauto). - "", + "  ". + &ui_checkbox("langneutral", 1, + $text{'langneutral_include'}, $ulangneutral). + "". + "$selectjs", undef, [ "valign=top","valign=top" ]); } diff --git a/lang_list.txt b/lang_list.txt index 11bb7e453..ca2d380b7 100644 --- a/lang_list.txt +++ b/lang_list.txt @@ -3,7 +3,7 @@ lang=bg, charset=utf-8, titles=1 бълг lang=ca, charset=utf-8, titles=1, auto=1 català lang=cs, charset=utf-8, titles=0 čeština lang=da, charset=utf-8, titles=1, auto=1 dansk -lang=de, charset=utf-8, titles=1, auto=1 Deutsch +lang=de, charset=utf-8, titles=1, auto=1, neutral=1 Deutsch lang=el, charset=utf-8, titles=0, auto=1 Ελληνικά lang=en, charset=utf-8, titles=1 English lang=es, charset=utf-8, titles=1, auto=1 español