Столкнулся с такой проблемой, что иногда нужно выводить строки, в которых есть цифры и в зависимости от того, какая цифра будет выводиться, нужно склонять слово, которое идет после числительного.
Например,
5 голосов
3 голоса
…
Удалось найти решение, как можно с помощью шаблонизатора Twig решить эту проблему, создать такую функцию, которая будет автоматически склонять нам слова.
Я создал специальную пользовательскую функцию для Twig, которую назвал rightNumber.
В файле src/Twig/TwigExtension.php. Было добавлена следующая функция.
public function rightNumber($number, $titles)
{ $cases = [2, 0, 1, 1, 1, 2]; return $titles[ ($number%100>4 && $number%100<20)? 2 : $cases[($number%10<5)?$number%10:5] ]; }
Эта функция принимает на вход 2 параметра: число и те заголовки, которые нужно выводить или склонять.
В Twig это выглядит следующим образом:
<p>У вас осталось <span class="userVotes">{{ app.user.uservote }} {{ rightNumber(app.user.uservote, ['голос', 'голоса', 'голосов']) }}</span>.</p>
Вот такой код позволяет склонять числительные в Twig и Symfony. Надеюсь, что это поможет и пригодится. Удачи.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти