项目中采用SpringMVC的框架,需要动态切换语言,找了一些资料,最后决定采用基于session的动态切换,实现动态切换中文,英文,韩文,其实就是把中文翻译成其他语言显示。
SpringMVC国际化包括两个方面,一个是前台页面的国际化,spring有自己的标签可以去实现,非常方便,另一个是后台java代码种涉及中文的国际化。
?
有关bean的主要配置在spring-mvc.xml里配置,messages文件夹里放的是需要翻译的内容格式如下:key ?= ?value 的格式
英文:??
中文:?
韩文 :
需要注意的是 配置文件里面涉及到的中文需要转成unicode编码,否则翻译后会出现乱码的情况。
需要注意的是?basename的值需要配置到messages/message 这一级别。也就是国际化文件存放的位置,一直到第一个下划线前面。
需要注意的是 页面引入spring的标签, ?code我这里写的是中文,对应那三个翻译文件里的key 如果code在翻译文件里没有找到对应的key则使用code里面的内容 这个配置在spring'-mvc 里指定了。
总结一下springMvc的国际化的关键点:
1)指定spring国际化需要翻译的文件位置,需要注意的是路径一定要写完整。
2)指定spring国际化时的参数,上文中我用到是language,配置好之后,spring会根据请求中该参数的值找到对应的配置文件。
3)前台页面使用spring标签,code对应配置文件中的key,推荐使用中文,万一对应不上的时候默认显示code里面的内容(需要在spring-mvc.xml里指定配置)
4)后台代码国际化使用RequestContext 对象的getMessage 方法,返回String。
以上就是我对springMvc国际化的实现,有问题可以留言。