3.8. 区域设置选择器
默认情况下,使用实现 LocaleSelectorProvider 接口的 DefaultLocaleSelectorProvider 选择区域设置。禁用国际化时,英语是默认语言。启用国际化后,区域设置会根据 服务器管理指南 中描述的逻辑解析。
此行为可通过 LocaleSelectorSPI 通过实现 LocaleSelectorProvider 和 来更改。
LocaleSelectorProvider Factory
LocaleSelectorProvider 接口具有一个方法,它 可以解析 Locale,它必须返回一个为 RealmModel 和 nullable UserModel 的区域设置。实际请求可从 KeycloakSession#getContext 方法中找到。
自定义实现可以扩展 DefaultLocaleSelectorProvider,以便重复使用默认行为的部分。例如,要忽略 Accept-Language 请求标头,自定义实现可能会扩展默认供应商,覆盖其 getAcceptLanguageHeaderLocale,并返回 null 值。因此,区域选择将回退到域的默认语言。