Склонение слов: рубля, рублей

121 0

Сейчас на сайте 2 гостей и 3 новостей

Смешно звучит, правда? А ведь такие уродливые сочетания встречаются на очень многих сайтах. И если в английском языке достаточно написать что-то типа day(s), byte(s) и это будет смотреться вполне нормально, то в русском языке в конструкциях "число + слово" обязательно придется учитывать склонения. Безумные извраты типа "гостя(ей)" и "новость(ей)" я даже не рассматриваю, за такое надо лишать доступа к компьютеру навсегда.

Чтобы писать по-русски можно использовать следующую универсальную функцию:

function num2word($num,$words) {
  $num=$num%100;
  if ($num>19) { $num=$num%10; }
  switch ($num) {
    case 1:  { return($words[0]); }
    case 2: case 3: case 4:  { return($words[1]); }
    default: { return($words[2]); }
  }
}


Параметры вызова: $num - число, $words - массив склонений нужного слова. Как формируется массив вы можете посмотреть на примерах.



// Гостей
$num1=2;
$words1=Array("гость", "гостя", "гостей");

// Новостей
$num2=3;
$words2=Array("новость", "новости", "новостей");

// Написать по-русски
echo "Сейчас на сайте ";
echo $num1." ".num2word($num1,$words1); // сколько гостей
echo " и ";
echo $num2." ".num2word($num2,$words2); // сколько новостей


Результат работы скрипта:


Сейчас на сайте 2 гостя и 3 новости


Чтобы было удобнее формировать массивы со склонениями, запомните ряд чисел 1-2-5, а потом мысленно подставляйте их в массив: (один "рубль", два "рубля", пять "рублей") или (одна "новость", две "новости", пять "новостей").

скачать dle 11.0фильмы бесплатно
[xfgiven_url] [/xfgiven_url] [xfgiven_vbversion][/xfgiven_vbversion] [xfgiven_modversion][/xfgiven_modversion] [xfgiven_supported][/xfgiven_supported] [xfgiven_dbchanges][/xfgiven_dbchanges] [xfgiven_codechanges][/xfgiven_codechanges] [xfgiven_usesplugins][/xfgiven_usesplugins] [xfgiven_templateedit][/xfgiven_templateedit] [xfgiven_autotemplate][/xfgiven_autotemplate] [xfgiven_addfiles][/xfgiven_addfiles] [xfgiven_translations][/xfgiven_translations]

Дополнительная информация : Extra Info

Источник
Версия Vbulletin:Vbulletin version[xfvalue_vbversion]
Версия модуля:Mod version[xfvalue_modversion]
Поддержка: Supported:[xfvalue_supported]
Изменение БД: DB changes:[xfvalue_dbchanges]
Правка кода: Code changes:[xfvalue_codechanges]
Плагины: Use plugins:[xfvalue_usesplugins]
Правка шаблонов: Template edits:[xfvalue_templateedit]
Автоправка шаблонов: Auto Template:[xfvalue_autotemplate]
Доп.файлы: Add files:[xfvalue_addfiles]
Доп. языки: Translations:[xfvalue_translations]

File engine/modules/userbox.php not found.

Комментариев пока нет, добавьте свой!

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

{mainlink_code_links}
{mainlink_code_ads}
{sape_links}
File engine/modules/ed-shortbar/bar.php not found.