Автор | Сообщение |
|
| постоянный участник
|
Пост N: 6875
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.21 16:55. Заголовок: Интерфейс с украинским языком ?
Объявился у меня старый заказчик из Киева, у него Win10 с тремя языками. Нужно ему сделать печать на украинском в ФастРепорте. Вопрос такой - как для имеющей сейчас программы МиниГуи добавить украинский режим сохранения ini-файлов ? И как переключать принудительно на украинский язык отдельное окно для настроек текстовых данных ? Типа банк, расчётный счёт и другие различные сообщения. Заранее СПАСИБО за ответ.
|
|
|
Ответов - 66
, стр:
1
2
3
4
All
[только новые]
|
|
|
| |
Пост N: 7275
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.01.21 17:04. Заголовок: Andrey пишет: Вопро..
Andrey пишет: цитата: | Вопрос такой - как для имеющей сейчас программы МиниГуи добавить украинский режим сохранения ini-файлов |
| Я так думаю что менять ни чего не нужно если мы о форме ввода а вот вывод на печать да придется переделать на мову. Ну и тебе временно надо поставить укр.раскладку что бы формы вывода перебить. Andrey пишет: цитата: | И как переключать принудительно на украинский язык отдельное окно для настроек текстовых данных ? |
| Где то был такой вопрос и решение тут , с ходу не найду. У тебя базы кстати в какой кодировке ?
|
|
|
|
| постоянный участник
|
Пост N: 6876
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.21 18:22. Заголовок: Dima пишет: У тебя ..
Dima пишет: цитата: | У тебя базы кстати в какой кодировке ? |
| RU866
|
|
|
|
| |
Пост N: 7276
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.01.21 19:56. Заголовок: Andrey пишет: RU866..
Andrey пишет: Возможно придется открывать с кодировкой UA1125 или UA866 , чекать надо
|
|
|
|
| постоянный участник
|
Пост N: 6877
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.21 23:06. Заголовок: Dima пишет: Возмож..
Dima пишет: цитата: | Возможно придется открывать с кодировкой UA1125 или UA866 , чекать надо |
| Список базы не буду менять, там идёт только сумма оплаты, долг и адрес на русском языке. У заказчика в 1С всё на русском, я перетащил к себе тоже на русском. Нужно сообщения в квитанции на украинском делать. Вот где их сохранить потом не знаю. Наверное лучше открыть базу с кодировкой UA1125 и там сохранять сообщения для печати на украинском. В ФастРепорте есть ресурсный файл для украинского, т.е. сообщения легко будут показываться на украинском. Волнует как сделать окно чисто под украинский язык, т.е. принудительно создавать окно под кодировку UA1125 и переключаться на укр.язык а после закрытия окна - переключаться обратно на RU1251 (у меня формы в этой кодировке). Как это сделать ?
|
|
|
|
| |
Пост N: 7277
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.01.21 16:19. Заголовок: Andrey Может тут ht..
|
|
|
|
| постоянный участник
|
Пост N: 6881
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.02.21 17:15. Заголовок: Вроде сделал и работ..
Вроде сделал и работает ! Т.е. 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 - ошибка пропала. Можно ли поправить исходники МиниГуи от этой ошибки ?
|
|
|
|
| постоянный участник
|
Пост N: 6883
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.02.21 07:38. Заголовок: И ещё одна проблема ..
И ещё одна проблема вылазит при переключении кодировки на украинский. Не пишет в лог-файл, если в пути стоят русские буквы. _SetGetLogFile( GetStartUpFolder() + "\_Msg.log" ) Можно ли это тоже поправить ?
|
|
|
|
| постоянный участник
|
Пост N: 3559
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.02.21 10:34. Заголовок: Andrey пишет Можно л..
Andrey пишет цитата: | Можно ли это тоже поправить ? |
| Можно, надо Перевести hmg в уникод или Использовать только EN названия каталогов и файлов в своей программе
|
|
|
|
| постоянный участник
|
Пост N: 6884
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.02.21 10:51. Заголовок: SergKis пишет: или ..
SergKis пишет: цитата: | или Использовать только EN названия каталогов и файлов в своей программе |
| А почему нельзя запомнить кодировку для ErrorLog.htm и файла-отладки при запуске своей проги ? При ошибке менять кодировку пути и записывать ErrorLog.htm При первом обращении к файлу-отладки _SetGetLogFile() запоминать кодировку и писать потом со сменой кодировке.
|
|
|
|
| постоянный участник
|
Пост N: 3560
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.02.21 11:26. Заголовок: Andrey пишет _SetGet..
Andrey пишет цитата: | _SetGetLogFile() запоминать кодировку и писать потом со сменой кодировке. |
| Так это твоя проблема в какой кодировке выводить, работать, открывать конкретные файлы, а не hmg и аналогичных файловых ф-ий много и hb (hmg) также должен быть unicode
|
|
|
|
| Администратор
|
Пост N: 3997
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.02.21 13:10. Заголовок: GetStartUpFolder раб..
GetStartUpFolder работает через ExeName()/hb_progname(), которые возвращают строку в кодировке oem Соответственно для функций, которым нужна строка в ansi, требуется конвертация Для unicode этого не требуется
|
|
|
|
|
| постоянный участник
|
Пост N: 6904
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.03.21 04:07. Заголовок: SergKis пишет: Так ..
SergKis пишет: цитата: | Так это твоя проблема в какой кодировке выводить, работать, открывать конкретные файлы, а не hmg и аналогичных файловых ф-ий много и hb (hmg) также должен быть unicode |
| А как тогда делать ? Вот простой пример. На компе Win8.1 установлена только русская и анг. язык. Старт программы из папки с русскими именами. У себя в отдельном модуле делаю: 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" файл отладки _Msg.log: Проверка UkForm ! Вызов из: PRN_UKFORM(16) --> test_uk.prg RU1251 W:\HB_Project\Abon4prj\Тест4_RU-UK-EN Проверка ! Вызов из: PRN_UKFORM(37) --> test_uk.prg RU1251 И ВСЁ ! Дальше не выводит отладку от слова СОВСЕМ ! Куда идёт отладка после переключения ?
|
|
|
|
| постоянный участник
|
Пост N: 6905
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.03.21 04:09. Заголовок: Если поставить англ...
Если поставить англ. каталог, то всё нормально, вся отладка появляется ! Проверка ! Вызов из: 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
|
|
|
|
| постоянный участник
|
Пост N: 6906
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.03.21 04:55. Заголовок: Добавляем в пример: ..
Добавляем в пример: 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" ) Получаем ошибку: Ну и как исправить код программы для правильного создания БД для RU1251 ? Почему лог-файл ошибки не пишется ?
|
|
|
|
| постоянный участник
|
Пост N: 1608
Зарегистрирован: 27.01.07
|
|
Отправлено: 07.03.21 08:42. Заголовок: Путь к файлу с русск..
Путь к файлу с русскими буквами должен быть в кодировке 866, а не 1251
|
|
|
|
| постоянный участник
|
Пост N: 6909
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.03.21 22:04. Заголовок: PSP пишет: Путь к ф..
PSP пишет: цитата: | Путь к файлу с русскими буквами должен быть в кодировке 866, а не 1251 |
| А как сделать вывод в лог-ошибки, как переназначить путь на русскую кодировку ? Доступа же нет к этому пути. Почему лог-файл ошибки не пишется ?
|
|
|
|
| постоянный участник
|
Пост N: 1609
Зарегистрирован: 27.01.07
|
|
Отправлено: 08.03.21 09:03. Заголовок: Andrey пишет: Почем..
Andrey пишет: цитата: | Почему лог-файл ошибки не пишется ? |
| Думаю, по той же причине. У тебя в примере цитата: | _SetGetLogFile( GetStartUpFolder() + "\_Msg.log" ) |
| и лог-файл не создается. Попробуй обернуть вот так hb_ANSItoOEM( GetStartUpFolder() )
|
|
|
|
| постоянный участник
|
Пост N: 6913
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.03.21 12:55. Заголовок: Мне очень интересно ..
Мне очень интересно как можно реализовать русский/украинский языковой модуль через dbf-файл. Имея RU1251 кодировку базы можно же сделать для 2х языков ? Или нужно всё таки под украинский язык базу открывать как UA1251 ?
|
|
|
|
| Администратор
|
Пост N: 4011
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.03.21 15:09. Заголовок: Андрей, а можно как-..
Андрей, а можно как-то прояснить, какие используются кодировки ? Кодировки семейства 866: RU866, UA866, UA1125 Кодировки семейства 1251: RU1251, UA1251 Какие предполагается использовать для программы, какие для dbf, и из каких соображений ?
|
|
|
|
| постоянный участник
|
Пост N: 3607
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.03.21 15:32. Заголовок: Andrey Попробуй оди..
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
|
|
|
Ответов - 66
, стр:
1
2
3
4
All
[только новые]
|
|