Склонение имен существительных после числительных
[09 февраля 2004]
Метод, позволяет склонять существительные, стоящие после числительных, и позволяет избегать в результатах работы ваших скриптов сообщений вида: «найдено 2 записей».
Принцип работы крайне прост: в качестве результата выдается словоформа, которая определяется двумя последними цифрами (или одной, если число однозначное).
@num_decline[num;nominative;genitive_singular;genitive_plural]
^if($num > 10 && (($num % 100) \ 10) == 1){
$result[$genitive_plural]
}{
^switch($num % 10){
^case(1){$result[$nominative]}
^case(2;3;4){$result[$genitive_singular]}
^case(5;6;7;8;9;0){$result[$genitive_plural]}
}
}
Использование:
^num_decline[натуральное число или ноль;именительный падеж;родительный падеж, ед. число;родительный падеж, мн. число]
Примеры вызовов:
^num_decline[112;сообщение;сообщения;сообщений] вернет: «сообщений», а
^num_decline[102;сообщение;сообщения;сообщений] возвратит строку: «сообщения».
Как правило, удобнее использовать склонение нескольких слов одновременно.
Такой вызов:
$found(77)
^num_decline[$found;найдена $found запись;найдены $found записи;найдены $found записей]
вернет строку «найдены 77 записей».