MediaWiki:GenderCats.js
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(/Kameramanni\b/,'Kamerafrau');
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>