Форум » GUI » Интерфейс с украинским языком ? » Ответить

Интерфейс с украинским языком ?

Andrey: Объявился у меня старый заказчик из Киева, у него Win10 с тремя языками. Нужно ему сделать печать на украинском в ФастРепорте. Вопрос такой - как для имеющей сейчас программы МиниГуи добавить украинский режим сохранения ini-файлов ? И как переключать принудительно на украинский язык отдельное окно для настроек текстовых данных ? Типа банк, расчётный счёт и другие различные сообщения. Заранее СПАСИБО за ответ.

Ответов - 66, стр: 1 2 3 4 All

Dima: Andrey пишет: Вопрос такой - как для имеющей сейчас программы МиниГуи добавить украинский режим сохранения ini-файлов Я так думаю что менять ни чего не нужно если мы о форме ввода а вот вывод на печать да придется переделать на мову. Ну и тебе временно надо поставить укр.раскладку что бы формы вывода перебить. Andrey пишет: И как переключать принудительно на украинский язык отдельное окно для настроек текстовых данных ? Где то был такой вопрос и решение тут , с ходу не найду. У тебя базы кстати в какой кодировке ?

Andrey: Dima пишет: У тебя базы кстати в какой кодировке ? RU866

Dima: Andrey пишет: RU866 Возможно придется открывать с кодировкой UA1125 или UA866 , чекать надо


Andrey: Dima пишет: Возможно придется открывать с кодировкой UA1125 или UA866 , чекать надо Список базы не буду менять, там идёт только сумма оплаты, долг и адрес на русском языке. У заказчика в 1С всё на русском, я перетащил к себе тоже на русском. Нужно сообщения в квитанции на украинском делать. Вот где их сохранить потом не знаю. Наверное лучше открыть базу с кодировкой UA1125 и там сохранять сообщения для печати на украинском. В ФастРепорте есть ресурсный файл для украинского, т.е. сообщения легко будут показываться на украинском. Волнует как сделать окно чисто под украинский язык, т.е. принудительно создавать окно под кодировку UA1125 и переключаться на укр.язык а после закрытия окна - переключаться обратно на RU1251 (у меня формы в этой кодировке). Как это сделать ?

Dima: Andrey Может тут http://clipper.borda.ru/?1-4-0-00000260-000-10001-0-1258111453

Andrey: Вроде сделал и работает ! Т.е. 3 языка в программе на РАЗНЫХ окнах: RU-UK-EN В коде начала программы поставил REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866 REQUEST HB_CODEPAGE_UA1125, HB_CODEPAGE_UA866 При старте программы ставлю: SET CODEPAGE TO RUSSIAN SET LANGUAGE TO RUSSIAN Автоматом идет кодировка RU1251 ! Для перевода старых программ можно установить старую кодировку на формы (это кто не знает): hb_cdpSelect("RU866") У себя в отдельном модуле делаю: FUNCTION WinUK() ... cdp := hb_cdpSelect("UA1125") ... FORMA_UK() // вызов формы и запись в базу на украинском языке ... hb_cdpSelect( cdp ) Всё работает отлично, НО ПРИ ОШИБКЕ в проге лог-файл не создаётся, выдаёт ошибку: Наверное из-за того что в пути стоит РУССКАЯ кодировка, а в проге переключились на украинскую. Поставил в пути EN - ошибка пропала. Можно ли поправить исходники МиниГуи от этой ошибки ?

Andrey: И ещё одна проблема вылазит при переключении кодировки на украинский. Не пишет в лог-файл, если в пути стоят русские буквы. _SetGetLogFile( GetStartUpFolder() + "\_Msg.log" ) Можно ли это тоже поправить ?

SergKis: Andrey пишет Можно ли это тоже поправить ? Можно, надо Перевести hmg в уникод или Использовать только EN названия каталогов и файлов в своей программе

Andrey: SergKis пишет: или Использовать только EN названия каталогов и файлов в своей программе А почему нельзя запомнить кодировку для ErrorLog.htm и файла-отладки при запуске своей проги ? При ошибке менять кодировку пути и записывать ErrorLog.htm При первом обращении к файлу-отладки _SetGetLogFile() запоминать кодировку и писать потом со сменой кодировке.

SergKis: Andrey пишет _SetGetLogFile() запоминать кодировку и писать потом со сменой кодировке. Так это твоя проблема в какой кодировке выводить, работать, открывать конкретные файлы, а не hmg и аналогичных файловых ф-ий много и hb (hmg) также должен быть unicode

Pasha: GetStartUpFolder работает через ExeName()/hb_progname(), которые возвращают строку в кодировке oem Соответственно для функций, которым нужна строка в ansi, требуется конвертация Для unicode этого не требуется

Andrey: SergKis пишет: Так это твоя проблема в какой кодировке выводить, работать, открывать конкретные файлы, а не hmg и аналогичных файловых ф-ий много и hb (hmg) также должен быть unicode А как тогда делать ? Вот простой пример. На компе Win8.1 установлена только русская и анг. язык. Старт программы из папки с русскими именами. У себя в отдельном модуле делаю:[pre2] FUNCTION MAIN() .... _SetGetLogFile( GetStartUpFolder() + "\_Msg.log" ) fErase( _SetGetLogFile() ) .... FUNCTION WinUK() ... ? "Проверка UkForm ! " + ProcNL(), hb_cdpSelect() ? GetStartUpFolder() cdp := hb_cdpSelect("UA1125") ? "Переключили на - " + hb_cdpSelect() , ProcNL() ? GetStartUpFolder() ? " -- End test !!! Вывод в кодировке UA1125"[/pre2] файл отладки _Msg.log: [pre2]Проверка UkForm ! Вызов из: PRN_UKFORM(16) --> test_uk.prg RU1251 W:\HB_Project\Abon4prj\Тест4_RU-UK-EN Проверка ! Вызов из: PRN_UKFORM(37) --> test_uk.prg RU1251 [/pre2] И ВСЁ ! Дальше не выводит отладку от слова СОВСЕМ ! Куда идёт отладка после переключения ?

Andrey: Если поставить англ. каталог, то всё нормально, вся отладка появляется ! [pre2]Проверка ! Вызов из: MAIN(29) --> 21main.prg Проверка UkForm ! Вызов из: PRN_UKFORM(16) --> test_uk.prg RU1251 W:\HB_Project\Abon4prj\TEST4_RU-UK-EN Переключили на - UA1125 Вызов из: PRN_UKFORM(19) --> test_uk.prg W:\HB_Project\Abon4prj\TEST4_RU-UK-EN -- End test !!! Вывод в кодировке UA1125 [/pre2]

Andrey: Добавляем в пример:[pre2] FUNCTION WinUK() ... cFileDbf := GetStartUpFolder() + "\test_base.dbf" ? "Проверка UkForm ! " + ProcNL(), hb_cdpSelect() ? GetStartUpFolder() cdp := hb_cdpSelect("UA1125") ? "Переключили на - " + hb_cdpSelect() , ProcNL() ? GetStartUpFolder() ? " -- End test !!! Вывод в кодировке UA1125" ? cFileDbf aStruct := {} AADD( aStruct, {"TITLEWIN" , "C", 80, 0} ) AADD( aStruct, {"FIRMA" , "C", 60, 0} ) DbCreate( cFileDbf, aStruct, "DBFCDX", .T., "TEST", , "UA1125" )[/pre2] Получаем ошибку: Ну и как исправить код программы для правильного создания БД для RU1251 ? Почему лог-файл ошибки не пишется ?

PSP: Путь к файлу с русскими буквами должен быть в кодировке 866, а не 1251

Andrey: PSP пишет: Путь к файлу с русскими буквами должен быть в кодировке 866, а не 1251 А как сделать вывод в лог-ошибки, как переназначить путь на русскую кодировку ? Доступа же нет к этому пути. Почему лог-файл ошибки не пишется ?

PSP: Andrey пишет: Почему лог-файл ошибки не пишется ? Думаю, по той же причине. У тебя в примере _SetGetLogFile( GetStartUpFolder() + "\_Msg.log" ) и лог-файл не создается. Попробуй обернуть вот так hb_ANSItoOEM( GetStartUpFolder() )

Andrey: Мне очень интересно как можно реализовать русский/украинский языковой модуль через dbf-файл. Имея RU1251 кодировку базы можно же сделать для 2х языков ? Или нужно всё таки под украинский язык базу открывать как UA1251 ?

Pasha: Андрей, а можно как-то прояснить, какие используются кодировки ? Кодировки семейства 866: RU866, UA866, UA1125 Кодировки семейства 1251: RU1251, UA1251 Какие предполагается использовать для программы, какие для dbf, и из каких соображений ?

SergKis: Andrey Попробуй один дбф с укр. и рус. полями (не указывая CP не будет перекодировки) 1. окно RU SET CODEPAGE RUSSIAN USE Test ALIAS RU NEW SHARED тут tsb на русские поля или контролы USE 2. окно UA SET CODEPAGE UA1251 // глянь как правильно ставить USE Test ALIAS UA NEW SHARED тут tsb на украинские поля или контролы USE Не знаю, скажутся ли установки в Region на все это Для 1251 и 1257 в VO надо было уст. Region для каждого варианта 1, 2



полная версия страницы