阅读(3408) (0)

Micronaut 地域解析

2023-02-23 11:22:48 更新

Micronaut 支持多种策略来解析给定请求的语言环境。 getLocale-- 方法可用于请求,但它仅支持解析 Accept-Language 标头。对于区域设置可以在 cookie、用户会话中或应设置为固定值的其他用例,HttpLocaleResolver 可用于确定当前区域设置。

不需要直接使用 LocaleResolver API。只需为 java.util.Locale 类型的控制器方法定义一个参数,区域设置就会自动解析和注入。

有几个配置选项可以控制如何解析语言环境:

表 1. HttpLocaleResolutionConfigurationProperties 的配置属性
属性 类型 描述

micronaut.server.locale-resolution

HttpServerConfiguration$HttpLocaleResolutionConfigurationProperties

语言环境解析配置

micronaut.server.locale-resolution.fixed

java.util.Locale

设置语言环境的语言标签。支持 BCP 47 语言标签(例如“en-US”)和 ISO 标准(例如“en_US”)。

micronaut.server.locale-resolution.session-attribute

java.lang.String

在会话中设置键以查找语言环境。

micronaut.server.locale-resolution.cookie-name

java.lang.String

设置用于存储区域设置的 cookie 的名称。

micronaut.server.locale-resolution.header

boolean

如果应从 Accept-Language 标头解析区域设置,则设置为 true。默认值(真)。

micronaut.server.locale-resolution.default-locale

java.util.Locale

如果无法通过任何方式解析区域设置,则设置将使用的区域设置。默认为系统默认值。

语言环境可以配置为“en_GB”格式或 BCP 47(语言标签)格式。如果配置了多个方法,则固定语言环境优先,其次是会话/cookie,然后是标头。

如果任何内置方法不符合您的用例,请创建一个 HttpLocaleResolver 类型的 bean 并设置其相对于现有解析器的顺序(通过 getOrder 方法)。