UI 语言环境
Logto 支持标准 OIDC 认证 (Authentication) 参数 ui_locales
,用于控制特定交互的登录体验和后续通信的语言。
功能说明
- 决定 Logto 托管的登录体验界面在运行时的 UI 语言。Logto 会选择
ui_locales
中在你租户语言库中支持的第一个语言标签。 - 影响由该交互触发的邮件本地化(如验证码邮件)。详见 邮件模板本地化。
- 将原始值作为变量
uiLocales
暴露给邮件模板,你可以根据需要将其包含在邮件主题或内容中。
参数格式
- 名称:
ui_locales
- 类型:
string
- 值:以空格分隔的 BCP 47 语言标签列表,例如
fr-CA fr en
。 - 参考:OpenID Connect Core - ui_locales
解析顺序与优先级
在确定登录体验和相关邮件的 UI 语言时,Logto 按以下顺序解析终端用户语言:
- 当前认证 (Authentication) 请求中的
ui_locales
(第一个支持的标签优先)。 - 否则,使用
Accept-Language
头(体验 (Experience) API / 用户账户 (Account) API)或messagePayload.locale
(如组织邀请等管理 (Management) API)。 - 否则,使用登录体验中配置的租户默认语言。
此行为不会永久更改你的语言设置,仅适用于当前交互。
SDK 用法
如果你在使用 Logto SDK,请通过登录调用的 extraParams
传递 ui_locales
,以便将其转发到授权 (Authorization) 请求:
await logtoClient.signIn({
redirectUri: 'https://your.app/callback',
extraParams: {
ui_locales: 'fr-CA fr en',
},
});
示例
ui_locales=fr-CA fr en
→ 如果你的语言库中存在fr-CA
,登录 UI 将以法语(加拿大)显示;否则依次回退到fr
,再到en
。ui_locales=ja
但未启用日语 → 回退到Accept-Language
或租户默认语言。