使我的Web应用适应远程用户浏览器的语言设置时遇到一些问题.
我为此使用了ResourceBundleMessageSource.看起来像这样:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="resources/messages" /> </bean>
我有两个.properties文件:
> messages.properties
> messages_ru.properties
它们位于src / resources / messages中.
我想以这种方式配置我的应用程序,以便当远程用户浏览器语言设置包含俄语时,我的应用程序应使用俄语消息(messages_ru),否则(如果未配置语言或不是俄语),则应使用meessages.properties(它包含英文消息).
当我在浏览器中设置俄语时,它可以正常工作.当我删除所有设置时,它也会显示俄语(我认为这取决于系统区域设置).当我设置另一种语言时,它也会向我显示俄语消息.
使我的应用显示英语消息的唯一方法是将messages.properties重命名为messages_en.properties并在浏览器英语lang中进行设置.但是我想让我的应用程序适用于所有语言设置(当使用俄语时,如果需要的话,以及英语用于其他设置和其他国家/地区).
有任何想法吗?
解决方法:
你需要设置
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="resources/messages" />
<property name="fallbackToSystemLocale" value="false" />
</bean>
在这种情况下,Spring将使用messages.properties作为后备,因此它应在应用程序的“默认”语言环境中包含消息.