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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
//<nowiki>
/*
   Dieses Skript setzt mehr oder minder zuverlässig die maskulinen Kategoriebezeichnungen
   in feminine um, sobald die Kategorie:Frau gesetzt ist.
   
   Zur Einbindung die Zeile
   
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:Reinhard Kraasch/GenderCats.js&action=raw&ctype=text/javascript');
   
   in die eigene common.js setzen (nicht diese Version "GenderCats1.js", die dient nur zum Testen).
   
*/
mw.loader.using('mediawiki.util', function () {
	function replaceIt(s){
		// Heuristik 1: reguläre Ausdrücke zum Einsetzen eines "-in"
		var re1 = new Array(
			/(.*)(er|or|ant|ose|eur|ent|ist|let|när|oph|mat|apeut|tekt|ograf|ograph|nit|arch|gar|ret|nom|gand|[tlr]urg)(\b)/,
			/(.*)([Kk]önig|[Pp]oet|[Cc]hef|[Hh]erzog|[Mm]äzen|[Zz]ar|[Ff]ürst|[Ss]oldat|[Kk]ommissar|var|onar|Sultan)(\b)/,
			/(.*)(miral|pitän|atom)(\b)/,
			/(.*)(ss|ek|log|owak|ech|ett|law|erb|wed|gog|gies|nes|ike|gan|ghan|aot|ass|mar|men|oat|ales|oles|ores|owen|lav|tros|amann|lan|chütz)e(\b)/,
			/(.*)([Ff]ries|[Ss]chott|Finn|Dän|[Bb]rit|[Ii]r|[gP]ol|Est|Lett|sach|schub|aman|män|ach|ürk|len|tek|var|ulgar|anut|engal|gales)e(\b)/
			);

		// Heuristik 2: reguläre Ausdrücke zum Zurück-Ersetzen (wo Heuristik 1 zu viel des Guten tat)
		var re2 = new Array(
			/(.*)(\sder|\sd|einer|ement|zellent|oderner|\bfor|[Uu]nter|[Oo]ber|Peer|Tudor|Tower|mander|[Mm]ember)in(\b)/,
			/(.*)(Webber|schwester|klärter|[Oo]rder|[Oo]per|[Oo]pfer|[Ll]ager|[Kk]inder|[Zz]iviler|[Ww]eiler)in(\b)/,
			/(.*)([Aa]lter|dinger|ander|heimer|eimer|äröer|[Bb]rother|[Oo]fficer|Commandant|bner|[Ss]chlager|hriller)in(\b)/,
			/(.*)(Cassirer|Trier|Schiller|Carter|Speyer|Leer|Hannover|Jever|Margaret|Thatcher|Leuschner|[Aa]skanier|[Mm]ünster|arlament|elder)in(\b)/,
			/(.*)(Biedermeier|[Kk]rater|Pulitzer|Bonhoeffer|Fa[ck]tor|Wilder|\shier|Ferber|nomer|[Kk]loster|Hoover|Assistant|Ecuador)in(\b)/,
			/(.*)(Bier|Silber|Winter|Sommer|Volkskammer|[[Tt]imor|[Mm]utter|schwister|Rose|Gitter|Goerdeler|[Tt]heater)in(\b)/,
			/(.*)(dende)r(\b)/,/(.*)(gender)in(\b)/,
			/(.*)(nete|lige|zende|rechte|mtierende|tretende|fangene|sche|tuierte|enlose|sierte|liche|[Ee]rste|dige|hörige|klagte|ntike)rin(\b)/,
			/(.*)(stellte|ührende|auftragte|schaffende|jährige|lebende|diente)rin(\b)/,
			/(.*)(ber)in(ühmten)(\b)/,
			/(.*)(nde)rin(\sK)/,/(.*)(ner)in(-)/);

		var t=s, tt, i, j;
		for (j = 1;;j++) {
			// "-in" anhängen bzw. einfügen - Heuristik 1 anwenden
			tt = t;
			for ( i = 0; i < re1.length; i++)  {
				t = t.replace(re1[i], "$1$2in$3");
			}
			if (t==tt) break;
		}

		for (j = 1;;j++) {
			tt = t;
			// hier wurde zu viel des Guten getan - Heuristik 2 anwenden
			for (i = 0; i < re2.length; i++)  {
				t = t.replace(re2[i], "$1$2$3");
			}
			if (t==tt) break;
		}
		
		// Heuristik 3 : nachbessern 
		t = t.replace(/zosein\b/,'zösin');
		t = t.replace(/arzt\b/,'ärztin');
		t = t.replace(/Arzt\b/,'Ärztin');
		t = t.replace(/Torero\b/,'Stierkämpferin');
		t = t.replace(/mpirin\b/,'mpire');
		t = t.replace(/chin und\b/,'che und');
		t = t.replace(/nwalt\b/,'nwältin');
		t = t.replace(/ierterin\b/,'ierte');
		t = t.replace(/amterin\b/,'amtin');
		t = t.replace(/(mt|mbuds|era|tshaupt)mann\b/,'$1frau');
		t = t.replace(/([Ää]lter)erin\b/,'$1e');
		t = t.replace(/([Kk])och\b/,'$1öchin');
		t = t.replace(/([Dd])iseurin\b/,'$1iseuse');
		t = t.replace(/nettin\b/,'nette');
		t = t.replace(/Ugander\b/,'Uganderin');
		t = t.replace(/rin-(Wilh|Körn|Pre)/,'r-$1');
		t = t.replace(/\bettin\b/,'ette');
		t = t.replace(/Weimarerin V/,'Weimarer V');
		t = t.replace(/litairin\b/,'litaire');
		t = t.replace(/([Ss])achse\b/,'$1ächsin');
		t = t.replace(/terin Mensch\b/,'ter Mensch');
		t = t.replace(/erschollenin\b/,'erschollene');
		t = t.replace(/kretinärin\b/,'kretärin');
		t = t.replace(/amteterin\b/,'amtete');
		t = t.replace(/tinäterin\b/,'täterin');
		t = t.replace(/([Mm])eterin\b/,'$1eter');
		t = t.replace(/([Gg])raf\b/,'$1räfin');
		t = t.replace(/([Rr])at\b/,'$1ätin');
		t = t.replace(/([Ff]rei)herr\b/,'$1in');
		t = t.replace(/([Pp]rinz)\b/,'$1essin');
		t = t.replace('Verin.di','Ver.di');
		t = t.replace(/([Bb])ischof\b/,'$1ischöfin');
		t = t.replace(/(er)in(\sFest)/,'$1$2');
		t = t.replace(/(ozess|ätress|akett|Satir|Sprach|[Kk]lass|perett)in/,'$1e');
		t = t.replace(/(([Ff]o|[Hh]er)rsche\b)/,'$1rin');
		t = t.replace(/ische (Ro|Feldh|Rundf)/,'ischer $1');
		t = t.replace('essorin of','essor of');
		t = t.replace(/istin klassische\b/,'istin klassischer');
		t = t.replace(' oderin ',' oder ');
		t = t.replace(/erin (Einzel|Ski|Dienerin)/,'e $1');
		t = t.replace(/\(([Dd]er)in\b/,'($1');
		t = t.replace(/erin (Land|Ghet|Schule|Ski|Hä|Dial|Cup|Höhle|Wilh|Nation|Reich|Proze|Münster)/,'er $1');
		t = t.replace(/erner Fünfkä/,'erne Fünfkä');
		t = t.replace(/e (Dial|Abköm|Zuord|Marxi|Natio|Bundes)/,'er $1');
		t = t.replace(/er (Adler)in/,'er $1');
		t = t.replace(/postolische /,'postolischer ');
		t = t.replace(/chener(in) (Dom|Stifts)/,'chener $2');
		t = t.replace(/Singerin-Songwriterin/,'Singer-Songwriterin');
		t = t.replace('zum Nationalrätin','zum Nationalrat');
		t = t.replace('im Aufsichtsrätin','im Aufsichtsrat');
		t = t.replace('Helenin ','Helene ');
		t = t.replace(' Fische',' Fischer');
		t = t.replace('-derin-','-der-');
		t = t.replace('Jean Frankfurterin','Jean Frankfurter');
		t = t.replace('weizerin ','weizer ');
		return t;
}
	$(function () {
	var h1 = document.getElementById('firstHeading');
	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');
		// Skin Vector, Monobook, Modern 
	    if(!links) {
	    	links = document.getElementById('p-normal-catlinks');
		// Skin Timeless
		    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];
			    a.innerText = replaceIt(a.innerText);
			    a.title = replaceIt(a.title);
			    // alert(a.innerText);
			}    
		}
	}
}); });

// </nowiki>