kwn/number-to-words

多语言独立PHP数字转文字转换器。经过全面测试,支持扩展和新语言的添加。

2.10.0 2024-09-18 20:08 UTC

README

CircleCI Code Climate Test Coverage Latest Stable Version

欢迎使用 number-to-words,一个PHP工具,可以无缝地将数值转换为对应的文字。只需几行代码,轻松将数字(如123)转换为如“一百二十三”这样的表达性和可读性强的格式。

安装

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

$ composer require kwn/number-to-words

使用方法

数字转文字转换有两种类型:数字和货币。为了使用特定语言的相应转换器,请创建一个NumberToWords类的实例,并调用创建所需转换器实例的方法;

数字转换器

使用getNumberTransformer('lang')方法创建特定语言的转换器

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"

注意:本库中的货币转换器处理整数;确保您的输入金额是整数,通过在转换之前将任何浮点值乘以100。例如,使用4567作为输入将45.67转换为准确的货币转换。

可用区域

贡献者

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

版本2.x - 兼容性和主要更改

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

问题和答案

问:如果在使用库时遇到错误,我该怎么做?

答:如果您发现错误,请在我们GitHub存储库上打开一个问题。由于我可能不是所有语言都精通,我们鼓励用户提交修复并与我们合作以增强库的功能。

问:我的语言缺失。它能被添加吗?

答:我可能不知道您的语言。请随意实现缺失的语言并打开一个pull request。您可以使用现有的语言作为参考。