处理全球化的项目时,管理国家和货币列表及其格式化方式可能很复杂。 country-currency-utils npm 包应运而生,它以 TypeScript 编写,旨在简化这个过程,无论是在前端还是后端。该包避免在代码库中直接包含庞大的国家/地区和货币数据,而是通过 CDN 获取这些数据,从而保持代码简洁。
国家数据
国家数据通过 countries_details_url 变量访问,返回一个键值对对象,键为双字母 ISO 国家代码,值为包含国家名称、拨号代码、货币代码和国旗表情符号的对象。 包中提供以下函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type tcountrydetails = {
name: string;
dialcode: string;
currencycode: string;
flagemoji: string;
};
type tcountrydata = tcountrydetails & {
countrycode: string;
};
getallcountrydetails(): Promise<Record<string, tcountrydetails>>;
getallcountrydata(): Promise<tcountrydata[]>;
getcountrydata(countrycode: string): Promise<tcountrydata | undefined>;
getcountriesdata(countrycodes: string[]): Promise<tcountrydata[]>;
这些函数允许轻松检索单个国家或多个国家的数据。
货币数据
类似地,货币数据通过 currencies_details_url 变量访问。 它包含一个键值对对象,键为 ISO 货币代码,值为包含货币名称、符号(本地和标准)、小数位数、数字分组等详细信息的对象。 相关的函数如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
type tcurrencydetails = {
name: string;
demonym: string;
majorsingle: string;
majorplural: string;
symbol: string;
symbolnative: string;
symbolpreferred: string;
minorsingle: string;
minorplural: string;
decimals: number;
decimalscompact: number;
digitgrouping: 2 | 3;
};
type tcurrencydata = tcurrencydetails & {
currencycode: string;
};
getallcurrencydetails(): Promise<Record<string, tcurrencydetails>>;
getallcurrencydata(): Promise<tcurrencydata[]>;
getcurrencydata(currencycode: string): Promise<tcurrencydata | undefined>;
getcurrenciesdata(currencycodes: string[]): Promise<tcurrencydata[]>;
这些函数允许获取单个或多个货币的详细信息。
金额格式化工具
该包提供了强大的金额格式化工具,处理小数位数、货币符号和数字分组:
四舍五入: getroundedamount 和 getroundedamountoncurrency 函数分别根据指定小数位数或货币规则对金额进行四舍五入。
金额格式化: getformattedamountoncurrency 函数根据货币规则格式化金额,包括添加逗号分隔符。
金额显示: getdisplayamountoncurrency 和 getDisplayAmountOnCurrencyCode 函数将格式化的金额与货币符号组合,并提供选项来控制符号类型(标准或本地)和分隔符。
总结
country-currency-utils 提供了一种高效且易于使用的方法来管理国家和货币数据,并格式化货币金额,从而简化国际化项目的开发。 如果您需要处理多种货币和国家/地区,这个包值得一试。 请访问 GitHub 仓库了解更多信息。