IPB

Здравствуйте, Гость ( Вход | Регистрация )

> ХАК: коментарии по-русски, с парвильными окончаниями
dodger
сообщение Dec 13 2006, 11:58 AM
Сообщение #1


Advanced Member
***

Группа: User
Сообщений: 38
Регистрация:
26-September 06
Пользователь №: 954



Хак, для комментариев.
Т.к. в русском языке числительные делятся условно не на две, как в английском, категории (один или много), а на три (один, от 2 до 4, и 5 и более).
Я решил модифицировать Нуклеус этим хаком в области комменатриев, чтобы писалось по-русски:
1 комментарий
2, 3, 4 комментария
5 и более комментариев
Вот собственно хак:
Открываем /nucleus/libs/ADMIN.PHP
(строка ~ 3550):
Код

$this->_templateEditRow($template, _TEMPLATE_CMANY, 'COMMENTS_MANY', 'commentwords', 80);

После нее добавляем:
Код

//russian comments' start
    $this->_templateEditRow($template, _TEMPLATE_CMANYMORE, 'COMMENTS_MANYMORE', 'commentwords', 300);
//russian comments' end

(строка ~ 3667):
Код

$this->addToTemplate($templateid, 'COMMENTS_MANY', postVar('COMMENTS_MANY'));

После нее добавляем:
Код

//russian comments' start
$this->addToTemplate($templateid, 'COMMENTS_MANYMORE', postVar('COMMENTS_MANYMORE'));
//russian comments' end          

Открываем /nucleus/libs/COMMENTS.PHP
(строка ~ 361):
Код

function parse_commentword() {
        if ($this->commentsObj->commentcount == 1)
            echo $this->template['COMMENTS_ONE'];
        else
            echo $this->template['COMMENTS_MANY'];
    }    

Заменяем на:
Код

//russian comments' start
function parse_commentword() {
        if(strlen($this->commentsObj->commentcount)==1){
            if ($this->commentsObj->commentcount == 1)
                echo $this->template['COMMENTS_ONE'];//1 комментарий
            if ($this->commentsObj->commentcount == 2 OR $this->commentsObj->commentcount == 3 OR $this->commentsObj->commentcount == 4)
                echo $this->template['COMMENTS_MANY'];//2,3,4 комметария
            if ($this->commentsObj->commentcount >= 5 AND $this->commentsObj->commentcount <= 20)
                echo $this->template['COMMENTS_MANYMORE'];// 5 - 9 комментариев
        }//end if 1 digit
        if(strlen($this->commentsObj->commentcount)==2 AND $this->commentsObj->commentcount <= 20){
            echo $this->template['COMMENTS_MANYMORE'];// 10 - 20 комментариев
        }
        if(strlen($this->commentsObj->commentcount)>=2 AND $this->commentsObj->commentcount >= 21){
            if (substr($this->commentsObj->commentcount,-1,1) == 1)
                echo $this->template['COMMENTS_ONE'];//1 комментарий
            if (substr($this->commentsObj->commentcount,-1,1) == 2 OR substr($this->commentsObj->commentcount,-1,1) == 3 OR substr($this->commentsObj->commentcount,-1,1) == 4)
                echo $this->template['COMMENTS_MANY'];//2,3,4 комметария
            if (substr($this->commentsObj->commentcount,-1,1) >= 5 OR substr($this->commentsObj->commentcount,-1,1) == 0)
                echo $this->template['COMMENTS_MANYMORE'];// 5 - 20 комментариев
        }//end if 2 or more digits
    }
//russian comments' end          

Открываем /nucleus/language/russian.php
(строка ~697):
Код

define('_TEMPLATE_CMANY',            '2 или более комментариев')

Заменяем на:
Код

//russian comments' start
define('_TEMPLATE_CMANY',            '2, 3 или 4 комментария');
define('_TEMPLATE_CMANYMORE',        '5 или больше комментариев');
//russian comments' end          

Наслаждаемся русским языком smile.gif
К началу страницы
 
+Цитировать Сообщение

Сообщений в этой теме
dodger   ХАК: коментарии по-русски   Dec 13 2006, 11:58 AM
saj   Классно. Но
Цит...   Dec 13 2006, 02:26 PM
dodger  

Ответить в этой темеОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 23rd October 2019 - 05:54 AM
Рецепты - Скачать программы - Scripts