Плюрализация в Laravel

При выводе сообщений, зависящих от значения параметра, нам зачастую нужно выбрать правильную форму слова. Например, в английском языке мы пишем "one apple", но "apples apples".

Laravel поддерживает такой механизм выбора. Этот механизм называется плюрализация.

Давайте рассмотрим на примере. Создадим в файле локализации сообщение, которое будет иметь две формы: для одного яблока и для многих яблок. Эти формы разделяются вертикальной чертой |:

lang/en/test.php<?php
  return [
    'apples' => 'one apple|many apples',
  ];
?>

Для вывода таких сообщений используется специальная функция trans_choice. Первым параметром она принимает имя сообщения, а вторым - число, на основе которого Laravel определит, какую форму использовать: единственную или множественную.

Давайте выведем сообщение, передав число 1. В этом случае Laravel выберет первую часть до вертикальной черты:

resources/views/test/index.blade.php<p>
  {{ trans_choice('test.apples', 1) }}
</p>

В этом случае браузере мы увидим правильную форму слова (но без числа):

html<p>
  apple
</p>

А теперь передадим число 2. Laravel увидит, что число не равно единице, и выберет вторую часть после вертикальной черты:

resources/views/test/index.blade.php<p>
  {{ trans_choice('test.apples', 2) }}
</p>

В результате в браузере мы увидим:

html<p>
  apples
</p>
Задание 1

Сделайте сообщение о количестве комментариев. Реализуйте две формы: для одного комментария и для нескольких комментариев. Выведите обе формы в представлении.