我想将 Price:200$ 转换为 Price:Two Hundred$ 之类的单词。
在像这样的树枝中{{价格}},但这是显示号码。
有人知道如何在 Twig 中以文字形式显示这个价格吗?
官方 Twig 扩展库提供的 Intl 过滤器可以拼出数字:
{{ 19.2|localizednumber('spellout') }}
{# Output: nineteen point two #}
要使此过滤器正常工作,需要 PHP intl 扩展,并且必须安装
twig/extensions
软件包。
如果您直接使用 Twig,请像这样注册扩展:
$twig->addExtension(new Twig_Extensions_Extension_Intl());
如果您使用 Symfony,请注册此服务:
services:
Twig_Extensions_Extension_Intl:
class: Twig_Extensions_Extension_Intl
private: true
tags:
- { name: twig.extension }
如果不添加此功能,Twig 将不会显示任何拼写的内容。查看 craue 的 TwigExtensionsBundle,它包含一个带有用于拼写数字的过滤器的 Twig 扩展。
https://github.com/craue/TwigExtensionsBundle
用途:
spelled out number: {{ price | craue_spellout }}
根据 twigphp/twig-extensions 官方文档,twigphp/twig-extensions 现已弃用。然而,有一个很好的替代方案。
对于 Twig 3.X,可以使用 format_number 过滤器,如 官方 twig 文档中所述。
但是,这个过滤器默认情况下不可用,所以我们需要在我们的项目中安装它:
composer require twig/intl-extra
此外,我们还需要安装:
composer require twig/extra-bundle
之后,在我们的twig文件中,我们可以简单地使用快捷方式过滤器format_spellout_number
{{ sale.total | format_spellout_number }}
瞧!