![](/img/trans.png)
[英]Load multiple locale specific properties files in internationalization with resource bundle in java
[英]Using Locale from Resource Bundle in Java Spring
我正在学习使用resouce包在我的项目中打印与语言环境相关的消息。
application.xml中:
<bean class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="ru.bpc.svat.svnr.integration.banking.messages" />
</bean>
<bean class="ru.bpc.svat.svnr.integration.banking.application.SpringContextMessageFactory" />
目录src \\ main \\ resources \\ ru \\ bpc \\ svat \\ svnr \\ integration \\ banking包含文件:
messages.properties
messages_ru.properties
messages_ru_RU.properties
每个都有一行:
test = testmessage
在测试类中,我获得了消息工厂的实例,并尝试获得消息:
@Autowired private MessageFactory messageFactory;
...
messageFactory.getMessage("test", new Object[]{}, Locale.getDefault());
然后我得到一个例外:
No message found under code 'test' for locale 'ru_RU'.
它出什么问题了? 这可能是一个愚蠢的问题,但这是我的第一次经验。 谢谢您的回答。
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>locale\customer\messages</value>
</property>
</bean>
</beans>
最后使用SpringContext context.getMessage()方法读取您的值。
注意:假定您的属性文件位于“ resources \\ locale \\ customer \\”文件夹中,如上面的值标签所述。 基本上,这些文件必须位于项目的类路径中。
让我知道它是否可以解决您的问题,请接受我的回答!
如果将文件直接放置到src / main / resources中(而不是src / main / resources的子目录中,该怎么办?)只是一个想法。通常,如果文件在类路径中,该文件应该可以找到。
尝试更换:
<bean class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="ru.bpc.svat.svnr.integration.banking.messages" />
</bean>
上
<bean class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="ru\bpc\svat\svnr\integration\banking\messages" />
</bean>
确保与您班级相对的路径。 在其他情况下,将资源放在src / main / resources中,并使用classpath:\\后缀
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.