Страница 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)
А дальше будет все понятно, и ручками не надо ничего делать.