1、首先在配置文件中配置
# 国际化配置文件(包名.基础名)
spring.messages.basename=i18n.login
2、创建国际化配置文件 i18n文件夹
![]()
3、定义国际化组件
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
String l = request.getParameter("l");
Locale locale = Locale.getDefault();
if(!StringUtils.isEmpty(l)){
String[] split = l.split("_");
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
}
4、把组件放入容器中
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
5、在模板引擎中页面中使用获取国际化消息:th:text="#{login.btn}"
<button class="btn btn-lg btn-primary btn-block" type="submit" th:text="#{login.btn}">Sign in</button>
6、在后端如何获取
@Autowired
private MessageSource messageSource;
@ResponseBody
@RequestMapping("/message")
public String message(HttpServletRequest request) {
Locale locale = getLocale(request);
String message = messageSource.getMessage("login.username", null, locale);
return message;
}
public Locale getLocale(HttpServletRequest request) {
String l = request.getParameter("l");
Locale locale = Locale.getDefault();
if(!StringUtils.isEmpty(l)){
String[] split = l.split("_");
locale = new Locale(split[0],split[1]);
}
return locale;
}