Может кто знает в какой файл можно вставить эту функцию, чтобы практически в любом месте шаблона можно было ее вызывать?
для этого нужно написать системный плагин, который до события onAfterDispatch подключать нужный файл.
Плагин естесно писать лень, покажу на примере.
Создаете например файл в шаблоне
templates/ШАБЛОН/includes/text.php
<?php
defined('JPATH_BASE') or die();
class RuText
{
public static function pluralSfx($count)
{
if ($count == 1) {
return 0;
}
$plural = ($count%10==1 && $count%100!=11 ? 0 : $count%10>=2 && $count%10<=4 && ($count%100<10 || $count%100>=20)? 1 : 2);
return $plural;
}
}
Правило plural бралось
здесьДобавляете в файл index.php в корне (вместо плагина)
$mainframe->triggerEvent('onAfterRoute');
include_once JPATH_THEMES.DS.$mainframe->getTemplate().DS.'includes'.DS.'text.php';
открываете нужный макет, допустим
templates/ШАБЛОН/html/com_content/article/default.php
...
<?php
//подключение локализации шаблона
$mainframe =& JFactory::getApplication('site');
$lang =& JFactory::getLanguage();
$lang->load('tpl_'.$mainframe->getTemplate());
// нужное число
$count = 5;
// вывод
echo JText::sprintf('TPL_TEST_'.RuText::pluralSfx($count), $count);
?>
...
Дальше в файле локализации шаблона, для примера будет beez (/language/en-GB/en-GB.tpl_beez.ini) добавляете нужные строчки
TPL_TEST_0=%s материал
TPL_TEST_1=%s материалa
TPL_TEST_2=%s материалов