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