【问题标题】:spring local-sensitive dataspring本地敏感数据
【发布时间】:2011-05-15 22:54:38
【问题描述】:

我在使我的网络应用程序适应远程用户浏览器语言设置时遇到了一些问题。 我为此使用了 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),否则(如果未配置语言或它不是俄语),它应该使用消息。属性(它包含英文消息)。

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

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

有什么想法吗?

【问题讨论】:

    标签: spring internationalization spring-mvc resourcebundle


    【解决方案1】:

    你需要设置

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

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

    【讨论】:

    • ResourceBundleMessageSource 没有 fallbackToSystemLocale 属性。我还尝试使用包含此属性的 ReloadableResourceBundleMessageSource。但是规范说:“回退到系统区域设置是 java.util.ResourceBundle 的默认行为。但是,在系统区域设置与应用程序根本不相关的应用程序服务器环境中,这通常是不可取的:设置这个在这种情况下标记为“假”。”。
    • 我的尝试也没有收到结果。现在当浏览器配置为俄语时,它会显示俄语消息,否则会显示错误,即文件messages_(语言名称)(例如messages_de)不存在。
    • org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: 在区域设置“ru_RU”的代码“welcome.title”下找不到消息。
    • 我应该把messages.properties和messages_ru.properties文件放在哪里?
    • 属性文件的位置对应于basename 属性。在 webapp 中,您通常会写 &lt;property name = "basename" value = "/WEB-INF/messages" /&gt; 并将文件存储为 /WEB-INF/messages.properties/WEB-INF/messages_ru.properties 等。
    猜你喜欢
    • 2021-02-25
    • 2020-11-10
    • 2016-09-12
    • 1970-01-01
    • 2014-06-23
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多