Склонение слов

Необходимо сделать доступную из любого вьювера подобную функцию -

(склоняет форму в зависимости от числа - "письмо, писем, письма")




function plural($n, $form1, $form2, $form5)

{

                $n = abs($n) % 100;

                $n1 = $n % 10;

                if ($n > 10 && $n < 20) return $form5;

                else if ($n1 > 1 && $n1 < 5) return $form2;

                else if ($n1 == 1) return $form1;


        return $form5;

}

$n = 3; // Значение из базы данных

echo $n." ".plural($n, "письмо", "письма", "писем")." у Вас в ящике";



Думаю реализовать это Хелпером, типа CHtml::WordForms()

Подскажите реализацию… :unsure:

Дык кинь класс со статическими пабликами (public static function) например в protected/components/helpers

далее в конфиге




	'import' => array(

...

		'application.components.helpers.*',

...



и хоть где




echo $n." ".MyHelper::plural($n, "письмо", "письма", "писем")." у Вас в ящике";



Так ведь метод Yii::t() поддерживает такую фичу в зависимости от значения передаваемой переменной. Зачем изобретать велосипед?

http://yiiframework…/ru/topics.i18n

да согласен, но если бы было все намного сложнее

(http://phpmorphy.sourceforge.net/dokuwiki/)

В этом случае легче всего создать свой компонент, и подключить его через конфиг. Соответственно можно и конфигурировать как хочется и доступ откуда хочешь Yii::app()->имя компонента->…