NumberFormatter с единственным / множественным числом слова - PullRequest
0 голосов
/ 05 мая 2018

Можно ли использовать класс PHP NumberFormatter для отображения слов в единственном или множественном числе в зависимости от числового значения, используя метод setPattern?

Этот метод использует библиотеку ICU DecimalFormat, но я не знаком с ней.

Я хотел бы использовать множественное число в слове page, если значение больше 1:

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

1 Ответ

0 голосов
/ 05 июня 2018

Шаблон 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);
...