Benutzer:Kleine Änderungen/common.js
aus Wikipedia, der freien Enzyklopädie
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. (Siehe auch: Benutzer:Reinhard Kraasch/common.js)
*/
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|nit|arch|gar|ret|nom|gand)(\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|gan|ghan|aot|ass|mar|men|oat|oles|ores|tros|amann|lan|chütz)e(\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|ulgar|anut|engal)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|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)in(\b)/,
/(.*)(Bier|Silber|Winter|Sommer|Volkskammer|[[Tt]imor|[Mm]utter|schwister|Rose|Gitter|Goerdeler|[Tt]heater)in(\b)/,
/(.*)(dende)r(\b)/,
/(.*)(nete|lige|zende|rechte|mtierende|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(/eramann\b/,'erafrau');
t = t.replace(/Arzt\b/,'Ärztin');
t = t.replace(/mpirin\b/,'mpire');
t = t.replace(/chin und\b/,'che und');
t = t.replace(/nwalt\b/,'nwältin');
t = t.replace(/amterin\b/,'amtin');
t = t.replace(/mtmann\b/,'mtfrau');
t = t.replace(/([Ää]lter)erin\b/,'$1e');
t = t.replace(/([Kk])och\b/,'$1öchin');
t = t.replace(/tshauptmann\b/,'tshauptfrau');
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(/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')
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>