我在springboot中有一个应用程序,我需要多语言。该应用程序找到messages.properties,但找不到messages_es.properties。
我的代码: 在application.properties中
spring.messages.basename=i18n/messages
在控制器中
messageSource.getMessage("message.forgotSubject", null, new Locale(lang))
如果lang是es,则相同。 如果我删除messages.properties,则错误是在代码
下找不到消息'message.forgotSubject'表示语言环境'es'。”,
谢谢
答案 0 :(得分:0)
您设置了spring.messages.basename = i18n / messages,因此您的多语言属性文件必须以messages.properties为基础,如果删除此文件,则基础名称应为i18n / messages_es。但是,如果这样做,后缀es不是语言,而是文件名的一部分。
答案 1 :(得分:0)
我找到了解决方案。 它不在application.properties中。我已经完成了
@Configuration
public class CustomLocaleResolver {
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource rs = new ResourceBundleMessageSource();
rs.setBasename("i18n/messages");
rs.setDefaultEncoding("UTF-8");
rs.setUseCodeAsDefaultMessage(true);
return rs;
}
}
我使用
@Autowired
private MessageSource messageSource;
messageSource.getMessage("message.salutation", null, new Locale(lang)
谢谢