1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. EffPeh

Beiträge von EffPeh

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 18:14
    Zitat von Sören Hentzschel


    Theoretisch schon, aber das ist ziemlich tricky und definitiv nicht ohne die Kommandozeile möglich, die du ja nicht magst. Daher sollte man vor dem Pushen immer ganz genau schauen, ob alles so ist, wie man es möchte. Denn ist dein Commit erst einmal auf GitHub, wird's kompliziert, wenn damit was nicht passt.


    Naja, im Prinzip ist das jetzt auch nicht wirklich wichtig. Hat mich nur interessiert und wenn es kein grosses Ding wäre, hätte ich das noch ausgebessert. Aber was soll's. Hauptsache, ich weiss nun, wie man es richtig macht... :)

    Zitat von Sören Hentzschel


    // Apropos kompliziert, die Arbeit am Enterprise Policy Generator ist gerade auch extrem kompliziert. Die Architektur zum Speichern und Laden der Konfiguration beschäftigt mich gut…


    Ja, das glaube ich dir. Der Generator ist ja dynamisch aufgebaut und das kann man nicht mit einer normalen Optionsdatei vergleichen, bei der man praktisch "nur" die Werte eintragen muss. Ich schätze, du musst für jede dynamisch funktionierende Option (also etwa "Add-ons installieren") eine Abfrage machen und dann basteln. Ist sicher nicht unbedingt spassig... :wink:

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 17:55
    Zitat von Sören Hentzschel


    Schön, dass du die Idee verstanden hast und das nun anwendest. ;)


    Ja, ergibt auch Sinn. Nicht mal für andere, sondern vor allem auch für mich. Und im ST kann man das ja auch gut nachvollziehen. Theoretisch gesehen muss man also eigentlich gar nicht mehr auf die Github-Seite selbst. :)

    Jetzt habe ich da ja noch einige sinnfreie commit-Kommentare. Kann ich die noch irgendwie nachträglich abändern?

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 17:11
    Zitat von Sören Hentzschel


    Ganz wichtig: gib beim Commit-Kommentar unten eine aussagekräftige Beschreibung deiner Änderungen an. Auf eine Beschreibung zu verzichten oder einen Schmarn wie "Änderungen" oder "Bugfix" zu schreiben, ist technisch kein Problem, aber ein wirkliches No-Go, denn das bringt niemandem etwas, weder dir noch anderen. Man muss anhand der Beschreibung eine Idee davon erhalten können, was du getan hast. Das ist der Sinn des Commit-Kommentars. Das ist das, was später auf Github in den Commits als Titel steht und auf deine Änderungen verlinkt.


    So langsam verstehe ich das System. :)
    Ich muss mir die Änderungen an sich gar nicht merken, weil ich die im ST sehe. Und anhand dessen kann ich dann auch halbwegs vernünftige Commit-Kommentare eintragen. Und dann bei Github in der commits-Liste nachvollziehen. Sehr schön... :klasse:

    Update auf Github:
    https://github.com/EffPeh/Tabs2List

  • Alle Links einer Seite öffnen

    • EffPeh
    • 9. Juni 2018 um 16:20
    Zitat von Hastenichgesehen


    Zum obigen Script-Code muss ich bestimmt noch etwas dazu schreiben!?
    Ich habe "(function () {" eingefügt, aber es zeigt sich weder via rechter Maustaste, noch auf dem Tab-Reiter eine Auswahlmöglichkeit.


    Davon war bei deiner Anfrage auch nie die Rede... :wink:

    Zitat von Sören Hentzschel


    [...]


    Und so lerne ich sogar aus an sich sinnlosem Zeugs noch etwas... :P

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 15:26

    Ja, das schaut so aus, aber die Ansicht ist praktisch nur ein Template, damit ich live sehe, wie sich eine Farbgebung auswirkt.
    Wenn ich dann fertig bin, erstellt das Script automatisch eine CSS-Datei, die ich nur noch einbinden muss. :)

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 15:09
    Zitat von milupo


    Wäre da auch noch etwas zu übersetzen?


    Nee, das nutze ich ja nur selbst, um Themes zu erstellen.
    Für Benutzer wäre das sowieso erklärungsbedürftig bzw. müsste ich da dann noch einiges umbauen.
    Ausserdem läuft das Script mit jQuery. :)

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 14:40

    Ich danke dir, milupo... :)

  • Alle Links einer Seite öffnen

    • EffPeh
    • 9. Juni 2018 um 14:37
    Code
    var list = document.getElementsByClassName("card-click-target");
    for (var i = 0; i < list.length; i++) {
          list[i].setAttribute( 'target' , '_blank' );
          list[i].click();
    }


    Sinnvoll ist das aber wirklich nicht. Zumal sich FF evtl. auch beschweren wird... :P

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 13:10
    Zitat von Sören Hentzschel


    Hier ein paar Erläuterungen zu Git und Sourcetree. [...]


    Sehr geil. Vielen Dank für die Mühe, Sören. :):klasse:
    Das schafft doch schon mal einen gewissen Überblick. Vor allem das mit dem Commit. Bisher habe ich da immer einfach ein "-" eingegeben, damit mich Sourcetree nicht mit dem Popup nervt. :P
    Auch heute werde ich da nicht viel bei commit eingeben (Vielleicht: "Vorsicht - Anfänger!" :P ), weil ich in der Tat gar nicht mehr weiss, was ich alles geändert habe. Es waren doch einige Sachen. Aber zukünftig werde ich darauf achten, denn es ergibt natürlich Sinn, was du schreibst.

    Zitat von milupo


    Ja, ich wollte noch "The extension uses the CLDR plural rules" inzufügen, aber für die, die CLDR nicht kennen, hat das eigentlich kaum Nährwert. Ist gut so, Effpeh.


    Okay, dann mache ich das so. Oder gibt es noch Einwände? :)

    Für die Geschichte mit dem "in" bei browser.sessionstore.max_tabs_undo in about:config bräuchte ich dann noch eine Übersetzung, fällt mir gerade ein. :wink:

    Und die ganzen Titel der Themes - bis auf "helles" bzw. "dunkles" Theme - nehme ich aus messages.json heraus. Das sind Eigennamen, die werde ich direkt im Option-File unterbringen. Das erleichtert die Wartung und ich muss nicht jedesmal, wenn ich ein neues Theme einstelle, alle messages-Dateien bearbeiten. Ich habe mir nämlich dafür extra ein Tool gebastelt:
    [attachment=0]tool.JPG[/attachment]

    Bilder

    • tool.JPG
      • 106,47 kB
      • 760 × 839
  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 12:39

    Stimmt schon. Ich bin jetzt eher von Leuten ausgegangen, die richtig Plan vom Übersetzen haben. Aber du hast Recht, das gilt natürlich nicht für jeden Übersetzungswilligen. :)
    Vielleicht dann so?...

    Code
    "Tab_one": {
    		"message": "rajtark",
    		"description": "LOCALIZATION NOTE: Please specify the correct plural form for this category. If this plural form is not used in your language, leave the string empty. You need not translate this string. More infos: http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html"
    	},
    	"Tab_two": {
    		"message": "rajtarkaj",
    		"description": "LOCALIZATION NOTE: Please specify the correct plural form for this category. If this plural form is not used in your language, leave the string empty. You need not translate this string. More infos: http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html"
    	},
  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 12:30
    Zitat von milupo


    Also bei allen angeben? Den String kann man ergänzen, etwa You need not translate this string. LOCALIZATION NOTE könnte man auch in description aufnehmen:

    "description": "LOCALIZATION NOTE: Please specify the correct plural form for this category. If this plural form is not used in your language, leave the string empty. You need not translate this string."


    Oder so. Im Prinzip musst du das als Übersetzer wissen. Für mich ist das nur Copy&Paste... :)

  • WebExtension.Fragen()

    • EffPeh
    • 9. Juni 2018 um 12:27

    Guten Morgen... :)

    Zitat von Sören Hentzschel


    Anmerkung dazu: Du kannst Variablen mit const, let oder var definieren. In modernem JavaScript verwendet man üblicherweise überhaupt kein var mehr. Und wenn du eine Variable später nicht mehr überschreibst, solltest du const statt let verwenden.


    Ja, ich weiss. Wir hatten das Thema schon einmal. Ich versuche mich daran zu halten, aber gerade wie hier, wenn ich was neues austesten will, verfalle ich schnell wieder in alte Muster. Und in Beispielen (auch bei MDN) wird var auch noch relativ häufig verwendet und ich übernehme das dann manchmal, weil mein Hirn noch nicht auf let getrimmt ist. :)
    Aber ich verspreche, dass du im Update, das ich im Laufe des Tages bei Github einstelle, kein einziges var mehr finden wirst. :wink:

    Zitat von Sören Hentzschel


    Aber die Übersetzungs-Architektur von WebExtensions lässt Kommentare zu. ;)


    Und ich wünschte, das würde man ganz allgemein für JSON einführen... :wink:


    Zitat von milupo


    EffPeh: Ich schlage vor, dass du das Entity Tab_others in Tab_other umbenennst. Die CLDR-Kategorie heißt OTHER, abgesehen mal davon, dass Adjektive im Englischen gar keinen Plural bilden können.


    Das ist schon längst geschehen - sonst hätte das gestern mit dem Sorbisch auch nicht hingehauen. War nur ein Schreibfehler, wahrscheinlich hat mein Hirn da einen Sprung zu "The Others" gemacht. :P

    Zitat von milupo


    EffPeh:
    Würdest du ein Kommentar-Entity einbauen? Könnte etwa so aussehen:

    Ich könnte überall dort, wo es darum geht, eine Beschreibung/Anmerkung einfügen, also etwa so:

    Code
    "Tab_one": {
    		"message": "rajtark",
    		"description": "Please specify the correct plural form for category one"
    	},
    	"Tab_two": {
    		"message": "rajtarkaj",
    		"description": "Please specify the correct plural form for category two"
    	},


    Ich schätze, ein Übersetzer sollte dann wissen, was zu tun ist, oder?... :)

  • Keine Möglichkeit einen Kommentar bei Youtube einzufügen

    • EffPeh
    • 9. Juni 2018 um 03:36

    Hm. Also wirklich nötig haben sie das ja nun nicht gerade. Ausserdem würde das auch voraussetzen, das ein Nutzer beide Browser kennt. Und zwar relativ gut kennt. Was ich mal bei dem durchschnittlichen Nutzer bezweifle. Selbst ich wusste bis eben nicht, dass da im Chrome eine Hover-Vorschau existiert. Allerdings ist das mit der Vorschau eben auch nur auf der Startseite - die ich praktisch nie, egal in welchem Browser, zu sehen bekomme. Ist aber schon der Hammer. Ich bin ein bisschen versucht, zu Chrome zu wechseln... :P
    Im Ernst: mit so einem Blendwerk kann man doch nun wirklich niemanden mehr hinter dem Ofen hervorlocken, oder? Mal abgesehen davon, das es nicht einmal eine tatsächliche Vorschau ist, sondern nur einen Ausschnitt zeigt. Okay, vielleicht fallen die Kiddies auf so etwas herein... :)

    Das mit dem Fehler ist schon merkwürdig. Andererseits schrauben Google/Youtube auch furchtbar gerne an allem herum. Und das die dann erst einmal schauen, was in "ihrem" Browser geht, ist dann auch irgendwie nachvollziehbar.

  • Keine Möglichkeit einen Kommentar bei Youtube einzufügen

    • EffPeh
    • 9. Juni 2018 um 00:46

    Naja, ich denke eher an einen Fehler - obwohl in der Konsole nichts angezeigt wird.
    Ich kann mich erinnern, dass diese Merkwürdigkeit schon mal so vor etwa zwei Jahren da war. Zwischenzeitlich war es aber dann wieder okay. Wobei ich das nicht wirklich zeitlich festmachen kann, da ich nicht sehr oft kommentiere.
    Aber Fox2Fox hat z.B. keine Probleme mit seinem FF 60. Ich mit FF 61 schon.
    Ich kann mir nicht vorstellen, dass Youtube das Einfügen aktiv verhindern möchte. Wozu sollte das gut sein, wenn man es nur auf den FF beschränkt? :)

  • WebExtension.Fragen()

    • EffPeh
    • 8. Juni 2018 um 23:52

    :lol::lol::lol: Es fehlt ein rollendes Smilie... :P

  • WebExtension.Fragen()

    • EffPeh
    • 8. Juni 2018 um 23:47

    Und auch dir nochmal ein dickes Dankeschön. :)

  • WebExtension.Fragen()

    • EffPeh
    • 8. Juni 2018 um 23:44

    Und so schaut's aus... :D
    [attachment=0]sorbisch.png[/attachment]

    Bilder

    • sorbisch.png
      • 162,8 kB
      • 1.330 × 142
  • WebExtension.Fragen()

    • EffPeh
    • 8. Juni 2018 um 23:32

    Ich habe das zwar mal so in der JSON gelassen, aber im Prinzip kann man es auch herausnehmen.
    Schaut momentan bei mir so aus und funktioniert perfekt:

    Code
    "Tab_zero": {
    		"message": "-"
    	},
    	"Tab_one": {
    		"message": "rajtark"
    	},
    	"Tab_two": {
    		"message": "rajtarkaj"
    	},
    	"Tab_few": {
    		"message": "rajtarki"
    	},
    	"Tab_many": {
    		"message": "-"
    	},
    	"Tab_other": {
    		"message": "rajtarkow"
    	},
    Alles anzeigen


    Stimmt doch so, hoffe ich... :lol:

    Danke nochmal, Sören.
    Das war jetzt mal richtig effektive Hilfe. :klasse:

  • WebExtension.Fragen()

    • EffPeh
    • 8. Juni 2018 um 23:18

    Suuupergeil... :D
    Für Deutsch passt das schon mal total gut.
    Ich habe das jetzt so im JS:

    Code
    let tabsLength = tabs.length;
    
    
    let rule = new Intl.PluralRules( locale ).select( tabsLength );
    var tabsNum = browser.i18n.getMessage('Tab_'+(rule));
    
    
    tabsCount.textContent = ' (' + tabsLength + ' ' + tabsNum + ')';


    Und im JSON eben:

    Code
    "Tab_zero": {
    		"message": "Tab"
    	},
    	"Tab_one": {
    		"message": "Tab"
    	},
    	"Tab_two": {
    		"message": "Tabs"
    	},
    	"Tab_few": {
    		"message": "Tabs"
    	},
    	"Tab_many": {
    		"message": "Tabs"
    	},
    	"Tab_other": {
    		"message": "Tabs"
    	},
    Alles anzeigen


    Und jetzt gleich mal auf Sorbisch austesten... ;)

    Zitat von milupo


    Andererseits ist man als Übersetzer immer etwas vom Perfektionismus getrieben (jedenfalls ich) und habe deswegen auch ein bisschen ein schlechtes Gewissen euch hier auf den Keks zu gehen.


    Du musst doch kein schlechtes Gewissen haben. Im Gegenteil. Das bringt mir doch auch etwas.
    Seitdem dieser thread auf ist, habe ich schon eine Menge dazugelernt und deine Beiträge tragen doch auch dazu bei. Ohne die hätte ich mich gar nicht mehr weiter mit dem Thema Localization beschäftigt. Jedenfalls vorläufig nicht... :P

  • WebExtension.Fragen()

    • EffPeh
    • 8. Juni 2018 um 22:46
    Zitat von Sören Hentzschel


    Die Regeln brauchst du nicht mehr, siehe Link aus meinem Beitrag, den du mit zitiert hast. Wenn n die Anzahl deiner Tabs ist:

    browser.i18n.getMessage("localization_key_" + (new Intl.PluralRules().select(n)));

    Mit Übersetzungen "localization_key_one", "localization_key_two", "localization_key_other" usw. Aber die Übersetzungen brauchst du natürlich. ;)


    Das war mein (theoretischer) Plan... :)

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon