MediaWiki:Gadget-WiktSidebarTranslation.js

Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.

// Ce script permet d'afficher en français les noms de langue des liens interwikis
//  * [[Catégorie:JavaScript du Wiktionnaire|wiktSidebarTranslation.js]]

( function languagereplace ($) {
	if (!document.getElementById('p-lang'))
		return;
		
	var langNodes = document.getElementById('p-lang').getElementsByTagName('ul')[0].getElementsByTagName('li');
	var x, langname;
	
	for ( x = 0; x < langNodes.length; x++ ) {
		
		// On récupère l'attribut "titre" des liens interlangues, qui contient
		// en principe le nom de la langue en français
		langname = langNodes[x].getElementsByTagName('a')[0].title;
		
		// On retire de cet attribut le nom de la page s'il y en a un,
		// pour ne garder que le nom de la langue
		langname = langname.replace(/[^–]*–[\s]*/, '');

		// On met la première lettre du nom de la langue en majuscule
		langname = langname.substr(0,1).toUpperCase() + langname.substr(1).toLowerCase();

		langNodes[x].getElementsByTagName('a')[0].innerHTML = langname;
		langNodes[x].getElementsByTagName('a')[0].removeAttribute('lang');
	}
	
	// Trier les liens interlangues selon le nom de la langue en français
	// On précise 'fr' pour localeCompare, par extrême précaution, au cas où l'utilisateur
	// n'aurait pas paramétré son navigateur en français
	var sort_by_name = function(a, b) {
        return a.getElementsByTagName('a')[0].innerHTML.toLowerCase()
        .localeCompare(b.getElementsByTagName('a')[0].innerHTML.toLowerCase(), 'fr');
    };
	langNodes = $('#p-lang ul:first-child li').get();
	langNodes.sort(sort_by_name);
	
	$('#p-lang ul:first-child').html(langNodes);
} (jQuery) );