热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端国际化(i18n):基于jQuery的实现与应用

在进行前端JavaScript国际化(i18n)的过程中,为了从cookie中获取语言信息并动态加载相应资源,我决定将语言检测逻辑和i18n初始化代码直接嵌入到index页面中,使用了Velocity模板引擎的语法。这种方法不仅简化了代码结构,还提高了语言切换的灵活性和响应速度。

昨天在做前端js的国际化的时候,因为遇到了需要从COOKIE中获取语言信息再进行资源加载的情况,索性就直接将判断的条件以及i18n的初始化写到了index页面中,这里是velocity的语法。

<script src="$link.contextPath/assets/Javascripts/jquery/jquery.min.js?v=$appUitl.revision">script>
<script src="$link.contextPath/assets/Javascripts/jquery-i18n-properties/jquery.i18n.properties.js?v=$appUitl.revision">script>
#foreach($gc in $request.getCOOKIEs())
#if($gc.value=='zh_CN')
<script src="$link.contextPath/assets/Javascripts/jquery-validation-engine/js/jquery.validationEngine-zh_CN.js?v=$appUitl.revision">script>
<script>
$.i18n.properties({//加载资浏览器语言对应的资源文件
name : 'messages', //资源文件名称
path : '$link.contextPath/i18n/', //资源文件路径
mode : 'map', //用Map的方式使用资源文件中的值
language : 'zh_CN',
});
script>
#elseif($gc.value=='en_US')
<script src="$link.contextPath/assets/Javascripts/jquery-validation-engine/js/jquery.validationEngine-en_US.js?v=$appUitl.revision">script>
<script>
$.i18n.properties({//加载资浏览器语言对应的资源文件
name : 'messages', //资源文件名称
path : '$link.contextPath/i18n/', //资源文件路径
mode : 'map', //用Map的方式使用资源文件中的值
language : 'en_US',
});
script>
#end
#end

其中加载的资源文件为
这里写图片描述
这样就成功了,再在js中通过prop方法调用配置文件中的key值就行了

var message = $.i18n.prop('index.modal.message')

配置文件中

  • messages_en_US.properties
index.modal.message=Choose
  • messages_zh_CN.properties
index.modal.message=请选择项目

大功告成


推荐阅读
author-avatar
手丷机用户2515108295
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有