在网上学习了一下页面国际化的点击按钮切换中英文,跑出来之后就赶紧过来写心得了。
个人环境:JDK1.8+Idea
使用语言:SpringBoot+thymeleaf模板
中英文怎么切换勒,在浏览器里面是可以更改优先显示的翻译语种的。这里以火狐举例哈。
点击设置里面,就能看得到
这里单击选择就可以更改页面的显示语言。但是我们要做的肯定不是这种不,我们是要做把这个功能做进我们的项目里面并能在页面显示这个功能。
想达到一个页面切换中英文的效果,我们首先的明白国际化的原理。
所以,我们使用打开IDEA工具Ctrl+N打开快速查找类webMvcConfiguration在这个类里面我们可以找到一个LocaleResolver解析器用来获取区域信息的。
找到了这个之后,是吧,我们要实现中英文功能,我们自己写一个解析器覆盖他就是了嘛。OK,目标有了,接下来我们一步步去实现。
既然写个解析器了,那我们解析的数据转换或者说解析的数据去哪里替换呢(比如页面的登录中文转成英文,这个英文去哪里找呢)。OK,这是不是又有需求了,那就再加一个数据存放的东西嘛,那这放配置文件里不就完美了,OK写上几个配置文件。如下:
点击这页面的Resource Bundle看看在配置不同语言的显示。
OK,这里数据转换结果有了。(PS:这三个配置文件,第一个是代表默认,第二个代表英语(美国),第三个代表中文);
数据转换结果有了,这接下来不得搞个数据来源啊,这是不是得写前端页面了。
我就没写什么JS和CSS样式了。忘的差不多了,全还给老师了。
这里这个页面就不多解释了,thymeleaf语法,看不懂的可以反一下thymeleaf有关书籍,非常简单。
再附上解析器代码
这里实现LocalResolver接口这两个方法就出来了,直接在第一个里面写就好了。
然后去到控制层。把返回的locale交给容器即可。
学识很浅,欢迎各位大牛或者学习的同胞指正。