WebExtension.Fragen()

  • Ich weiß nicht, ob dir das hilft, aber Unicode CLDR listet neben anderen Locale-Daten auch die Pluralformen auf. Hier erst eine Informationsseite:

    http://cldr.unicode.org/index/cldr-spec/plural-rules

    Und hier eine Übersicht über alle registrierten Sprachen. Auch Ober- und Niedersorbisch sind dabei:

    http://www.unicode.org/cldr/charts/la…ural_rules.html

    Inwieweit das mit JavaScript umsetzbar ist, weiß ich nicht.

    Ü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

  • Firefox unterstützt seit Version 58 die Internationalization API und im Speziellen PluralRules:
    https://developer.mozilla.org/de/docs/Web/Ja…cts/PluralRules

    Da das eine reguläre JavaScript-API ist, kann das auch von WebExtensions genutzt werden.

    Beispiel:

    new Intl.PluralRules('de').select(3);
    => liefert "other"

    new Intl.PluralRules('dsb').select(3);
    => liefert "few"

    Mit anderen Worten: man muss sich selbst überhaupt nicht um die einzelnen Sprachen kümmern, der Browser kennt die Regeln. Und dann könnte man bei der Übersetzung entsprechende Übersetzungen für "zero", "one", "two" "few", "many" und "other" verwenden.


  • Was ist das mit den "Entities"? Was ist damit genau gemeint?


    Vereinfacht gesagt, ein Variablenname. Das ist das, was du vor dem Doppelpunkt in der JSON-Datei angibst, also z. B. extension_name oder extension_description. Ich kenne das aus den DTD-Dateien, vielleicht heißt es bei JSON anders. Diesem ordnest du dann einen Wert dazu, wobei JSON noch das Entity? message braucht. Sören kennt sich da bestimmt besser aus.

    Ü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


  • Mit anderen Worten: man muss sich selbst überhaupt nicht um die einzelnen Sprachen kümmern, der Browser kennt die Regeln. Und dann könnte man bei der Übersetzung entsprechende Übersetzungen für "zero", "one", "two" "few", "many" und "other" verwenden.


    Na, das ist aber mal eine gute Nachricht! Wie es aussieht, richtet sich Firefox da nach CLDR, und beide sorbischen Sprachen werden von CLDR unterstützt. Da war ja mein Beitrag #101 eine gute Idee.

    Ü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


  • Siehe oben... :mrgreen:


    Wo oben?

    Ü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

  • Das klingt doch nach einem Plan. :)
    Dankeschön, Sören.
    Ich werde mir das dann mal anschauen. :wink:


    Das meinte ich... :lol:
    milupo, wärst du so nett und würdest mir nochmal schreiben, wie die Regeln sind und die entsprechenden Übersetzungen dazu?
    Also bei 1, 2, 3-4, ab 5 oder wie auch immer das war... :P

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

  • 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. ;)

  • Oder, um es direkt als JSON zu definieren:

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


  • 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... :)

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


  • Das meinte ich... :lol:


    Ach so.

    Zitat

    milupo, wärst du so nett und würdest mir nochmal schreiben, wie die Regeln sind und die entsprechenden Übersetzungen dazu?
    Also bei 1, 2, 3-4, ab 5 oder wie auch immer das war... :P


    Ja, beziehen wir uns also gleich nochmal auf die CLDR-Sprachübversicht:

    http://www.unicode.org/cldr/charts/la…ural_rules.html

    Für Sorbisch gibt es vier Formen:

    ONE: 1, 101, 201, 301, ... usw.
    TWO: 2, 102, 202, 302, ... usw.
    FEW: 3 - 4, 103 - 104, 203 - 204, 303 - 304, ... usw.
    OTHER: 0, 5 - 100, 105 - 200, 205 - 300, 305 - 400, ... usw.

    Entscheidend ist die letzte Ziffer, wenn es auch vielleicht etwas seltsam scheint, dass nach 101, 201, 301 usw. der Singular steht. Aber über die Wortformen brauchst du dir keine Gedanken zu machen, nur über den Bau/die Anwendung der Regel.

    Bei unserem Beispiel wäre:

    ONE: 1 rajtark, 101 rajtark, 201 rajtark, 301 rajtark usw.
    TWO: 2 rajtarkaj, 102 rajtarkaj, 302 rajtarkaj usw.
    FEW: 3/4 rajtarki, 103/104 rajtarki, 203/204 rajtarki, 303/304 rajtarki usw.
    OTHER: 0 rajtarkow, 5 - 100 rajtarkow, 105 - 200 rajtarkow, 205 - 300 rajtarkow, 305 - 400 rajtarkow usw.

    Ü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


  • Oder, um es direkt als JSON zu definieren:


    Wunderbar, so sähe der Traum meiner Träume aus. :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, LibreOffice Onlinehilfe, WordPress

  • Schön, dass du das so siehst. Aber ich musste lernen, mich mit dem zufrieden zu geben, was möglich ist. Und ob das andere Webextension-Entwickler einbauen, ist auch ungewiss. 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.

    Ü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

  • Und ob das andere Webextension-Entwickler einbauen, ist auch ungewiss.

    Ich glaube, dass sehr viele die unterschiedlichen Plural-Formen deswegen nicht berücksichtigen, weil sie schlicht und ergreifend nicht wissen, dass es in anderen Sprachen teilweise mehr unterschiedliche Formen und andere Regeln dafür gibt. Das Nicht-Wissen ist, glaube ich, die größte Hürde. Denn wenn man es weiß, ist es eh kein großes Thema, das zu implementieren. ;)

  • Hoffen wir das Beste. Auf das neue Wissen der anderen Webextension-Entwickler! Prost! :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, LibreOffice Onlinehilfe, WordPress

  • 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:


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


    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

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

  • Danke, das tut gut.

    Eine Frage zu den nicht genutzten Pluralkategorien, Sorbisch nutzt kein MANY. Da müsste ich den Originaltext praktisch rauslöschen und nur die Anführungszeichen stehen lassen? Andererseits ist Englisch die Ausgangssprache, da dürfte sowieso nichts drin stehen.

    Ü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

  • 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:


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

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

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