为什么Spring为不同于指定的语言加载消息?

时间:2015-05-05 06:26:52

标签: java spring spring-boot

我创建了一个简单的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作为输出。即使我设置了任何语言环境,程序也始终将德语消息打印为输出。这里发生了什么?我犯了错误吗?

1 个答案:

答案 0 :(得分:2)

根据您的个人资料页面中的姓名和位置,我假设您的系统区域设置为德语。

用于查找适当资源包的算法基本上在

  • 查找所请求区域设置的包
  • 如果找不到,则回退到系统区域设置的包
  • 如果仍未找到,则回退到默认包

the documentation中的更多信息。

提供一个名为messages_en.properties的文件(甚至为空:然后在父包中查找密钥),这将按预期工作。