Benutzer:DaB./KatGenderer.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
//<nowiki>
/*
Dieses Skript ändert zuverlässig die maskulinen Kategoriebezeichnungen
in feminine um, sobald die Kategorie:Frau gesetzt ist und in Wikidata
eine weibliche Form (P2521=„weibliche Form des Bezeichners“) des
Kategorien-Namens eingetragen wurde.
Zur Einbindung die Zeile
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:DaB./KatGenderer.js&action=raw&ctype=text/javascript');
in die eigene common.js setzen. Kann z.B. mit [[Angela Merkel]] getestet
werden.
*/
mw.loader.using(['mediawiki.util','mediawiki.api', 'mediawiki.ForeignApi'], function () {
function replaceIt(s){
var catname='Kategorie:'.concat(s.innerText);
var api = new mw.Api();
api.get( {
action: 'query',
prop: 'pageprops',
titles: catname
} ).done( function ( data ) {
var WDID;
try {
WDID=data.query.pages[Object.keys(data.query.pages)[0]].pageprops.wikibase_item;
} catch (e) {
return;
}
var wdapi = new mw.ForeignApi('https://www.wikidata.org/w/api.php?');
wdapi.get( {
action: 'wbgetclaims',
entity: WDID,
property:'P2521'
} ).done( function ( wddata ) {
console.log(wddata);
var femaledKatText=wddata.claims.P2521[0].mainsnak.datavalue.value.text;
console.log(femaledKatText);
s.innerText = femaledKatText;
} );
} );
}
$(function () {
var h1 = document.getElementById('firstHeading');
if(!h1) return;
var title = h1.innerText;
var x = title.indexOf('Test GenderCats');
var a;
var istFrau = false;
if (x >= 0){
// Testseiten bearbeiten
var li = document.getElementsByTagName('li');
for(var j = 0; j < li.length; j++)
{
var b = li[j];
var lis = b.getElementsByTagName('a');
for(var i = 0; i < lis.length; i++)
{
a = lis[i];
a.innerText = replaceIt(a.innerText);
}
}
} else {
// Kategorien durchsuchen
var links = document.getElementById('mw-normal-catlinks');
if(!links)
return;
var lis = links.getElementsByTagName('a');
if(!lis)
return;
for(var i = 0; i < lis.length; i++)
{
a = lis[i];
// Ist Kategorie "Frau" vorhanden?
if (a.innerText == "Frau") {
istFrau = true;
// alert("Frau");
break;
}
}
if (istFrau) {
// dann ersetzen
for(i = 0; i < lis.length; i++)
{
a = lis[i];
replaceIt(a);
}
}
}
}); });
//</nowiki>