Zum Inhalt springen

MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Informatik.wiki
Doppelten Sprachumschalter entfernen
Doppelten Sprachumschalter dauerhaft entfernen
Zeile 101: Zeile 101:
} );
} );
/* END INFORMATIK.WIKI DGB1 LANGSWITCH */
/* END INFORMATIK.WIKI DGB1 LANGSWITCH */
/* BEGIN REMOVE DUPLICATE LANGUAGE SWITCH */
(function () {
    function removeDuplicateLanguageSwitch() {
        var oldSwitch = document.getElementById('iw-lang-switch-header');
        if (oldSwitch) {
            oldSwitch.remove();
        }
    }
    $(function () {
        removeDuplicateLanguageSwitch();
        var heading = document.getElementById('firstHeading');
        if (!heading || !heading.parentNode) {
            return;
        }
        var observer = new MutationObserver(function () {
            removeDuplicateLanguageSwitch();
        });
        observer.observe(heading.parentNode, {
            childList: true
        });
        window.setTimeout(removeDuplicateLanguageSwitch, 250);
        window.setTimeout(removeDuplicateLanguageSwitch, 1000);
    });
}());
/* END REMOVE DUPLICATE LANGUAGE SWITCH */

Version vom 11. September 2026, 17:18 Uhr

/* BEGIN INFORMATIK.WIKI DGB1 LANGSWITCH */
mw.loader.using( 'mediawiki.util' ).then( function () {
    /* Alten zweiten Sprachumschalter dauerhaft ausblenden */
    mw.util.addCSS( '#iw-lang-switch-header { display: none !important; }' );
    $( function () {
        var ns = mw.config.get( 'wgNamespaceNumber' );
        if ( ns < 0 ) {
            return;
        }

        var pageName = mw.config.get( 'wgPageName' ).replace( /_/g, ' ' );
        var isEnglish = /\/en$/.test( pageName );
        var baseTitle = pageName.replace( /\/en$/, '' );

        var translatedTitles = [
            'DGB 1. Klasse',
            'DGB 1: EVA-Prinzip',
            'DGB 1: Analog vs. Digital',
            'DGB 1: Persönliches Nutzungsverhalten',
            'DGB 1: Suchmaschinen',
            'DGB 1: Personalisierte Suchroutinen',
            'DGB 1: Internetrecherche',
            'DGB 1: Daten speichern verwalten verändern',
            'DGB 1: Personenbezogene Informationen',
            'DGB 1: Digitale Zusammenarbeit',
            'DGB 1: Kommunikations- und Kollaborationswerkzeuge',
            'DGB 1: Algorithmen',
            'DGB 1: Darstellungsformen und Wirkung',
            'DGB 1: Daten rechnen sammeln präsentieren',
            'DGB 1: Texte und Präsentationen',
            'DGB 1: Hardware',
            'DGB 1: Medienwandel',
            'DGB 1: Hilfesysteme'
        ];

        var hasEnglishPage = translatedTitles.indexOf( baseTitle ) !== -1;

        var old = document.getElementById( 'iw-lang-switch' );
        if ( old ) {
            old.remove();
        }

        var box = document.createElement( 'div' );
        box.id = 'iw-lang-switch';
        box.setAttribute( 'aria-label', 'Language / Sprache' );

        function addLanguage( code, label, href, active, enabled ) {
            var el;

            if ( enabled ) {
                el = document.createElement( 'a' );
                el.href = href;
            } else {
                el = document.createElement( 'span' );
                el.className = 'iw-lang-unavailable';
                el.title = code === 'en'
                    ? 'English page not available yet'
                    : 'Deutsche Seite nicht verfügbar';
            }

            el.textContent = label;
            el.lang = code;

            if ( active ) {
                el.classList.add( 'iw-lang-active' );
                el.setAttribute( 'aria-current', 'page' );
            }

            box.appendChild( el );
        }

        addLanguage(
            'de',
            'DE',
            mw.util.getUrl( baseTitle, { setlang: 'de' } ),
            !isEnglish,
            true
        );

        var separator = document.createElement( 'span' );
        separator.className = 'iw-lang-separator';
        separator.textContent = '|';
        box.appendChild( separator );

        addLanguage(
            'en',
            'EN',
            hasEnglishPage
                ? mw.util.getUrl( baseTitle + '/en', { setlang: 'en' } )
                : '#',
            isEnglish,
            hasEnglishPage
        );

        var heading = document.getElementById( 'firstHeading' );

        if ( heading && heading.parentNode ) {
            heading.parentNode.insertBefore( box, heading );
        }
    } );
} );
/* END INFORMATIK.WIKI DGB1 LANGSWITCH */

/* BEGIN REMOVE DUPLICATE LANGUAGE SWITCH */
(function () {
    function removeDuplicateLanguageSwitch() {
        var oldSwitch = document.getElementById('iw-lang-switch-header');
        if (oldSwitch) {
            oldSwitch.remove();
        }
    }

    $(function () {
        removeDuplicateLanguageSwitch();

        var heading = document.getElementById('firstHeading');
        if (!heading || !heading.parentNode) {
            return;
        }

        var observer = new MutationObserver(function () {
            removeDuplicateLanguageSwitch();
        });

        observer.observe(heading.parentNode, {
            childList: true
        });

        window.setTimeout(removeDuplicateLanguageSwitch, 250);
        window.setTimeout(removeDuplicateLanguageSwitch, 1000);
    });
}());
/* END REMOVE DUPLICATE LANGUAGE SWITCH */