Zum Inhalt springen

MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Informatik.wiki
Add global DE/EN navigation for DGB 1
 
Sprachschalter DE/EN nach DOM-Ready laden
Zeile 1: Zeile 1:
/* BEGIN INFORMATIK.WIKI DGB1 LANGSWITCH */
/* BEGIN INFORMATIK.WIKI DGB1 LANGSWITCH */
mw.loader.using( 'mediawiki.util' ).then( function () {
mw.loader.using( 'mediawiki.util' ).then( function () {
     var ns = mw.config.get( 'wgNamespaceNumber' );
     $( function () {
    if ( ns < 0 ) {
        var ns = mw.config.get( 'wgNamespaceNumber' );
        return;
        if ( ns < 0 ) {
    }
            return;
        }


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


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


    var hasEnglishPage = translatedTitles.indexOf( baseTitle ) !== -1;
        var hasEnglishPage = translatedTitles.indexOf( baseTitle ) !== -1;
    var box = document.createElement( 'div' );
    box.id = 'iw-lang-switch';
    box.setAttribute( 'aria-label', 'Language / Sprache' );


    function addLanguage( code, label, href, active, enabled ) {
         var old = document.getElementById( 'iw-lang-switch' );
         var el;
         if ( old ) {
        if ( enabled ) {
             old.remove();
            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;
        var box = document.createElement( 'div' );
        if ( active ) {
        box.id = 'iw-lang-switch';
            el.classList.add( 'iw-lang-active' );
        box.setAttribute( 'aria-label', 'Language / Sprache' );
            el.setAttribute( 'aria-current', 'page' );
 
         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 );
         }
         }
        box.appendChild( el );
    }


    addLanguage(
        addLanguage(
        'de', 'DE',
            'de',
        mw.util.getUrl( baseTitle, { setlang: 'de' } ),
            'DE',
        !isEnglish,
            mw.util.getUrl( baseTitle, { setlang: 'de' } ),
         true
            !isEnglish,
    );
            true
        );
 
        var separator = document.createElement( 'span' );
        separator.className = 'iw-lang-separator';
         separator.textContent = '|';
        box.appendChild( separator );


    var separator = document.createElement( 'span' );
        addLanguage(
    separator.className = 'iw-lang-separator';
            'en',
    separator.textContent = '|';
            'EN',
    box.appendChild( separator );
            hasEnglishPage
                ? mw.util.getUrl( baseTitle + '/en', { setlang: 'en' } )
                : '#',
            isEnglish,
            hasEnglishPage
        );


    addLanguage(
         var heading = document.getElementById( 'firstHeading' );
         'en', 'EN',
        hasEnglishPage ? mw.util.getUrl( baseTitle + '/en', { setlang: 'en' } ) : '#',
        isEnglish,
        hasEnglishPage
    );


    var heading = document.getElementById( 'firstHeading' );
        if ( heading && heading.parentNode ) {
    if ( heading && heading.parentNode ) {
            heading.parentNode.insertBefore( box, heading );
        heading.parentNode.insertBefore( box, heading );
    } else {
        var content = document.getElementById( 'mw-content-text' );
        if ( content ) {
            content.insertBefore( box, content.firstChild );
         }
         }
     }
     } );
} );
} );
/* END INFORMATIK.WIKI DGB1 LANGSWITCH */
/* END INFORMATIK.WIKI DGB1 LANGSWITCH */

Version vom 10. September 2026, 17:02 Uhr

/* BEGIN INFORMATIK.WIKI DGB1 LANGSWITCH */
mw.loader.using( 'mediawiki.util' ).then( function () {
    $( 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 */