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) );