写国际化页面之前我们需要在springboot的pom配置文件加上thymeleaf的依赖;接着就是它的配置文件的创建,我们在resources资源文件下新建一个i18n(internationalization缩写)目录,存放国际化配置文件;然后在里面建立一个login.properties
文件,还有一个login_zh_CN.properties
和一个login_en_US.properties
文件;最后后在这三个文件写入你自定义的配置代码:
默认properties文件下写的代码如下:
login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
英文properties文件下写的代码如下:
login.btn=Sign in
login.password=Password
login.remember=Remember me
login.tip=Please sign in
login.username=Username
中文properties文件下写的代码如下:
login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
配置完这些文件最后我们需要在resources文件下的application.properties下配置上面三个文件的位置代码如下:spring.messages.basename=i18n.login
这样我们的国际化文件配置就完成了。
然后我们去看一下SpringBoot对国际化的自动配置!下面就是java代码需要我们重新写它的方法在我们java自定义的包下创建一个config文件来装java视图配置的代码和国际化的代码,我们首先是配置视图路径的代码,创建一个MyMvcConfig的Java类实现WebMvcConfigurer类来重新addViewControllers方法来配置视图路径,它的代码如下:
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
registry.addViewController("/index.html").setViewName("index");
}
这个重新方法的意思是访问路径无论是/还是/index.html它都会跳转到你设置的HTML页面中我这配置的是index页面,接着就是在HTML加上thymeleaf的配置了,在HTML页面转换语言那里用thymeleaf的配置传送i18n的配置文件如:th:href="@{/index.html(l=‘en_US’)}",
配置完成之后在congfig包下再增加一个实现类来重写LocaleResolver类下的resolveLocale方法,resolveLocale这个方法主要是来解析HTML传送过来的语言的国家的语言就比如这里的中文与英文,它的代码如下:
重写完整这个方法之后国际语言转换还没有完整还需要我们把resolveLocale
这个方法注入bean中,它的代码如下:
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
这样自定义的国际化语言就生效了。