我正在开发一个将在不同国家/地区使用的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之一,而不是根据用户的情况改变它?
答案 0 :(得分:1)
您的bean必须具有名称localeResolver
,以便DispatcherServlet
能够加载localeResolver。因此,请更改id
,如下所示:
<bean id="localeResolver" c...
答案 1 :(得分:0)
我找到了一个解决方案,但我并不喜欢它。 如果我在使用以下属性启动tomcat时更改了用户的默认国家/地区和语言:
-Duser.language=pt -Duser.country=PT
然后,javax.validation的验证消息以葡萄牙语显示。我应该为每个安装更改此属性。但是,我不认为这是一个干净的解决方案。任何人都有其他人吗?
答案 2 :(得分:-1)