phpviet / symfony-number-to-words
支持将数字转换为越南语的文字表示
1.0.0
2019-06-08 16:41 UTC
Requires
- php: ^7.1
- phpviet/number-to-words: ^1.0
- symfony/framework-bundle: ^4.3
Requires (Dev)
- nyholm/symfony-bundle-test: ^1.4
- phpunit/phpunit: ~7.5
- scrutinizer/ocular: ^1.5
- symfony/twig-bundle: ^4.3
This package is auto-updated.
Last update: 2024-09-15 17:19:05 UTC
README
Symfony Number To Words
信息
Symfony number to words 支持将数字转换为越南语的文字表示。
安装
- 通过 Composer 安装 Symfony Number To Words
composer require phpviet/symfony-number-to-words
- 接下来,在
config/bundles.php
中声明 bundle
// config/bundles.php return [ ..... PHPViet\Symfony\NumberToWords\Bundle::class => ['all' => true] ];
使用方法
extension 的功能
将数字转换为文字
- 通过服务
n2w
使用
// âm năm $container->get('n2w')->toWords(-5); // năm $container->get('n2w')->toWords(5); // năm phẩy năm $container->get('n2w')->toWords(5.5);
- 在
twig
中使用n2w
过滤器
// mười lăm {{ 15 | n2w }}; // một trăm linh năm {{ 105 | n2w }}; // hai mươi tư {{ 24 | n2w }};
将数字转换为货币
- 通过服务
n2w
使用
// năm triệu sáu trăm chín mươi nghìn bảy trăm đồng $container->get('n2w')->toCurrency(5690700);
- 在
twig
中使用n2c
过滤器
// chín mươi lăm triệu năm trăm nghìn hai trăm đồng {{ 95500200 | n2c }};
此外,我们还可以通过 toCurrency
方法和 n2c
过滤器的第二个参数使用其他货币单位,其中数组的第一个元素是整数的单位,其次是分数的单位
// sáu nghìn bảy trăm bốn mươi hai đô bảy xen $container->get('n2w')->toCurrency(6742.7, ['đô', 'xen']); // chín nghìn bốn trăm chín mươi hai đô mười lăm xen {{ 9492.15 | n2c(['đô', 'xen']) }};
改变数字的读法
如果您对上面的读法感到满意,则可以跳过此步骤。
首先,为了改变数字的读法,您需要在 config/packages
中创建一个 n2w.yaml
配置文件,内容如下
n2w: defaults: dictionary: 'standard' dictionaries: standard: 'n2w_standard_dictionary' south: 'n2w_south_dictionary'
现在,请将默认的 standard
改为 south
,所有数字到文字和货币的转换将按照南方的风格读取
// một trăm linh một => một trăm lẻ một $container->get('n2w')->toWords(101); // một nghìn => một ngàn $container->get('n2w')->toWords(1000); // hai mươi tư => hai mươi bốn $container->get('n2w')->toWords(24); // một trăm hai mươi tư nghìn không trăm linh một đồng => một trăm hai mươi bốn ngàn không trăm lẻ một đồng $container->get('n2w')->toCurrency(124001);
或者您想更加灵活地使用,则可以指定字典
// một trăm hai mươi tư nghìn không trăm linh một {{ 124001 | n2w }}; // một trăm hai mươi bốn ngàn không trăm lẻ một {{ 124001 | n2w('south') }};
如果您想根据您的意愿改变读法,则可以创建一个继承自 PHPViet\NumberToWords\Dictionary
的 Dictionary
类,或者实现抽象类 PHPViet\NumberToWords\DictionaryInterface
use PHPViet\NumberToWords\Dictionary; use PHPViet\NumberToWords\Transformer; class MyDictionary extends Dictionary { /** * @inheritDoc */ public function specialTripletUnitFive(): string { return 'nhăm'; } }
然后注册一个服务,例如,我们将代表 MyDictionary
的服务命名为 app.my
,然后声明 n2w.yaml
文件如下
n2w: defaults: dictionary: 'myDictionary' dictionaries: standard: 'n2w_standard_dictionary' south: 'n2w_south_dictionary' myDictionary: 'app.my'
现在尝试一下
// mười nhăm $container->get('n2w')->toWords(15);
面向开发者
如果您觉得 extension 仍有不足或错误,并想共同开发,我们非常欢迎!请创建 issue
来提出下一版本的改进建议,或者创建 PR
来贡献。谢谢!