Fix to only show neutral language checkbox if languages supports it

This commit is contained in:
Ilia Ross
2025-05-27 03:47:04 +03:00
parent fdad726013
commit 8f6a94c537
2 changed files with 25 additions and 5 deletions

View File

@@ -50,6 +50,23 @@ if ($access{'lang'}) {
if (!defined($user->{'langneutral'}) && $ulangused) { if (!defined($user->{'langneutral'}) && $ulangused) {
$ulangneutral = $ulinfo->{'neutral'}; $ulangneutral = $ulinfo->{'neutral'};
} }
my $selectjs = <<EOF;
<script>
(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);
})();
</script>
EOF
print &ui_table_row($text{'index_lang'}, print &ui_table_row($text{'index_lang'},
&ui_radio("lang_def", $ulang ? 0 : 1, &ui_radio("lang_def", $ulang ? 0 : 1,
[ [ 1, &text('index_langglobal2', $linfo->{'desc'}, [ [ 1, &text('index_langglobal2', $linfo->{'desc'},
@@ -57,14 +74,17 @@ if ($access{'lang'}) {
[ 0, $text{'index_langset'} ] ])." ". [ 0, $text{'index_langset'} ] ])." ".
&ui_select("lang", $ulang, &ui_select("lang", $ulang,
[ map { [ $_->{'lang'}, [ map { [ $_->{'lang'},
$_->{'desc'} ] } $_->{'desc'},
"data-neutral='$_->{'neutral'}'" ] }
&list_languages() ]) . &list_languages() ]) .
"<wbr data-group><span data-nowrap>&nbsp;&nbsp;". "<wbr data-group><span data-nowrap>&nbsp;&nbsp;".
&ui_checkbox("langneutral", 1,
$text{'langneutral_include'}, $ulangneutral).
&ui_checkbox("langauto", 1, &ui_checkbox("langauto", 1,
$text{'langauto_include'}, $ulangauto). $text{'langauto_include'}, $ulangauto).
"</span>", "&nbsp;&nbsp;<span data-neutral>".
&ui_checkbox("langneutral", 1,
$text{'langneutral_include'}, $ulangneutral).
"</span>".
"</span>$selectjs",
undef, [ "valign=top","valign=top" ]); undef, [ "valign=top","valign=top" ]);
} }

View File

@@ -3,7 +3,7 @@ lang=bg, charset=utf-8, titles=1 бълг
lang=ca, charset=utf-8, titles=1, auto=1 català lang=ca, charset=utf-8, titles=1, auto=1 català
lang=cs, charset=utf-8, titles=0 čeština lang=cs, charset=utf-8, titles=0 čeština
lang=da, charset=utf-8, titles=1, auto=1 dansk 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=el, charset=utf-8, titles=0, auto=1 Ελληνικά
lang=en, charset=utf-8, titles=1 English lang=en, charset=utf-8, titles=1 English
lang=es, charset=utf-8, titles=1, auto=1 español lang=es, charset=utf-8, titles=1, auto=1 español