Für einen neuen Benutzer, der sich noch nie zuvor bei Discourse angemeldet hat, sollte es funktionieren, wenn der Parameter locale beim ersten Anmelden des Benutzers auf der Website in der Nutzlast gesetzt ist. Zum Beispiel, unter Verwendung der von Ihnen verlinkten npm-Dokumente:
var userparams = {
// Erforderlich, sonst wird eine Ausnahme ausgelöst
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// Optional
"username": "some username",
"name": "some real name",
"locale": "es"
};
Für einen bestehenden Benutzer, der bereits ein Konto bei Discourse hat, müssen Sie den Parameter locale_force_update zu userparams hinzufügen und ihn auf true setzen. Ich denke, dass Sie für Ihren Fall den Parameter locale_force_update sowohl bei der Erstellung eines neuen Benutzers als auch bei der Aktualisierung eines Benutzers einbeziehen könnten:
var userparams = {
// Erforderlich, sonst wird eine Ausnahme ausgelöst
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// Optional
"username": "some username",
"name": "some real name",
"locale": "es",
"locale_force_update": true
};
Leider muss sich der Benutzer abmelden und wieder anmelden, um die Locale oder andere Attribute über die DiscourseConnect-Nutzlast zu aktualisieren. Das bedeutet, dass der Benutzer die aktualisierte Locale wahrscheinlich nicht sofort erhält. Dafür gibt es eine Problemumgehung, aber ich glaube nicht, dass sie vom discourse-sso npm-Paket behandelt wird. Um einen Benutzer über DiscourseConnect zu aktualisieren, ohne dass er sich abmelden und wieder bei Discourse anmelden muss, müssen Sie einen Aufruf an die Route sync_sso machen. Details dazu finden Sie hier: Sync DiscourseConnect user data with the sync_sso route.
Wenn Sie Probleme haben, die Locale für neue Benutzer oder für Benutzer, die sich ab- und wieder anmelden, korrekt einzustellen, nachdem Sie die Locale-Parameter hinzugefügt haben, versuchen Sie, die Discourse-Site-Einstellung verbose discourse connect logging zu aktivieren. Dies ermöglicht es Ihnen, die Parameter zu sehen, die von Ihrer Website an Discourse gesendet werden, auf Ihrer Seite /logs (zu finden unter Admin / Logs / Error Logs).