<script type="text/javascript">
djConfig = {
isDebug: true
};
</script>
<script type="text/javascript" src="../../dojo.js"></script>
<script type="text/javascript" src="../_bootstrap.js"></script>
<script type="text/javascript">
dojo.locale = "fr";
dojo.requireLocalization("g11n.messages","salutations","en");
dojo.requireLocalization("g11n.messages","salutations","fr");
dojo.requireLocalization("g11n.messages","salutations","zh-cn");
dojo.require('dojo.i18n.common');
</script>
<script type="text/javascript">
function init() {
var salutations_default = dojo.i18n.getLocalization("g11n.messages", "salutations");
dojo.debug("default language: "+salutations_default.hello);
var salutations_zh = dojo.i18n.getLocalization("g11n.messages", "salutations", "zh-cn");
dojo.debug("Chinese: "+salutations_zh.hello);
}
dojo.addOnLoad(init);
</script>
首先是 dojo.locale 这个属性,这个属性是一个全局,作为用户默认的locale,如果用户不明确指定,dojo会根据浏览器的locale对这个属性赋值。和Java不同,目前在dojo中locale并没有对应对象,只是一个String对象,典型的格式应该是 "zh","zh-cn"。注意后者用的是 "-" ,而不是Java中的 "_"。
现在来看最让人心动的 message bundle 机制, 首先分成三步来把message文件组织好:
1) 要建立一个集中存放message文件的目录,我建的是 g11n\messages;
2) 和在java中一样,为不同的locale建立存放message文件的文件夹,比如我建的是"en","fr","zh-cn"; 这里要注意文件夹的名称必须要全部小写,原因是dojo从文件装载消息会把传入的locale属性进行 toLowerCase() 的处理(晕,不知道作者怎么想的)。
3) 把翻译完并用native2ascii转换好的消息文件放入对应的文件夹内。和Java不同的是,dojo用 JSON 格式来组织message文件,所以要把property文件转换到JSON格式的js文件, 不过这也很容易: 在文件开始的位置加入一个"{", 结尾的地方加入"}", 将所有的 "=" 替换成 ":" , 然后在每一行结尾处加入一个"," ,最后把文件改成js结尾便可以了。一个典型的JSON格式的文件如下(假设文件名叫 salutations.js ) :
{
hello: "Hello",
dojo: "Dojo",
hello_dojo: "%{hello}, %{dojo}!",
file_not_found:"The file you requested, %{0}, is not found."
}
把消息文件放好后,便可以在 dojo 中通过 dojo.requireLocalization() 调用这些文件了,对应的代码是:
//下载需要的locale的消息文件到客户端
dojo.requireLocalization("g11n.messages","salutations","en");
dojo.requireLocalization("g11n.messages","salutations","fr");
dojo.requireLocalization("g11n.messages","salutations","zh-cn");
//调用国际化包
dojo.require('dojo.i18n.common');
现在就可以调用指定locale的 message 了!在示例代码中举了两个简单的例子:
//调用 dojo.locale 指定的locale中对应的消息文件中 hello 那条消息
var salutations_default = dojo.i18n.getLocalization("g11n.messages", "salutations");
dojo.debug("default language: " + salutations_default.hello);
//调用"zh-cn"中 hello 那条消息
var salutations_zh = dojo.i18n.getLocalization("g11n.messages", "salutations", "zh-cn");
dojo.debug("Chinese: "+salutations_zh.hello);
转自:http://www.blogjava.net/weidy/archive/2006/09/19/70460.html
分享到:
相关推荐
dojo.js.uncompressed.js 1.4.2dojo.js.uncompressed.js 1.4.2dojo.js.uncompressed.js 1.4.2
struts2-dojo-plugin-2.3.15.3.jar.zip
struts2-dojo-plugin-2.2.1.jar, 直接导入到Struts2项目里即可,注意版本。
dojo.js.核心jsDojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库
Addison.Wesley.Dojo.Using.the.Dojo.JavaScript.Library.to.Build.Ajax.Applications.Jun.2008.pdf
struts2-dojo 跨域时解决拒绝访问的问题
dojo.lang.array & dojo.lang.func & dojo.string.extras) 13 六、 Dojo学习笔记(6. dojo.io.IO & dojo.io.BrowserIO) 18 七、 Dojo学习笔记(7. dojo.dom) 22 八、 Dojo学习笔记(8. dojo.event & dojo.event.topic ...
struts2-dojo-plugin-2.1.6.jar 解决了datetimepicker显示月份乱码的问题,显示9、10、11、12月份时出现乱码,本包修改了该bug
dojo学习 dojo学习 dojo学习 dojo学习 dojo学习
Pragmatic.Bookshelf.Mastering.Dojo.Jun.2008.pdf
struts2-dojo-plugin-2.3.1.2.jar
DOJO TableContainer实现表单布局.js
struts2-dojo-plugin-2.2.3.jar struts2-dojo-plugin-2.2.3.jar
不好意思,上一个资源没有改完全!csdn不让删除。只好重新提交一个!注意清除本地浏览器缓存文件!
Dojo2.rarDojo2.rarDojo2.rarDojo2.rar
Dojo1.rarDojo1.rarDojo1.rarDojo1.rar
随着富互联网应用程序(Rich Internet Application,RIA)的发展,一批 JavaScript Toolkit 也随之兴起 , Dojo 便是其中的优秀代表,本系列文章 将由浅入深带领读者走进 Dojo 的世界。本文作为这个系列的开篇 , 主要...
domino xapges 其中的dojo.xhrGet 和 dojo.xhrPost例子
Dojo3.rarDojo3.rarDojo3.rarDojo3.rarDojo3.rar