Text aus Attributen placeholder und aria-label auslesen

  • Hallo Leute, ich brauche mal eure Hilfe.

    Ich habe hier ein GreaseMonkey-Skript, mit dem ich die Oberfläche von Facebook ins Obersorbische bzw. Niedersorbische übersetzen kann, obwohl diese beiden Sprachen von FB nicht unterstützt werden. Das Skript setzt auf Deutsch auf.

    Am Anfang des Skripts werden 3 Arrays für die verwendeten HTML-Tags, die DIV-Klassen und die SPAN-Klasssen definiert. Am Ende des Skripts steht der entsprechende JS-Sourcecode. In der Mitte des SKripts werden die Strings mit dem deutschen Original-Text und dem zu verwendenden sorbischen Text erfasst. Die deutschen Original-Strings werden also bei FB ausgelesen und durch die sorbischen Strings ersetzt. Das klappt ganz gut, manchmal ohne Nutzung einer CSS-Klasse, manchmal mit Nutzung einer CSS-Klasse eines DIV-Elements und manchmal mit Hilfe einer CSS-Klasse eines SPAN-Elements. Dafür die oben erwähnten drei Arrays.

    Es gibt jedoch einen Spezialfall, der sich hartnäckig weigert zu funktionieren. Das ist, wenn der Originalstring aus einem HTML-Attribut ausgelesen wird, das sind meistens die HTML5-Attribute placeholder und aria-label für die Tags TEXTAREA und INPUT. Teilweise ist auch zusätzlich noch das Attribut title angegeben, das, obwohl hier der String ebenfalls in einem Attribut steht, funktioniert. Aber eben nur als Tooltip. Da ich bei TEXTAREA placeholder="" bzw. INPUT placeholder="" Platzhaltertext habe, der den Tooltip-Text überlagert, steht dann immer der unübersetzte Text drüber und nur der Tooltip-Text wird bei Mouseover übersetzt angezeigt, sofern vorhanden.

    Ich hoffe nun, dass ihr ein Häppchen JS-Code für mein Skript habt, um die Attribute placeholder und aria-label auslesen zu können.

    Das Skript ist stark verkürzt, im Original hat es momentan 1905 Zeilen. Lediglich der Quellcode am Ende dieses Code-Fensters hier ist vollständig. Als String-Beispiel ist lediglich der hartnäckige String "Was machst du gerade?" angegeben, der sich auf der FB-Startseite in der Mitte oben als Platzhaltertext im Statusfeld befindet. Er steht als Text im placeholder-Attribut eines TEXTAREA-Tags.

    Vielen Dank im voraus.

    milupo

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Hallo Sören, danke für die Antwort. Ich habe nicht viel Ahnung von JavaScript. Ich hatte schon mal ein bisschen getestet und auch gegoogelt, aber nicht so das Passende gefunden. Dern Skriptautor habe ich auch angeschrieben, der konnte mir für den Moment auch nicht helfen. Ich stehe mometan hier an vorderster Front, denn das Ausgangsskript hat nur ca. 200 Strings und ich habe es schon mächtig ausgebaut. d.h. ich entdecke Probleme, die der Skriptautor noch gar nicht kennt. Ich hatte schon mal versucht, den div-Code auf textarea umzuschreiben, in der Hoffnung, es geht ohne Erwähnung des placeholder-Attributs. Nun gut, ich versuche nochmal mit deinem Tipp zu experimentieren.

    Vielen Dank nochmals.

    Grüße
    milupo

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress