简体中文
通过 OIDC ui_locales 本地化你的 Logto 登录体验
让你的登录体验对每位用户都像原生应用。在本教程中,你将学习如何使用标准 OIDC 参数 ui_locales 设置 Logto 登录界面及相关邮件的运行时语言。
为什么要使用 ui_locales?
Logto 已经支持多语言内容和自动检测,但有些场景你可能想为某个具体交互明确选择语言:
- 多组织产品每个组织偏好不同语言
- 来自特定语言市场活动的深度链接
- 产品页面中的本地化 CTA,确保登录流程语言一致
- 本地化引导流程的 A/B 测试
此外,ui_locales
是许多身份提供商和 SDK 支持的标准参数。
ui_locales 的作用
- 为当前交互设置登录界面语言(优先使用支持的第一个 tag)
- 影响因该交互触发的邮件的本地化
- 将原始值以变量
uiLocales
暴露给邮件模板(例如:“请求的语言:{{uiLocales}}
”)
参考文档查看更多:界面本地化文档。
前置条件
可选但很实用:
- 已启用自定义邮件模板或由提供商管理的模板,用以体验邮件本地化效果(邮件模板)
方案一:通过 SDK extraParams 传递 ui_locales
Logto SDK 支持在登录时传递额外的 OIDC 参数。将 ui_locales 加入 extraParams
:
注意:
- 需提供以空格分隔的 BCP 47 标签 列表。Logto 会选择租户语言库中支持的第一个标签(比如
fr-CA
,否则fr
,再否则en
)。 - 仅影响当前交互,不会改变租户默认语言。
- 你可以将
ui_locales
和其它标准/自定义参数组合使用(如login_hint
、organization_id
或首屏指令等)。
方案二:在授权 URL 中添加 ui_locales
如果你手动拼装 OIDC 授权请求(或使用通用 OIDC 客户端),可以直接添加 ui_locales
:
邮件如何本地化
当某次交互触发邮件(例如验证码)时,Logto 按如下优先级解析语言:
ui_locales
(首先支持的 tag)- 否则通过 HTTP
Accept-Language
头自动检测 - 否则使用租户默认语言
随后 Logto 会尝试查找与已解析语言和模板类型匹配的自定义邮件模板;如未找到,则回退到连接器默认模板。
由服务商托管的模板(如 Postmark、HTTP Email):Logto 会同时传递 uiLocales
和 locale
给你的服务商。如果 ui_locales
存在,locale
会使用 ui_locales
的第一个支持标签。
详见:邮件模板本地化。