2

我正在开发一个将在不同国家/地区使用的 Java Spring 应用程序。在每个国家,它必须“说”该国家的语言(而不是用户的国家)。说话的意思是 jsp pages() 处的消息、javax.validation 消息等。现在,每个国家/地区都有不同的属性文件。例如,ApplicationResources_ES.properties、ApplicationResources_EN.properties、ValidationMessages_ES.properties、ValidationMessages_EN.properties 等。

无论用户使用哪种语言,我都无法强制 spring 只使用 ES 或 EN 语言。我尝试使用 fixedLocaleResolver 没有成功的结果:

<bean id="fixedLocaleResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver">
    <property name="defaultLocale" value="es" />
</bean>

任何人都可以帮助我吗?

更新: 这是我想解决的更具体的问题。我对每种语言都有一个 ValidationMessages.properties,以显示应用程序安装语言中 javax.validation 的结果。问题是语言会根据用户的语言环境而变化,而不是应用程序的语言环境。我怎样才能使 javax.validation 使用 ValidationMessages.properties 之一,而不根据用户进行动态更改?

4

3 回答 3

1

您的 bean 必须具有名称localeResolver,以便DispatcherServlet能够加载 localeResolver。所以改变id如下:

<bean id="localeResolver" c...
于 2013-07-29T17:26:19.157 回答
0

我找到了一种解决方案,但我不太喜欢它。如果我在使用此属性启动 tomcat 时更改用户的默认国家和语言:

-Duser.language=pt -Duser.country=PT

然后,javax.validation 的验证消息以葡萄牙语显示。我应该为每次安装更改此属性。但是,我认为这不是一个干净的解决方案。有人有其他的吗?

于 2013-05-28T11:29:09.533 回答
-1

有没有试过的setLocale方法FixedLocaleResolver

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/i18n/FixedLocaleResolver.html#FixedLocaleResolver(java.util.Locale)

于 2013-05-27T23:48:16.707 回答