WebExtension.Fragen()


  • Na, kein Problem. "Besser mal nachgefragt" sagt Muddi immer... :D


    Die Merkel? :-D

    Ü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 und WordPress

  • Irgendwo habe ich mal irgendetwas über web-ext gelesen. Ich denke, auf den Seiten, wo es um das Veröffentlichen der Extensions geht. Aber wenn ich mich recht entsinne, war das auch irgendein Konsolending, oder?...
    Und ja, ich lade die Extension temporär in about:debugging und klicke dann da immer auf "Neu laden". :)


    Ja, web-ext ist ein Konsolen-Tool, aber ist ja keine Schwierigkeit. Musst ja nur den Befehl eingeben und Enter drücken. ;)


    Der Weg über about:debugging wäre für mich viel zu anstrengend. Ich führe folgenden Befehl aus:


    web-ext run --firefox="/Applications/Firefox Stable.app"


    Dann wird Firefox mit der Erweiterung geöffnet und sobald ich irgendeine Änderung an den Dateien vornehme, wird die Erweiterung ganz automatisch neu geladen.


  • Der Weg über about:debugging wäre für mich viel zu anstrengend. Ich führe folgenden Befehl aus:


    web-ext run --firefox="/Applications/Firefox Stable.app"


    Hm, okay, ich nehme an, das wäre dann in meinem Fall:

    Code
    1. web-ext run --firefox="C:\Program Files\Mozilla Firefox\firefox.exe"
    2. bzw.
    3. web-ext run --firefox="C:\Program Files\Firefox Developer Edition\firefox.exe"


    Aber woher weiss Firefox, welche Erweiterung ich jetzt gerade testen willst?

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Korrekt, so wäre das. Wenn das die Standard-Installationsverzeichnisse sind, kann auch einfach --firefox=firefox resp. --firefox=firefoxdeveloperedition verwendet werden.


    Firefox weiß, welche Erweiterung du testen willst, weil du den Befehl von dem Verzeichnis aus ausführst, in welchem die Datei manifest.json liegt.


    Hier ist die Dokumentation der Befehle:
    https://developer.mozilla.org/…web-ext_command_reference

  • Ja, aber muss da nicht erst einmal dieses web-ext installiert sein?
    >> Firefox weiß, welche Erweiterung du testen willst, weil du den Befehl von dem Verzeichnis aus ausführst, in welchem die Datei manifest.json liegt.
    Mache ich das? Ja, wie denn?... :D

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • > Ja, aber muss da nicht erst einmal dieses web-ext installiert sein?


    Ja sicher musst du das Tool erst installieren, bevor du es verwenden kannst. :P


    > Mache ich das? Ja, wie denn?... :D


    Indem du das entsprechende Verzeichnis mit der Kommandozeile öffnest und dann den Befehl ausführst. Ich kann dir nicht helfen, wenn es um Kommandozeilen-Befehle für Windows geht, ich kenne die Befehle für macOS.

  • Ich habe doch noch Übersetzungsfehler gefunden. In der niedersorbischen messages.json. Der String in Zeile 135 ist noch obersorbisch. Rajtark pytać muss in Rejtark pytaś geändert werden.


    Außerdem heißt es im Niedersorbischen generell rejtark statt rajtark. Würdest du das bitte ändern? Außer oben bei dem unübersetzten Satz kommt der Fehler noch bei den Pluralstrings vor. Das ist wahrscheinlich passiert, weil ich Obersorbisch immer als Referenzsprache verwendet habe.


    Bei Tabs_two muss rajtarkaj in rejtarka geändert weden. Niedersorbisch hat dieses j am Wortende nicht.


    Schließlich: Bei tabs_zero muss rejtarkow (obersorbisch: rajtarkow) drin stehen. Nach 0 wird die gleiche Form wie nach 5 - 100 (tabs_other) verwendet.


    Vielen Dank.

    Ü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 und WordPress


  • > Ja, aber muss da nicht erst einmal dieses web-ext installiert sein?


    Ja sicher musst du das Tool erst installieren, bevor du es verwenden kannst. :P


    Und das mache ich sicher auch über eine Kommandozeile... :lol:



    > Mache ich das? Ja, wie denn?... :D


    Indem du das entsprechende Verzeichnis mit der Kommandozeile öffnest und dann den Befehl ausführst. Ich kann dir nicht helfen, wenn es um Kommandozeilen-Befehle für Windows geht, ich kenne die Befehle für macOS.


    Habe ich schon erwähnt, das ich Kommandozeilen hasse?... :P
    Nee, also nichts für ungut, aber bis ich eine Kommandozeile getippt habe, ist der Button "Neu laden" schon fünfmal geklickt.
    Das mache ich mal schön so weiter wie gewohnt. :lol:



    Ich habe doch noch Übersetzungsfehler gefunden.[...]


    Okay, danke dir, milupo. :)
    Ich schaue es mir gleich an.

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)


  • [...]


    Wäre das dann so korrekt oder habe ich etwas missverstanden? :)

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Ja, danke, das ist korrekt. Aber denke daran, dass du in der obersorbischen messages.json bei Tabs_zero noch rajtarkow einfügen musst.

    Ü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 und WordPress

  • Bestens. :-)

    Ü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 und WordPress


  • Ja, jQuery hat dafür eine fertige Methode, Vanilla-JS hat so etwas nicht, deswegen musste ich das selbst implementieren. ;) Die Schwierigkeit mit den Array-Feldern hätte ich bei jQuery aber genauso, jQuery hätte mir nur den einfachen Teil abgenommen. Die Idee ist aber die Gleiche und de facto hat mich die Tatsache, dass jQuery so eine Methode hat, auf die Idee gebracht, dass ich das so lösen kann.


    Kann man da nicht einfach nen String draus machen? Ich gebe zu, bei AddOns bin ich noch unterhalb eines blutigen Anfängers, aber wenn ich dich richtig verstehe, willst Du Im- und Export dazu nutzen, um die Einstellungen deines AddOns per Datei sichern zu können.


    Da müsste doch sowas schon reichen:


    Das anschliessende Zurückwandeln müsste doch so gehen:

    Code
    1. // SpeicherInhalt aus der Datei und dann:
    2. if (SpeicherInhalt !== null) {
    3. SpeicherArray = SpeicherInhalt.split("#");
    4. while (SpeicherArray.length > 0) {
    5. var data = SpeicherArray.pop();
    6. if (data == "NIX") {data = ""};
    7. var ziel = SpeicherArray.pop();
    8. g(ziel).value = data;
    9. };
    10. }


    Wenn Du die Anzahl der Webseiten separat abspeicherst, kannst Du auch sicher stellen, dass das Array später auch für alle IDs ein Ziel findet.


    Oder denke ich da gerade in die falsche Richtung und du meintest ganz was anderes?

  • Kann man da nicht einfach nen String draus machen? Ich gebe zu, bei AddOns bin ich noch unterhalb eines blutigen Anfängers, aber wenn ich dich richtig verstehe, willst Du Im- und Export dazu nutzen, um die Einstellungen deines AddOns per Datei sichern zu können.


    […]


    Nicht per Datei, sondern innerhalb der Erweiterung sollen unterschiedliche Konfigurationen gespeichert und geladen werden können.


    Die Implementierung für meine Erweiterung ist etwas komplizierter als in deinem Code-Beispiel, weil es nicht nur um ein bestimmtes Feld geht, es für unterschiedliche Objekt-Typen unterschiedliche DOM-Strukturen gibt, ich nicht nur Werte einfügen muss, sondern die komplette DOM-Struktur für Array-Elemente beim Deserialisieren erst erzeugen muss, da die Felder beim Laden ja noch gar nicht existieren, und die Event Listeners für die Plus-/Minus-Funktion beim Deserialisieren auch wieder neu registriert werden müssen, damit die Buttons überhaupt eine Funktion haben. Vor allem aber ist es mit dem Serialisierungs-/Deserialisierungs-Code alleine nicht getan, der Konfigurator selbst benötigt auch noch Code-Anpassungen, damit das alles funktionieren kann. Es ist durch die vielen möglichen Varianten und wie alles miteinander verzahnt ist, verhältnismäßig kompliziert. Aber das ist eben der Preis für eine Architektur, die alles automatisch generieren soll, ohne dass für neue Policies jemals etwas zu programmiert werden muss. ;)