快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

伟德国际官方app下载安卓版_酒文化网进入



什么是软件的本地化

软件本地化是“将一个软件产品按特定国家 / 地区或说话市场的必要进行加工,使之满意特定市场上的用户对说话和文化的特殊需求的软件临盆活动。”详细说,便是根据目的地国家的市场需求,面向当地用户,对软件产品进行功能调剂、信息翻译,本地特点开拓,使其在功能、说话和外不雅上都相符该国家 / 地区的习气。今朝本地化的事情主要包括:

页面文本内容显示的本地化

光阴 / 日期款式的本地化(国际化情况下应用 UTC),包括应用不合的日历

数字的款式的本地化(小数点,瓜分号的位置,用作小数点和瓜分符的字符)

泉币的单位标识和数据款式的本地化

特殊说话的界面显示偏向 ( 从左到右或从右到左伟德国际官方app下载安卓版 )

除了以上这些我们今朝重点关注的领域以外,本地化还包括一些其他的内容,比如,电话号码款式、姓名显示款式、地址款式、邮政编码款式等等。

什么是 Dojo

Dojo 是一个开源的基于 JavaScript 的 web 界面开拓框架,它对常用工具进行了包装并供给一系列 wi伟德国际官方app下载安卓版dgets 来简化用户界面的开拓。它能够使我们更轻易地编写 JavaScript,更快速地制作大年夜型的 Web 界面,在必然程度上使我们更轻易开拓动态的 Web 界面。此中 Dojo 的一个紧张特点便是供给了优越的本地化支持机制。

Dojo 对页面文本内容显示的本地化支持

说到本地化,就不得不先容此中最紧张的一个观点 Locale,Locale 是根据谋略机用户所应用的说话、所在国家或者地区以及当地的文化传统所定义的一个软件运行时的说话情况。所谓页面文本内容显示的本地化,便是对付同一个软件能够根据当前用户选择的 Locale,页面显示的说话动态地改变。比如为中国用户显示中文界面而不是默认的英文界面。下面主要先容一下 Dojo 中是若何实现显示信息的本地化。

首先,在软件开拓历程中,将所有的必要在页面上显示的文本内容抽掏出来,以 Key 和 Value 的形式保存在一个 .js 资本文件中。如 ResourceMessag伟德国际官方app下载安卓版e.js:

清单 1. en 文件夹下的 ResourceMessage.js

(

{

"localeSelect": "Locale:",

"dateStr": "Date and time in localization format: ${0}.",

"numStr": "Number in localization format: ${0}.",

"currencyStr": "Currency in localization format: ${0}."

}

)

之后,我们为每种必要翻译的说话创建一个以该说话缩写命名的文件夹。

图 1. 文件目录布局

在 zh-cn 目录下,ResourceMessage.js 的代码如下。

清单 2. zh-cn 文件夹下的 ResourceMessage.js

(

{

"localeSelect": "区域:",

"dateStr": "本地化的日期和光阴款式:${0}。",

"numStr": "本地化的数字款式:${0}。",

"currencyStr": "本地化的泉币款式:${0}。"

}

)

在 Web 页面中调用代码如下:

1.

2. dojo.registerModulePath("my.app", "../../my/app");

3. dojo.requireLocalization("my.app", " strings ");

4. var strings = dojo.i18n.getLocalization("my.app", " ResourceMessage");

对付以上代码解释如下:

第 1 行:设置 djConfig.locale 工具来指定详细哪个文件夹下的 ResourceMessage.js 文件。此中变量 userLocale 寄放的是当前浏览器的 Locale。该代码加在 html 文件的开首。

第 2 行:应用函数 dojo.registerModulePath 将以上文件路径注册为一个可用模块。

第 3 行:应用函数 dojo.requireLocalization 来加载上述资本文件 ResourceMessage.js。

第 4 行:应用函数 dojo.i18n.getLocalization 将该资本文件转化成工具的形式并返回。获得该工具后,就可以像通俗的 JSON 工具一样对里面的字符串进行读取了。例如:ResourceMessage.ALL_PLACES。

Dojo 对光阴、数字和泉币本地化的支持

天下上各个国家有着不合的光阴款式、数字款式和泉币款式的常规,比如我国日期款式排列顺序为“年 - 月 - 日”,而美国则是“月 - 日 - 年”,比如我国的小数点符号为“.”,而德国、匈牙利等国则应用“,”。针对特定的 Locale 精确地显示光阴、数字和泉币是本地化的一个紧张部分。针对付光阴、数字和泉币本地化的支持,Dojo 供给了三个模块来供开拓者调用:date, number 和 currency 。在利用 Dojo 的支持进行本地化的时刻,Dojo 会从上述模块中调用 cldr 模块下的响应说话包进行本地化,极大年夜程度上减轻了法度榜样员的事情。

日期光阴款式的本地化

Dojo 在 date 模块下面有一个 locale 包用来专门处置惩罚日期和光阴的本地化。对一个 javascript 的 Date 工具的日期部分和光阴部分,Dojo 都能进行本地化。

下面这段实例代码实现了对日期和光阴的本地化:

1. dojo. require("dojo.date.locale");

2. var mydate =new Date(2007,12,17,10,32,12);

3. var result=dojo.date.locale.format(mydate,{ formatLength :'long' , locale: 'zh-cn' });

第 1 行:用来引入所需的 Dojo 模块,这样下面的代码便能调用 locale 包供给的公用函数措施。

第 2 行:代码构造一个必要本地化的 Date 工具 ( 假准光阴为 2007 年 12 月 17 日上午 10 点 32 分 12 秒 )。

第 3 行:调用 Dojo 公用模块对光阴日期进行本地化,参数中 formatLength 指定转化话的长度类型 , 可选值有:'short', 'medium' , 'long' 和 'full' 。locale 指定说话类型 ( 这里 zh-cn 为简体中文 )。

着末输出的结果为 "2007 年 12 月 17 日上午 10 点 32 分 12 秒 "。

别的 dojo.date.locale.format 的其他常用的可选项有:

Se伟德国际官方app下载安卓版lector - 可选值:'time', 'date'。用来筛选 time 和 date。

datePattern,timePattern - 重置 date 和 time 的款式。

am,pm - 重置 am 和 pm 的字符串。

数字款式的本地化

对数字款式的本地化和上面提到的对光阴日期的本地化类似,使用 Dojo 供给 number 模块就能够处置惩罚数字款式的转化。

下面这段实例代码实现了对数字款式的本地化:

1. dojo.require("dojo.number");

2. var num_format=dojo.number.format( 12345.67,{ locale: 'fr-fr' }) ;

第 1 行:引入所需的 Dojo 模块。

第 2 行:调用 Dojo 公用模块进行本地化,参数 locale 指定说话类型 ( 这里 fr-fr 为法文 )。

着末输出的结果为 12 345,67 。从这个结果中我们看到,输出利用了法国的数字款式规则:即,千位分隔符应用空格,数字的小数点符号为“,”。

别的 dojo.number.format 其他常用的可选项有:

pattern - 重置数字的款式

type - 可选值:decimal, scientific, percent, currency 。

places - 设定小数点的位置。

round - 取近似值:值为 5 则就近取 .5;值为 0 就近取整;值为 -1 则不取近似值。

泉币款式的本地化

对泉币款式的本地化与数字款式的本地化也相似。Dojo 供给 currency 模块处置惩罚泉币款式的转化。必要留意的是,输入参数泉币量必须是一个数值。

下面这段实例代码实现了对泉币款式的本地化:

1. dojo.require("dojo.currency");

2. var cur_format=dojo.currency.format( 12345.67, {currency: "EUR"}) ;

第 1 行 : 引入所需的 Dojo 模块。

第 2 行 : 调用 Dojo 模块进行本地化,参数 currency 指定泉币类型 ( 这里为欧元 )。

着末输出的结果为€12,345.67 。

别的 dojo.currency.format 其他常用的可选项有:

symbol - 重置泉币符号。

pattern - 重置数字的款式。

places - 设定小数点的位置。

进行日期,光阴和数字本地化时可能碰到的问题

下面描述了我们在实际事情中实现基于 Dojo 的日期,光阴和数字的本地化碰着的两个详细问题以及其的办理法子。

因为 IE 和 Firefox 的处置惩罚机制不合,在 IE 中,用上面的措施是可以成功本地化的。但在 Firefox 下可能不必然生效(所用的 Dojo 版本为 1.0.1),必要添加一些额外代码,例如,添加如下的代码,将必要的模块包括进来(以中文为例):

dojo.requireLocalization("dojo.cldr", "number", 'fr-fr');

dojo.requireLocalization("dojo.cldr", "grego伟德国际官方app下载安卓版rian", 'zh-cn');

应用 Dojo 本地化的另一个必要留意之处是 ,Dojo 默认的 cldr 模块下的说话种类是不全的。假如开拓者所必要的说话没能在此中,那么可以对 Dojo 目录 util/buildscripts/cldr 下的 ant script 进行定制,经由过程容许颠末定制的脚本天生一个包孕所需说话包的 Dojo 版本。

利用 Dojo 供给的 widgets 简化编程

Dojo 除了供给了以上的这些公用模块和措施来赞助法度榜样员实现光阴、日期、数字、泉币的本地化外,还供给了一系列的支持本地化的输入型 Widgets,此中包括:ValidationTextBox,CurrencyTextBox,NumberTextBox,DateTextBox,TimeTextBox,这些 TextBox 本身就可以自动完成泉币,数字,日期光阴等的款式的本地化。以 NumberTextBox 为例阐明:

NumberTextBox 是 Dojo 供给来专门处置惩罚与数字输入输出有关的 TextBox。与传统 TextBox 比拟,NumberTextBox 可以对输入的字符进行校验,假如不为有效的数字类型,跨越设定的数字范围则会提示报错。NumberTextBox 子工具有两个 INPUT 元素,一个供用户应用,另一个则是暗藏的专门认真与办事器端数据的互换。这样假如用户进行输入操作,NumberTextBox 容许用户输入本地化的数字,即应用户输入的长短本地化数字,当 NumberTextBox 掉去焦点时,数字也会自动以本地化款式显示,但数据传给办事器时,传的仍旧是标准的非本地化形式;假如 NumberTextBox 获得一个从办事器端来的数据,它会自动将该数据转化成本地形式并显示。

如下代码定义了一个 NumberTextBox 若何应用:

可以看到,应用时跟通俗 Widgets 并无区别。此处设定了一些参数:min 指定容许的最小值,places 指定小数点的位置,required 指定输入是否不能为空。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: