`
j2ee_zhongqi
  • 浏览: 208921 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

dojo的国际化处理

    博客分类:
  • Dojo
阅读更多
转自:http://blog.csdn.net/enpowerme/archive/2008/11/17/3320628.aspx

dojo是如何实现国际化的吧...

  国际化标准组织为本地的事件定义了标准的标识符,比如美国的英语用en-us 表示,澳大利亚的英语用en-au 表示,在我们今天的例子里我将使用zh-cn...大陆中文

       第一步:捆绑目录和资源文件
  在dojo中所有的资源文件都用一个JS文件来充当,跟其他的国际化文件一样,所有的资源文件都放在nls文件夹下面,我们将使用一个loginform来命名这个国际化文件包,下面需要创建我们的资源文件的文件夹zh-cn ,zh.这个时候整个国际化包的目录结构就建设好了...我们现在要做的就是把我们所需要的资源文件放入相应的目录下..

  

  在我们的例子里将分别在nls,zh,zh-cn目录下放入三个资源文件--而且都将之命名为loginform.js--

  nls:该文件夹下的是默认的资源..

({username:"username"password:"password"})     


zh-cn:
  
({username:"用户名"password:"密码"})     

zh:

({username:"用户名"password:"密码"})

现在我们已经准备好了资源文件..这是就需要我们把这些资源合适的放入到表单合适的位置,怎么做到呢,这个我们就要进行第二步了...  

第二步:定制标签我们也会象JAVA中使用占位符一样来定制我们的标签,比如
<span dojoType="dijit.Declaration" widgetClass="LoginformI18n"      defaults="{ fieldid: 'none' }">    
<label for="${fieldid}" id="${fieldid}_label"></label> </span>

这个时候我们就需要为我们的标签指定资源文件,怎么做呢...
<span dojoType="dijit.Declaration" widgetClass="LoginformI18n"      defaults="{ fieldid: 'none' }">    
<label for="${fieldid}" id="${fieldid}_label"></label>
var labelNode = dojo.byId(this.fieldid + "_label");
var loginFormBundle = dojo.i18n.getLocalization("loginformI18n","loginform");
labelNode.innerHTML = loginFormBundle[this.fieldid];

</span>

这个时候我们就需要在我们的名称空间里注册我们的标签组件:        dojo.registerModulePath("loginformI18n","/loginform");        dojo.requireLocalization("loginformI18n", "loginform");

好了,做完这些我们就需要做第三步了,也就是在我们的HTML中使用我们注册的具有国际化功能的标签组件,怎么做呢?    
第三步:使用国际化组件:

<div dojoType="LoginformI18n" fieldid="username"></div>  <div dojoType="LoginformI18n" fieldid="password"></div>

当然不要忘记了,dojo.require("dijit.Declaration");dojo.require("dojo.parser");

这个时候整个页面是什么样的呢?看一下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"            "http://www.w3.org/TR/html4/strict.dtd">
<html>t<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Googolica Tax Form</title>
<style type="text/css">
@import "http://o.aolcdn.com/dojo/1.0.0/dijit/themes/tundra/tundra.css";        @import "http://o.aolcdn.com/dojo/1.0.0/dojo/resources/dojo.css"
</style>

<script type="text/javascript" src="/dojoroot/dojo/dojo.js"        djConfig="parseOnLoad: true"></script>
<script type="text/javascript">       
dojo.require("dojo.parser");      
dojo.require("dijit.form.TextBox");      
dojo.require("dijit.Declaration");             
// This is necessary to i18n routines look in this directory for the nls folder       
dojo.registerModulePath("loginformI18n","/loginform");        dojo.requireLocalization("loginformI18n", "loginform");    </script>
</head>
<body class="tundra">
<span dojoType="dijit.Declaration" widgetClass="LoginformI18n"        defaults="{ fieldid: 'none' }">       
<label for="${fieldid}" id="${fieldid}_label"></label>             
  <script type='dojo/connect'     event='startup'>   
   var labelNode = dojo.byId(this.fieldid + "_label"); 
    var loginFormBundle = dojo.i18n.getLocalization("loginformI18n","loginform");      
labelNode.innerHTML = loginFormBundle[this.fieldid];        </script>
</span>
<form>
<div dojoType="LoginformI18n" fieldid="username"></div>
<input type="text" size="20" name="first" dojoType="dijit.form.TextBox"        trim="true" propercase="true" /><br>
<div dojoType="LoginformI18n" fieldid="password"></div>
<input type="text" size="20" name="last" dojoType="dijit.form.TextBox"        trim="true" propercase="true" />
<br>
</form>
</body>
</html>
到这里你就基本上完成了一个非常简单的dojo国际化的功能.
分享到:
评论

相关推荐

    Dojo基础3国际化

    以下是Dojo国际化的主要方面: 一、自定义模块的国际化 要实现Dojo的国际化,首先需要创建相应的模块和语言文件。这通常涉及到以下几个步骤: 1. 创建目录结构:在项目中创建一个名为`language`的文件夹,并在其中...

    DOJO和验证框架和国际化

    DOJO提供了强大的国际化支持,包括dojo/i18n模块,它可以处理多语言资源文件,允许开发者轻松地切换应用的语言环境。此外,DOJO还支持日期、数字、货币格式等的本地化显示,使得在全球范围内部署应用变得更加容易。 ...

    dojo中文文档-dojo手册

    Dojo的国际化和本地化支持也是其特色之一。dojo.i18n模块提供了处理多语言内容的能力,使开发者可以轻松地为不同地区的用户提供本地化的应用。 压缩包中的Dojo+hand+book.chm文件包含了以上所有内容的详细解释和...

    DOJO 学习笔记 dojo

    此外,`djConfig` 还可以配置其他选项,如国际化、异步加载等。 在引入 Dojo 的启动代码 `&lt;script src="/yourpath/dojo.js"&gt;&lt;/script&gt;` 之后,你可以开始使用 Dojo 提供的预打包的常用功能。为了便于阅读源码,可以...

    dojo官网的源码dojo官网的源码

    8. **国际化(i18n)**:`dojo/i18n`模块支持多语言资源加载和国际化处理。 9. **主题和CSS**:Dojo有多个预设的主题,如 claro、tundra、soria 和 nihilo,它们通过`dojo/themes`实现,与`dijit/themes`配合使用,...

    dojo起步学习的好例子

    8. **国际化 (dojo.i18n)**:Dojo 支持国际化和本地化,允许开发者轻松创建多语言应用。 9. **Dojo Build System**:Dojo的构建系统允许优化和打包代码,减少HTTP请求,提高加载速度。 在提供的"ajax"子文件中,你...

    dojo包和例子

    1. **Dojo的核心特性**:Dojo的核心特性包括模块系统(AMD,Asynchronous Module Definition)、DOM操作、事件处理、动画效果、XHR通信、国际化和本地化支持等。这些特性使得Dojo成为一个功能完备的前端开发框架。 ...

    dojo工具包zip

    它提供了一系列强大的功能,包括DOM操作、AJAX通信、事件处理、动画效果、模块化编程、国际化和本地化支持,以及丰富的UI组件等。以下是一些主要的Dojo相关知识点: 1. **模块系统**:Dojo引入了AMD(Asynchronous ...

    DOJO-DEMO官网提取版

    DOJO 提供了 `dojo/i18n` 和 `dojo/nls` 模块,支持多语言应用的开发,方便进行国际化和本地化设置。 8. **DOJO 框架扩展** DOJO 允许开发者通过 `dojo/has` 功能检测和 `dojo/extend` 扩展对象来适应不同浏览器...

    dojo相关的js

    标签"dojo"提示我们关注的重点是Dojo框架本身,所以了解Dojo的模块系统、主题、国际化、测试工具等方面也是很重要的。Dojo的模块系统(AMD,Asynchronous Module Definition)允许异步加载和组织代码,有助于提高...

    dojo 离线API

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括AJAX、DOM操作、动画效果、国际化、模块化等。这个“dojo 离线API”是官方文档的英文原版,旨在帮助开发者在没有网络连接的情况下也能...

    DOJO权威指南+DOJO1.1源码

    DOJO是JavaScript开发的一个强大框架,它支持模块化编程,提供数据绑定、事件处理、动画效果、AJAX通信、国际化等功能。DOJO的设计理念是提供一套全面的工具集,帮助开发者快速创建高性能、可维护的Web应用。 2. *...

    dojo1.1 javascript框架

    7. **国际化和本地化**:Dojo支持多语言和本地化,`dojo/i18n`模块可以帮助开发者轻松地创建和管理本地化的资源。 8. **Dijit UI库**:Dojo的`dijit`模块提供了一套丰富的、可自定义的、响应式的UI组件,如按钮、...

    学习dojo

    - **国际化与本地化**:Dojo内置了多语言支持,可以通过简单的配置实现应用的国际化和本地化。 - **动画效果**:Dojo的`dojo.fx`模块提供了一系列的动画效果,包括淡入淡出、滑动、旋转等。 **2. Dojo的工具集** ...

    Dojo 1.10版离线参考手册

    - `dojo/i18n` 提供了国际化的支持,可以轻松地切换语言和区域设置。 8. **Dojo测试框架**: - `dojox/testing` 提供了一套用于单元测试和集成测试的工具。 9. **Dojo工具**: - `dojo/tools` 包含了一些辅助...

    dojo 1.9 demo

    7. **国际化和本地化**:Dojo支持多语言和本地化,`dojo/i18n`模块可以帮助开发者创建适应不同地区的应用。在demos中,你可以看到如何加载和使用本地化资源。 8. **主题和样式**:Dojo的`dijit/themes`提供了多种...

    dojo-release-1.0.2

    7. **国际化和本地化**:Dojo支持多语言和本地化,`dojo/i18n`模块可以轻松地管理和切换应用程序的语言资源。 8. **工具集**:还包括日期和时间处理、字符串格式化、数组操作等一系列实用工具函数,如`dojo/date`、...

    dojo开发文档

    11. **dijit组件**:Dojo的dijit库包含大量UI组件,如按钮、表单、布局等,它们具有丰富的主题、国际化支持和无障碍访问功能。 12. **dojox扩展库**:dojox库包含了更多高级和实验性的功能,如图表、地理空间、...

    DOJO API 中文参考手册

    8. **Dojo Locale (dojo/i18n)**: `dojo/i18n`模块用于处理国际化和本地化,它允许应用程序根据用户设置的语言和地区动态加载相应的文本资源。 9. **Dojo Stateful (dojo/Stateful)**: 这个基类为对象提供了属性...

Global site tag (gtag.js) - Google Analytics