MediaWiki:GenderCats.js

Us der alemannische Wikipedia, der freie Dialäkt-Enzyklopedy

Hywys: Nôch dyner Änderig muess no der Browser-Cache gleert wärde!
Mozilla/Safari/Konqueror: Strg-Umschalttaste-R (oder Umschalttaste drückt halte und uf’s Neu-Laden-Symbol klicke), IE: Strg-F5, Opera/Firefox: F5

//<nowiki>
/*
   Kopiert aus: :de:Benutzer:Reinhard Kraasch/GenderCats.js
   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('//als.wikipedia.org/w/index.php?title=Benutzer:Holder/GenderCats.js&action=raw&ctype=text/javascript');
   
   in die eigene common.js setzen. (Siehe auch: Benutzer:Holder/common.js)
   
*/
mw.loader.using('mediawiki.util', function () {
	function replaceIt(s){
		// Heuristik 1: reguläre Ausdrücke zum Einsetzen eines "-i"
		var re1 = new Array(
			/(.*)(er|or|ant|änt|ose|eur|ent|ist|ischt|let|när|oph|mat|apeut|tekt|ograf|nit|arch|gar|ret|nom)(\b)/,
			/(.*)([Kk]önig|[Pp]oet|[Cc]hef|[Hh]erzog|[Mm]äzen|[Zz]ar|[Ff]ürst|[Ss]oldat|[Kk]ommissar|var|onar)(\b)/,
			/(.*)(miral|pitän|atom)(\b)/,
			/(.*)(ss|ek|log|owak|ech|ett|law|erb|wed|gog|gies|nes|gan|ghan|aot|ass|mar|men|oat|oles|ores|tros|amann|lan)(\b)/,
			/(.*)(el|was)i(\b)/,
			/(.*)([Ff]ries|[Ss]chott|Finn|Dän|[Bb]rit|[Ii]r|[gP]ol|Est|Lett|sach|schub|män|ach|ürk|len|tek|var)(\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|Speyer|Leer|Hannover|Jever|Margaret|Thatcher|Leuschner|[Aa]skanier|[Mm]ünster|arlament|elder)in(\b)/,
			/(.*)(Biedermeier|[Kk]rater|Pulitzer|Fa[ck]tor|Wilder|\shier|Ferber|nomer|[Kk]loster|Hoover|Assistant|Ecuador|Weimarer)in(\b)/,
			/(.*)(dende)r(\b)/,
			/(.*)(nete|lige|zende|rechte|mtierende|fangene|sche|tuierte|enlose|sierte|liche|[Ee]rste|dige|hörige|klagte|ntike|stellte|ührende)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$2i$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(/Aargaueri Gschicht\b/,'Aargauer Gschicht');
		t = t.replace(/Abt\b/,'Äbtissi');			
		t = t.replace(/Alemannische Musikeri\b/,'Alemannischi Musikeri');
		t = t.replace(/Alpine Skirennfahrer (Schwiz)\b/,'Alpini Skirennfahreri (Schwiz)');
		t = t.replace(/Alpine Skirennfahreri\b/,'Alpini Skirennfahreri');
		t = t.replace(/Amerikanische Musikeri\b/,'Amerikanischi Musikeri');
		t = t.replace(/Appezell Osseriöödleri\b/,'Appezell Osseröödleri');		
		t = t.replace(/Basleri Kantonalpolitikeri\b/,'Basler Kantonalpolitikeri');
		t = t.replace(/Bibliothekar\b/,'Bibliothekari');
		t = t.replace(/Bluessiängeri\b/,'Bluessängeri');
		t = t.replace(/Brit\b/,'Briti');
		t = t.replace(/Britische Politikeri\b/,'Britischi Politikeri');	
		t = t.replace(/Broduzänt\b/,'Broduzänti');
		t = t.replace(/Bundesroot\b/,'Bundesrööti');	
		t = t.replace(/Choch\b/,'Chechi');
		t = t.replace(/Dialäktoloog\b/,'Dialäktoloogi');		
		t = t.replace(/Dütsche\b/,'Dütschi');
		t = t.replace(/Elsässische Politikeri\b/,'Elsässischi Politikeri');	
		t = t.replace(/Eröffnete Seligsprächigsprozässi\b/,'Eröffnete Seligsprächigsprozäss');
		t = t.replace(/Franzesische Minischteri\b/,'Franzesischi Minischteri');
		t = t.replace(/Franzesische Sportleri\b/,'Franzesischi Sportleri');
		t = t.replace(/Franzoos\b/,'Franzöösi');
		t = t.replace(/Französische Politikeri\b/,'Französischi Politikeri');		
		t = t.replace(/Fraueriächtleri\b/,'Frauerächtleri');
		t = t.replace(/Grächte underi de Völkeri\b/,'Grächti under de Völker');
		t = t.replace(/Grächti underi de Völkeri\b/,'Grächti under de Völker');		
		t = t.replace(/Griech\b/,'Griechi');
		t = t.replace(/Hotelieri\b/,'Hoteliere');
		t = t.replace(/humanitiäri\b/,'humanitäri');
		t = t.replace(/Inhaftierte Journalisti (Türkei)\b/,'Inhaftierti Journalisti (Türkei)');
		t = t.replace(/Italiänische Politikeri\b/,'Italiänischi Politikeri');
		t = t.replace(/Italiänische Musikeri\b/,'Italiänischi Musikeri');	
		t = t.replace(/Johann Peteri Hebel\b/,'Johann Peter Hebel');
		t = t.replace(/Jud\b/,'Jüdi');	
		t = t.replace(/Katholische Theologi\b/,'Katholischi Theologi');
		t = t.replace(/Kaufmaa\b/,'Kauffrau');
		t = t.replace(/Kolmeri\b/,'Kolmer');
		t = t.replace(/Kriminalfall i deri Schwiz\b/,'Kriminalfall i der Schwiz');
		t = t.replace(/Kunst vo deri Modärne\b/,'Kunst vo der Modärne');
		t = t.replace(/Löörechi\b/,'Löörech');	
		t = t.replace(/Markgrof\b/,'Markgröfi');		
		t = t.replace(/Middelalteri\b/,'Middelalter');	
		t = t.replace(/Mittelalteri\b/,'Mittelalter');
		t = t.replace(/Mordopferi\b/,'Mordopfer');
		t = t.replace(/Opferi\b/,'Opfer');
		t = t.replace(/Paralympische Alpine Skirennfahreri (Schwiiz)\b/,'Paralympischi Alpini Skirennfahreri (Schwiiz)');
		t = t.replace(/Paralympische Alpine Skirennfahreri (Schwiiz)\b/,'Paralympischi Alpini Skirennfahreri');
		t = t.replace(/Person (humanitiäri Hilf)\b/,'Person (humanitäri Hilf)');
		t = t.replace(/Person im 1. Buechi Mose\b/,'Person im 1. Buech Mose');
		t = t.replace(/Person im Alte Teschtamänti\b/,'Person im Alte Teschtamänt');
		t = t.replace(/Person im Tanachi\b/,'Person im Tanach');
		t = t.replace(/Pol\b/,'Poli');
		t = t.replace(/Pressefreiheit i deri Türkei\b/,'Pressefreiheit i der Türkei');		
		t = t.replace(/Puur\b/,'Püüri');
		t = t.replace(/Rächtsawalt\b/,'Rächtsawälti');
		t = t.replace(/Reformierte Theologi\b/,'Reformierti Theologi');		
		t = t.replace(/Regirigsrot\b/,'Regirigsröti');
		t = t.replace(/Römisch-katholische Geistlige\b/,'Römisch-katholischi Geischtligi');	
		t = t.replace(/Sängeri vo klassischeri Musig\b/,'Sängeri vo klassischer Musig');
		t = t.replace(/Schweed\b/,'Schweedi');
		t = t.replace(/Schwiizeri Meischteri\b/,'Schwiizer Meischteri');
		t = t.replace(/Schwiizeri Nationalrot\b/,'Schwiizer Nationalröti');
		t = t.replace(/Schwiizeri Nationalröti\b/,'Schwiizer Nationalröti');
		t = t.replace(/Schwiizeri Politikeri\b/,'Schwiizer Politikeri');
		t = t.replace(/Schwiizeri Ständerot\b/,'Schwiizer Ständerööti');
		t = t.replace(/Schwizeri Cupsigeri (Fuessball)\b/,'Schwizer Cupsigeri (Fuessball)');
		t = t.replace(/Schwizeri Meischter (Fuessball)\b/,'Schwizer Meischteri (Fuessball)');
		t = t.replace(/Schwizeri Meischteri (Ski Alpin)\b/,'Schwizer Meischteri (Ski Alpin)');
		t = t.replace(/Schwizeri Musikeri\b/,'Schwizer Musikeri');
		t = t.replace(/Schwizeri Radio und Färnseh/,'Schwizer Radio und Färnseh');
		t = t.replace(/Singeri-Songwriteri/,'Singer-Songwriteri');
		t = t.replace(/Slowen\b/,'Sloweni');	
		t = t.replace(/Sozialdemokrat\b/,'Sozialdemokrati');	
		t = t.replace(/Staatsawalt\b/,'Staatsawälti');
		t = t.replace(/Staatsaghörige vo Trinidad u Tobago\b/,'Staatsaghörigi vo Trinidad u Tobago');
		t = t.replace(/Sultan vo Ägypte\b/,'Sultani vo Ägypte');
		t = t.replace(/Türg\b/,'Türgi');
		t = t.replace(/Überläbende vom Holocaust\b/,'Überläbendi vom Holocaust');
		t = t.replace(/Übersetzeri i ds Dütschi\b/,'Übersetzeri i ds Dütsche');
		t = t.replace(/Übersetzeri us em Dütschi\b/,'Übersetzeri us em Dütsche');	
		t = t.replace(/Universalgleerte\b/,'Universalgleerti');		
		t = t.replace(/Verfasseri vo Chinderi- und Jugendliteratur\b/,'Verfasseri vo Chinder- und Jugendliteratur');
		t = t.replace(/ vo deri \b/,' vo der ');
		t = t.replace(/Wikipedia:Bsunders glungeneri Artikel\b/,'Wikipedia:Bsunders glungener Artikel');
		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');
	    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);
			}    
		}
	}
}); });

// </nowiki>