Jetzt neu und nur hier: Online-Geschlechtsumwandlung mit nur einem Mausklick

Jetzt neu und nur hier: Online-Geschlechtsumwandlung mit nur einem Mausklick

Der folgende Kommentar in einem feministischen Blog hat mich dazu inspiriert, etwas zu programmieren:

(…) wenn man in Ihrem Artikel mal die worte Mann und Frau vertauscht, liest sich das etwas mittelalterlich (…)

Auf dem männlichen Auge blind?

Dabei geht es wohl um diese Thesen, die ich mal etwas überzogen darstelle:
Feminist_innen sind sehr geübt darin, Frauenfeindlichkeit aufzuspüren aber blind für Männerfeindlichkeit. Wenn man in feministischen Texten alle Geschlechter tauscht, wird Männerfeindlichkeit im Ausgangstext zu Frauenfeindlichkeit und dadurch auch für Feminist_innen sichtbar.
Ich könnte mich nun darüber ergießen ob diese Thesen zutreffen, oder ob unsere patriarchale Gesellschaft die Geschlechter zu unsymmetrisch behandelt um basierend auf solchen Symmetrien zu argumentieren…

Probieren geht über Studieren. Und Programmieren geht sowieso über alles.

Aber das lasse ich und erprobe es dafür im Experiment, indem ich demnächst alle feministischen Texte mit getauschten Geschlechtern lese. Das spontan im Kopf zu tun ist mir zu anstrengend, und eine einfache Suchen-und-Ersetzen-Funktion hilft auch nicht, abgesehen davon dass Browser so was auch gar nicht haben da sie nicht zur Bearbeitung gedacht sind.
Ich habe mir daher ein Bookmarklet gebastelt, das in der aktuellen Webseite (fast) alle Geschlechterzuschreibungen ändert. Das Bookmarklet stelle ich hier bereit, damit jeder es nutzen kann. Dazu einfach diesen Link bookmarken bzw. per Drag & Drop in die Lesezeichenleiste ziehen. Dann auf eine andere (z.B. feministischte) Webseite surfen und den Button/Link in der Lesezeichenleiste ankliken. Tadaa! (Wer noch nie ein Bookmarklet gesehen hat hält das jetzt vermutlich für Hexerei…)
Online-Geschlechtsumwandlung
Oder für einen schnellen Test einfach mal direkt hier anklicken, um es auf dieser Seite auszuprobieren.

Known issues

Das ganze ist natürlich nicht allumfassend. Zum einen wäre es extrem anspruchsvoll, die Ersetzungen grammatisch korrekt durchzuführen. Das versuche ich erst gar nicht. Aber wenn man schnell über die Texte drüber liest, fallen die sprachlichen Fehler kaum noch auf.
Zum anderen basiert das ganze auf einer Wortliste, die natürlich nie vollständig sein kann, und in manchen Fällen Begriffe als Gegensatzpaar verwendet, die nicht wirklich zusammen passen. Das ganze ist also nur eine kleine Spielerei oder ein Proof of Concept und nicht zu ernst zu nehmen.
Im Übrigen erlaube ich mir ganz bewusst, hier mal das böse Wort „Geschlechtsumwandlung“ zu benutzen. Denn was bei Menschen nicht geht bzw. keine adäquate Beschreibung des tatsächlichen Vorgangs ist, ist in diesem Fall genau das, was mit den Wörtern einer Webseite gemacht wird: ihr Geschlecht wird umgewandelt. Und es erlaubt einen extrem reißerischen Titel für diesen Blogpost, das war es mir heute einfach mal wert.

Was ist unter der Haube?

Der darin enthaltene Code ist folgender (kann man sicher noch schöner machen, aber Perfektion war hier kein Maßstab):

function symmetrize(dict)
{
    var dictSym = {};
    for(key in dict)
    {
        dictSym[dict[key]] = key;
        dictSym[key] = dict[key];
        var keyLc = key.toLowerCase();
        if(keyLc != key)
        {
            var valLc = dict[key].toLowerCase();
            dictSym[valLc] = keyLc;
            dictSym[keyLc] = valLc;
        }
    }
    return dictSym;
}
// Hier Wörter eintragen, die nur im ganzen ersetzt werden
// sollen und nicht als Wortbestandteil.
var dictWhole = symmetrize({
"Er" : "Sie",
"Ihm" : "Ihr",
"Ihn" : "Sie",
"Sein" : "Ihr",
"Seine" : "Ihre",
// Diese Regeln stehen hier und in den Wortteilen, um darum herum
// zu arbeiten, dass "Frau" ein Teil von "Frauen" ist und somit
// sonst "Frauen" zu "Mannen" ersetzt wird.
"Frauen" : "Männern",
"Frauen" : "Männer"
});
// alle wörter / Wortteile groß schreiben, daraus wird
//automatisch auch die kleine variante erzeugt, umgekehrt nicht
var dictPart = symmetrize({
"Männer" : "Frauen",
"Mann" : "Frau",
"Männlich" : "Weiblich",
"Kerl" : "Weib",
"Kerle" : "Weiber",
"Macho" : "Emanze",
"Machos" : "Emanzen",
"Maskulin" : "Feminin",
"Maskulinis" : "Feminis",
"Jungs" : "Mädchen",
"Jungen" : "Mädchen",
"Junge" : "Mädchen",
"Damen" : "Herren",
"Dame" : "Herr",
"Vater" : "Mutter",
"Väter" : "Mütter",
"Sohn" : "Tocher",
"Söhne" : "Töchter",
"Schwuler" : "Lesbe",
"Schwul" : "Lesbisch"
});
function ersetzung(matchedSubstring, Index, OriginalString)
{
   if(dictWhole[matchedSubstring])
        return dictWhole[matchedSubstring];
   for(key in dictPart)
       if(matchedSubstring.indexOf(key) != -1)
           return matchedSubstring.replace(key, dictPart[key]);
   return matchedSubstring;
}
// Erkennt einzelne Worte
var word = new RegExp("\b\S+\b","gi");
function htmlreplace(element) {    
    if (!element) element = document.body;    
    var nodes = element.childNodes;
    for (var n=0; n<nodes.length; n++) {
        if (nodes[n].nodeType == Node.TEXT_NODE) {
            var oldText = nodes[n].textContent;
            // komplizierte, aber nachweislich effizienteste
            // Weise, um Strings zu erkennen, die nur aus
            // Whitespace bestehen (was ca. 50% aller Strings
            // einer Website ausmacht)
            if(oldText.replace(/^ss*/, '')
                           .replace(/ss*$/, '').length > 0)
                nodes[n].textContent =
                             oldText.replace(word,ersetzung);
        } else {
            htmlreplace(nodes[n]);
        }
    }
}
htmlreplace();

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.