среда, 1 февраля 2012 г.

Склонение существительных после числительных.

Приятнее, когда программа общается с вами человеческим языком, а не раздражающим "у вас 10 сообщения". А ведь правильно склонять слова не так уж и сложно.

Короткое решение, взятое отсюда и адаптированное под использование с php.
$word = array('комментарий', 'комментария', 'комментариев');
$plural=($count%10==1 && $count%100!=11) ? 0 : ($count%10>=2 && $count%10<=4 && ($count%100<10 || $count%100>=20) ? 1 : 2);
echo $count . ' ' . $word[$plural];

По массиву видно какие формы слова должны быть, но поясню:
0 => слово при 1, или "один"
1 => 2 или "два"
2 => 5 или "много"

Т.е.
один (1) - комментарий,
два (2) - комментария,
много (5) - комментариев.

Решение однострочное, можно внедрить в какой угодно фреймворк/CMS.

Комментариев нет:

Отправить комментарий