
Сейчас на сайте 2 гостей и 3 новостей
Смешно звучит, правда? А ведь такие уродливые сочетания встречаются на очень многих сайтах. И если в английском языке достаточно написать что-то типа day(s), byte(s) и это будет смотреться вполне нормально, то в русском языке в конструкциях "число + слово" обязательно придется учитывать склонения. Безумные извраты типа "гостя(ей)" и "новость(ей)" я даже не рассматриваю, за такое надо лишать доступа к компьютеру навсегда.Чтобы писать по-русски на своих сайтах я использую такую универсальную функцию:
Code (PHP) : Убрать нумерацию
- 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]); }
- }
- }
Code (PHP) : Убрать нумерацию
- // Гостей
- $num1=2;
- $words1=Array("гость", "гостя", "гостей");
- // Новостей
- $num2=3;
- $words2=Array("новость", "новости", "новостей");
- // Написать по-русски
- echo "Сейчас на сайте ";
- echo $num1." ".num2word($num1,$words1); // сколько гостей
- echo " и ";
- echo $num2." ".num2word($num2,$words2); // сколько новостей
Сейчас на сайте 2 гостя и 3 новости
Чтобы было уд