/**
 * Модификатор 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);
    }
}
Beispiel #2
0
/**
 * Модификатор 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);
    }
}