i18n: add diagnostic logging to localizer + lang-toggle click path

This commit is contained in:
Giorgio Gilestro 2026-05-27 23:37:11 +02:00
parent 833d1775ab
commit 74b61a59ed
2 changed files with 28 additions and 8 deletions

View file

@ -143,12 +143,11 @@
};
window.cassandraSetLang = async function (newLang) {
console.log('[lang] click', newLang);
var pill = document.getElementById('lang-toggle');
if (!pill) return;
if (!pill) { console.warn('[lang] no pill element'); return; }
var prev = pill.dataset.lang;
if (prev === newLang) return;
// Optimistic update — flip the pill immediately so the click feels
// responsive. Revert on PATCH failure.
if (prev === newLang) { console.log('[lang] already', newLang); return; }
pill.dataset.lang = newLang;
try {
var r = await fetch('/api/settings/language', {
@ -157,18 +156,17 @@
credentials: 'same-origin',
body: JSON.stringify({lang: newLang}),
});
console.log('[lang] PATCH', r.status);
if (!r.ok) throw new Error('HTTP ' + r.status);
// Trigger HTMX-driven panels to re-fetch in the new language.
// Same shape as cassandraSetTone — every panel that listens to
// tone-changed also listens to lang-changed.
['#dash-header-container', '#log-panel .panel-body',
'#indicators-body', '#log-content'].forEach(function (sel) {
var el = document.querySelector(sel);
console.log('[lang] trigger', sel, 'found:', !!el, 'htmx:', !!window.htmx);
if (el && window.htmx) window.htmx.trigger(el, 'lang-changed');
});
} catch (e) {
pill.dataset.lang = prev;
console.warn('language switch failed:', e);
console.warn('[lang] switch failed:', e);
}
};
</script>