Seb*_*300 6 php icu number-formatting
是否可以使用PHP NumberFormatter类以单数或复数形式显示单词,具体取决于使用该setPattern方法的数值?
这个方法正在使用ICU DecimalFormat库,但我不熟悉它.
page当值大于1时,我想在单词上使用复数:
$sizeFormatter = new NumberFormatter('fr_FR', NumberFormatter::DECIMAL);
$sizeFormatter->setPattern('#0.# page(s)');
Run Code Online (Sandbox Code Playgroud)
DecinalFormat 的模式支持通过数字符号选择子模式。所以你可以使用一些小技巧$number > 1 ? $number : -$number来设置单数/复数单词。输出数字将为正。
$sizeFormatter = new NumberFormatter('fr_FR', NumberFormatter::DECIMAL);
$sizeFormatter->setPattern('0 pages; 0 page');
$number = 3;
echo $sizeFormatter->format($number > 1 ? $number : -$number);
Run Code Online (Sandbox Code Playgroud)