Wenn ein Beitrag im Forum blockiert wird und ein Popup mit der Meldung „418 error“ oder „502 Bad Gateway“ angezeigt wird, ist diese Fehlermeldung nicht sehr präzise. An welcher Stelle im Forum könnte diese Meldung optimiert werden, um dem Nutzer eine detailliertere Information zu geben?
Wenn der Benutzer die Browser-Entwicklertools aufruft (Rechtsklick > Prüfen > Konsole), wird dort in der Regel eine Fehlermeldung protokolliert. Außerdem in /logs (nur für Administratoren sichtbar).
Gibt es eine Möglichkeit, diese Fehlermeldung zu ändern, z. B. die Anzeige in diesem Pop-up in „Netzwerk-/Gateway-Fehler“ umzuwandeln?
Dies könnte ein größeres zugrunde liegendes Problem sein. Fehler dieser Art sind nicht so häufig.
Ich denke, ich habe herausgefunden, woher diese Meldung stammt.
Wenn Discourse in der Antwort keine strukturierte Fehlermeldung findet, fällt es auf den HTTP-Statuscode und statusText zurück:
if (!parsedError) {
if (error.status && error.status >= 400) {
parsedError = error.status + " " + error.statusText;
}
}
Discourse-Quellcode: HTTP-Fehler-Fallback.[1]
Das bedeutet, dass 502 Bad Gateway kein normaler Eintrag in den Site Texts ist. Er wird aus dem HTTP-Antwortstatus und dem Status-Text erstellt.
Die resultierende Meldung wird dann hier an den Discourse-Dialog übergeben.[2]
Discourse verwendet bereits übersetzte Zeichenketten, wenn der Server einen error_key oder einen anderen strukturierten Fehler zurückgibt. Bei einer rohen 502-Antwort greift jedoch der oben genannte Fallback.
Ein Plugin könnte die Meldung vor der Anzeige seines eigenen Fehlerdialogs ersetzen, aber ich sehe keinen öffentlichen Plugin-API-Hook, um diesen Fallback global zu ändern. Wahrscheinlich wäre eine Änderung am Kern oder ein neuer Plugin-API-Hook erforderlich, um diese HTTP-Fallback-Meldungen global anpassbar/übersetzbar zu machen.
