/** * Модификатор declension: склонение существительных * * @param int $count * @param string $forms * @param string $language * @return string */ function smarty_modifier_declension($count, $forms, $language = '') { if (!$language) { $language = Engine::getInstance()->Lang_GetLang(); } $count = abs($count); // Выделяем отдельные словоформы $forms = explode(';', $forms); $fn = 'smarty_modifier_declension_' . $language; if (function_exists($fn)) { // Есть персональная функция для текущего языка return $fn($forms, $count); } else { // Действуем по образу и подобию английского языка return smarty_modifier_declension_english($forms, $count); } }
/** * Модификатор declension: склонение существительных * * @param int $count * @param string $forms * @param string $language * @return string */ function smarty_modifier_declension($count, $forms, $language = '') { global $currentLanguage, $Language; if (!$language) { $language = $currentLanguage; } $count = abs($count); // Пытаемся выщемить термин из словаря if (preg_match('/^(.*)\\/(.*)$/', $forms, $termine)) { if ($termine[1] && $termine[2]) { $forms = $Language[$termine[1]][$termine[2]]; } } // Выделяем отдельные словоформы $forms = explode(';', $forms); $fn = 'smarty_modifier_declension_' . $language; if (function_exists($fn)) { // Есть персональная функция для текущего языка return $fn($forms, $count); } else { // Действуем по образу и подобию английского языка return smarty_modifier_declension_english($forms, $count); } }