Для нового пользователя, который ранее никогда не входил в Discourse, это должно сработать, если параметр locale установлен в полезной нагрузке при первом входе пользователя на сайт. Например, используя документацию npm, на которую вы сослались:
var userparams = {
// Обязательно, иначе будет выброшено исключение
"nonce": nonce,
"external_id": "какой-то идентификатор пользователя",
"email": "какая-то электронная почта пользователя",
// Опционально
"username": "какое-то имя пользователя",
"name": "какое-то реальное имя",
"locale": "es"
};
Для существующего пользователя, у которого уже есть учётная запись в Discourse, вам нужно добавить параметр locale_force_update в userparams и установить его значение в true. Я думаю, что в вашем случае вы можете включать параметр locale_force_update как при создании нового пользователя, так и при обновлении пользователя:
var userparams = {
// Обязательно, иначе будет выброшено исключение
"nonce": nonce,
"external_id": "какой-то идентификатор пользователя",
"email": "какая-то электронная почта пользователя",
// Опционально
"username": "какое-то имя пользователя",
"name": "какое-то реальное имя",
"locale": "es",
"locale_force_update": true
};
К сожалению, для обновления локали или любых других атрибутов через полезную нагрузку DiscourseConnect пользователю необходимо выйти из системы Discourse, а затем войти снова. Это означает, что маловероятно, что пользователь получит обновлённую локаль сразу. Существует обходной путь, но я не думаю, что он обрабатывается пакетом npm discourse-sso. Чтобы обновить пользователя через DiscourseConnect без необходимости выходить из системы и снова входить в Discourse, вам нужно сделать запрос к маршруту sync_sso. Подробная информация об этом здесь: Sync DiscourseConnect user data with the sync_sso route.
Если у вас возникают проблемы с правильной установкой локали для новых пользователей или для пользователей, которые выходят из системы и входят снова после добавления параметров локали, попробуйте включить настройку сайта Discourse verbose discourse connect logging. Это позволит вам увидеть параметры, которые отправляются в Discourse со страницы /logs вашего сайта (находится в разделе Администрирование / Журналы / Журналы ошибок).