Das Problem, dass Discourse-Assign schlecht mit Nicht-Englisch-Zeichen umgehen kann, was zu einem 500-Fehler führt, scheint ein häufiges Thema zu sein. Daher werden wir hier nur ein Problem diskutieren, das unter einer ziemlich peinlichen Kombination von Umständen auftritt:
Discourse verfügt über eine nützliche Zusatzfunktion – es ersetzt Zeichenketten auf der Seite durch lokalisierte Namen, jedes Mal wenn es Jobs::EnsureDbConsistency ausführt. Dies sollte als absolut benutzerfreundliche Funktion gelobt werden, aber in diesem Fall kann es mehr schaden als nützen: Am Beispiel von vereinfachtem Chinesisch stellen wir zunächst die Standardsprache auf diese nicht-englische Sprache ein und führen dann Jobs::EnsureDbConsistency aus. Anschließend werden die Namen der automatischen Gruppen geändert, und wenn Benutzer dann die zugewiesene Seite für diese Gruppe öffnen, wird ein 500-Fehler ausgelöst.
Zusammenfassend lässt sich sagen, dass man, um Discourse-Assign in diesen Sprachen normal zu verwenden, zuerst die Standardsprache auf Englisch einstellen und Jobs::EnsureDbConsistency ausführen muss, damit die Gruppennamen auf Englisch sind, und dann die Standardsprache wieder auf die Zielsprache umstellen muss, damit der vollständige Name Chinesisch wird.
Da jedoch Jobs::EnsureDbConsistency unter normalen Umständen periodisch ausgeführt wird, werden die Namen der automatischen Gruppen beim nächsten Auslösen wieder auf die Zielsprache zurückgesetzt, was erneut dazu führt, dass die zugewiesene Seite einen 500-Fehler auslöst. ![]()



