В общем тут допиливал свой плагин Simple Download Counter для Joomla 3, чтобы он по-русски (и на других языках тоже) красиво считал количество скачек файла подставляя окончания к именам существительным в зависимости от числа стоящего перед ним. И пытался через родной джумловский JText::plural как то покорить данный вопрос. Но результат как то меня совсем не порадовал, поэтому я реализовал это банально через функцию PHP. Кто тоже столкнулся с такой необходимостью - для вас этот небольшой пост. 

Сразу скажу, что без словаря тут не обойтись. То есть формы существительных надо будет задать вручную, а функция уже исходя из числа подберет к нему нужный вариант. Собственно сама функция:

 function plural($number,$suffix) {
$keys = array(2, 0, 1, 1, 1, 2);
$mod = $number % 100;
$suffix_key = ($mod > 7 && $mod < 20) ? 2: $keys[min($mod % 10, 5)];
return $suffix[$suffix_key];
}

Собственно в переменную $suffix через обычный массив задается словарь множественных форм имени существительного, а в $number собственно число от которого нужно определить нужную форму. Допустим, задаем в переменную

$suffix = array("дом","дома","домов"); 

А теперь при обращении к функции 

$text = plural('25',$suffix);

Она примет текстовое значение в виде слова "домов". Потому что, 25 домов звучит лучше laughing В общем оставляю это тут как шпаргалку на будущее. 

Если пост тебе помог - поделись с друзьями. Это будет наилучшая поддержка для меня!

Для того чтобы задать вопрос или оставить комментарий вы можете авторизоваться через любую социальную сеть ниже:

 

Добавить комментарий