Node.js 如何将本地化添加到节点环境中,以便测试与浏览器行为匹配?
我正在编写一个使用JSI18NAPI的格式化函数测试Node.js 如何将本地化添加到节点环境中,以便测试与浏览器行为匹配?,node.js,internationalization,jsdom,Node.js,Internationalization,Jsdom,我正在编写一个使用JSI18NAPI的格式化函数测试 (5).toLocaleString('en-ca', {style: 'currency', currency: 'CAD'}) 在浏览器中,我得到了$5.00,正如我所期望的那样 在jest测试(节点8.9.1+jsdom)中,我得到CA$5.00 由于指定的区域设置是加拿大,因此它应该是$5.00CA$5.00将有意义,从而指定外币 这种行为在ECMAscript实现中似乎有所不同。迄今为止的测试表明: jest/jsdom/nod
(5).toLocaleString('en-ca', {style: 'currency', currency: 'CAD'})
在浏览器中,我得到了$5.00
,正如我所期望的那样
在jest测试(节点8.9.1+jsdom)中,我得到CA$5.00
由于指定的区域设置是加拿大,因此它应该是$5.00
<如果区域设置为“en-us”,则代码>CA$5.00将有意义,从而指定外币
这种行为在ECMAscript实现中似乎有所不同。迄今为止的测试表明:
- jest/jsdom/node总是将CA添加到CAD中
- Chrome、Safari和Firefox仅在区域设置未设置为Canada时添加
- 我从不加
fr ca
而言,差异更大:
(5).toLocaleString('fr-ca', {style: 'currency', currency: 'CAD'})
\\ node: `CA$ 5.00` (incorrect).
\\ browser: `5,00 $` (correct)
我怀疑测试运行在任何环境中(可能是我的nvm管理版本的节点)都没有“fr ca”的本地化,或者可能在
en US
之外的任何本地化。我想让我们的测试与浏览器匹配,这样他们就可以。。。测试。我用一些澄清更新了问题。在加拿大(与其他任何国家类似),我们公布的是国外价格,而不是当地价格。虽然我一直看到它是以USD/CAD的形式编写的,但不像javascript那样是以CA$/US$的形式编写的。