Per un utente nuovo che non ha mai effettuato l’accesso a Discourse prima, dovrebbe funzionare se il parametro locale è impostato nel payload la prima volta che l’utente accede al sito. Ad esempio, utilizzando la documentazione npm che hai linkato:
var userparams = {
// Obbligatorio, altrimenti verrà generata un'eccezione
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// Opzionale
"username": "some username",
"name": "some real name",
"locale": "es"
};
Per un utente esistente che ha già un account su Discourse, dovrai aggiungere il parametro locale_force_update a userparams e impostarlo su true. Penso che nel tuo caso potresti includere il parametro locale_force_update sia quando crei un nuovo utente sia quando aggiorni un utente:
var userparams = {
// Obbligatorio, altrimenti verrà generata un'eccezione
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// Opzionale
"username": "some username",
"name": "some real name",
"locale": "es",
"locale_force_update": true
};
Sfortunatamente, per aggiornare la locale, o qualsiasi altro attributo tramite il payload di DiscourseConnect, l’utente dovrà disconnettersi da Discourse e poi accedere nuovamente. Ciò significa che è improbabile che l’utente ottenga la locale aggiornata immediatamente. Esiste una soluzione alternativa, ma non credo che sia gestita dal pacchetto npm discourse-sso. Per aggiornare un utente tramite DiscourseConnect senza richiedere loro di disconnettersi e accedere nuovamente a Discourse, è necessario effettuare una chiamata al percorso sync_sso. I dettagli sono qui: Sync DiscourseConnect user data with the sync_sso route.
Se hai difficoltà a impostare correttamente la locale per i nuovi utenti, o per gli utenti che si disconnettono e accedono nuovamente dopo aver aggiunto i parametri della locale, prova ad abilitare l’impostazione del sito Discourse verbose discourse connect logging. Ciò ti consentirà di vedere i parametri che vengono inviati a Discourse dal tuo sito nella pagina /logs (trovata in Admin / Logs / Error Logs).