Benutzer:Sänger/common.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
mw.loader.load('//ru.wikipedia.org/w/index.php?title=MediaWiki:Gadget-markblocked.js&action=raw&ctype=text/javascript');
mw.loader.load("//www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript");
mw.loader.load( "https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/refNames/r.js&action=raw&maxage=86400&ctype=text/javascript" );

/*
   Dieses Skript setzt mehr oder minder zuverlässig die maskulinen Kategoriebezeichnungen
   in feminine um, sobald die Kategorie:Frau gesetzt ist.
*/
mw.loader.using('mediawiki.util', function () {
	function replaceIt(s){
		// Heuristik 1: reguläre Ausdrücke zum Einsetzen eines "-in"
		var re1 = new Array(/(.*)(er)(\b)/,/(.*)(or)(\b)/,/(.*)(ss)e(\b)/,/(.*)(ek)e(\b)/,
			/(.*)(ant)(\b)/,/(.*)(el)i(\b)/,/(.*)(ose)(\b)/,/(.*)(iech)e(\b)/,
			/(.*)(log)e(\b)/,/(.*)(owak)e(\b)/,/(.*)(ech)e(\b)/,/(.*)(ett)e(\b)/,
			/(.*)(eur)(\b)/,/(.*)(ent)(\b)/,/(.*)(ist)(\b)/,/(.*)(let)(\b)/,
			/(.*)(när)(\b)/,/(.*)(oph)(\b)/,/(.*)(mat)(\b)/,/(.*)(law)e(\b)/,
			/(.*)(erb)e(\b)/,/(.*)(wed)e(\b)/,/(.*)(ol)e(\b)/,/(.*)(gog)e(\b)/,
			/(.*)(tekt)(\b)/,/(.*)(reograf)(\b)/,
			/(.*)([Bb]rit)e(\b)/,/(.*)(gar)(\b)/,/(.*)(ret)(\b)/,/(.*)([Ii]r)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)in(\b)/,/(.*)(sche)rin(\b)/,/(.*)(dende)r(\b)/,
			/(.*)(nete)rin(\b)/,/(.*)(lige)rin(\b)/,/(.*)(\sd)in(\b)/,/(.*)(oder)in(\b)/,
			/(.*)(ebende)rin(\b)/,/(.*)(ber)in(ühmten)(\b)/,/(.*)(einer)in(\b)/,
			/(.*)(zellent)in(\b)/,/(.*)(lement)in(\b)/,
			/(.*)(zende)rin(\b)/,/(.*)(rechte)rin(\b)/,/(.*)(unter)in(\b)/,/(.*)([Oo]ber)in(ö)/,
			/(.*)([Ee]rste)rin(\b)/,/(.*)(bner)in(\b)/,/(.*)(nde)rin(\sK)/,/(.*)(hriller)in(\b)/);

		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(/nwalt\b/,'nwältin');
		t = t.replace(/Meterin\b/,'Meter');
		t = t.replace(/Graf\b/,'Gräfin');
		t = t.replace(/([Oo]rder)in\b/,'$1');
		t = t.replace(/([Oo]per)in\b/,'$1');
		t = t.replace(/(er)in(\sFest)/,'$1$2');
		t = t.replace(/([Kk]inder)in/,'$1');
		t = t.replace(/([Zz]iviler)in/,'$1');
		t = t.replace(/([Ss]chlager)in/,'$1');
		t = t.replace(/([Oo]pfer)in/,'$1');
		t = t.replace(/([Ll]ager)in/,'$1');
		t = t.replace(/([Ww]eiler)in/,'$1');
		t = t.replace(/([Kk]lass)in/,'$1e');
		t = t.replace(/(Cassirer)in/,'$1');
		t = t.replace(/(Trier)in/,'$1');
		t = t.replace(/(Speyer)in/,'$1');		
		t = t.replace(/(Officer)in/,'$1');
		
		return t;
}
	$(function () {
	// Kategorien durchsuchen
	var links = document.getElementById('mw-normal-catlinks');
    if(!links)
        return;
    var lis = links.getElementsByTagName('a');
    if(!lis)
        return;
	var istFrau = false;
	var a;
	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);
		}    
	}
}); });