Страница 1 из 2
Использование LOCALE для указания дней недели
Добавлено: 24 Июль 2012, 17:11
ABBASoft
Как с помощью LOCALE определить (указать) русские дни недели, как это делается, например, для названий месяцев:
LOCALE('CLAMONTH','Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь') или
LOCALE('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
Re: Использование LOCALE для указания дней недели
Добавлено: 25 Июль 2012, 2:34
BOB
Дык вроде в хелпе пример есть CLAMONTH="Январь","Февраль",....
Re: Использование LOCALE для указания дней недели
Добавлено: 25 Июль 2012, 9:34
Admin
BOB писал(а):Дык вроде в хелпе пример есть CLAMONTH="Январь","Февраль",....
Разговор о днях недели!
Re: Использование LOCALE для указания дней недели
Добавлено: 25 Июль 2012, 13:17
BOB
А ну да виноват , тогда ручками
execute data % 7 +1
return 'Понедельник'
....
end
или перейти на net
message(DateTime.Now.ToString('dddd')) , я бы перешел на net .
Кстати пример для месяцев не совпадает с хэлпом .
Re: Использование LOCALE для указания дней недели
Добавлено: 25 Июль 2012, 14:23
ABBASoft
Это для русификации втсавляли в 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АаБбВвГгДдЕеЁёЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя')
Re: Использование LOCALE для указания дней недели
Добавлено: 26 Июль 2012, 18:01
Shur
Как вариант:
Код: Выделить всё
DaysOfWeekString STRING ('ВоскресеньеПонедельникВторник Среда Четверг Пятница Суббота ')
DaysOfWeek STRING(11),DIM(7),OVER(DaysOfWeekString)
CODE
DayOfWeek" = CLIP(DaysOfWeek[(TODAY()%7)+1])
Re: Использование LOCALE для указания дней недели
Добавлено: 26 Июль 2012, 20:22
ABBASoft
Коллеги, имеется ввиду определение с помощью LOCALE() дней недели на русском языке. Затем они будут выводится (например, в статус-строке при выводе даты в формате <день, месяц, число, год>)
на русском. Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке.
За помощь - заранее благодарен.
Re: Использование LOCALE для указания дней недели
Добавлено: 26 Июль 2012, 23:01
Дед Пахом
Вообще-то в статусбар информацию заносит определённая строка кода. Нельзя ли на неё взглянуть? Это я к тому, что дату на русском выводит FORMAT(TODAY(), @D17), а вот день недели хз кто. И вам это хз надо переопределить. и LOCALE тут ни при чём, имхо.
ПС
хотя нет, не прав я, это не FORMAT(), это явно под американский вид даты сделано - какой русскоязычный скажет "сегодня вторник, июль, 25, 2012"? У нас FORMAt(@D17) выдал бы "25 июля 2012"
Re: Использование LOCALE для указания дней недели
Добавлено: 26 Июль 2012, 23:23
muskin
ABBASoft писал(а):Коллеги, имеется ввиду определение с помощью LOCALE() дней недели на русском языке. Затем они будут выводится (например, в статус-строке при выводе даты в формате <день, месяц, число, год>)
на русском. Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке.
За помощь - заранее благодарен.
Сейчас выводится, например, так: Thursday, Июль, 26, 2012 в статус-строке. Thursday, Июль, 26, 2012 - это что за формат?
Ты не чего не напутал? То, что преведено выше - это полный бред!!!!!!!!!!!!!
На счет Locale - забудь, в Виндах названия дня недели не используется в региональных настройках (единственное место - это Календарь, где дни недели просто вычисляются), используй ручное определение - den_tek_nedely" = Choose( today()%7+1, '(вс)', '(пн)', '(вт)', '(ср)', '(чт)', '(пт)', '(сб)' )
Re: Использование LOCALE для указания дней недели
Добавлено: 26 Июль 2012, 23:50
ABBASoft
В 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(), который вставляется так, как я описал выше.
А что делать с наименованием дня? Хочется тоже по-русски.
Re: Использование LOCALE для указания дней недели
Добавлено: 27 Июль 2012, 0:21
Дед Пахом
Ну посмотрите в сгенерённом CLW-файле, что там написано?
Re: Использование LOCALE для указания дней недели
Добавлено: 27 Июль 2012, 0:46
ABBASoft
В исходном (сгенерированном) коде присутствует только INCLUDE('Ablang_Rus.inc'). По-видимому, информация берется отсюда на стадии генерации кода.
С уважением, ABBASoft. Заранее благодарен за помощь.
Re: Использование LOCALE для указания дней недели
Добавлено: 27 Июль 2012, 8:57
Дед Пахом
Так-таки одна строчка всего? Кто-то же должен сделать что-то вроде AppFrame{prop:StatusText, 3} = ... чтобы в статусной строке появился текст?
Re: Использование LOCALE для указания дней недели
Добавлено: 27 Июль 2012, 11:49
ABBASoft
Да, действительно, по подсказке Деда Пахома -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.
Re: Использование LOCALE для указания дней недели
Добавлено: 28 Июль 2012, 0:19
muskin
Извиняюсь, но вначале не была указана версия Clarion-a.
В установочной директории Clarion-a найди два файла - ABWINDOW.TPW и EXTENS.TPW
Войди в каждый из файлов и по поиску найди, например, Thursday.
Найдешь нижеуказанную строку:
Код: Выделить всё
DisplayDayString STRING('Sunday Monday Tuesday WednesdayThursday Friday Saturday ')
Будь внимателен с редактированием шаблона, длина - 9 символов.
Если захочешь поэкспериментировать, смотри следующую строку
Код: Выделить всё
DisplayDayText STRING(9),DIM(7),OVER(DisplayDayString)
А дальше будет все понятно, и ручками не надо ничего делать.