spring本地敏感数据

发布于 2024-10-04 07:05:46 字数 819 浏览 5 评论 0原文

我在使我的网络应用程序适应远程用户浏览器语言设置时遇到一些问题。 我使用 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 并在浏览器中设置英语语言。但我想让我的应用程序采用所有语言设置(当它使用俄语时,如果需要的话,以及英语用于任何其他设置和任何其他国家)。

有什么想法吗?

I have some problems with making my web-app adapted for remote user browseres language settings.
I used ResourceBundleMessageSource for it. It looks like this:

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

And I have two .properties files:

  • messages.properties

  • messages_ru.properties

They are located in src/resources/messages.

I want to configure my app such way, that when remote users browser language settings contain russian, my app should use russian messages (messages_ru), otherwise (if language is not configured or it's not russian), it should use meessages.properties (it contains english messages).

When I setup russian in my browser, it works fine. When I erase all settings, it's also shows russian (I think it depends on system locale settings). And when I set some another language, it also show me russian messages.

Only way to make my app to show english messages is to rename messages.properties to messages_en.properties and set in browser english lang. But I want to make my app adopted for all language settings (when it use russian, if it needs, and english for any other settings and any other countries).

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落花随流水 2024-10-11 07:05:46

您需要设置

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

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

You need to set

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

In this case Spring will use messages.properties as a fallback, so it should contain messages in the "default" locale for your application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文