document.addEventListener('DOMContentLoaded', () => {
const map = {
'de-de': 'Sprachauswahl',
'de-at': 'Sprachauswahl',
'de-ch': 'Sprachauswahl',
'fr-ch': 'Sélecteur de langue',
'fr-be': 'Sélecteur de langue',
'nl-be': 'Taalkeuze',
'nl-nl': 'Taalkeuze',
'en': 'Language selection'
};
// Get the current page language from the <html> tag
const pageLangRaw = (document.documentElement.getAttribute('lang') || '').toLowerCase();
const pageLang = pageLangRaw.replace('_', '-'); // Normalize underscores to hyphens
const generic = pageLang.split('-')[0]; // Extract base language (e.g. 'fr-ch' → 'fr')
// Choose the best matching label, fallback to English
const label = map[pageLang] || map[generic] || 'Language selection';
// Add aria-label to all Polylang language switchers if not already present
document.querySelectorAll('select.pll-switcher-select').forEach((el) => {
if (!el.hasAttribute('aria-label') && !el.hasAttribute('aria-labelledby')) {
el.setAttribute('aria-label', label);
}
});
});