我创建了一个简单的Spring Boot应用程序,该应用程序将消息打印到stdout。这是主要的类:
@SpringBootApplication
public class I18nTestApplication {
public static void main(String[] args) {
final ApplicationContext ctx = SpringApplication.run(I18nTestApplication.class, args);
final Locale locale = Locale.US;
System.out.println(ctx.getMessage("test", null, locale));
}
}
资源文件夹包含两个消息文件:
messages.properties:
test=This is English
messages_de.properties:
test=Das ist Deutsch
预期程序输出为:
This is English
,但始终将Das ist Deutsch
打印为输出。即使我设置了任何语言环境,程序也始终将德语消息打印为输出。这里发生了什么?我做错了吗? 最佳答案
在个人资料页面中给出您的姓名和位置后,我假设您的系统语言环境为德语。
用于查找适当资源束的算法主要包括
为请求的语言环境查找捆绑
如果未找到,则回退到系统语言环境的捆绑软件
如果仍未找到,则回退到默认捆绑包
the documentation中的更多信息。
提供一个名为messages_en.properties的文件(甚至为空:然后将在父捆绑中查找键),该文件将按预期工作。
关于java - 为什么Spring会使用不同于指定语言的语言加载消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30045660/