bobbydum/number-to-words

多语言独立PHP数字转文字转换器。完全测试,欢迎扩展和新语言加入。

2.2.6 2022-02-23 10:37 UTC

README

Travis Code Climate Test Coverage Latest Stable Version

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

安装

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

$ composer require bobbydum/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"

货币转换器

创建货币转换器的工作方式与数字转换器相同。

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');

然后可以使用传递给toWords()方法的金额和ISO 4217货币标识符来使用它

$currencyTransformer->toWords(5099, 'USD'); // outputs "fifty dollars ninety nine cents"

$options = new CurrencyTransformerOptions();
$options->setShowFractionIfZero(true);
$options->setConvertFraction(false);
$currencyTransformer->toWords(5000,Language::getCurrentCurrency(),$options); // outputs "fifty dollars 00 cents"

请注意,货币转换器接受整数作为转换金额。这意味着如果您将金额存储为浮点数(例如4.99),则需要将它们乘以100,并将整数(499)作为参数传递。

可用区域

贡献者

许多转换器都是从pear/Numbers_Words库移植过来的。其中一些是由贡献者从头创建的。谢谢!

版本2.x - BC和主要更改

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

问题和答案

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

答案:请向GitHub报告问题。同时,您也可以修复它并打开一个pull request。我不太了解这个库支持的许多语言,所以您的帮助和贡献将非常感激。谢谢!

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

答案:很遗憾,我可能不太了解您的语言。您可以为缺失的转换器实现代码并打开一个pull request。您可以查看现有的转换器,并遵循其他语言相同的模式。