Задать вопрос
@there4

Как сделать склонение числительных на php с локализацией?

Движок question2answer.
Помогите модернизировать код так, чтобы добавить туда значения 3_answers, и при этом показывались верные склонения:

$fields['answers'] = ($post['acount'] == 1) ? qa_lang_html_sub_split('main/x_answer', '1', '1')
				: qa_lang_html_sub_split('main/2_answers', qa_format_number($post['acount'], 0, true));

файл локализации:
'x_answer' => '1 ответ',
'1_answer' => '^ ответ',
'2_answers' => '^ ответа',
'3_answers' => '^ ответов',
  • Вопрос задан
  • 640 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@balamyt92
; select * from users; --
<?php
/**
 * Функция склонения числительных в русском языке
 *
 * @param int    $number Число которое нужно просклонять
 * @param array  $titles Массив слов для склонения
 * @return string
 **/
$titles = array('котик', 'котика', 'котиков');
function declOfNum($number, $titles)
{
    $cases = array (2, 0, 1, 1, 1, 2);
    return $number." ".$titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ];
}

дальше сами, это не сложно.
Ответ написан
deniamnet
@deniamnet
New Yorker, web developer
Посмотрите на расширение Intl. Там уже всё есть с локализацией: https://www.sitepoint.com/localization-demystified...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы