4

我在使我的网络应用程序适应远程用户浏览器语言设置时遇到了一些问题。我为此使用了 ResourceBundleMessageSource。它看起来像这样:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="resources/messages" /> </bean>

我有两个 .properties 文件:

  • 消息属性

  • messages_ru.properties

它们位于 src/resources/messages 中。

我想这样配置我的应用程序,当远程用户浏览器语言设置包含俄语时,我的应用程序应该使用俄语消息(messages_ru),否则(如果未配置语言或它不是俄语),它应该使用 meessages.properties(它包含英文信息)。

当我在浏览器中设置俄语时,它工作正常。当我删除所有设置时,它也会显示俄语(我认为这取决于系统区域设置)。当我设置另一种语言时,它也会向我显示俄语信息。

让我的应用程序显示英文消息的唯一方法是将messages.properties 重命名为messages_en.properties 并在浏览器中设置英文语言。但我想让我的应用程序适用于所有语言设置(当它使用俄语时,如果需要,以及任何其他设置和任何其他国家的英语)。

有任何想法吗?

4

1 回答 1

6

你需要设置

<bean id="messageSource" 
     class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    <property name="basename" value="resources/messages" />
    <property name="fallbackToSystemLocale" value="false" />
</bean> 

在这种情况下,Spring 将messages.properties用作后备,因此它应该在您的应用程序的“默认”语言环境中包含消息。

于 2010-11-25T23:36:40.400 回答