具有单数/复数字的NumberFormatter

时间:2018-05-05 16:40:34

标签: php number-formatting icu

是否可以使用PHP NumberFormatter类以单数或复数形式显示单词,具体取决于使用setPattern方法的数字值?

此方法正在使用ICU DecimalFormat库,但我不熟悉它。

当值大于1时,我想在page字上使用复数:

$sizeFormatter = new NumberFormatter('fr_FR', NumberFormatter::DECIMAL);
$sizeFormatter->setPattern('#0.# page(s)');

1 个答案:

答案 0 :(得分:0)

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);