springboot随笔三:国际化
一:服务器根据浏览器请求头语言信息Accept-Language自动国际化
创建国际化文件,记住是放在claspath下,不能放在static或者public下


指定国际化配置路径,注意是classpath下的相对路径,也可以用locale/wording代替


登录页面为英文


登录页面为中文

二:自定义国际化信息
1. 在login.html中加入
<div>
<input type="checkbox" name="remeber"/> [[#{login.remember}]]
</div>
<div><a th:href="@{/login.html(lang='zh_CN')}">中文</a> <a th:href="@{/login.html(lang='en_US')}">英文</a></div>
<div>
<input type="submit" th:value="#{login.submit}"/>
</div>
效果如下

2. 实现LocaleResolver接口
public class MyLocaleResolver implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest httpServletRequest) { String lang = httpServletRequest.getParameter("lang"); Locale locale = Locale.getDefault(); if (!StringUtils.isEmpty(lang)) { String[] s = lang.split("_"); locale = new Locale(s[0], s[1]); } return locale; } @Override public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } }
3.将MyLocaleResolver加到我们的配置类中,从而实现bean加入到spring容器中
@Configuration //@EnableWebMvc// 如果配置了这个,springboot的webMvc将不会自动装配,也就是说springboot给我们的默认很多web功能将失效,完全有自己接管 public class MyConfig implements WebMvcConfigurer {// 通过实现WebMvcConfigurer来在原来springboot自动化的基础上进行扩展 @Override public void addViewControllers(ViewControllerRegistry registry) {// 添加一个控制视图映射 registry.addViewController("/success").setViewName("success"); } @Bean// 这里实例化一个WebMvcConfigurater对象到spring容器中,spring将会自动解析所有WebMvcConfigurer public WebMvcConfigurer webMvcConfigurer() { return new WebMvcConfigurer() { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("login"); registry.addViewController("/index").setViewName("login"); registry.addViewController("/index.html").setViewName("login"); registry.addViewController("/login").setViewName("login"); registry.addViewController("/login.html").setViewName("login"); //registry.addViewController("/index.html").setViewName("login"); } }; } @Bean public LocaleResolver localeResolver() { return new MyLocaleResolver(); } }
4. 重启服务,进行访问,点击中文/英文传递不同的参数到后台,从而解析出不同的语言,实现国际化

浙公网安备 33010602011771号