1. Добавляем в includes/functions.php новую функцию.
Код: Выделить всё
function plural_form($number, $baseword)
{
global $user;
$cases = array (5, 1, 2, 2, 2, 5);
return sprintf($user->lang[$baseword . '_' . (($number % 100 > 4 && $number % 100 < 20) ? 5 : $cases[min($number % 10, 5)])], $number);
}
Код: Выделить всё
plural_form($number, 'POSTS');
Код: Выделить всё
'POSTS_1' => 'сообщение',
'POSTS_2' => 'сообщения',
'POSTS_5' => 'сообщений',
Код: Выделить всё
'POSTS_5' => 'Вам пришло %d новых сообщений',
Пример №1: изменяем вид счётчика сообщений на страницах тем (viewtopic.php).
1. См. выше.
2. Находим во viewtopic.php строку
Код: Выделить всё
'TOTAL_POSTS' => ($total_posts == 1) ? $user->lang['VIEW_TOPIC_POST'] : sprintf($user->lang['VIEW_TOPIC_POSTS'], $total_posts),
Код: Выделить всё
'TOTAL_POSTS' => plural_form($total_posts, 'POSTS'),
Код: Выделить всё
'POSTS_1' => '%d сообщение',
'POSTS_2' => '%d сообщения',
'POSTS_5' => '%d сообщений',
Код: Выделить всё
0 сообщений
1 сообщение
2 сообщения
3 сообщения
4 сообщения
5 сообщений
...
10 сообщений
11 сообщений
12 сообщений
...
21 сообщение
22 сообщения
23 сообщения
24 сообщения
25 сообщений
26 сообщений
...
Пример №2: изменяем вид строки «Новых ЛС: 1».
1. См. выше.
2. Находим в includes/functions.php строку
Код: Выделить всё
$l_privmsgs_text = sprintf($l_message_new, $user->data['user_new_privmsg']);
Код: Выделить всё
$l_privmsgs_text = plural_form($user->data['user_new_privmsg'], 'NEW_PMS');
Код: Выделить всё
'NEW_PMS_1' => '%d новое ЛС',
'NEW_PMS_2' => '%d новых ЛС',
'NEW_PMS_5' => '%d новых ЛС',
Код: Выделить всё
'NO_NEW_PM' => 'нет новых ЛС',
Код: Выделить всё
нет новых ЛС
1 новое ЛС
2 новых ЛС
...
21 новое ЛС
22 новых ЛС
...
Если на конференции используется несколько языков, функцию plural_form() можно перенести в файлы language/xx/common.php и изменять её в соответствии с особенностями каждого языка.