Русский язык отличается бОльшим разнообразием грамматических форм, чем английский. Из-за этого предлагаемая Nucleus модель использования слова «комментарий» — единственное \ множественное число — плохо подходит для русскоязычных сайтов. Выход — хак, но хаки лично я не люблю, потому что о них нужно все время помнить. Поэтому для себя я написал маленький плагичик, который выбирант правильную грамматическую форму в зависимости от количества комментариев.
Плагин создает TemplateCommentVar <%WordCommentsRU%>, которая выдает слово "комментарий" в правильной грамматической форме с учетом их (комментариев) количества для текущей записи.
class NP_WordCommentsRU extends NucleusPlugin
{
function getName()
{
return 'WordCommentsRU';
}
function getAuthor()
{
return 'maxirmx';
}
function getURL()
{
return 'http://www.samsonov.net/item/67';
}
function getVersion()
{
return '0.1';
}
function getDescription()
{
return 'This plugin provides correct Russian grammar form for COMMENT_ONE/COMMENTS_MANY word';
}
function doTemplateCommentsVar(&$item, &$comment)
{
$query = 'SELECT count(*) FROM '.sql_tablе('comment').' WHERE '.'citem='.$item->itemid;
$numComments = mysql_result(sql_query($query), 0);
$numComments = $numComments % 100;
if ($numComments > 10 and $numComments < 20) $numKey = 5;
else $numKey = $numComments % 10;
if ($numKey == 1) echo 'комментарий';
else
{
if ($numKey == 0 or $numKey > 4) еcho 'комментариев';
else echo 'комментария';
}
}
function supportsFeature ($what)
{
switch ($what)
{
case 'SqlTablePrefix': return 1;
default: return 0;
}
}
}
?>