• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Browser - Textinhalte ersetzen

Illuminatus

in geheimer Mission
Themenstarter #1
Hallo zusammen,
mir sind bei der Suche nach Browser-Erweiterungen zwecks Textersetzung ein paar Exemplare aufgefallen. So z.B. "Text Rewriter by pelmers".
Mein Ziel ist es mit möglichst einfachen Mitteln beim Lesen von Webinhalten einige Formulierungen für mich zu verändern. Die Lesbarkeit fühlt sich für mein altes Gehirn deutlich besser an, wenn Wörter die mit 'r*Innen' oder ähnlichen Zeichenfolgen falsch geschrieben sind, automatisch korrigiert werden.
Eigentlich war ich in der Annahme dass diese falschen Formulierungen von Seitenbetreibern über einen Button für barrierefreies Lesen, sozusagen als Opt-In, zugänglich gemacht werden sollten. Aber was ist schon perfekt...

Hat jemand ggf. einen Tipp dafür parat? :-) Danke im Voraus
 

Zirias

Well-Known Member
#2
Das scheint mit kein technisches Problem zu sein und sollte daher auch nicht technisch gelöst werden. Ich für meinen Teil verzichte auf die Lektüre, wenn Sprache, Grammatik, Orthografie, Typografie aus welchen Gründen auch immer mit Füßen getreten werden. Der teilweise auch von Spiegel online erprobte BILD-Stil vieler einzelner Hervorhebungen in Fettschrift (wohl damit der erwartet dumme Leser wenigstens die "richtigen" Wörter liest, um die gewünschte Botschaft indoktriniert zu bekommen) ist für mich dabei ähnlich schlimm wie die Sprachvergewaltigung durch die Gender-Religion....
 

Vril

Well-Known Member
#3
Ich habe für mich ein paar Key-words definiert, die sofern sie in Überschrift oder zu Beginn des Textes erscheinen - mir das weitere Lesen ersparen:
Das sind Begriffe wie „ systemisch ” oder auch im Kontext von charakterlichen Eigenschaften, „ solidarisch“, „reflektiert“ oder im technischen Kontext Buzzwords wie ”Industrie 4.0”
 

TCM

Well-Known Member
#4
Gendersternchen ist das Deppen-Gütesiegel. In 99% der Fälle verpasst man nichts.

Sei froh, dass dir so zuvorkommend die Zeit erspart bleibt.
 

.not

Well-Known Member
#5
Chrome hat die Extension "Word Replacer II", Firefox meines Wissens nichts dergleichen. Dafür, dass man meiner Generation gerne Mimosentum nachsagt, ist das Geweine hier ironischerweise doch recht gross. :)
 

das.chaos

Duracellhase 2.0
#11
Der XSLT Processor kann XML in HTML per inline XSLT uebersetzen.

Anfrage an Open Weather Map, die XML empfaengt - index.html:
Code:
<!doctype html>
<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>WetterApp</title>
    <link rel="stylesheet" href="index.css">
    <script type="text/javascript" src="index.js"></script>
  </head>
  <body>
    <script id="xsl" type="text/xml"> <!- Das XSLT. -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" />
  <xsl:template match="/">
    <xsl:element name="fieldset">
      <xsl:apply-templates />
    </xsl:element>
  </xsl:template>

  <xsl:template match="current">
      <xsl:apply-templates select="city"/>
  </xsl:template>

  <xsl:template match="city">
    <xsl:element name="legend">
      Aktuelles Wetter in
      <xsl:element name="span">
        <xsl:attribute name="class">location</xsl:attribute>
        <xsl:value-of select="@name"/>
      </xsl:element>
    </xsl:element>
    <xsl:element name="div">
      <xsl:attribute name="class">table</xsl:attribute>
      <xsl:element name="div">
        <xsl:attribute name="class">tr</xsl:attribute>
        <xsl:element name="div">
          <xsl:attribute name="class">td</xsl:attribute>
          Sonnenaufgang:
        </xsl:element>
        <xsl:element name="div">
          <xsl:attribute name="class">td</xsl:attribute>
          <xsl:value-of select="sun/@rise" />Z
        </xsl:element>
      </xsl:element>
      <xsl:element name="div">
        <xsl:attribute name="class">tr</xsl:attribute>
        <xsl:element name="div">
          <xsl:attribute name="class">td</xsl:attribute>
          Sonnenuntergang:
        </xsl:element>
        <xsl:element name="div">
          <xsl:attribute name="class">td</xsl:attribute>
          <xsl:value-of select="sun/@set" />Z
        </xsl:element>
      </xsl:element>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>
    </script>
    <form id="wetter-aktuell" />
  </body>
</html>
Was bspw. mittels JavaScript triggered werden kann - index.js:
Code:
(function() {

    class CurrentWeather {

        constructor(id) {
  
            this._node = $(id);
  
            //
            // XXX: this code-section is only for demostration purpoes..
            //
            let pfx = 'http://api.openweathermap.org/data/2.5/weather',
                city = 'Hamburg',
                country = 'de',
                appID = '*zensiert*'; // <-- !!!

            this._url = `${pfx}?q=${city},${country}&mode=xml&appid=${appID}`;

            this._frag = null;
  
            this._xhr = new XMLHttpRequest();
            this._xhr.addEventListener('load', (e) => {
      
                if (this._xhr.readyState == 4 && this._xhr.status == 200) {
          
                    let p = new DOMParser();
                    let s = null;
          
                    let cache = null;
          
                    //
                    // Lade XML von server..
                    //
                    if ((cache = this._xhr.responseXML) == null) {
                        s = this._xhr.responseText;
                        cache = p.parseFromString(s, 'text/xml');
                    }
          
                    if (this._frag)
                        this._node.removeChild(this._frag);

                    //
                    // Lade inline XSLT vom <script> Tag..
                    //
                    if ((s = $('xsl').innerHTML)) {
                        console.log('xslt: ' + s);
              
                        //
                        // Erzeuge XML Document und installiere XSLT als Filter.
                        //
                        let xsl = p.parseFromString(s, 'application/xml');
                        let xp = new XSLTProcessor();
                        try {
                            xp.importStylesheet(xsl);
                        } catch (e) {
                            console.log(e);
                        }
      
                        // Konvertiere XML in HTML.
                        try {
                            this._frag = xp.transformToFragment(cache, document);
                        } catch (e) {
                            this._frag = document.createElement('pre');
                            let xs = new XMLSerializer();
                            console.log('fetch: XML: ' + cache);
                            s = xs.serializeToString(cache.documentElement);
                            this._frag.innerText = s;
                        }
              
                        this._node.appendChild(this._frag);
                    }
                }
            });
        }

        fetch() {
  
            this._xhr.open('GET', this._url);
            this._xhr.send(null);
        }
    }

    let $ = (id) => {

        return (document.getElementById(id));
    };

    let init = function () {

        let wetterAktuell = new CurrentWeather('wetter-aktuell');
        wetterAktuell.fetch();
    };

    window.addEventListener('load', init);
})();
index.css:
Code:
body {
    display: grid;
    grid-template-rows: 75px 270px 75px;
    grid-template-columns: 270px 270px 270px 270px;
    grid-row-gap: 20px;
    grid-column-gap: 20px;
}

form {
    height: 100%;
    width: 100%;
}

#login {
    grid-column-start: 1;
    grid-column-end: 5;
    grid-row-start: 1;
    grid-row-end: 2;
}

#wetter-aktuell {
    grid-column-start: 1;
    grid-column-end: 3;
    grid-row-start: 2;
    grid-row-end: 3;
}

#wetter-vorhersage {
    grid-column-start: 3;
    grid-column-end: 5;
    grid-row-start: 2;
    grid-row-end: 3;
}

fieldset {
    margin: 0px;
    padding: 5px;
    height: 100%;

    display: flex;
    flex-wrap: wrap;
}

fieldset > * {
    margin: 5px;
}

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    align-self: center;
}

li {
    display: inline;
}

div.table {
    display: table;
    border-collapse:collapse;
}

div.tr {
    display:table-row;
}

div.td {
    display:table-cell;
    border:thin solid red;
    padding:5px;
}

legend {
    text-shadow: 2px 2px 8px black;
}
Das "Web-design" wirkt etwas unbeholfen [oder unterirdisch schlecht :D] - mir ging es nur darum zu zeigen, was mit nem Browser bzgl. Textprocessing moeglich sein koennte, da XSLT viel Stress vermeiden kann.

Lustig ist, dasz sich XSLT nicht nur auf eine Transformation von XML nach HTML oder umgekehrt sowie XML nach XML [aber auch HTML nach HTML] "beschraenkt", d. h. da ist viel Raum fuer "Kreativitaet" geboten bzw. das hat "Hackvalue".
 
Zuletzt bearbeitet:

das.chaos

Duracellhase 2.0
#13
Ich bin stets ueberrascht, was moeglich ist. [Mir werden zunehmend Browser bzw. Webtechnologien irgendwie unheimlich.]
 
Zuletzt bearbeitet: