本文主要实现的功能:
在resource下创建国际化文件
spring.messages.basename=messages
如果是多个源的话,用","相隔即可。
spring.messages.basename=messages,xxx,xxxx,xxxx
public class I18nConstant {
/**
* 一个例子
*/
public static final String TEXT = "DeviceSummary.device.type.name";
}
对应分别在三个国际化(默认、中文、英文)中加入DeviceSummary.device.type.name对应转换的语言
@Autowired
private MessageSource messageSource;
String msg = messageSource.getMessage(I18nConstant.TEXT, null, locale);
Locale locale1 = LocaleContextHolder.getLocale(); // 当前request
Locale locale2 = RequestContextUtils.getLocale(request); // 指定request
locale.getLanguage() //获取当前语言
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.CHINA);
return sessionLocaleResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
URL中通过参数lang就可以切换到不同语言。比如:http://localhost:8080/hello.html?lang=zh
原文:https://www.cnblogs.com/liuyupen/p/10840125.html