dervan |
|
---|---|
Можно так:
$last = count($expr) - 1;
$res = $digit . (($last >= 0 && $plural <= $last) ? " {$expr[$plural]}" : '');
Глянул сейчас в getPlural() ветку для английского языка - неправильно будет работать. Параметр $plural на входе getPlural() - это остаток от деления на 100, т.е. для 1, 101, 201 и т.д. будут выводиться слова как для 1. Надо поправить эту строку
$i=preg_replace('/[^0-9]+/s','',$digit)%100; //intval не всегда корректно работает
$i=preg_replace('/[^0-9]+/s','',$digit);
А в функцище getPlural() в ветке для русского языка перед return добавить
$plural %= 100;
Ratibor, если хочешь - давай я перепишу всё это дело покомпактнее и без замеченных ошибок, а ты потом посмотришь. |