Склонение комментариев.

Здраствуйте.
Можно ли осуществить склонение слова "комментариев"
1 комментарий
2 комментария
10 комментариев
Если плагин для этого ?

Заранее спасибо.

вообще в нормальные темы вариант 1комментарий и *комментариев автоматом работает
а вариант "2комментария" отстутствует. либо делайте такие фразы чтобы не было разницы.
например так: Комментариев: * (* – число)

Помню, какой-то хак был. Сайт не открывается, но у меня как всегда есть сохр. копия 🙂
Может кото-нибудь плагин из этого состряпает?
Все русские пользователи бы наверно были рады

[quote]“3 комментариев” -> “3 комментария”
Published by
Жилинский Владимир
at 26.05.07 in Хаки.

WordPressНе знаю, как кого, но меня такая грамматика вордпресса напрягала (может в каких-то русских сборках уже сделано – не знаю, я на основе английской официальной делаю).

Решение придумано : в файле wp-includes\comment-template.php переписываем функцию comments_number() в соответствии с русскими правилами:

function om_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)] ];
}
function comments_number() {
global $id;
$number = get_comments_number($id);
$output = om_number($i, Array(‘коментарий’, ‘коментария’, ‘коментариев’)) . "\n";
echo apply_filters(‘comments_number’, $output, $number);
echo "</a>";
}

Перед сохранением убедитесь, что используете кодировку UTF-8 без BOM, иначе угробите движок. Лучше всего пользоваться программой Notepad++.

Автор Хака icoZhilinsky.ru.[/quote]

Аха – попробую на досуге. Спасибо.

Типа такое в functions.php

function om_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)] ];
}

function comments_number_rus($o) {
    if (preg_match('/(\d+)/',$o, $matches)) {
            return om_number($matches[1], Array('комментарий', 'комментария', 'комментариев')) . "\n";
    }
    else return $o;
}

add_filter('comments_number', 'comments_number_rus');

PS За алгоритм склонения ответственности не несу. И ваще не несу.

UPD Грамотеи, блин. Глаз да глаз нужен. :/

Anonymous
Отправить
Ответ на: