我在处理我的webapp的i18n时遇到了一些问题。 是否可以通过Spring在MessageSource中找到消息,如果在另一个消息中找不到它?
这是我的Spring配置
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="xxMessage" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="en" />
</bean>
实施例: 如果键是“login.user”并且语言环境是“en”,那么应用程序会显示我的xx_en.properties中的值(如果存在),但我想在其他文件(xx_es.properties)中搜索该键是否存在。 这可能吗?
P:对不起我的英文:D提前致谢!
答案 0 :(得分:0)
我认为您需要在弹簧配置中配置拦截器
<interceptors>
<beans:bean
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<beans:property name="paramName" value="locale" />
</beans:bean>
</interceptors>
答案 1 :(得分:0)
谢谢你的回答@DDK我已经设法解决了这个问题:D
以下解决方案。
定义由HierarchicalMessageSource接口提供的链式消息源。
例如,如果您有i18n文件 baseMessages.properties 和 messages.properties
你可以将它们链接为
<bean id="baseMessageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="baseMessages" />
</bean>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages" />
<property name="parentMessageSource" ref="baseMessageSource" />
</bean>