Использование LOCALE для указания дней недели
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Использование LOCALE для указания дней недели
Как с помощью LOCALE определить (указать) русские дни недели, как это делается, например, для названий месяцев:
LOCALE('CLAMONTH','Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь') или
LOCALE('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
LOCALE('CLAMONTH','Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь') или
LOCALE('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
Re: Использование LOCALE для указания дней недели
Дык вроде в хелпе пример есть CLAMONTH="Январь","Февраль",....
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: Использование LOCALE для указания дней недели
Разговор о днях недели!BOB писал(а):Дык вроде в хелпе пример есть CLAMONTH="Январь","Февраль",....
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Re: Использование LOCALE для указания дней недели
А ну да виноват , тогда ручками
message(DateTime.Now.ToString('dddd')) , я бы перешел на net .
Кстати пример для месяцев не совпадает с хэлпом .
или перейти на netexecute data % 7 +1
return 'Понедельник'
....
end
message(DateTime.Now.ToString('dddd')) , я бы перешел на net .
Кстати пример для месяцев не совпадает с хэлпом .
Re: Использование LOCALE для указания дней недели
Это для русификации втсавляли в Cla 6 из директории LibSrc файл AbLang_Rus.inc с помоoью оператора INCLUDE в модуль ABPROGRM.TPW после строк %NULL, CODE
INCLUDE('AbLang_Rus.inc') ! Русификация индексов, поисков (и т.п.). Тут же в AbLang_Rus.inc есть такие операторы:
LOCALE('CLAMONTH','Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь') или
LOCALE('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
Или свой собственный порядок сортировки -- сначала латиница, затем кириллица
LOCALE('CLACOLSEQ','AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuWwXxYyZzАаБбВвГгДдЕеЁёЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя')
INCLUDE('AbLang_Rus.inc') ! Русификация индексов, поисков (и т.п.). Тут же в AbLang_Rus.inc есть такие операторы:
LOCALE('CLAMONTH','Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь') или
LOCALE('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
Или свой собственный порядок сортировки -- сначала латиница, затем кириллица
LOCALE('CLACOLSEQ','AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuWwXxYyZzАаБбВвГгДдЕеЁёЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя')
Re: Использование LOCALE для указания дней недели
Как вариант:
Код: Выделить всё
DaysOfWeekString STRING ('ВоскресеньеПонедельникВторник Среда Четверг Пятница Суббота ')
DaysOfWeek STRING(11),DIM(7),OVER(DaysOfWeekString)
CODE
DayOfWeek" = CLIP(DaysOfWeek[(TODAY()%7)+1])
Re: Использование LOCALE для указания дней недели
Коллеги, имеется ввиду определение с помощью LOCALE() дней недели на русском языке. Затем они будут выводится (например, в статус-строке при выводе даты в формате <день, месяц, число, год>)
на русском. Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке.
За помощь - заранее благодарен.
на русском. Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке.
За помощь - заранее благодарен.
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Re: Использование LOCALE для указания дней недели
Вообще-то в статусбар информацию заносит определённая строка кода. Нельзя ли на неё взглянуть? Это я к тому, что дату на русском выводит FORMAT(TODAY(), @D17), а вот день недели хз кто. И вам это хз надо переопределить. и LOCALE тут ни при чём, имхо.
ПС
хотя нет, не прав я, это не FORMAT(), это явно под американский вид даты сделано - какой русскоязычный скажет "сегодня вторник, июль, 25, 2012"? У нас FORMAt(@D17) выдал бы "25 июля 2012"
ПС
хотя нет, не прав я, это не FORMAT(), это явно под американский вид даты сделано - какой русскоязычный скажет "сегодня вторник, июль, 25, 2012"? У нас FORMAt(@D17) выдал бы "25 июля 2012"
С уважением, ДП
Re: Использование LOCALE для указания дней недели
Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке. Thursday, Июль, 26, 2012 - это что за формат?ABBASoft писал(а):Коллеги, имеется ввиду определение с помощью LOCALE() дней недели на русском языке. Затем они будут выводится (например, в статус-строке при выводе даты в формате <день, месяц, число, год>)
на русском. Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке.
За помощь - заранее благодарен.
Ты не чего не напутал? То, что преведено выше - это полный бред!!!!!!!!!!!!!
На счет Locale - забудь, в Виндах названия дня недели не используется в региональных настройках (единственное место - это Календарь, где дни недели просто вычисляются), используй ручное определение - den_tek_nedely" = Choose( today()%7+1, '(вс)', '(пн)', '(вт)', '(ср)', '(чт)', '(пт)', '(сб)' )
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Re: Использование LOCALE для указания дней недели
В Cla 8 в Главном окне (Main) в режиме Extensions вставляется (Insert) Display the date and/or time in the window. ВЫбирается формат даты October, 31, 1959 и поле 3 в Status Bar строке.
В Cla 6 дата выдавалась: Июль, 26, 2012, а в Cla 8 выдается еще и день: Thursday, Июль, 26, 2012. Так для выдачи русского месяца применяется оператор LOCALE(), который вставляется так, как я описал выше.
А что делать с наименованием дня? Хочется тоже по-русски.
В Cla 6 дата выдавалась: Июль, 26, 2012, а в Cla 8 выдается еще и день: Thursday, Июль, 26, 2012. Так для выдачи русского месяца применяется оператор LOCALE(), который вставляется так, как я описал выше.
А что делать с наименованием дня? Хочется тоже по-русски.
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Re: Использование LOCALE для указания дней недели
Ну посмотрите в сгенерённом CLW-файле, что там написано?
С уважением, ДП
Re: Использование LOCALE для указания дней недели
В исходном (сгенерированном) коде присутствует только INCLUDE('Ablang_Rus.inc'). По-видимому, информация берется отсюда на стадии генерации кода.
С уважением, ABBASoft. Заранее благодарен за помощь.
С уважением, ABBASoft. Заранее благодарен за помощь.
- Дед Пахом
- Старичок
- Сообщения: 3289
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 49 раз
- Контактная информация:
Re: Использование LOCALE для указания дней недели
Так-таки одна строчка всего? Кто-то же должен сделать что-то вроде AppFrame{prop:StatusText, 3} = ... чтобы в статусной строке появился текст?
С уважением, ДП
Re: Использование LOCALE для указания дней недели
Да, действительно, по подсказке Деда Пахома -AppFrame{Prop:StatusText,3} =, большое ему спасибо!) нашел строку:
AppFrame{Prop:StatusText,3} = CLIP(DisplayDayText[(TODAY()%7)+1]) & ', ' & FORMAT(TODAY(),@D4)
AppFrame{PROP:StatusText,4} = FORMAT(CLOCK(),@T4)
А здесь, наверно, надо поменять ручками типа (как подсказал Muskin):
= Choose( today()%7+1, '(вс)', '(пн)', '(вт)', '(ср)', '(чт)', '(пт)', '(сб)' )
Большое спасибо Всем за помощь!!! С уважением, ABBASoft.
AppFrame{Prop:StatusText,3} = CLIP(DisplayDayText[(TODAY()%7)+1]) & ', ' & FORMAT(TODAY(),@D4)
AppFrame{PROP:StatusText,4} = FORMAT(CLOCK(),@T4)
А здесь, наверно, надо поменять ручками типа (как подсказал Muskin):
= Choose( today()%7+1, '(вс)', '(пн)', '(вт)', '(ср)', '(чт)', '(пт)', '(сб)' )
Большое спасибо Всем за помощь!!! С уважением, ABBASoft.
Re: Использование LOCALE для указания дней недели
Извиняюсь, но вначале не была указана версия Clarion-a.
В установочной директории Clarion-a найди два файла - ABWINDOW.TPW и EXTENS.TPW
Войди в каждый из файлов и по поиску найди, например, Thursday.
Найдешь нижеуказанную строку:
Будь внимателен с редактированием шаблона, длина - 9 символов.
Если захочешь поэкспериментировать, смотри следующую строку
А дальше будет все понятно, и ручками не надо ничего делать.
В установочной директории Clarion-a найди два файла - ABWINDOW.TPW и EXTENS.TPW
Войди в каждый из файлов и по поиску найди, например, Thursday.
Найдешь нижеуказанную строку:
Код: Выделить всё
DisplayDayString STRING('Sunday Monday Tuesday WednesdayThursday Friday Saturday ')
Если захочешь поэкспериментировать, смотри следующую строку
Код: Выделить всё
DisplayDayText STRING(9),DIM(7),OVER(DisplayDayString)
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'