Плюрализация строк в Laravel для русского языка
Часто встречается задача выбора окончания для строк во множественном числе. В Laravel есть готовое решение, которое описано в документации, но мне не удалось найти готового примера, который бы работал корректно с русским языком. Вот простое решение, которое покрывает большинство случаев:
{{ trans_choice('Публикация|Публикации|Публикаций', $user->articles->count()) }}
В редких ситуациях могут возникать нюансы, которые нужно решать с помощью уточнения числовых промежутков. Об этом подробнее читайте в документации.
Поделиться
Поделиться
Отправить
Твитнуть
Вотсапнуть
Дополню:
Чтобы функционал заработал, надо для начала создать файл локализации: resources/lang/ru/messages.php
В нем вернуть массив:
return [
'articles' => '{0} нет статей|{1} :count статья|[2,4] :count статьи|[5,*] :count статей',
];
И в шаблонизаторе уже используем trans_choice:
{{ trans_choice ('messages.articles',$user->articles->count (), ['count' => $user->articles->count ()]) }}
В таком случае будет — 21 статей, 102 статей