ppalashturov/number-to-words

多语言独立PHP数字转文字转换器。完全测试,开放扩展和新语言。

v0.2 2023-03-03 16:57 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:58:33 UTC


README

Minimum PHP Version GitHub release

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

安装

通过运行以下命令将包添加到您的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的支持。
  • NumberTransformerCurrencyTransformer 接口添加了类型提示。现在它们都只接受整数(可能会影响阿尔巴尼亚语)。
  • 添加了对PSR12的支持。

问题和答案

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

答案:请在GitHub上报告一个问题。同时,您也可以修复它并提交一个pull request。我不懂这个库支持的多数语言,所以您的帮助和贡献将非常受欢迎。谢谢!

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

答案:很抱歉,我很可能不知道您的语言。您可以在GitHub上实现缺失的转换器,并提交一个pull request。您可以查看现有的转换器,并遵循其他语言相同的模式。