用于将页面的语言,切换为多国语言。
使用步骤将项目设置为utf-8的编码格式
在根目录下建立名为i18n的文件夹,文件夹下建立配置文件
注意:
- 当创建第二文件时,idea会自动创建资源包
- 在资源包右键创建后面的配置文件
编写配置文件(点击资源包即可)Resource Bundle
在配置文件中添加:将资源文件配置进去
spring.messages.basename=i18n/login
自定义本地解析器 实现LocaleResolver接口
public class MyLocalResolver implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest request) { // 获取请求 String localName = request.getParameter("localName"); // 没有指定则使用默认设置 Locale aDefault = Locale.getDefault(); if (localName!=null){ String[] s = localName.split("_"); //zh_CN 国家_地区 aDefault=new Locale(s[0],s[1]); } return aDefault; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { } }
将自定义本地解析器交给spring管理(使用@Bean即可)
@Configuration public class MyMvcConfig implements WebMvcConfigurer { //添加视图解析器 @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); registry.addViewController("/index.html").setViewName("index"); registry.addViewController("/login.html").setViewName("login"); } // 方法名称不能改变 @Bean public LocaleResolver localeResolver(){ return new MyLocalResolver(); } }
注意:方法名localeResolver是不可以改变的,springboot会自动检测该方法存不存在,如果存在就会修改国际化组件
前端代码
使用的是thymeleaf语法:
- url需要’@{}‘的格式,国际消息需要使用’#{}‘这个格式
调试结果:
中文版
英文版
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)