Как в 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(' комментарий', ' комментария', ' комментариев')); ?>. |
Хотя так делать и не рекомендуется (используйте файлы локализации).