昨天在做前端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=请选择项目
大功告成