本地化语言
Logto 支持广泛的预定义语言,并提供 113 个额外的语言标签。这一强大的工具让你可以通过创建和管理自己的语言选项与翻译,定制登录体验。
在 Logto 控制台中的自定义步骤
你可以在 Logto 控制台中轻松自定义语言设置,无需编写代码。
- 导航到:控制台 > 登录体验 > 内容 > 语言。
- 管理语言:点击“管理语言”按钮,进入你的语言库。
- 编辑现有语言:自定义 Logto 提供的语言的翻译。这些语言无法删除,但你的更改会覆盖默认值。
- 添加新语言:点击“添加语言”按钮,选择一个语言标签,填写你的翻译,然后保存更改以添加新语言。
- 启用自动检测:启用后,会根据用户设备设置自动以其偏好语言显示登录页面。
- 设置默认语言:你可以从语言库中选择一个默认语言。当检测到的用户语言不在当前语言库中时,将使用该默认语言。
以下是管理语言时需要了解的一些关键术语:
定义 | 描述 |
---|---|
语言标签 | 语言标签用于标识内容的语言。一个语言标签由语言代码(如 en、fr、zh)和国家 / 地区代码(如 US、UK、KR)用连字符分隔组成。一个语言标签的格式如:en-US。 |
Logto 提供的语言 | Logto 提供的语言是 Logto 官方语言,存储在 Logto 的原始代码库中。 |
添加的语言 | 添加的语言是用户自行添加的语言。 |
Logto 源值 | Logto 源值是尚未被用户自定义的 Logto 提供的值。 |
自定义值 | 自定义值是已经被用户自定义过的值。Logto 源值会被覆盖。 |
使用 Management API 进行自定义
你可以使用 Management API PUT /api/custom-phrases/{languageTag} 来自定义语言翻译。API 请求体是一个部分 locale 对象,例如:
{
"input": { "username": "Username", "password": "Password" },
"secondary": {
"social_bind_with": "Already had an account? Sign in to link {{methods, list(type: disjunction;)}} with your social identity."
},
"action": { "sign_in": "Sign in" },
"error": {
"general_required": "{{types, list(type: disjunction;)}} is required"
},
"list": { "or": "or" },
"user_scopes": {
"descriptions": { "custom_data": "Your custom data" }
}
}
你可以参考 源代码 查看所有可自定义内容。
你还可以使用 PATCH /api/sign-in-exp API 控制 语言检测策略。
运行时语言解析
在运行时,登录体验的语言解析优先级如下:
- 当前认证请求中的
ui_locales
OIDC 参数(使用第一个支持的标签)。参见 ui_locales。 - 否则,如果启用了“自动检测”,则使用检测到的用户客户端语言(例如来自 HTTP
Accept-Language
头)。 - 否则,使用登录体验中的租户默认语言。
这种解析方式同样影响由交互触发的邮件本地化。了解更多:邮件模板本地化。
使用场景
添加的语言会如何呈现给终端客户?
假设你的网站默认语言为英文,并且开启了自动检测。一位来自日本的用户访问你的网站并决定创建账户。如果他 / 她的应用语言为日语,但 Logto 尚未支持该语言,则登录界面会显示为英文。
Logto 登录体验的 i18n 让自定义语言成为可能。
点击 ja
语言标签,添加你自己的日语翻译。
这样,来自日本的用户访问你的网站时,就能看到你刚刚从英文翻译过来的日文内容。
常见问题
如果我添加的语言后来成为 Logto 提供的语言怎么办?
在左侧语言标签旁会出现 Logto 提供的标记,你添加的语言将无法再被移除。你修改过的值会继续生效并替换原有的 Logto 值。若要使用 Logto 默认配置提供的值,只需清除用户自定义的值即可。
如果我只添加了部分自定义值怎么办?
最终用户看到的是两列合并的结果。 假设你只想调整 Logto 提供的原始内容副本中的一部分。你的注册界面与 Logto 提供的界面唯一的区别就是你编辑过的键。其余内容保持不变。
相关资源
在你的应用中支持阿拉伯语和 RTL(从右到左)语言布局