$n=21; $p=$n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2;
почему $ p = 2? предполагается, что это $ p = 0! это ошибка или я чего-то упускаю?
Я получил это, пытаясь получить форму множественного числа для русского языка на: http://www.gnu.org/s/hello/manual/gettext/Plural- forms.html