Discourse에 로그인해 본 적이 없는 새 사용자의 경우, 사용자가 사이트에 처음 로그인할 때 페이로드에 locale 매개변수가 설정되어 있다면 작동해야 합니다. 예를 들어, 링크해 주신 npm 문서를 사용하는 경우:
var userparams = {
// 필수, 그렇지 않으면 예외가 발생합니다
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// 선택 사항
"username": "some username",
"name": "some real name",
"locale": "es"
};
이미 Discourse에 계정이 있는 기존 사용자의 경우, userparams에 locale_force_update 매개변수를 추가하여 true로 설정해야 합니다. 귀하의 경우를 고려할 때, 새 사용자를 만들 때와 사용자를 업데이트할 때 모두 locale_force_update 매개변수를 포함할 수 있다고 생각합니다:
var userparams = {
// 필수, 그렇지 않으면 예외가 발생합니다
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// 선택 사항
"username": "some username",
"name": "some real name",
"locale": "es",
"locale_force_update": true
};
불행히도, DiscourseConnect 페이로드를 통해 로케일 또는 기타 속성을 _업데이트_하려면 사용자가 Discourse에서 로그아웃한 후 다시 로그인해야 합니다. 이는 사용자가 업데이트된 로케일을 즉시 받지 못할 가능성이 높다는 것을 의미합니다. 이에 대한 우회 방법이 있지만, discourse-sso npm 패키지로 처리되지 않는다고 생각합니다. 사용자가 로그아웃하고 다시 로그인하지 않고도 DiscourseConnect를 통해 사용자를 업데이트하려면 sync_sso 루트에 호출을 해야 합니다. 자세한 내용은 여기에 있습니다: Sync DiscourseConnect user data with the sync_sso route.
새 사용자나 로케일 매개변수를 추가한 후 로그아웃하고 다시 로그인하는 사용자에게 로케일을 올바르게 설정하는 데 문제가 있다면, verbose discourse connect logging Discourse 사이트 설정을 활성화해 보세요. 그러면 사이트의 /logs 페이지(관리자 / 로그 / 오류 로그에서 찾을 수 있음)에서 Discourse로 전송되는 매개변수를 확인할 수 있습니다.