我在春季启动时遇到了muitle messeage资源的问题,如下所示:
这是我的application.yml:
...
spring:
messages:
basename: i18n/messages_fr,i18n/messages_en
这是我的测试类:
public class MessageSourceTest {
@Autowired
MessageSource messageSource;
public String getMessage(String key, String keyLang) {
Locale locale = Locale.forLanguageTag(keyLang); // keyLang = "en", or "fr"
String message = messageSource.getMessage(key, null, locale);
return message;
}
}
问题是我总是从i18n / messages_fr得到消息,无论我设置的语言环境是什么" en"或" fr"。
如果我将application.yml设置为:
basename: i18n/messages_en,i18n/messages_fr
然后我从i18n / messages_en
收到消息那么,有什么方法可以获得动态语言环境的消息。
(就在后端,没有通过localeResolver和addInterceptors设置客户端,如下所示:http://www.baeldung.com/spring-boot-internationalization)
答案 0 :(得分:0)
您应将baseName
设为i18n/messages
而不是i18n/messages_{lang}
。
然后检查localeResolver
,spring决定应该读取哪个文件。