您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

新的jQuery国际化插件的原型

作者:佚名    责任编辑:admin    更新时间:2022-06-22

  jQuery国际化插件可以让你在javascript代码中轻松地处理不同文化之间的数字、货币和日期格式。例如,你可以使用这个插件正确地显示一个国家的货币符号

  今天,我们发布了一个新的jQuery国际化插件的原型,你可以在你的javascript程序中引用这个插件添加国际化功能。插件涵盖了超过350种文化的国际化信息,从苏格兰盖尔语、佛里斯兰语、匈牙利语、日语到加拿大英语等。插件将以开源的形式发布。

  你可以从我们的Github代码库下载插件的原型版本:

  http://github.com/nje/jquery-glob

  另外也可以在这里下载一些示例了解简单的用法。

  理解国际化

  jQuery国际化插件可以让你在javascript代码中轻松地处理不同文化之间的数字、货币和日期格式。例如,你可以使用这个插件正确地显示一个国家的货币符号:

  你也可以用这个插件编排日期格式,这样日期和月份会以正确的顺序显示,而日期和月份的名称也能够得到正确的翻译:

  请注意上图阿拉伯的日期格式中,年份显示成了1431。这是因为年份已经按照回历的方式转换过了。

  一些文化差异比较明显,例如使用不同的货币或者不同的月份名称等。但另外一些差异却细微而又出人意料。例如,在有一些文化里,数字不是以均衡的方式分组的。在语言标记为“te-IN”的文化中(印度东部的泰卢固语),数字先按3位数字分组,然后再每2位数字分组。因此象数字一百万(1000000)就会被写成“10,00,000”。而有些文化就根本不对数字进行分组。所有这些细微的差异都能够被jQuery国际化插件自动处理。

  要得到正确的日期可能非常需要技巧。不同的文化采用不同的历法,比如公历和回历。同一种文化也可能会采用多个历法,比如日本就同时采用公历和以天皇年号推算的纪年历。插件提供了函数将日期在所有这些历法中相互转换。

  使用语言标记

  jQuery国际化插件依据RFC 4646和RFC 5646标准里定义的语言标记来识别文化(参见 http://tools.ietf.org/html/rfc5646),语言标记通常由连字符将多个辅标签组合而成,比如:

  语言标记 语言名称 (中文)

  en-AU 英文(澳大利亚)

  en-BZ 英文(伯利兹)

  en-CA 英文(加拿大)

  Id 印度尼西亚文

  zh-CHS 中文(简体) — 标记不再使用

  Zu 祖鲁文

  请注意单一语言例如英语可以同时有多个语言标记。同是英语国家,加拿大采用的数字、货币和日期格式就不同于澳大利亚或者美国。你可以使用下面的语言辅标签查找工具来获取某个文化的语言标记:

  http://rishida.net/utils/subtags/

  jQuery国际化插件里一个叫做globinfo的文件夹包含了这350种文化的信息。实际上,这个文件夹里有700多个文件,因为它包括了每个文件的最小化(minify)和原始版本。

  比如说,在globinfo文件夹,文件jQuery.glob.en-AU.js对应英文(澳大利亚),jQuery.glob.id.js对应印度尼西亚文,而jQuery.glob.zh-CHS对应简体中文。

  示例:指定某种文化

  假如你要创建一个德文的网站,并且希望在客户端的javascript脚本里使用德语习惯显示所有的日期、货币符号和数字。那页面的源代码也许与下面的HTML类似:

  注意上面的span标签,它们标识了所有需要用国际化插件进行格式化的区域:商品的价格、上架的日期以及库存量。

  要在网页里使用jQuery国际化插件,需要添加三个javascript文件:jQuery库,jQuery国际化插件和指定的文化习惯信息:

  在上例中,我将包含了德语文化习惯的jQuery.glob.de-DE.js文件静态地加入到网页中,”de-DE”是语言标记,表示在德国使用的德语。

  既然已经引入了必要的脚本文件,就可以使用下面的客户端javascript代码调用插件来显示价格、上架的日期以及库存量等值:

  jQuery国际化插件为jQuery函数库添加了一些新的函数—包括preferCulture()和format()等新函数。你可以通过preferCulture()函数设置插件其他函数调用时使用的默认文化。preferCulture()函数接受一个语言标记作为参数,这个函数会使用最接近这个语言标记的文化。

  $.format()函数才是真正用来编排货币、日期和数字格式的。$.format()函数的第二个参数是格式分类符。例如,传入“c”表示按货币的样式编排参数值。在githum的ReadMe文件里详细描述了所有格式分类符代表的意思:http://github.com/nje/jquery-glob

  当我们在浏览器打开这个页面的时候,所有的东西都是按照德语习惯正确显示。货币符号采用的是欧元符号,日期采用德语的日期和月份名称,并且,数字分隔符用的是点号(.),而不是逗号(,)。