【发布时间】:2018-06-13 23:42:28
【问题描述】:
我现在正在开发 Spring Boot 应用程序(仅限休息控制器)。对我的服务器的每个请求都包含语言标签。我想根据此标签以特定语言发送响应。控制器从请求中提取这些标签并作为 Locale 实例提供给服务层。我在 src/main/resources 下创建了属性文件,如下所示: https://i.stack.imgur.com/fsXPG.jpg.
我的问题是默认语言。无论提供何种语言环境,从属性文件返回的消息始终来自 AppResources_pl.properties。我认为,问题在于默认语言环境。现在我尝试了两种不同的方法,但仍然不知道如何将默认属性文件设置为英文。
第一:
ResourceBundle myResources = ResourceBundle.getBundle("AppResources", currentLocale);
String message = myResources.getString("label.error");
第二:
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.forLanguageTag("en-US"));
return slr;
}
@Bean
public MessageSource messageSource(){
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("AppResources");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
并在服务中:
messageSource.getMessage("label.error", null, locale)
双向返回消息,但始终来自 AppResources_pl.properties。当在 *.properties 文件下找不到提供的语言环境时,如何将 AppResources.properties 设置为默认属性文件?
【问题讨论】:
标签: java spring-boot locale properties-file