SpringBoot国际化-Session存储浏览器语言

SpringBoot国际化-Session存储浏览器语言

摘要

SpringBoot国际化-Session存储浏览器语言

SpringBoot国际化

所谓国际化就是不同浏览器语言,显示不同的网站语言。
chrome可以更改显示语言(设置—显示高级设置—语言和高级设置—以某种语言显示Google Chrome)

代码工作流程

浏览器通过参数(?lang=cn)告诉服务器端使用的是什么语言
lang是服务器端设定的
cn是语言配置文件的文件名的一部分

如何获取浏览器语言

var lang = (navigator.language || navigator.browserLanguage).toLowerCase();
lang = lang.indexOf("cn") > 0 ? "cn" : "en";

然后ajax发起一次请求,告诉服务器端浏览器语言是cn还是en
而后服务器端记住该session,知道了当前会话对应的请求都应该返回哪种语言。

其它细节

spring.ftl 是从spring-webmvc-4.2.6.RELEASE.jar里面解压出来的
所在目录 org\springframework\spring-webmvc\4.2.6.RELEASE\spring-webmvc-4.2.6.RELEASE.jar\org\springframework\web\servlet\view\freemarker\spring.ftl

语言文件中有中文的话需要转换成ascii编码
可以使用jdk里的工具 C:\Program Files\Java\jdk1.8.0_91\bin\native2ascii.exe

代码地址

https://coding.net/u/javacore/p/test-i18n/git