Выбираем окончания для существительных с количественным числительным
В русском языке существительные с количественным числительными могут быть в единственном, двойственном и множественном числе: один голос, два голоса, пять голосов (двойственное число — это почти исчезнувшая в русском языке грамматическая конструкция).
Я привык называть эти три формы следующим образом: «форма единицы», «форма двойки», «форма пятёрки».
Чтобы правильно просклонять существительное с количественным числительным, я наваял нечто подобное
function endingsForm($n, $form1, $form2, $form5) {
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}
// пример
echo 'Статья оценена в '.$n.' '.endingsForm($n, 'голос', 'голоса', 'голосов');
Чтобы просклонять существительные на других языках, воспользуйтесь данным материалом


Более лаконичный вариант, переведенный из
gettextнаphp:<?php function plural_form( $n, $forms ) { return $n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&$n%100=20)?$forms[1]:$forms[2]); } ?>Так это абсолютно тоже самое, только записанное в одну строку )
слово «лаконичный» не говорит о том, что вариант должен быть другим
Согласен, но я за понятный код! Ваш код сложнее для понимания, хотя и короче:)