-
在resources文件下新建i18n文件,并新建国际化资源文件: Resource Bundle。
-
点击新增Resource Bundle文件,在Resource bundle base name处填写国际化文件的名称,例如“login”。并点击中间偏右的“+”号,新增国际化语言,此处新增两个语言“zh_CN”,“en_US”。
-
分别在两个文件中添加你想要的配置。
-
添加配置文件:
spring: messages: basename: login
-
假如想点击链接让我们自己的国际化资源生效,就需要让我们自己的Locale生效。
package com.test.config; import org.springframework.web.servlet.LocaleResolver; import org.thymeleaf.util.StringUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale; public class MyLocaleResolver implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest request) { //获取请求中的语言参数 String language = request.getParameter("l"); Locale locale = Locale.getDefault();//如果没有就是用默认的 //如果请求的链接携带了国际化的参数 if(!StringUtils.isEmpty(language)){ //zh_CN String[] split = language.split("_"); // 语言,国家 locale = new Locale(split[0], split[1]); } return locale; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { } }
-
让区域化信息能够生效,需要再配置一下这个组件,在自己的MvcConofig下添加bean。
package com.test.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class MyMvcConfig implements WebMvcConfigurer { //自定义的国际化组件就生效了 @Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); } }