neolinks/number-to-words

多语言独立PHP数字转文字转换器。经过全面测试,欢迎扩展和新语言。

v1.12.3 2023-02-08 14:19 UTC

README

Travis Code Climate Test Coverage Latest Stable Version

此库允许您将数字转换为文字。

安装

通过运行以下命令将包添加到您的 composer.json 中:

$ composer require kwn/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 - BC 和主要更改

  • 放弃了对 PHP <7.4 的支持。
  • NumberTransformerCurrencyTransformer 接口添加了类型提示。现在它们都只接受整数(阿尔巴尼亚语可能受到影响)。
  • 添加了对 PSR12 的支持。

问题和答案

问题:我发现了错误。我应该怎么办?

答案:请在 GitHub 上报告问题。同时,您可以自由修复它并打开一个拉取请求。我不了解该库支持的许多语言,所以您的帮助和贡献将非常受欢迎。谢谢!

问题:我的语言缺失。你能为我添加它吗?

答案:很遗憾,我可能不了解您的语言。您可以自由实现缺失的转换器并打开一个拉取请求。您可以查看现有的转换器,并遵循其他语言的相同模式。