# Como definir o idioma para usuários SSO

**URL:** https://meta.discourse.org/t/how-to-set-language-for-sso-users/277332
**Category:** SSO
**Created:** [31 Agosto , 2023 11:01 UTC](https://meta.discourse.org/t/how-to-set-language-for-sso-users/277332 "2023-08-31T11:01:46Z")
**Posts on this page:** 1
**Showing post:** 4

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [1 Setembro , 2023 15:26 UTC](https://meta.discourse.org/t/how-to-set-language-for-sso-users/277332/4 "2023-09-01T15:26:32Z")

</div>

> [@Ankur\_Tyagi](#):
>
> Tentei com um novo usuário, bem como atualizando o local para um usuário existente, mas não funcionou.

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:

```plaintext
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:

```plaintext
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
};

```

> [@Ankur\_Tyagi](#):
>
> Estou procurando uma solução para usuários logados.

Infelizmente, para _atualizar_ o local, ou quaisquer outros atributos por meio da carga útil do [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true), 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](https://meta.discourse.org/t/13045?silent=true) 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](https://meta.discourse.org/t/sync-discourseconnect-user-data-with-the-sync-sso-route/84398).

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.)

---

_[View the full topic](https://meta.discourse.org/t/how-to-set-language-for-sso-users/277332)._
