在我的 REST API 中,我想允许用户使用lang参数设置语言环境,即
http://somehost/resource?param1=value1&lang=fr
如果langURL 中不存在该参数,Accept-Language则应使用标头并将其设置为区域设置。
我在我的 REST API 中使用 Spring 的 i18n 功能。我查看了文档并配置了必要的 bean。如果我发送带有Accept-Language标头的请求,它似乎可以正常工作,当我调用LocaleContextHolder.getLocale()它时,它会返回我在标头中设置的语言环境。
如果我使用langURL 参数它不起作用。
如何配置 Spring 也使用 locale 参数?
<bean id="localeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
<property name="interceptors">
<list>
<ref bean="localeInterceptor" />
</list>
</property>
</bean>
<bean id="sessionLocaleResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<bean id="messages" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>