目前,我有一个名为Messages的文件,它是一个包含多个静态字符串的类:
public class Messages {
public static final String MESSAGE_1 = "Message one";
public static final String MESSAGE_2 = "Message two";
...
}
为了支持多种语言,重构此实现的最佳方法是什么?字符串的名称应保持不变,但值应根据我传递的语言环境字符串而更改。不确定如何实施。
答案 0 :(得分:1)
messages_<locale>.properties
例如messages_de_DE.properties
对于德国等。 并创建一个这样的bean。
@Configuration
class InternationalizationConfig {
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.GERMAN);
return slr;
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setCacheSeconds(3600);
return messageSource;
}
}
如果您想将特定于语言环境的字符串放入自动装配MessageSource
@Autowired
MessageSource messageSource;
messageSource.getMessage(....)