Страница 1 из 3

C10 и русские буквы в сгенерированных приложениях

Добавлено: 13 Июнь 2015, 19:18
sergbrother
Доброго.
Приобрел субъект у SoftVelocity, получил по почте ссылку на скачивание 10.0.0 Build 11834.
Скачал, поставил, как обычно русских букофф в приложении мало (только в полях ввода в формах и Caption Browse).
Написал обращение в туда (bug tracker), оно зарегистрировано и успешно там находится (уже пару месяцев). Улыбнуло - покупали Clarion 3.1 for DOS в свое время (типа в 1995 году) у Topspeed, надеялись на поддержку, так ничего тогда по поддержке не получили.
Поиск на форуме лечение - нашел упоминание о файле AbLang_RUS.inc, но его в C10 вроде нет.
Проблема старая, но я уже не помню, как ее решать.
Может поможет кто?

C10 и русские буквы в сгенерированных приложениях

Добавлено: 13 Июнь 2015, 22:47
Yufil
Добрый день!

Ablang_rus - это из русифицированных шаблонов. Мож, кто занимался русификацией шаблонов для CW10?
Если никто не сделал - возьмит архив из двух файлов для CW6

https://mega.co.nz/#!8oIDGIYL!s6YNS2P-1 ... _oASn5NXSs

Надо переписать ablang_rus в Libsrc и вставить ссылку в Abprogrm.tpw (примерно строка 10)

Код: Выделить всё

  
  CODE
  Include('Ablang_rus.inc') ! ЮФ Русификация

C10 и русские буквы в сгенерированных приложениях

Добавлено: 14 Июнь 2015, 8:03
Игорь Столяров
sergbrother писал(а): Скачал, поставил, как обычно русских букофф в приложении мало
Можно не заморачиваться с самопальными шаблонами, а просто вставить где-нибудь в начале работы приложения:
(Проверено, все прекрасно работает в C63 - C10, для WinXP - Win10)

Код: Выделить всё

  Locale('CLACHARSET','WINDOWS')
  Locale('CLACASE','WINDOWS')
  Locale('CLAMONTH','Января,Февраля,Марта,Апреля,Мая,Июня,Июля,Августа,Сентября,Октября,Ноября,Декабря')
  Locale('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
  Locale('CLAAMPM','WINDOWS')
  Locale('CLABUTTON','&OK,&1. Да,&2. Нет,Пре&рвать,&Повторить,&Игнорировать,&Отменить,&Справка')

  SYSTEM{Prop:CharSet} = CHARSET:CYRILLIC
  
  Omit('**CW6**',_CWVER_ = 6100)
  SYSTEM{PROP:Font}    = 'Arial'
  **CW6**
  
   ! Необязательная локализация выдаваемых сообщений о проблемах

  Locale('CLAMSG2'  ,'Файл не найден')                                     ! File Not Found
  Locale('CLAMSG3'  ,'Путь не найден')                                     ! Path Not Found
  Locale('CLAMSG4'  ,'Слишком много открытых файлов')                      ! Too Many Open Files
  Locale('CLAMSG5'  ,'Нет доступа')                                        ! Access Denied
  Locale('CLAMSG7'  ,'Память повреждена')                                  ! Memory Corrupted
  Locale('CLAMSG8'  ,'Недостаточно памяти')                                ! Insufficient Memory
  Locale('CLAMSG30' ,'Запись в очереди не найдена')                        ! Entry Not Found
  Locale('CLAMSG32' ,'Файл уже заблокирован')                              ! File Is Already Locked
  Locale('CLAMSG33' ,'Запись не доступна')                                 ! Record Not Available
  Locale('CLAMSG35' ,'Запись не найдена')                                  ! Record Not Found
  Locale('CLAMSG36' ,'Поврежденный файл данных')                           ! Invalid Data File
  Locale('CLAMSG37' ,'Файл не был открыт')                                 ! File Not Open
  Locale('CLAMSG38' ,'Поврежденный ключевой файл')                         ! Invalid Key File
  Locale('CLAMSG40' ,'Недопустимое повторение ключа')                      ! Creates Duplicate Key
  Locale('CLAMSG43' ,'Запись уже захвачена')                               ! Record Is Already Held
  Locale('CLAMSG45' ,'Некорректное имя файла')                             ! Invalid Filename
  Locale('CLAMSG46' ,'Необходимо перестроить ключ')                        ! Key File Must Be Rebuilt
  Locale('CLAMSG47' ,'Неверная структура файла')                           ! Invalid Record Declaration
  Locale('CLAMSG48' ,'Невозможно открыть файл транзакций')                 ! Unable To Log Transaction
  Locale('CLAMSG52' ,'Файл уже открыт')                                    ! File Already Open
  Locale('CLAMSG53' ,'Поврежденный заголовок dBase файла')                 ! Invalid Clarion File
  Locale('CLAMSG54' ,'Файл не имеет атрибута CREATE')                      ! No Create Attribute
  Locale('CLAMSG56' ,'Транзакция уже активна')                             ! LOGOUT Already Active
  Locale('CLAMSG57' ,'Поврежденный MEMO-файл')                             ! Invalid Memo File
  Locale('CLAMSG63' ,'Необходим монопольный доступ к файлу')               ! Exclusive Access Required
  Locale('CLAMSG64' ,'Нарушение совместного доступа')                      ! Sharing Violation
  Locale('CLAMSG65' ,'Ошибка отката транзакции')                           ! Unable To ROLLBACK Transaction
  Locale('CLAMSG73' ,'Отсутствует MEMO-файл')                              ! Memo File Missing
  Locale('CLAMSG75' ,'Неверное описание типа поля')                        ! Invalid Field Type Descriptor
  Locale('CLAMSG76' ,'Неверный параметр сортировки')                       ! Invalid Index String
  Locale('CLAMSG77' ,'Индекс недоступен')                                  ! Unable To Access Index
  Locale('CLAMSG78' ,'Вызов функции с неверным количеством параметров')    ! Invalid Number Of Parameters
  Locale('CLAMSG79' ,'Тип данных не поддерживается драйвером баз данных')  ! Unsupported Data Type In File
  Locale('CLAMSG80' ,'Функция не поддерживается драйвером баз данных')     ! Unsupported File Driver Function
  Locale('CLAMSG81' ,'Неизвестная ошибка драйвера баз данных')             ! Unknown Error Posted
  Locale('CLAMSG88' ,'Длина ключа(индекса) превышает 245')                 ! Invalid Key Length
  Locale('CLAMSG89' ,'Запись была изменена другим пользователем')          ! Record Changed By Another Station
  Locale('CLAMSG90' ,'Ошибка драйвера баз данных')                         ! File Driver Error
  Locale('CLAMSG800','Неверное выражение')                                 ! Illegal Expression
  Locale('CLAMSG801','Не найдена переменная')                              ! Variable Not Found 

C10 и русские буквы в сгенерированных приложениях

Добавлено: 14 Июнь 2015, 21:26
kreator
Есть ещё вариант - запихать всё это в env файл, плюс хорошо бы и CLAMSG прописать (???). А в шаблонах и классах много чего руссифицировать надо.
Народ, а что на десятку можно переезжать (с большим проектом)? Патчей не ждать? Посмотрел десятку слегка, работа над ошибками проведена, на первый взгляд всё здорово.

C10 и русские буквы в сгенерированных приложениях

Добавлено: 14 Июнь 2015, 21:29
sergbrother
Игорь, спасибо огромное.
Вставил в Embed 'After program code statement' Ваш код и все сразу в момент руссифицировалось.
Куда пиво присылать? :cat:

C10 и русские буквы в сгенерированных приложениях

Добавлено: 15 Июнь 2015, 0:02
Игорь Столяров
kreator писал(а): Народ, а что на десятку можно переезжать
В принципе - да ... Достаточно большие изменения в среде, вроде стала побыстрей и поустойчивей.
Практически нет изменений в языке (template, source, runtime), даже все самописные DLL подходят от С91, можно не пересобирать.
Даже не помню, что бы такое было. По большому счету это C92, но законы жанра (условия распространения по подписке) требуют
выпуска новой версии для запуска сбора средств. Поэтому C10. Ура ! :idied:

C10 и русские буквы в сгенерированных приложениях

Добавлено: 15 Июнь 2015, 13:37
Губин Игорь
kreator писал(а): Народ, а что на десятку можно переезжать (с большим проектом)?
Переехал. Глюков не обнаружено. Исправления старых известных мне глюков тоже :idied:
Из необратимого - перестройка DCT. По ощущениям скорость работы как самой среды, так и приложений возросла.

C10 и русские буквы в сгенерированных приложениях

Добавлено: 15 Июнь 2015, 17:12
PavelNK
Проблемы остались - Message обрезает русские сообщения :(

C10 и русские буквы в сгенерированных приложениях

Добавлено: 15 Июнь 2015, 17:42
Игорь Столяров
PavelNK писал(а): Проблемы остались - Message обрезает русские сообщения
Я же уже написал про это ниже по теме обсуждения ...
Вставь где-нибудь в начале программы (порядок следования строк не менять):

Код: Выделить всё

  Locale('CLACHARSET','WINDOWS')
  Locale('CLACASE','WINDOWS')
  Locale('CLAMONTH','Января,Февраля,Марта,Апреля,Мая,Июня,Июля,Августа,Сентября,Октября,Ноября,Декабря')
  Locale('CLAMON','Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек')
  Locale('CLAAMPM','WINDOWS')
  Locale('CLABUTTON','&OK,&1. Да,&2. Нет,Пре&рвать,&Повторить,&Игнорировать,&Отменить,&Справка')

  SYSTEM{Prop:CharSet} = CHARSET:CYRILLIC
  SYSTEM{PROP:Font}     = 'Arial'

C10 и русские буквы в сгенерированных приложениях

Добавлено: 15 Июнь 2015, 21:55
kreator
Игорь Столяров писал(а):SYSTEM{PROP:Font} = 'Arial'
Вот так по-модному:

Код: Выделить всё

SYSTEM{PROP:Font} = 'Segoe UI'
:idied:

C10 и русские буквы в сгенерированных приложениях

Добавлено: 15 Июнь 2015, 22:19
Игорь Столяров
kreator писал(а): SYSTEM{PROP:Font} = 'Segoe UI'
Мне не понравилось. Шрифт мельче ARIAL, что для сообщений не есть плюс.
К тому же со старыми операционками, вроде WinXP, можно нарваться на проблемы ...

C10 и русские буквы в сгенерированных приложениях

Добавлено: 16 Июнь 2015, 10:20
kreator
Я прямо знал, что так ответишь :D . Segoe как раз разработан для удобочитаемости, весь интерфейс Винды на нём. А отсутствие поддержки в XP можно обернуть ещё и в свою пользу - объяснить клиентам, что MS завершила поддержку XP, а мы можем посодействовать в переходе на Win10 за отдельную плату. Как-то так.

C10 и русские буквы в сгенерированных приложениях

Добавлено: 16 Июнь 2015, 12:23
Игорь Столяров
kreator писал(а): что MS завершила поддержку XP
Я не против системного шрифта современных Windows ...
Здесь скорее проблема в том, что не всякий компьютер с WinXP потянет Win10, ой не всякий ...
К тому MS лукавит насчет перехода, я помню в свое время при переходе WinXP на Win7 пришлось много компов
менять просто из-за отсутствия драйверов на старое железо ... Та же история и здесь, не зря пол Китая сидит на XP. :idied:

C10 и русские буквы в сгенерированных приложениях

Добавлено: 16 Июнь 2015, 13:03
Yufil
Добрый день!

Несколько бессвязных мыслей ... :D
1. Вроде, Win8 и позже требует UEFI вместо BIOS. Недавно на работе попытка установить Win8/64 на неплохой комп обломилась..

2. Никто не пользует XPTaskPanel в CW9-CW10 ? Там почему-то деструктор класса падать стал на ровном месте :( Тот же исходник в CW6 работает со свистом.

3. Не очень удобно в Дизайнере экранов, для каждого контрола сразу выставляется кодовая страница 204, но в исходном коде она не появляется, а вот если пихнуть стрелки вверх-вниз на спинбоксе, всё устаканится. Неудобно :?

4. Ещё о русских буквах - в Abpopup.clw строка 701 и дальше

Код: Выделить всё

      OF VAL('A') TO VAL('Z')
      OROF VAL('a') TO VAL('z')
      OROF VAL('0') TO VAL('9')
Если сюда не добавить кириллицу, то Popup-меню в Browse правильно работать не будет ...
Эту правку в текст программы не воткнёшь

C10 и русские буквы в сгенерированных приложениях

Добавлено: 16 Июнь 2015, 14:41
kreator
Меня четвёртый пункт заинтересовал, никогда не сталкивался, хотя часто пользуюсь. Там идёт проверка на уникальность названия пункта меню, причём, если название и текст пункта совпадают (метод AddItem вызывается с одним значением). Как нарваться на эту ошибку (а она, действительно, должна быть судя по тексту)?