我正在建立一个处理货币的多语言网站。我希望能够根据所选语言显示正确的货币格式。服务器端 PHP 的东西是轻而易举的。使用 PHP NumberFormatter 和 strftime 的组合,我已经能够正确设置货币和日期的格式。
但是,需要在客户端使用 JavaScript 进行相同程度的格式化。
我遇到了 Globalization(以前的 jQuery 插件),它看起来很有前途。
如果我想用美式英语显示美元值(value),我可以这样做:
jQuery.preferCulture("en-US");
// Formatting price
var price = jQuery.format(3899.888, "c");
//Assigning stock price to the control
jQuery("#price").html(price);
这将输出:
$3,899.89
在做的时候:
jQuery.preferCulture("fr-FR");
// Formatting price
var price = jQuery.format(3899.888, "c");
//Assigning stock price to the control
jQuery("#price").html(price);
输出:
3 899,89 €
看起来很完美。但是,我需要输出多种货币。因此,如果我选择“fr-FR”作为我的首选文化,我该如何输出,例如,像这样的美元值:
3 899,89 $
这样格式是法文,但值是美元。我已经查看过,但没有找到将货币符号作为参数传递的方法。
最佳答案
only documented way在 Globalize 中修改货币符号就是更改给定区域性的 numberFormat.currency.symbol
属性(在本例中为 fr-FR
区域性)。这会做你想做的事情,但这不是一个非常优雅的解决方案,你需要为每个语言环境手动构建一个正确符号表,并编写另一个方法来交换它们。 (注意:可以使用不同的区域设置标识符将第三个参数传递给 Globalize.format,但这只是使用该区域的文化设置来格式化数字。) culture definition syntax ,根本没有提供使用给定区域设置显示不同货币的规定。
如果您要看看其他地方,dojo/currency Dojo Toolkit 中的模块确实可以使用来自 Unicode Common Locale Data Repository 的数据来满足您的需要。确定如何在不同区域设置中表示各种货币。因此,您可以将语言环境设置为 fr,编写 currency.format(3899.888, {currency: "USD"})
,它将以正确的方式输出美元货币法语语言环境的格式。
关于javascript - jQuery 全局化。将货币单位作为 C 格式的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324496/