| Ratibor | 
					 | 
			
|---|---|
					# dervan : Так я тебя сразу и спросил - а что считать дробью? И точки, и запятые могут ставиться в числе по разным причинам.Ну это наверное наилучший вариант. И что там с сетлокалью ? Всмысле если в ен это точка, а в ру запятая, то как тогда ? dervan У тебя ошибка, ты проверяешь просто точку, а если будет 5.0 ? Или после phpшных фукнций так не может получится ? Не задавай глупых вопросов, не услышишь вранья. 
					
                        This post was edited by Ratibor (2009-02-15 04:13, 16 years ago)
                     
                    
				 | 
			
| esclkm | 
					 | 
			
|---|---|
| 
					 да я думаю именно так делать - но поумолчанию в двиге надро будет эти локали задать 
						littledev.ru - мой маленький зарождающийся блог о котонти. 
					снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты  | 
			
| dervan | 
					 | 
			
|---|---|
| 
					 Тогда давай так сделаем: 
						
					
function sed_declension($digit, $expr, $onlyword = false, $canfrac = false)
{
...
	$i = preg_replace($canfrac ? '#[^.\d]+#' : '#\D+#', '', $digit);
А с setlocale IMHO лучше не связываться - сильно от системы зависит, оно надо? # Ratibor : У тебя ошибка, ты проверяешь просто точку,Не знаю, но если даже и так, то для фразы "пять целых ноль десятых" sed_declension() всё равно должен вернуть 2. 
                        This post was edited by dervan (2009-02-15 04:25, 16 years ago)
                     
                    
				 | 
			
| Ratibor | 
					 | 
			
|---|---|
					# dervan : Не знаю, но если даже и так, то для фразы "пять целых ноль десятых" sed_declension() всё равно должен вернуть 2.а для 2.0 должно 1 вернуться ![]() В общем лучше зделать чтото типа: $x = $x - floor($x); или fmod($x,1); И потом проверить на 0 Не задавай глупых вопросов, не услышишь вранья. 
					 | 
			
| dervan | 
					 | 
			
|---|---|
					# Ratibor : а для 2.0 должно 1 вернуться"две целых ноль десятых" - всё равно 2, как ни крути. А как делать - так это сам решай, что тебе больше нравится. :)  | 
			
| Ratibor | 
					 | 
			
|---|---|
					# dervan : "две целых ноль десятых" - всё равно 2, как ни крути.Если стрингом, то да ![]() Но правильней Сгенерирована за 5.0 секунд или Сгенерирована за 2.0 секунды, т.е. если .0, то 0 опускается. в общем с русским мы разобрались более-менее, теперь осталось разобраться с en и uk, что им возвращать если число не целое ? Кто у нас тут хорошо знает английский и американский английский ? Не задавай глупых вопросов, не услышишь вранья. 
					
                        This post was edited by Ratibor (2009-02-15 05:03, 16 years ago)
                     
                    
				 | 
			
| dervan | 
					 | 
			
|---|---|
					# Ratibor : Но правильней Сгенерирована за 5.0 секунд или Сгенерирована за 2.0 секунды,Разве это обязательно? Раз дробь стоит, значит она произносится, никакой ошибки в этом нет.  | 
			
| Ratibor | 
					 | 
			
|---|---|
					# dervan : Разве это обязательно? Раз дробь стоит, значит она произноситсяНу давай это дробью будем считать, не столь важно. Главное нам осталось с двумя группами разобраться, с en и с uk. Что им возвращать ? Или пошли они в баню, пусть сами голову ломают над дробями ![]() Переделать только саму функцию и правило для русского языка, а также русский ланг файл, а англичане если это им надо сами пусть свой ланг файл переделывают и правило для своего языка ![]() Не задавай глупых вопросов, не услышишь вранья. 
					
                        This post was edited by Ratibor (2009-02-15 05:32, 16 years ago)
                     
                    
				 | 
			
| esclkm | 
					 | 
			
|---|---|
| 
					 http://www.trilinguis.ru/linguistic/english/numerals.htm (в самом низу) 
						оттуда я понял что до единицы это единственное число, в противном случе plural littledev.ru - мой маленький зарождающийся блог о котонти. 
					снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты  | 
			
| dervan | 
					 | 
			
|---|---|
| 
					 Не знаю, к сожалению. 
						
					Слушай, а ты до этого про что говорил - как сделать отдельную от sed_declension() функцищу? А то если ты про то, как поправить $is_frac = strpos($plural, '.') !== false; так там просто: $is_frac = floor($plural) != $plural; и при этом числа типа 5.0 не будут считаться дробью. И ещё там можно регулярками побаловаться, если жизнь заставит.  | 
			
| Ratibor | 
					 | 
			
|---|---|
| 
					 esclkm : 
						Оттуда вычитал: Существительное, которое следует за десятичной дробью, стоит в единственном числе, если в дробном количестве нет целых единиц, и во множественном числе, если в дробном количестве есть целые единицы:Это для en или для uk ? Не задавай глупых вопросов, не услышишь вранья. 
					
                        This post was edited by Ratibor (2009-02-15 05:50, 16 years ago)
                     
                    
				 | 
			
| dervan | 
					 | 
			
|---|---|
| 
					 Ratibor, кстати добавь в группу где 
						
					case 'en': ещё и case 'us': с этим сомнений нет, а из штатов народу на сайте хватает.  | 
			
| Ratibor | 
					 | 
			
|---|---|
| 
					 Короче наверное так: 
						для uk все что больше 1 пишется в множественном, а в остальных случаях в единственном, для en 1 в единственном, все остальное в множественном. Правильно ? Если так, то им вообще правила дорабатывать не надо :) Не задавай глупых вопросов, не услышишь вранья. 
					
                        This post was edited by Ratibor (2009-02-15 06:06, 16 years ago)
                     
                    
				 | 
			
| esclkm | 
					 | 
			
|---|---|
| 
					 вроде так если верить тому что мне рассказал яша. коль что киландор дорисует. 
						littledev.ru - мой маленький зарождающийся блог о котонти. 
					снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты  | 
			
| Ratibor | 
					 | 
			
|---|---|
					# esclkm : вроде так если верить тому что мне рассказал яша. коль что киландор дорисует.Тогда ок, завтра все доработаю на свежую голову, а то уже четвертый час ночи :) Не задавай глупых вопросов, не услышишь вранья. 
					 |