SpringBoot实现国际化
-
编写国际化配置文件,抽取页面需要显示的国际化消息
-
在配置文件中指定国际化资源文件的位置
spring.messages.basename=i18n.login
-
在页面获取国际化的值,并设置请求路径
-
自定义 LocaleResolver
public class MyLocalResolver implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest httpServletRequest) { //获取请求中的语言参数 String language = httpServletRequest.getParameter("l"); System.out.println("DeBug===>"+language); Locale locale=Locale.getDefault(); //如果没有就使用默认的(根据主机的语言环境生成一个 Locale )。 //如果请求的链接中携带了 国际化的参数 if (!StringUtils.isEmpty(language)){ //zh_CN String[] s = language.split("_"); //国家,地区 locale=new Locale(s[0],s[1]); } return locale; } @Override public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } }
-
在配置文件中:向ioc容器中注入LocaleResolver 组件
@Configuration public class MyMvcConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver(){ return new MyLocalResolver(); } }
-
测试