MediaWiki:Common.js: Difference between revisions

From Resistance in Belgium
No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
Line 40: Line 40:
}
}


$(document).ready(function() {
mw.loader.using(['ext.uls.interface'], function() {
    // Surcharge de la fonction getIMELanguageList pour restreindre les langues
    $(document).ready(function() {
    mw.ime.getIMELanguageList = function() {
        // Vérifiez si mw.ime est défini avant de procéder
        var unique = [], imeLanguageList;
        if (typeof mw.ime !== 'undefined' && typeof mw.ime.getIMELanguageList === 'function') {
            // Surcharge de la fonction getIMELanguageList pour restreindre les langues
            mw.ime.getIMELanguageList = function() {
                var unique = [], imeLanguageList;


        // Liste restreinte des langues
                // Liste restreinte des langues
        var restrictedLanguageList = ['fr', 'nl', 'en', 'de'];
                var restrictedLanguageList = ['fr', 'nl', 'en', 'de'];


        // Concaténer la liste restreinte avec les langues fréquentes
                // Concaténer la liste restreinte avec les langues fréquentes
        imeLanguageList = restrictedLanguageList.concat(mw.uls.getFrequentLanguageList());
                imeLanguageList = restrictedLanguageList.concat(mw.uls.getFrequentLanguageList());


        // Supprimer les doublons
                // Supprimer les doublons
        imeLanguageList.forEach(function(lang) {
                imeLanguageList.forEach(function(lang) {
            if (unique.indexOf(lang) === -1) {
                    if (unique.indexOf(lang) === -1) {
                unique.push(lang);
                        unique.push(lang);
            }
                    }
        });
                });


        // Retourner les langues uniques
                // Retourner les langues uniques
        return unique.slice(0, 6);
                return unique.slice(0, 6);
    };
            };


    // Optionnel : vérifier si ULS fonctionne comme prévu
            console.log('La liste des langues IME a été restreinte avec succès.');
    if (typeof $.fn.uls === 'function') {
        } else {
        console.log('ULS est disponible et la liste des langues a été restreinte.');
            console.error('mw.ime ou mw.ime.getIMELanguageList n\'est pas défini.');
     }
        }
     });
});
});

Revision as of 20:19, 1 August 2024

/* Any JavaScript here will be loaded for all users on every page load. */

/* 2024-07-18 PVO Added 2 lines below as part of installation instructions new homepage */
document.querySelector( '.mw-logo' ).setAttribute( 'href', '/?lang=' + mw.config.get( 'wgUserLanguage' ) );

// Replace Wikidata IDs with their [label, description]
// From/depuis: https://lingualibre.fr/wiki/MediaWiki:Common.js
if ( $( '.wb-external-id' ).length > 0 ) {
	mw.loader.using( 'mediawiki.ForeignApi', function() {
		$( '.wb-external-id' ).each( function() {
			var href = $( this ).attr( 'href' );
			if ( href && href.lastIndexOf( 'https://www.wikidata.org', 0 ) === 0 ) {
				var wikidataApi = new mw.ForeignApi( 'https://www.wikidata.org/w/api.php', {
						anonymous: true,
						parameters: { 'origin': '*' },
						ajax: { timeout: 10000 }
					} ),
					lang = mw.config.get( 'wgUserLanguage' ),
					node = $( this );
				wikidataApi.get( {
					'action': 'wbgetentities',
					'format': 'json',
					'ids': node.text(),
					'props': 'labels|descriptions',
					'languages': lang + ( lang !== 'fr' ? '|fr' : ''),
					'languagefallback': 1,
					'origin': '*'
				} ).then( function( data ) {
                    
					var entity = data.entities[ node.text() ];
					lang = entity.labels[ lang ] === undefined && lang !== 'fr' ? 'fr' : lang;
					var label = ( entity.labels[ lang ] !== undefined ? entity.labels[ lang ].value + ' <i>(' + node.text() + ')</i>' : node.text() ),
					    description = ( entity.descriptions[ lang ] !== undefined ? '<small>' + entity.descriptions[ lang ].value + '</small>' : '' );
					
					node.html( label + '<br>' + description );
				} );
			}
		} );
	} );
}

mw.loader.using(['ext.uls.interface'], function() {
    $(document).ready(function() {
        // Vérifiez si mw.ime est défini avant de procéder
        if (typeof mw.ime !== 'undefined' && typeof mw.ime.getIMELanguageList === 'function') {
            // Surcharge de la fonction getIMELanguageList pour restreindre les langues
            mw.ime.getIMELanguageList = function() {
                var unique = [], imeLanguageList;

                // Liste restreinte des langues
                var restrictedLanguageList = ['fr', 'nl', 'en', 'de'];

                // Concaténer la liste restreinte avec les langues fréquentes
                imeLanguageList = restrictedLanguageList.concat(mw.uls.getFrequentLanguageList());

                // Supprimer les doublons
                imeLanguageList.forEach(function(lang) {
                    if (unique.indexOf(lang) === -1) {
                        unique.push(lang);
                    }
                });

                // Retourner les langues uniques
                return unique.slice(0, 6);
            };

            console.log('La liste des langues IME a été restreinte avec succès.');
        } else {
            console.error('mw.ime ou mw.ime.getIMELanguageList n\'est pas défini.');
        }
    });
});