格式化本地货币
不同国家和语言的货币格式不同。
有一个货币格式框架:
- 帮助更多的商家实现全球销售
- 为各地的商家和客户本地化货币格式
- 统一混合货币的显示,帮助商家管理多个货币商店
- 通过api实现格式化
定义
一个商店可以有多种类型的货币和货币格式。
存储货币
商店的主要货币和Shopify默认。所有的销售和报告都以商店货币显示。
店铺的货币
任何其他类型的货币都被称为“非商店货币”。非商店货币的类型包括:
- 提示货币:在商店中向买方提示的货币类型。对于多货币商店,它可以不同于商店货币。
- 支付货币:用于支付商家销售的货币类型。对于多货币商店,它可以不同于商店货币。
- 计费货币:用于向商家支付主题、应用购买和月订阅费用的货币类型。账单货币仅为美元,但出于税收考虑可能包括当地货币。
短格式
包括货币符号和货币价值。这种格式用于商人熟悉的货币。
例子:$ 12.50;12日,50€
显式格式
包括货币符号、货币值和ISO代码(例如,“USD”和“CAD”)。最好用于商人不熟悉也不希望看到的货币。
例子:$ 12.50 CAD;12日,50欧元€
与全球标准保持一致
Shopify使用公共地区数据库储存库(CLDR)用于货币、日期、时间和金额的本地化格式化。
- 这是国际公认的标准
- 它会根据商家的地区自动格式化数字和货币
- 存储库由第三方维护
系统的确定:
- 货币符号出现在金额之前还是之后(例如$250、250 USD、250 $)
- 是否使用小数(例如,在日元中没有“分”)
- 小数点符号是句点还是逗号(例如,37,50或37.50)
- 如何对数字进行分组(例如,10,000或10,0000,或使用空格)
CLDR不能确定在不同上下文中显示的适当细节级别。例如,它不能确定何时显示货币符号和值(短格式),或货币符号、价值及国际编码(显式格式).
尽管短格式更有效,但对于在多币种商店中处理不熟悉货币的商人来说,提供清晰的格式非常重要。在这些情况下,使用显式格式。
设计指导方针
由于CLDR格式是有限的,因此这些指导原则将帮助您选择在多货币上下文中显示的适当级别的货币详细信息。
商人
存储货币
店铺的货币
- 在显示总额、按钮内的金额或段落中使用显式格式
- 使用简短的格式显示非总金额和总金额
此示例显示了一个场景,其中显示的货币是美元,而不是商店货币。支付状态卡中的非总金额为短格式,总金额为显式格式。
这个例子展示了一个用非商店货币偿还订单的场景。
这个例子说明了如何在数据表中对非总额使用短格式,对总额使用显式格式。
负的金额显示
无论哪种格式,都要在货币和金额前面加上负号。
做
- - 4.20美元
- -12年,50€
不
- -4.20美元
- 12日,50€-
客户
- 每当价格面向客户时,默认为显式格式。使用短格式的单价,分项价格和分期价格。
- 如果有足够的指标让客户知道他们在看哪种货币,那么简短的格式可能就足够了。在使用简短格式时,确保始终使用明确的格式显示购物车总数、结帐总数和通知总数。
这个例子展示了分期付款价格的简短格式的使用。
这个例子展示了单价的简短格式的使用。
这个例子展示了简短格式对分项价格的使用。
设计决策时的指导性问题
在决定货币格式时,请使用以下问题作为指导。
商人知道他们要看的是哪种货币吗?
- 他们希望看到哪种货币?
- 如果他们有一个多种货币的商店,他们知道他们的订单是哪种货币吗?
货币格式是否支持商家的主要任务?
- 主要任务是扫描、比较和分析,还是采取行动(例如,退款)?
是否有足够的细节来做出明智的决定?
- 例如,他们是否知道他们的非商店货币订单退款的货币?
- 如果商店货币和支付货币不同,他们能区分销售报告和支付汇总吗?
是否可以在不造成混乱的情况下简化UI ?
我们不想表现出来显式格式每一个地方,每一项任务。
- 我们如何使货币格式既简单又准确?
设计技巧
模拟一个场景,其中存储、显示、支付和账单货币是不同的。随着越来越多的商家开始在全球销售,这种情况变得越来越普遍。OB欧宝娱乐APP
使用具有相同符号的货币来测试清晰度
美元、加元、澳元、港币、新币只是许多货币中使用相同符号“美元”的少数几种。
使用日元(JPY)的数量来测试货币长度和空间的限制
1美元大约等于100日元。如果有足够的空间容纳日元,它应该适用于大多数其他主要货币。
当有疑问时,让指导性问题帮助你做出决定
指导性问题旨在帮助在用例不清楚的情况下,对使用哪种格式做出以商家为中心的决定。
当地格式的主要货币
下表以简短和显式格式显示常用货币。
货币 | 语言环境 | 短格式 | 显式格式 |
---|---|---|---|
美元($,USD) | en - us | 12.50美元 | 12.50美元 |
加元($,CAD) | en-CA | 12.50美元 | 12.50美元的计算机辅助设计 |
fr - ca | 12日,50美元 | 12日,50美元CAD | |
澳元($,AUD) | en-AU | 12.50美元 | 12.50美元AUD |
欧元(€,欧元) | de-DE, - fr | 12日,50€ | 12日,50欧元€ |
en-IE | €12.50 | €12.50欧元 | |
nl-NL | €12日50 | €12日50欧元 | |
英镑(£,GBP) | en - | £12.50 | £12.50英镑 |
日元(¥,JPY) | ja-JP | ¥1250 | ¥1250日元 |
新西兰元($,NZD) | en-NZ | 12.50美元 | 12.50美元NZD |
港元($,HKD) | zh-HK | 12.50美元 | 港币12.50美元 |
新加坡元($,SGD) | zh-SG | 12.50美元 | SGD 12.50美元 |
丹麦克朗(克朗,丹麦克朗) | da-DK | 12日,50 kr。 | 12日,50 kr,消退 |
实现
要在React组件中格式化货币,请使用Shopify / react-i18n
图书馆的formatCurrency
方法。你可以选择短
或显式的
通过设置形式
选项,如下面的代码示例所示。
例子进口{useI18n}从“@shopify / react-i18n”;常量[i18n]=useI18n();i18n.语言环境=“de-AT”;常量eurDeAt=i18n.formatCurrency(价格,{货币:“欧元”,形式:“短”,});常量eurDeAtExp=i18n.formatCurrency(价格,{货币:“欧元”,形式:“明确”,});