问题标签 [ecmascript-intl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6196 浏览

javascript - JavaScript 是否有 i18n (Intl) 垫片?

我正在为ECMAScript Internationalization API寻找垫片。有人知道这样的项目吗?(即使它目前仍在进行中。)

0 投票
2 回答
43463 浏览

javascript - Date.toLocaleString() 的 Chrome 时区选项

我最近发现 JavaScript 有一个新的扩展。这为,和函数 Date中的对象添加了几个特性。参考这里toLocaleStringtoLocaleDateStringtoLocaleTimeString

我对timeZone支持IANA/Olson time zone的选项特别感兴趣,例如America/New_Yorkor Europe/London这目前仅在 Google Chrome 中受支持

以前的建议是,要在 JavaScript 中使用除 UTC 或您自己的本地时区以外的任何其他时区,必须使用 library。但现在,这似乎开始直接整合到浏览器中。所以现在你可以这样做:

或者:

或者:

很酷,但我有几个问题:

  • 这是新标准的一部分吗?也许埋在 ECMAScript 6 的某个地方?或者它只是 Chrome 的自定义功能?
  • 为什么只是谷歌浏览器?它在其他任何地方都支持吗?是否有计划在其他任何地方支持它?
  • 我检查了使用 Chrome 的 JavaScript 运行时的 node.js,但它在那里不起作用。为什么不?
  • 时区数据是否可以通过我列出的功能以外的任何其他方式访问?如果仅在格式化字符串时可用,那么根据结果进行任何计算可能会很困难。
  • 这专注于输出,但我将如何将其用于输入?有没有办法将构造函数中的时区传递给Date对象?我尝试了以下方法:

    都没有奏效。我在规格中找不到任何东西,所以我认为这不存在(还),但如果我错了,请告诉我。

  • 这篇文章中描述的问题是由 ECMAScript 5 规范中的一个缺陷造成的,即使正确的数据在 TZDB 中,它仍然会影响输出。新旧实现如何共存?人们会认为这将是所有旧方式或所有新方式。例如,将我的计算机时区设置为美国东部时间:

    返回"11/6/2004 11:00:00 PM"。它应该返回午夜,因为我从午夜开始并且我的本地时区与输出时区匹配。但由于 ES5 问题,它将提供的输入日期置于错误的 UTC 点。

  • 我可以期待随着 IANA 发布 TZDB 更新,Google 会推送包含这些更改的 Chrome 更新吗?

0 投票
2 回答
3525 浏览

javascript - 国际没有定义火狐

我有以下在 chrome 中运行良好但在 Firefox 和 IE 中失败的 java 脚本代码。FF 的错误消息是 'ReferenceError: Intl is not defined' IE 的错误消息是 'SCRIPT5009: 'Intl' is undefined '

我只是想知道为什么标准对象 Intl 不能在 FF 或 IE 中引用?我错过了什么?

0 投票
2 回答
4183 浏览

javascript - PhantomJS 不支持 Javascript 国际化 API

我有一系列针对使用 ECMAScript 国际化 APIJasmine的服务运行的测试。AngularJs当我通过 Chrome 运行它们时,它们都运行成功。但是,当我PhantomJS通过 maven 运行它们时,它们都失败了,因为它似乎PhantomJs还不支持 Internationalization API。

我使用 Intl 对象进行测试时收到的错误消息是:

1:ReferenceError:找不到变量:localizationService.js 中的 Intl

其余的测试都失败了。

测试很简单,如下所示:

并且服务中的方法(localizationService.js)是 Intl API 的简单包装器:

我的问题是:

1-我的假设是否正确,PhantomJS v1.9.2不支持ECMAScript internationalization API?有没有办法证实这一点?

2-我该如何解决这个问题?我需要通过 maven 运行我的测试,并且我将有更多的测试以一种或另一种方式访问​​我的本地化服务 API。
谢谢

0 投票
1 回答
489 浏览

node.js - 带节点的 ECMAScript 国际化 API

有没有办法将ECMAScript 国际化 API与 nodejs 一起使用?

现在,我只需要时区支持:

它适用于 chrome,但不适用于 node。有没有像 --harmony 这样的选项来激活它?

0 投票
2 回答
2454 浏览

javascript - 有没有办法在 ECMAscript 国际化 API 中获取小数点和千位分隔符?

我正在尝试使用新的Javascript 国际化 API,并且想知道是否有办法获取Intl.NumberFormat实例的小数和千位(分组)分隔符?

对象上有一个resolvedOptions方法,但不提供符号。

如果有人想知道,那么对于 en-US,这些将是逗号,和句点.,例如 in 1,000.00

0 投票
1 回答
1663 浏览

javascript - 来自 HTML5 Intl API 的一周的第一天

有没有办法从 HTML5 国际化 API 获取一周的第一天(大多数国家/地区的星期日或星期一)?

规范可以在这里找到。如果它没有以某种方式披露,我会感到惊讶,但我似乎找不到在哪里。

0 投票
1 回答
1251 浏览

javascript - 自定义国际校对者?

Intl.Collator是否可以为 Javascript创建自定义对象?假设我有:

如果我对它们进行排序,ñ默认情况下会走到最后:

但是,使用 new Intl.Collator,我可以这样做:

哪个按西班牙语 ( es) 规则排序,并放在ñ后面n

现在,假设出于某种原因我想自己写一个Collator,那会是ñ第一个?

我无法找到任何有关为Intl.Collator.

这可能吗?

更新

对的,这是可能的。

更新:

我在 ECMAscript i18n 标准2中找到了关于如何创建自定义语言环境的建议:

0 投票
1 回答
685 浏览

javascript - Intl.NumberFormat#format 最大整数值

ECMAScript Internationalization API 1.0 规范中,NumberFormat对象有一个format函数,它接受一个值并根据NumberFormat对象格式化数字。

NumberFormat#format函数能消化的最大值是多少?

在 Chrome 和 Firefox 中运行如下:

似乎第 15 位之后的任何内容都转换为0. 我快速浏览了规范,但不知道为什么。有谁知道为什么?

可能是因为上面的 ES5 规范遵循 IEEE 754 规范?想不出别的了……</p>

0 投票
2 回答
1523 浏览

javascript - Formatting Date and Time With ECMAScript Internationalization API

I need to have a javascript date/time formatted like:

February 16, 2015 06:31:00 AM

I was going to use toLocaleTimeString with some options, but the code I tried below doesn't seem to work in Chrome.

The output from the above code is February 16, 2015, 6:31 AM

It's close, but no cigar. jQuery is an option as well if it has any better date formatting utilities. jQuery only though, no plugins, please.

Here is a JSFiddle to save some time: https://jsfiddle.net/gxze230b/

After a typo correction, the output string is now: February 16, 2015, 6:31:00 AM