fix: replace Pug language picker dropdown with native select
Build and Deploy Verso / deploy (push) Successful in 14m31s

The old dropdown relied on data-bs-toggle and AngularJS directives,
neither of which are loaded on React-layout pages (layout-react.pug
intentionally excludes Bootstrap JS). The toggle button was inert on
pages like /user/settings.

Replace with a plain <select> that navigates via window.location.href
onchange — works without any framework on all page types.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
claude
2026-06-15 18:46:03 +00:00
parent 81c1fc92d1
commit 323d74cc66
@@ -1,35 +1,10 @@
include ../_mixins/material_symbol
li.dropdown.dropup.subdued.language-picker(dropdown)
button#language-picker-toggle.btn.btn-link.btn-inline-link(
dropdown-toggle
data-ol-lang-selector-tooltip
data-bs-toggle='dropdown'
aria-haspopup='true'
aria-expanded='false'
aria-label='Select ' + translate('language')
tooltip=translate('language')
title=translate('language')
li.language-picker
select.language-picker-select(
name='lng'
translate='no'
onchange='window.location.href="/set-language?lng="+encodeURIComponent(this.value)+"&return_to="+encodeURIComponent(window.location.pathname)'
aria-label=translate('select_a_language')
)
+material-symbol('translate')
| &nbsp;
span.language-picker-text #{settings.translatedLanguages[currentLngCode] || currentLngCode}
ul.dropdown-menu.dropdown-menu-sm-width(
role='menu'
aria-labelledby='language-picker-toggle'
)
li.dropdown-header #{translate("language")}
each lngCode in availableLanguages
if settings.translatedLanguages[lngCode]
- let isActive = lngCode === currentLngCode
li.lng-option
a.menu-indent(
href='/set-language?lng=' + lngCode
role='menuitem'
class=['dropdown-item', {active: isActive}]
aria-selected=isActive ? 'true' : 'false'
)
| #{settings.translatedLanguages[lngCode]}
if isActive
+material-symbol('check', 'dropdown-item-trailing-icon')
option(value=lngCode selected=lngCode === currentLngCode)= settings.translatedLanguages[lngCode]