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