使用jquery.i18n.properties.js实现js国际化
2015-05-31 00:00
771 查看
前两天接到一个任务,把之前的做过的一个系统实现国际化,之前的系统用的是Spring框架,国际化还是比较简单的。但是有一些提示是写在js文件里面的,搜了一些,发现一个js国际化的框架jquery.i18n.properties.js,用了一些还是比较方便的。
首先引入js文件,这个框架是依赖jquery的,所以jquery也要先引入,由于项目用了requireJs,所以在main文件里引入一下就可以了
其次在资源文件目录下建立一个文件夹放properties文件
![](http://static.oschina.net/uploads/space/2015/0531/092452_B9Ey_871551.png)
由于系统可以手动切换语言,所以把语言设置写道cookie里面,
调用jquery.i18n.properties.js的$.i18n.properties()方法。如果cookie里有语言的设置就用cookie里的,如果没有就用浏览器的语言。
用Spring的记得把i18n这个资源目录加到配置文件里面
使用CookieLocaleResolver来读取cookie的值,配置一下cookieName
在message_en.properties和message_zh.properties里面写入key:site.success
以上这些配置好了之后就可以使用了,调用$.i18n.prop(key)来显示不同语言的提示
英文环境下:
![](http://static.oschina.net/uploads/space/2015/0531/093831_zklu_871551.png)
中文环境下:
首先引入js文件,这个框架是依赖jquery的,所以jquery也要先引入,由于项目用了requireJs,所以在main文件里引入一下就可以了
require.config({ baseUrl: contextPath + "/js", paths: { jquery: 'util/jquery-1.9.1', jqueryi18n: 'util/jquery.i18n.properties' }, shim: { 'jquery': { exports: '$' }, 'jqueryi18n': { deps: [ "jquery" ], exports: 'jqueryi18n' } } });
其次在资源文件目录下建立一个文件夹放properties文件
![](http://static.oschina.net/uploads/space/2015/0531/092452_B9Ey_871551.png)
由于系统可以手动切换语言,所以把语言设置写道cookie里面,
var setLanguageCookie = function (language) { var d = new Date(); d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = "language=" + escape(language) + "; " + expires + "; path=/"; };
调用jquery.i18n.properties.js的$.i18n.properties()方法。如果cookie里有语言的设置就用cookie里的,如果没有就用浏览器的语言。
var lan = navigator.language || navigator.userLanguage; var arrStr = document.cookie.split("; "); for (var i = 0; i < arrStr.length; i++) { var temp = arrStr[i].split("="); if (temp[0] == 'language') { lan = unescape(temp[1]); } } $.i18n.properties({ name: 'message', path: contextPath + '/i18n/', mode: 'map', language: lan });
用Spring的记得把i18n这个资源目录加到配置文件里面
<mvc:resources mapping="/i18n/**" location="/resources/i18n/"/>
使用CookieLocaleResolver来读取cookie的值,配置一下cookieName
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> <property name="cookieName" value="language"/> </bean>
在message_en.properties和message_zh.properties里面写入key:site.success
site.success=Success! site.success=成功!
以上这些配置好了之后就可以使用了,调用$.i18n.prop(key)来显示不同语言的提示
alert($.i18n.prop('site.success'));
英文环境下:
![](http://static.oschina.net/uploads/space/2015/0531/093831_zklu_871551.png)
中文环境下:
![](http://static.oschina.net/uploads/space/2015/0531/093832_6qgy_871551.png)
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- JavaScript演示排序算法
- 5个常见可用性错误和解决方案
- jQuery Ajax 跨域调用
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- JQuery 初体验(建议学习jquery)
- Jquery实现的table最后一行添加样式的代码
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码
- jquery如何实现在加载完iframe的内容后再进行操作
- jquery $.ajax()取xml数据的小问题解决方法
- jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
- Jquery 表单取值赋值的一些基本操作
- js可突破windows弹退效果代码
- jQuery中的常用事件总结
- 23个超流行的jQuery相册插件整理分享
- 影响jQuery使用的14个方面