jQuery 1.11.3 和 2.1.4 发布 - iOS 防故障版

发表于

我们又来了。四月愚人节已经过去了,所以当我们告诉你我们发布了两个新的补丁版本:jQuery 1.11.3 和 2.1.4 时,你可以相信我们。

这些版本包含一个 针对 iOS 8.2 和 8.3 中罕见错误的热修复。这是唯一的更改。与 1.11.2 和 2.1.3 一样,我们预计升级不会出现任何问题。但是,如果您在从先前版本升级时遇到错误,请 告知我们

如果您愿意,可以直接从 jQuery CDN 包含这些文件,或者将它们复制到您自己的本地服务器。1.x 分支包括对 IE 6/7/8 的支持,而 2.x 分支则没有。

https://code.jqueryjs.cn/jquery-1.11.3.js

https://code.jqueryjs.cn/jquery-2.1.4.js

这些更新已作为 npm 和 Bower 上的当前版本提供。有关获取 jQuery 的所有方法的信息,请访问 https://jqueryjs.cn/download/。请记住,公共的第三方 CDN 会在今天收到它们的副本,可能需要几天才能发布这些文件。如果您急于开始,我们的 CDN 始终可用。

非常感谢所有参与此版本测试、报告错误或提交补丁的人,包括 John-David Dalton、Michał Gołębiowski、Oleg Gaidarenko、Richard Gibson、Dave Methvin、Benjamin Poulain 和 Oz Solomon。

感谢您一直以来的支持,我们期待向您展示我们在 jQuery 3.0 中准备的所有内容!

 

宣布 Globalize 1.0

发表于

jQuery 基金会很高兴地宣布 Globalize 项目的 1.0 版本发布,这是我们的国际化 (i18n) 库。这个版本已经酝酿已久,随着 Globalize 的不断发展,每天都在获得越来越多的采用,我们很自豪地最终宣布这个项目的第一个稳定版本。我们可以继续谈论这个最新版本的功能和优势,但我们认为重要的是让您从源头上听到它。在下面,Globalize 项目的负责人 Rafael Xavier 详细介绍了您需要了解的有关 Globalize 1.0 版本及其未来计划的所有内容。

一个始终保持最新、模块化且简单的 i18n 库

让我跳过细节,直接进入有趣的部分。以下是您今天在 Globalize 中获得的内容,它提供数字格式化和解析、日期和时间格式化和解析、货币格式化、消息格式化 (ICU 消息格式模式,支持性别和复数)。

日期格式化和解析

日期模块提供方法,用于将日期和时间从其内部表示形式转换为文本形式(格式化)并再次转换回来(解析),以语言无关的方式。您的代码可以方便地控制格式化日期、时间和日期时间的长度。

语言环境 .dateFormatter({ datetime: "medium" })( new Date() );
en "Feb 20, 2015, 12:15:00 PM"
zh "2015年2月20日 下午12:15:00"
zh-u-nu-native "二〇一五年二月二〇日 下午一二:一五:〇〇"
es "20 de feb. de 2015 12:15:00"
ar "٢٠‏/٠٢‏/٢٠١٥ ١٢،١٥،٠٠ م"

您的代码甚至可以选择各个字段,完全独立于语言环境约定。模式“GyMMMd”选择其缩写形式的纪元、年份、其缩写形式的月份和日期。

语言环境 .dateFormatter({ skeleton "GyMMMd" })( new Date() );
en "Feb 20, 2015 AD"
zh "公元2015年2月20日"
es "20 feb. de 2015 d. C."
ar "٢٠ فبراير، ٢٠١٥ م"

 

相对时间格式化

除了格式化日期和时间外,相对时间模块还提供日期和时间字段的国际化消息,在可用时使用习惯用语或短语。

语言环境,值 .relativeTimeFormatter( "day" )( value );
en, -15 "15 days ago"
en, 0 "today"
en, 1 "tomorrow"

 

数字格式化和解析

数字模块提供用于格式化和解析数字的方法。您的代码可以完全独立于语言环境约定,例如小数点、千位分隔符,甚至使用的特定小数位,或者数字格式是否为十进制。但是,它仍然可以方便地控制格式化数字的各个方面,例如最小和最大小数位数、整数填充、舍入方法、以百分比显示等。

语言环境 .numberFormatter()( Math.PI );
en(英语) "3.142"
es(西班牙语) "3,142"
ar(阿拉伯语) "٣٫١٤٢"

格式化千位分隔符

语言环境 .numberFormatter()( 1000000 );
en-US(美式英语) "1,000,000"
en-IN(印度英语) "10,00,000"

格式化百分比

语言环境 .numberFormatter({ style: "percent" })( 0.15 );
en(英语) "15%"
es(西班牙语) "15 %"
ar(阿拉伯语) "١٥٪"

 

货币格式化

货币模块提供方法,允许格式化货币。您的代码可以完全独立于语言环境约定,例如使用哪个货币符号、货币符号和值之间是否有空格、货币符号必须放置的侧边,甚至特定货币使用的小数位数。货币可以使用符号(默认)、会计形式、3 字节代码或复数消息显示。

使用符号格式化货币

3 字节货币代码 en(英语) de(德语) zh(中文) ar(阿拉伯语)
.currencyFormatter( "USD" )( 1 ); "$1.00" "1,00 $" "US$ 1.00" "US$ ١٫٠٠"
.currencyFormatter( "EUR" )( 1 ); "€1.00" "1,00 €" "€ 1.00" "€ ١٫٠٠"
.currencyFormatter( "CNY" )( 1 ); "CN¥1.00" "1,00 CN¥" "¥ 1.00" "ي.ص ١٫٠٠"
.currencyFormatter( "JPY" )( 1 ); "¥1" "1 ¥" "JP¥ 1" "JP¥ ١"
.currencyFormatter( "GBP" )( 1 ); "£1.00" "1,00 £" "£ 1.00" "£ ١٫٠٠"
.currencyFormatter( "BRL" )( 1 ); "R$1.00" "1,00 R$" "R$ 1.00" "R$ ١٫٠٠"

以完整名称格式化货币

语言环境 .currencyFormatter( "USD", { style: "name" })( 1 );
en(英语) "1.00 US dollar"
de(德语) "1,00 US-Dollar"
zh(中文) "1.00美元"
ar(阿拉伯语) "١٫٠٠ دولار أمريكي"

以会计形式格式化货币,例如,在英语语言环境中,对负数使用括号而不是减号

语言环境 .currencyFormatter( "USD", { style: "accounting" })( -1 );
en(英语) "($1.00)"

 

支持 ICU 消息格式(支持性别和复数)

消息模块提供方法,允许创建国际化消息,并带有可选参数(变量/占位符),允许简单的替换、性别和复数词形变化。参数可以以任何顺序出现,这对于翻译成语法不同的语言是必要的。

Globalize.loadMessages({
  en: {
   likeIncludingMe: [
      "{count, plural,",
      "    one {You have one task remaining}",
      "  other {You have {count} tasks remaining}",
      "}"
    ]
  }
});

 

语言环境,计数 .messageFormatter( "likeIncludingMe" )({ count: count });
en, 1 "You have one task remaining"
en, 99 "You have 99 tasks remaining"

 

基于标准

Globalize 基于 Unicode 联盟的标准和规范 (UTS#35),并使用其 通用语言环境数据存储库 (CLDR),这是可用的最大和最全面的语言环境数据标准存储库。CLDR 持续更新,并被许多大型应用程序和操作系统使用,因此您始终可以使用最准确和最新的语言环境数据。

CLDR 内容

Globalize 需要 CLDR 内容才能正常运行,但它不嵌入或托管此类内容。相反,Globalize 使开发人员能够以他们想要的方式加载 CLDR 数据。预期以其官方 JSON 格式提供普通的 CLDR(没有预处理)。因此,(a) Globalize 避免了由过时 i18n 内容引起的错误。开发人员可以使用最新的 CLDR 数据直接从 Unicode 获取,一旦发布,无需等待我们这边的任何管道。(b) 开发人员可以完全控制他们在应用程序中想要提供的语言环境覆盖范围。(c) 开发人员能够在 Globalize 和利用 CLDR 的其他库之间共享相同的 i18n 数据集。无需重复数据。有关更多信息,请阅读我们关于 CLDR 使用情况 的文档。

浏览器和 Node.js 支持

Globalize 系统地针对台式机和移动浏览器以及 Node.js 进行测试。因此,使用它,您将获得各种浏览器以及客户端和服务器之间一致的结果。有关更多详细信息,请阅读我们的 浏览器支持 部分。

入门

安装它 并立即使用它。在我们的 使用 部分查看 AMD + bower、Node.js + npm 或普通 JavaScript 的示例。

如果您来自 Globalize 0.x,请不要惊慌。我们为您创建了 迁移指南

团队和社区

我们感谢我们收到的所有支持,特别是 Jörn Zaefferer 和 Scott González 在初始重写概念方面提供的帮助,以及他们一直以来的建议;John Emmons、Steven R. Loomis 和 Mark Davis(Unicode)在 CLDR 和 UTS#35 规范问题方面提供的帮助;Alex Sexton 和 Eemeli Aro 为他们的 messageformat.js 和 make-plural.js 库提供的帮助,分别为我们的 MessageFormat 和 Plural 模块提供支持;以及 jQuery 基金会为社区建设、协作工作以及对其对 Globalize 和 Web 国际化的持续支持。

我们还要感谢 Nebojša Ćirić、Mihai Niță 和 Shanjian Li(谷歌);Steven Loomis、Steven Atkin 和 John Emmons(IBM);Rick Waldron(Ecma-402 第二版编辑);Caridy Patiño 和 Eric Ferraiuolo(雅虎);Christophe Jolif 和 Clement Mathieu(Dojo);Cameron Dutro 和 Kirill Lashuk(推特);Craig Cummings 和 Tex Texin(jsi18n.com);Santhosh Thottingal 和 Kartik Mistry(维基百科);Axel Hecht(Mozilla);Bruno Lewin 和 Daniel Goldschmidt(微软);Lily Wen(Adobe);Edwin Hoogerbeets(LG);Eirik Rude(甲骨文);Xiang Xu(PayPal);Iskren Chernev(moment.js);以及 Tingan Ho(l10ns.org),他们与我们一起努力更好地协调 JavaScript 社区的全球化(国际化和本地化)活动。如果您想参与进来或了解更多信息,请访问 javascript-globalization@googlegroups.com 邮件列表或查看我们的 JavaScript 全球化 概览页面

即将推出

我们正在努力开发更多令人兴奋的功能,这些功能将很快成为 Globalize 的一部分。举几个例子:运行时优化非公历支持。因此,如果您对这些功能感兴趣,请务必参与进来。表达您的想法和需求(例如,您希望支持哪些日历)。
我们一直在寻找贡献者加入我们的团队。如果您想参与进来,请阅读 贡献指南。您的帮助将受到热烈欢迎。

宣布 PEP 0.3.0

发布于 作者

今天,我们很高兴宣布 PEP(jQuery 基金会的 指针事件 polyfill)自 谷歌将指针事件 polyfill 转移到 jQuery 基金会 后的第一个版本。为了解决对指针事件规范的更改并完善我们的测试套件,我们还有更多工作要做,但您可以从今天开始在您的项目中使用指针事件!其他项目,如 jQuery UI、jQuery Mobile 和 Dojo,正在使用 PEP 切换到指针事件。

为了庆祝我们的第一个版本,Alex Schmitz 创建了一个小的 演示,他用它来展示 PEP 在不同设备上的工作情况。

P drawn on desktop ChromeE drawn in Chrome on AndroidP drawn in Mobile Safari

自转移以来,我们一直专注于迁移到新的基础设施,以方便贡献并加快开发。我们已经将测试切换到使用 Intern,并使用 Travis CI 设置了持续集成,使用 BrowserStack 在我们所有支持的浏览器中运行测试。我们还从简单的文件连接切换到使用 Esperanto 通过 ES6 模块来明确跨文件依赖关系。最后,我们迁移到了我们的 通用发布基础设施,以确保一致的发布。

要开始使用 PEP,您可以从 npmbower (pepjs)jQuery CDNGitHub 发布 获取文件。查看 示例查看项目自述文件 获取更多详细信息。如果您在使用 PEP 时遇到任何问题,请 提交问题 或加入我们在 IRC 上的 #pep on freenode 频道。