ppalashturov / number-to-words
多语言独立PHP数字转文字转换器。完全测试,开放扩展和新语言。
v0.2
2023-03-03 16:57 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.5.6
- squizlabs/php_codesniffer: ^3.6.0
This package is not auto-updated.
Last update: 2024-09-28 18:58:33 UTC
README
这个库允许您将数字转换为文字。
安装
通过运行以下命令将包添加到您的composer.json中:
$ composer require ppalashturov/number-to-words
使用方法
此库目前有两种数字转文字转换类型:数字和货币。为了使用特定语言的特定转换器,您需要创建一个 NumberToWords
类的实例,然后调用创建转换器新实例的方法;
数字转换器
在使用转换器之前,必须创建它
use NumberToWords\NumberToWords; // create the number to words "manager" class $numberToWords = new NumberToWords(); // build a new number transformer using the RFC 3066 language identifier $numberTransformer = $numberToWords->getNumberTransformer('en');
然后可以通过传递数值给 toWords()
方法来使用它
$numberTransformer->toWords(5120); // outputs "five thousand one hundred twenty"
您还可以使用静态方法
NumberToWords::transformNumber('en', 5120); // outputs "five thousand one hundred twenty"
货币转换器
创建货币转换器的工作方式与数字转换器相同。
use NumberToWords\NumberToWords; // create the number to words "manager" class $numberToWords = new NumberToWords(); // build a new currency transformer using the RFC 3066 language identifier $currencyTransformer = $numberToWords->getCurrencyTransformer('en');
然后可以通过传递金额的数值和ISO 4217货币标识符给 toWords()
方法来使用它
$currencyTransformer->toWords(5099, 'USD'); // outputs "fifty dollars ninety nine cents"
您还可以使用静态方法
NumberToWords::transformCurrency('en', 5099, 'USD'); // outputs "fifty dollars ninety nine cents"
请注意,货币转换器接受整数作为转换的金额。这意味着如果您将金额存储为浮点数(例如4.99),则需要将它们乘以100,并将整数(499)作为参数传递。
可用区域设置
贡献者
许多转换器是从 pear/Numbers_Words
库移植过来的。其中一些是由 贡献者 从头创建的。谢谢!
版本2.x - 兼容性和主要变更
- 放弃了对PHP <7.4的支持。
- 为
NumberTransformer
和CurrencyTransformer
接口添加了类型提示。现在它们都只接受整数(可能会影响阿尔巴尼亚语)。 - 添加了对PSR12的支持。
问题和答案
问题:我发现了一个错误。我应该做什么?
答案:请在GitHub上报告一个问题。同时,您也可以修复它并提交一个pull request。我不懂这个库支持的多数语言,所以您的帮助和贡献将非常受欢迎。谢谢!
问题:我的语言缺失。您能为我添加它吗?
答案:很抱歉,我很可能不知道您的语言。您可以在GitHub上实现缺失的转换器,并提交一个pull request。您可以查看现有的转换器,并遵循其他语言相同的模式。