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

Ratibor
#7501 2009-02-10 04:50
# Trustmaster : Звучит неплохо, очень даже. Теперь найти бы кого-то кто это переведет на английский и выставит на обсуждение в Идеи (я пока пас, над нововведениями некогда работать).
А кроме тебя некому :-)
Мне тут на русском-то пришлось пол года объяснять :-)

Да и смысла то в голосовании по данному вопросу нет.
Мы всеголишь исправляем ошибки в языковых файлах.

Просто некоторые наслушались на неокроме.ру флудера Antony.
Вместо того чтобы помочь, он там флуд развел.

Предлагаю включить следуюющую функцию(поправь если не нравятся какие то названия функций):

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

function get_plural($plural, $locale)
{
    switch ($locale)
    {
        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;
    }
}
Не задавай глупых вопросов, не услышишь вранья.