Явные диапазоны плюрализации в Laravel
В предыдущих примерах мы использовали только две формы: для единственного и множественного числа. Однако в некоторых случаях нам может потребоваться более детальное разделение. В Laravel можно явно указывать диапазоны чисел, для которых будет выбираться та или иная форма. Диапазон записывается в фигурных скобках перед строкой.
Давайте рассмотрим пример.
Создадим сообщение с тремя формами:
для нуля, для единицы и для всех
остальных чисел. Диапазон [2,*]
означает "от двух и больше":
<?php
return [
'apples' => '{0} nothing|{1} one|[2,*] many',
];
?>
Теперь функция trans_choice будет
выбирать форму в зависимости
от переданного числа. Давайте
проверим это для разных значений:
<p>
{{ trans_choice('test.apples', 0) }}<br>
{{ trans_choice('test.apples', 1) }}<br>
{{ trans_choice('test.apples', 2) }}<br>
{{ trans_choice('test.apples', 3) }}
</p>
В результате в браузере мы увидим:
'nothing' для нуля, 'one'
для единицы и 'many' для чисел 2 и более.
Таким образом можно задавать произвольное
количество диапазонов для точной
настройки плюрализации.
Сделайте сообщение о количестве дней с четырьмя формами: для нуля, для одного, для двух-четырех и для пяти и более дней. Проверьте работу для разных чисел.