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