Spring Boot 学习笔记(九)国际化

以对如下一个简单的登陆页面做国际化为例子

1、配置国际化配置文件

在资源文件夹下创建对应的国际化配置文件,不同语言对应不同配置文件

若使用的是IDEA则IDEA会根据你书写的文件后缀 xx_语言代码_国家代码 自动识别是国际化相关配置,会把所有文件使用Bundle包含起来

好处就是可以在bundle视图下同时编辑三个properties文件

2、国际化的自动配置类及其基础名

管理国际化配置的组件是 MessageSourceAutoConfiguration

 其中属性 basename 就是配置文件的基础名(默认为 messages)也就是说我们可以直接在资源文件夹下创建命为 messages 的文件进行配置

但是我们上面已经使用了 login 作为基础名字,所以需要更改这个默认基础名,可以看到此类用了 prefix = spring.messages

所以我们可以去 springboot 全局配置文件下即 application.properties 下将基础名字改下

 3、在页面上使用模板引擎语法配置国际化信息

我使用的是 thymeleaf,语法用  #{..}  取值

 4、自定义 LocaleResovler 实现国际化语言的自定义切换

例子的页面是有按钮进行语言切换的,这就涉及区域信息对象

区域信息对象决定了当前的区域信息,它的位置在 WebMvcAutoConfiguration 里面

它采取的了 OnMissingBean 的条件限制,即如果容器中有,则不添加当前这个组件,这是为了方便自定义

那么自定义的思路就是在页面的语言切换按钮上传区域信息的参(详细见上面的html页面代码)

然后再在自定义Configuration类里面添加一个我们自定义的LocaleResolver,而我们自定义的LocaleResovler则需要编写解析参数中区域信息的工作

最后返回LocaleResovler对象即可,详细如下

1、自定义 LocaleResovler 类,实现的是 LocaleResovler 接口

 2、在@configuration类,即自定义配置类中添加此组件

原文地址:https://www.cnblogs.com/qwertiLH/p/12324385.html