Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
/* Variante 1: Offiziellen ULS-Trigger in den sichtbaren Header verschieben */
/* Eigene Sprachleiste unter dem Header mit aktiver Sprache markiert */
mw.loader.using(['ext.uls.interface'], function () {
mw.loader.using('mediawiki.util', function () {
     if (mw.config.get('skin') !== 'minerva') return;
     // Definierte Sprachen und ihre URL-Suffixe
    var langs = [
        { code: 'de', label: 'Deutsch', suffix: '' },
        { code: 'en', label: 'English', suffix: '/en' },
        { code: 'fr', label: 'Français', suffix: '/fr' }
    ];


    // Vorhandenen ULS-Trigger holen
     var page = mw.config.get('wgPageName');
     var $trigger = $('a.uls-trigger, #pt-uls a').first();
    if (!$trigger.length) {
        console.warn('ULS-Trigger nicht gefunden – ist ULS geladen?');
        return;
    }


     // Ziel: in die Header-Action-Bar vor der Suche setzen
     // Wrapper für die Leiste
     var $target = $('.minerva-header .header-actions').first();
     var $bar = $('<div id="custom-langbar"></div>');
    if (!$target.length) {
        console.warn('Header-Actions nicht gefunden');
        return;
    }


     // Einhängen
     langs.forEach(function (lang) {
    var $holder = $('<div class="minerva-icon mw-minerva-uls"></div>').append($trigger);
        var url = mw.util.getUrl(page.replace(/\/[a-z]{2}$/, '') + lang.suffix);
     $target.prepend($holder);
        var $link = $('<a>')
            .attr('href', url)
            .text(lang.label);
 
        // Markierung, falls aktuelle Seite in dieser Sprache
        if (
            mw.config.get('wgContentLanguage') === lang.code ||
            mw.config.get('wgPageName').endsWith('/' + lang.code)
        ) {
            $link.addClass('active-lang');
        }
 
        $bar.append($link);
    });
 
    // Unter den Header einfügen
     $('.minerva-header').after($bar);
});
});

Version vom 8. August 2025, 09:48 Uhr

/* Eigene Sprachleiste unter dem Header mit aktiver Sprache markiert */
mw.loader.using('mediawiki.util', function () {
    // Definierte Sprachen und ihre URL-Suffixe
    var langs = [
        { code: 'de', label: 'Deutsch', suffix: '' },
        { code: 'en', label: 'English', suffix: '/en' },
        { code: 'fr', label: 'Français', suffix: '/fr' }
    ];

    var page = mw.config.get('wgPageName');

    // Wrapper für die Leiste
    var $bar = $('<div id="custom-langbar"></div>');

    langs.forEach(function (lang) {
        var url = mw.util.getUrl(page.replace(/\/[a-z]{2}$/, '') + lang.suffix);
        var $link = $('<a>')
            .attr('href', url)
            .text(lang.label);

        // Markierung, falls aktuelle Seite in dieser Sprache
        if (
            mw.config.get('wgContentLanguage') === lang.code ||
            mw.config.get('wgPageName').endsWith('/' + lang.code)
        ) {
            $link.addClass('active-lang');
        }

        $bar.append($link);
    });

    // Unter den Header einfügen
    $('.minerva-header').after($bar);
});