![](/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.