spring浏览器国际化的原理
We will add two languages support to our application: English and German. Depending on the locale setting of users browser, the appropriate language will be selected. Also user will be able to select the language from top-right corner of the application.
1.设置locale参数。设置完locale参数后以后的页面都会以这个locale为准,不需要设置第二次。访问系统,只需要在初次访问系统时,在地址拦上添加"?locale=en"即可访问英文网站。注意,访问系统的第一个页面时添加即可,后绪可不再添加。得到locale参数后,拦截器就会截获这个请求,然后根据locale参数找到messageSource中配置的相关basename属性设置的properties文件,比如locale=zh,就会找到 messages_zh.properties文件,然后根据页面的请求参数返回properties中的相关属性给页面。
类似 <fmt:message key="main.title"/>
2.如果没有设置locale参数,根据用户浏览器的语言设置,加载相应的properties文件。比如浏览器的第一语言设置,比如是ja(日本语),就相当于locale=ja,接着按照第一步的原理来进行。 这里要注意的一个问题是如果 浏览器的第一语言设置的是zh-cn,那么也会匹配到zh;如果是ko-kr,也会匹配到ko(当然还包括其他情况)。就是说,拦截器是截取前2个字母作为信息进行匹配。