Ich würde den Container betreten, vim installieren und das Locale reparieren.
Sie könnten das kaputte hebräische Locale speichern und das englische darüber kopieren…
root@carrie-app:/var/www# for i in `find . -name *.he.yml` ; do cp ${i/he.yml/en.yml} $i ; done
Süße Idee, aber sie hat in der Praxis nicht funktioniert. Als ich mein Gebietsschema wieder auf HE umstellte, erhielt ich die Fehlermeldung. Ich schätze, ich werde vorerst wieder die Benutzer durchgehen, um sie alle auf Englisch zu setzen.
Haben Sie Discourse nach der Änderung der Gebietsschemata neu gestartet?
Ja. Habe nicht viel gemacht.

Nachdem ich meine alten Ruby-Kenntnisse unter Beweis gestellt hatte, habe ich vorerst alle auf Englisch umgestellt. Ich werde als Nächstes ein Ticket wegen des hebräischen Gebietsschemas eröffnen.
Danke @JammyDodger für die Verschiebung nach Bug, reicht das, um einen Fehlerbericht zu eröffnen, oder sollte ich einen offiziellen in einem Bugtracker eröffnen?
Wenn eine en-Locale kopiert wird, tritt beim Zusammenführen ein Fehler auf (es scheint, dass nicht übersetzte Einträge entfernt werden und wenn nichts übrig bleibt, tritt ein Fehler auf).
Das Entfernen von config/locales/client.he.yml ermöglicht jedoch die Anmeldung auf meiner Testseite.
Da es vollständig auf EN zurückfällt. Ich denke, das ist das erwartete Verhalten.
In der hebräischen Locale config/locales/client.he.yml
posts_likes_MF: |
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
many {# תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
die Zeile
many {# תגובות, }
muss gelöscht werden.
many ist im Hebräischen nicht erlaubt (siehe Language Plural Rules)
Das Problem kann über die Benutzeroberfläche behoben werden. Dazu sollte der korrigierte Wert für die hebräische Sprache unter /admin/customize/site_texts/js.posts_likes_MF eingegeben werden:
{ count, plural,
one {תגובה, }
two {שתי תגובות, }
other {# תגובות, }
}{ ratio, select,
low { יחס גבוה בין פוסטים ללייקים, }
med { יחס גבוה מאוד בין פוסטים ללייקים, }
high { יחס גבוה במיוחד בין פוסטים ללייקים, }
other {}
} קפיצה לפוסט הראשון או האחרון…
Es fühlt sich ein wenig seltsam an, dass die gesamte Website unbrauchbar gemacht werden kann, indem falsche Daten in eine Textanpassung eingegeben werden.
Das hier zu protokollieren ist der richtige Ort für Fehlerberichte. ![]()
Ich werde mit Git nachsehen, wer für diese Zeile verantwortlich ist. Ich dachte, die einzige Partei, die Änderungen daran zulassen darf, ist Crowdin? \nAußerdem, wenn das der Fall ist, warum würde ein Neustart des Unicorn nach dem Kopieren von Englisch über Hebräisch dies nicht beheben?
Es sollte wirklich zwischen nicht erlaubt und nicht unterstützt unterschieden werden.
Seltsamerweise wird im Discourse-Code sogar die „Plural zwei“ für keinen der beiden Sprachcodes unterstützt, was mit Arabisch geteilt wird. Ich denke, hier muss das Problem behoben werden. Ich werde dafür einen PR erstellen, aber es gibt definitiv die Notwendigkeit, den harten Fehler beim „überflüssigen“ many-Feld zu beheben, da Crowdin dieser plurals.rb-Datei anscheinend nicht entspricht.
Ich glaube, es ist komplizierter.
Die Front-End-Übersetzungen werden vom Node-Modul @messageformat/core mithilfe von messageformat-wrapper interpretiert.
Das Problem ist, dass die Pluralregeln an zwei Stellen definiert sind. Die andere wurde kürzlich geändert, um eine Bibliothek zu verwenden (DEV: Upgrade the MessageFormat library (JS) · discourse/discourse@301713e · GitHub).
Die in der Bibliothek definierten Pluralformen sind jedoch nicht immer die gleichen wie die, die Discourse zuvor verwendet hat, und die in plurals.rb wurden nicht geändert. Inconsistency in plural definition
Aber das erklärt nicht, warum Crowdin für viele separate Versionen erstellt hat
Ich habe die benötigten Feldregeln für die Übersetzung hinzugefügt, aber das ist keine Lösung für diesen Fehler, nur eine Kompatibilität für die Crowdin-Ausgabe.
Ich denke, die Regel am Ende der Zeile muss ebenfalls angepasst werden.
Derzeit werden nur „one“ und „other“ erwähnt.
rule: lambda { |n| n == 1 ? :one : :other }
Ja, das habe ich verbockt. Ich habe es mit amend korrigiert und dabei übersehen, dass ich es ohne --force gepusht hatte. Es ist jetzt korrigiert.
Danke, lasst uns das breitere Problem in diesem Thema weiter verfolgen: