Flector

Как в php правильно склонять русские слова после чисел?

Примеры склонения слов

Перед разработчиками очень часто встает задача правильного склонения русских слов после чисел. Если вы пишите плагин или тему под WordPress, то эту задачу можно переложить на файлы локализации (там можно прописать различные формы в соответствии с выбранным языком локализации). Но как правильно склонять слова без файлов локализации? Предлагаю вам использовать такую функцию:

//функция склонения слов после числа start
function dec_russian_number($number, $titles) {  
    $cases = array (2, 0, 1, 1, 1, 2);  
    return $number . " " . $titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ];  
}  
//функция склонения слов после числа end

Использовать ее крайне просто:

echo dec_russian_number(22, array(' раз', ' раза', ' раз')) . ', ';
echo dec_russian_number(11, array(' раз', ' раза', ' раз')) . ', ';
echo dec_russian_number(17, array(' раз', ' раза', ' раз'));

С помощью этой функции, например, можно правильно склонять слово "комментарий" после числа комментариев записи:

Всего у записи <?php echo dec_russian_number(get_comments_number(), 
array(' комментарий', ' комментария', ' комментариев')); ?>.

Хотя так делать и не рекомендуется (используйте файлы локализации).


Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!