Forumlar / National / Russian / Зоопарк с окончаниями

dervan
#7990 2009-02-15 03:45
Ты про тот $i, который отсюда?
$i = preg_replace('#\D+#', '', $digit);
Так в нём же нет точек или запятых - всё кроме цифр поел preg_replace().

Вопрос про то, что есть признак дрообного числа - ключевой. Если считать, что число с точкой - дробное, тогда всё просто. Меняем
	$i = preg_replace('#\D+#', '', $digit);
на
	$i = preg_replace('#[^.\d]+#', '', $digit);

И добавляем так
function sed_get_plural($plural, $lang)
{
	$is_frac = strpos($plural, '.') !== false;

	switch ($lang)
		case 'ru':
		case 'ua':
			if ($is_frac)
			{
				return 2;
			}
			$plural %= 100;
И для остальных языковых групп тогда тоже надо добавлять по такому же принципу
		case '@$%':
			if ($is_frac)
			{
				return #;
			}