Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  23 Aug 2001  14:29:33
 To : Vitus
 Subject : Re: даты по-русски
 -------------------------------------------------------------------------------- 
 
 >>> S> Мне нужно написать модуль, позволяющий выводить даты в произвольном
 S>>формате,
 >>> S> но с использованием русского языка.
 >>> S> Пожалуйста, подскажите, как это сделать?
 
 v> >> Так и сделать... Только прежде чем ты начнешь форматы изопридумывать,
 S>>посмотри
 v> >> man strftime. Сколь я помню, %m - это все-таки числовое значение месяца. Я
 S>>сам
 v> >> думаю написать такой модулек, но пока так и не собрался. Ты там увидишь,
 S>>что
 v> >> для сокращенного и полного названий применяются разные %-конструкции, а
 S>>падежи
 v> >> и заглавные буквы я собираюсь делать посредством модификаторов (вроде %fgA
 S>>для
 v> >> полного дня недели в родительном падеже с маленькой буквы [form, оно же
 v> >> незанятый модификатор, genitive]). При этом, соответственно, отрабатывая
 v> >> названия дней недели и месяцев самостоятельно, а остальное отдавая на
 S>>откуп
 v> >> POSIX::strftime.
 
 v> А можно полную спецификацию этих модификаторов сюда?
 
 По небольшом размышлении получилось так:
 
 %f[<падеж>[.<заглавность>]]<символ от strftime>
 
 <заглавность> ::= 0 (строчные) | 1 (с прописной) | 2 (прописные)
 <падеж> ::= 0 (именительный) | 1 (родительный) | 2 (дательный) | 3
 (винительный) | 4 (творительный) | 5 (предложный)
 
 Прилагательных не предусматриваем.
 
 По умолчанию для %A (день недели) падеж именительный, для %B (месяц) -
 родительный - "четверг, 23 августа 2001 г."
 
 v> Что-то мне эта идея
 v> нравится. У меня есть тоже задачка где это надо, и тоже на Perl.
 v> Особенно интересно, как ты собираешься бороться с тем, что в разных
 v> языках предусмотрен разный набор форм слова.
 
 А никак не собираюсь. Это будет что-то типа Russian::Strftime. Мне же туда еще
 сами данные во всех падежах засовывать. А в других языках может быть не только
 других форм, но и других стандартов на запись даты.
 
 v> Кстати, по поводу strftime хочу сразу предупредить что на разных
 v> системах формат %B работает по-разному в русской локали.
 v> Hа solaris он говорит "январь", а на Linux - "января"
 
 Что меня в первую очередь и подвигло. Я тогда напоролся на разный формат в
 линуксе и фрюхе.
 
 v> Видимо, делать так 
 v> $format=~ s/мои формат/\037%m\037/
 v> $result= strftime($format, @date)
 v> $result=~ s/\037(d+)\037/$recoder{$1}/
 v> где recoder - хэш отображающий номера месяцев в их названия в правильной
 v> форме.
 
 Я бы сразу с аргументами работал.
 
 -- 
 Artem Chuprina <ran@ran.pp.ru>
 FIDO: 2:5020/371.32
 --- slrn/0.9.7.0 (Linux)
  * Origin: AKA с подствольным плюсомётом (2:5020/371.32)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: даты по-русски   Artem Chuprina   23 Aug 2001 14:29:33 
 Re: даты по-русски   Ruslan Bondarev   23 Aug 2001 18:29:17 
 Re: даты по-русски   Artem Chuprina   23 Aug 2001 21:12:27 
 Re: даты по-русски   Ruslan Bondarev   23 Aug 2001 23:32:10 
Архивное /ru.perl/725367e09b4ba.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional