准备工具
Windows10
intelliJ IDEA 2018.2.5
SpringBoot 创建web项目
配置国际化文件
在resources目录下创建配置文件目录i18n,在现为登陆页面创建国际化配置,建文件夹login.properties(在没有配置国际化时默认使用该文件中的配置),再建中文配置文件login_zh_CN.properties(中文配置文件)此时如果IDEA检测到配置国际化会自动生成Resource Bundle ‘login’文件夹,
右击该文件夹new->Add Property File
命名为login_en_US.properties,打开login_zh_CN.properties文件,点击下方Resource Bundle视图,
进入属性编写页面,点击“+”进行添加属性,改属性为页面中显示的所有字。属性名最好见名知意
编写好之后其他两个文件也会自动进行配置值:
配置文件中加入国际化配置
SpringBoot自动配置好了啦管理国际化资源文件的组件:在配置文件中加入国际化配置,将国际化配置交由SpringBoot的国际化配置接管在系统配置文件application.properties中加入spring.messages.basename=i18n.login其中i18n为我们开始建的存放国际化配置文件的文件夹名,login为我们配置文件的基础名(去掉语言国家的文件名login_zh_CN等基础名为login)
页面元素引入国际化配置
获取页面中的国际化配置为页面中的每个值属性配上相应的配置;标签中不能直接使用#{}来标注,它只能标注文本标签的值,此处应该用双中括号[[#{}]]来标注值;#{}取国际化值;我是用的是thymeleaf模板引擎
实现国际化语言切换
配置一个LocaleResolver() 区域解析器实现LocalResolver接口
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest httpServletRequest) {
String l=httpServletRequest.getParameter("l");
Locale locale=Locale.getDefault();
//检查 L 是否为空,在对应页面请求中加入参数 l='zh_CN' 或者l='en_US' 即可切换国际化语言
if(!StringUtils.isEmpty(l)){
String[] split=l.split("_");
locale=new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
配置完实现类之后,须将该配置类加入到容器中,在MVC配置类中添加,如下:
//使用WebMvcConfigurationSupport来扩展SpringMVC功能
@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
//扩展静态文件路径/**全部为classpath:/templates/
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/templates/");
}
//视图解析器
@Override
protected void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/index").setViewName("login");
}//将自己配置的区域信息解析器加入到MVC容器中
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
至此配置国际化就完成了,总的来说配置国际化公分为四步:
1.为页面编写国际化文件
2.将国际化配置路径加入配置文件
3.页面元素引入国际化配置
4.实现点击切换国际化语言