springMvc下,配置il8n:
1.配置ResourceBundleMessageSource管理国际化资源文件
2.在页面使用fmt标签取出国际化内容
springBoot下,自动配置了il8n:
1.新建目录,存放login_zn_CN.properties (基础名_zn_CH.properties)对应中文编码
login_en_US.properties对应英文
login.properties对应默认
idea会自动转成resource bundle层级,可以打开相关界面(底部中间),设置k-v
2.配置spring.messages.basename
springBoot默认配置basename为messages,读取根目录下的messages.properties
这里设置spring.messages.basename = il8n.login
3.页面集成thymeleaf,使用#{login.btn},获取国际化的内容
4.制定自己的LocaleResolver //Locale为区域信息对象
自动配置的LocaleResolver默认读取请求头中的的地区信息,来切换国际化内容
现在想通过点击 中文/Enlish 按钮来切换,并且默认读取请求头来切换:
//通过按钮绑定url地址,追加参数L=zh_CN 或者L=en_US来实现
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]);// new Locale(语言,国家) } return locale; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { } }
@Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); } }