Para um usuário novo que nunca fez login no Discourse antes, deve funcionar se o parâmetro locale for definido na carga útil na primeira vez que o usuário fizer login no site. Por exemplo, usando a documentação do npm que você vinculou:
var userparams = {
// Obrigatório, caso contrário, lançará uma exceção
"nonce": nonce,
"external_id": "algum id de usuário aqui",
"email": "algum email de usuário",
// Opcional
"username": "algum nome de usuário",
"name": "algum nome real",
"locale": "es"
};
Para um usuário existente que já possui uma conta no Discourse, você precisará adicionar o parâmetro locale_force_update a userparams e defini-lo como true. Acho que, no seu caso, você pode incluir o parâmetro locale_force_update tanto ao criar um novo usuário quanto ao atualizar um usuário:
var userparams = {
// Obrigatório, caso contrário, lançará uma exceção
"nonce": nonce,
"external_id": "algum id de usuário aqui",
"email": "algum email de usuário",
// Opcional
"username": "algum nome de usuário",
"name": "algum nome real",
"locale": "es",
"locale_force_update": true
};
Infelizmente, para atualizar o local, ou quaisquer outros atributos por meio da carga útil do DiscourseConnect, o usuário terá que sair do Discourse e, em seguida, fazer login novamente. Isso significa que é improvável que o usuário obtenha o local atualizado imediatamente. Existe uma solução alternativa para isso, mas acho que não é tratada pelo pacote npm discourse-sso. Para atualizar um usuário via DiscourseConnect sem exigir que ele saia e faça login novamente no Discourse, você precisa fazer uma chamada para a rota sync_sso. Os detalhes sobre isso estão aqui: Sync DiscourseConnect user data with the sync_sso route.
Se você estiver com problemas para definir o local corretamente para novos usuários, ou para usuários que saem e fazem login novamente após adicionar os parâmetros de local, tente habilitar a configuração do site Discourse verbose discourse connect logging. Isso permitirá que você veja os parâmetros que estão sendo enviados para o Discourse a partir da página /logs do seu site (encontrada em Admin / Logs / Error Logs.)