<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
1. Dojo的模块化系统(AMD,Asynchronous Module Definition):了解如何导入和使用Dojo模块,这将帮助你有效地组织和加载代码。 2. Dojo的Dijit部件:掌握常见的Dijit部件,如Button、TextBox、Grid等,以及如何在...
最后,使用`dojo.i18n.getLocalization()`获取并使用本地化文本。 二、日期国际化 Dojo的日期国际化通过`dojo.date`模块实现,提供以下功能: 1. 获取月份的天数:使用`dojo.date.getDaysInMonth(date)`。 2. 判断...
struts2-dojo 跨域时解决拒绝访问的问题
2. 引入Dojo核心库:通过`<script>`标签引入`dojo.js`,这是Dojo的基础文件,可能已经包含了部分常用模块。 3. 声明需要使用的模块:使用`dojo.require()`来引入所需的包或模块,确保它们在运行时可用。 Dojo为了...
Dojo支持多语言和本地化,通过`dojo.i18n`模块,开发者可以轻松地为应用程序添加不同语言的支持。 9. **Dojo Build System** Dojo的构建系统允许开发者优化和打包代码,合并多个模块为单个文件,减少HTTP请求,...
7. **国际化与本地化**:Dojo支持多语言环境,通过dojo/i18n模块可以轻松实现应用程序的国际化和本地化。 8. **Dojo工具**:除了库本身,Dojo还提供了一些开发工具,如Dojo Build System用于优化和打包代码,Dojo ...
struts2-dojo-plugin-2.1.6.jar 解决了datetimepicker显示月份乱码的问题,显示9、10、11、12月份时出现乱码,本包修改了该bug
在使用Dojo进行Ajax通信时,Dojo的`dojo.xhr`模块提供了与服务器端进行异步数据交换的接口。它可以处理各种HTTP请求类型,如GET、POST、PUT和DELETE,支持JSON、XML等多种数据格式,为开发者提供了统一的API。 Dojo...
6. **国际化和本地化**:Dojo 提供了强大的国际化和本地化功能,支持多语言环境,方便开发面向全球用户的Web应用。 7. **网络通信**:Dojo 提供了XMLHttpRequest(XHR)的封装,支持Ajax请求以及JSONP等跨域通信...
【Dojo.GUI_v6.zip for pencil】是一款专为Pencil设计的GUI模板资源包,它扩展了Pencil这款优秀的Web原型设计工具的功能和视觉元素。Pencil是一个免费且开源的应用程序,允许用户创建各种交互式原型,适用于网页、...
Dojo支持模块化开发,拥有强大的DOM操作、事件处理、AJAX调用、动画效果以及多种UI控件等功能。它还提供了一个强大的数据网格组件,可以轻松地处理大量数据,并具有高度可定制性。 ### 二、AJAX技术与Dojo的关系 ...
6. **国际化和本地化**:Dojo提供了i18n(Internationalization)和l10n(Localization)支持,方便开发者构建多语言应用。 二、Dojo 1.4.0的新特性和改进 1. **Dojo Core增强**:1.4.0版本增强了Dojo核心功能,...
struts2-dojo-plugin-2.3.1.2.jar
DOJO TableContainer实现表单布局.js
4. **国际化(i18n)**:Dojo 1.4支持多语言环境,提供了`dojo/i18n`模块来处理不同地区的本地化数据,帮助开发者创建全球化应用。 5. **数据绑定**:Dojo的`dojo/Stateful`和`dojo/observe`模块提供了数据模型和...
Dojo 是一个强大的JavaScript工具包,它为Web开发提供了丰富的功能,包括AJAX、DOM操作、动画效果、数据存储、国际化等。在这个0.4.3版本中,我们可以探讨一下dojo的核心特性和与AJAX技术的结合。 1. **Dojo 框架...
struts2-dojo-plugin-2.2.3.jar struts2-dojo-plugin-2.2.3.jar
1. **dojo.js**:这是Dojo的核心库文件,包含基础对象、事件处理、Ajax通信、DOM操作等核心功能。 2. **dijit**:Dijit是Dojo的UI组件库,提供了各种可复用的、符合WAI-ARIA标准的富用户界面组件,如按钮、表单控件...