Форуми / National / Russian / Зоопарк с окончаниями

Ratibor
#7511 10.02.2009 05:18
Насчет комментариев, не знаю что даже и писать, скажите напишу :-)


А остальное поправил:

function sed_declension($digit, $expr, $onlyword = false)
{
    if (!is_array($expr))
    {
        return trim(($onlyword ? '' : "$digit ") . $expr);
    }
 
    global $lang;
 
    $i = preg_replace('#[^0-9]+#', '', $digit);
    $plural = sed_get_plural($i, $lang);
    $cnt = count($expr);
    return trim(($onlyword ? '' : "$digit ") . (($cnt > 0 && $plural < $cnt) ? $expr[$plural] : ''));
}

function sed_get_plural($plural, $lang)
{
    switch ($lang)
    {
        case 'en':
        case 'de':
        case 'nl':
        case 'se':
            return ($plural == 1) ? 1 : 0;
 
        case 'fr':
        case 'uk':
            return (($plural == 0) || ($plural == 1)) ? 1 : 0;
 
        case 'ru':
        case 'ua':
            $plural %= 100;
            return (5 <= $plural && $plural <= 20) ? 2 : ((1 == ($plural %= 10)) ? 0 : ((2 <= $plural && $plural <= 4) ? 1 : 2));

        default:
            return 0;
    }
}
Не задавай глупых вопросов, не услышишь вранья.