Автор | Сообщение |
|
| постоянный участник
|
Пост 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
|
|
|
|
| постоянный участник
|
Пост N: 6914
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.03.21 15:13. Заголовок: Pasha пишет: Кодиро..
Pasha пишет: цитата: | Кодировки семейства 1251: RU1251, UA1251 |
| Да это скорее всего. База у меня сейчас в RU866 переделаю на RU1251. Приходят реестры в xlsx файлах - для программы перекодирую в dbf-RU1251, вроде нормально укр.буквы сохраняются. Вот и подумал, может быть вообще оставить только одну кодировку RU1251 ? И сделать простой переключатель у себя в программе Рус./Укр. Или так не пойдёт, из-за каких то особенностей укр.языка ? А тексты перевода хотелось бы иметь в текстовых файлах. Переводить проще. На окно в программе повесить процедуру замены русского языка на украинский. Только как реализовать, пока не знаю. Dima пишет: цитата: | Ну и тебе временно надо поставить укр.раскладку что бы формы вывода перебить. |
| А без этого нельзя ? В гугле-переводчике вроде текст нормально переводиться на украинский.
|
|
|
|
|
| Администратор
|
Пост N: 4012
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.03.21 18:04. Заголовок: Andrey пишет: Вот и..
Andrey пишет: цитата: | Вот и подумал, может быть вообще оставить только одну кодировку RU1251 ? |
| cp1251 - единая кодовая страница что для русского, что для украинского языка. RU1251 и UA1251 содержат каждая свое подмножество символов из этих языков. Их совместно использовать можно и нужно. Это подход здорового человека. Мена резанул как раз вопрос совместного использования RU1251 и UA1125 - это совсем разные кодовые страницы, и их совместное использование - подход курильщика.
|
|
|
|
| постоянный участник
|
Пост N: 6915
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.03.21 22:31. Заголовок: Спасибо Pasha ! :sm..
Спасибо Pasha ! Хоть понятней стало мне. Буду переделывать тогда базу и справочники на RU1251. Нужно тогда мне будет сделать сопровождение клиентов со старой базой в RU866 и новой RU1251. Как сделать, пока не знаю. Всех клиентов переводить, это утомительное занятие. Какой то переключатель в настройках делать нужно наверное.
|
|
|
|
| Администратор
|
Пост N: 4013
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.03.21 09:16. Заголовок: Так можно и наоборот..
Так можно и наоборот. RU866 и UA1125 обе на основе cp866, можно делать такую комбинацию
|
|
|
|
| постоянный участник
|
Пост N: 6917
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.03.21 23:25. Заголовок: Pasha пишет: RU1251..
Pasha пишет: цитата: | RU1251 и UA1251 содержат каждая свое подмножество символов из этих языков. Их совместно использовать можно и нужно. |
| А в чём их разница, по простому объяснить можешь ? Можно ли просто оставить одну кодировку RU1251 в программе, раз можно там записывать укр. язык ?
|
|
|
|
| Администратор
|
Пост N: 4014
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.03.21 09:02. Заголовок: Изучаем матчасть. По..
Изучаем матчасть. По хорошему это первое, что надо было сделать, прежде чем использовать эти кодовые страницы Есть cp866, в котором отсутствует украинская i, а остальные украинские и белорусские допсимволы присутствуют. Отсутствует украинская г с хвостиком, так как на момент создания cp866 ее в украинском алфавите еще не было. Страница 1125 из укрстандарта совпадает с cp866 кроме допимволов, а именно: там нет белорусских допсимволов, есть украинская i и г с хвостиком. И коды украинских допсимволов не совпадают с кодами из cp866 Ну а cp1251 она и в африке 1251 - там все допсимволы уже есть
|
|
|
|
| постоянный участник
|
Пост N: 6918
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.03.21 11:24. Заголовок: Спасибо БОЛЬШОЕ Pash..
Спасибо БОЛЬШОЕ Pasha !
|
|
|
|
| постоянный участник
|
Пост N: 7027
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.21 20:16. Заголовок: Подскажите пожалуйст..
Подскажите пожалуйста как сделать запись в текстовое поле БД, чтобы после сортировки эта запись стояла в конце базы ? С учётом украинского языка. Кодировка базы у меня 1251. Я раньше писал код CHR(250)+" итого", подойдет так или нет ?
|
|
|
|
| |
Пост N: 7441
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.08.21 20:59. Заголовок: Andrey пишет: Я ран..
Andrey пишет: цитата: | Я раньше писал код CHR(250)+" итого", подойдет так или нет ? |
| Попробуй и узнаешь , ну ты как маленький , такие детские вопросы задавать
|
|
|
|
| постоянный участник
|
Пост N: 7028
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.21 23:00. Заголовок: Dima пишет: Попробу..
Dima пишет: цитата: | Попробуй и узнаешь , ну ты как маленький , такие детские вопросы задавать |
| Попробовал. В печати знак "ъ" выдаёт.
|
|
|
|
| |
Пост N: 1744
Зарегистрирован: 20.02.11
|
|
Отправлено: 23.08.21 23:24. Заголовок: Andrey пишет: Попро..
|
|
|
|
|
| постоянный участник
|
Пост N: 7029
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.08.21 00:23. Заголовок: Haz пишет: Можно сд..
Haz пишет: цитата: | Можно сделать техническое поле из одного символа и использовать составную сортировку |
| Спасибо БОЛЬШОЕ ! Об этом и не подумал. Хороший трюк !
|
|
|
|
| постоянный участник
|
Пост N: 7066
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.09.21 20:39. Заголовок: Пытаюсь прочитать об..
Пытаюсь прочитать объекты на форме через: aVal := HMG_GetFormControls(cForm, "LABEL") - выдаёт список aVal := HMG_GetFormControls(cForm, "GETBOX") - выдаёт список aVal := HMG_GetFormControls(cForm, "BUTTONEX") - выдаёт пусто = {} А есть у кого готовый список: объект - внутреннее название объекта ? P.S. BUTTONEX - это OBUTTON, нашёл методом тыка.
|
|
|
|
| постоянный участник
|
Пост N: 1716
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.09.21 21:19. Заголовок: Andrey пишет: нашёл..
Andrey пишет: И тему также выбрал..
|
|
|
|
| постоянный участник
|
Пост N: 7067
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.09.21 21:21. Заголовок: Andrey пишет: Пытаю..
Andrey пишет: цитата: | Пытаюсь прочитать объекты на форме через: |
| Это для перевода на украинский язык. Всё что на форме считываю и перевожу на украинский язык.
|
|
|
|
| постоянный участник
|
Пост N: 7071
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.09.21 12:03. Заголовок: Сделал пример для не..
Сделал пример для нескольких языков в проекте. Кому интересно смотреть здесь - https://cloud.mail.ru/public/jXWN/CCoGsRBmD Там смотреть файл readme.txt Подход простой: один файл с языками *.lng и перевод формы при показе. Для этого в окно в процедуру ставлю везде так - ON INIT Form2Lang()
|
|
|
|
| постоянный участник
|
Пост N: 7072
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.09.21 09:19. Заголовок: А как можно получить..
А как можно получить список окон своей программы ? Если окно открыто, то это понятно что можно выбрать список окон МиниГуи в памяти. А если программу свою открыл, то как узнать какие есть окна в своей программе ?
|
|
|
|
| постоянный участник
|
Пост N: 7073
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.09.21 14:41. Заголовок: Кодировки RU1251 хва..
Кодировки RU1251 хватает для русского, белорусского и украинского языков. А как сделать файл для прибалтийских языков ? Какая кодировка должна быть ? Это просто для себя понять как можно делать. А как интересно работают с казахским языком ? Или с языками Средней Азии ? Можно в МиниГуи работать с ними ?
|
|
|
|
| постоянный участник
|
Пост N: 3903
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.09.21 14:55. Заголовок: Andrey пишет А как с..
Andrey пишет цитата: | А как сделать файл для прибалтийских языков ? Какая кодировка должна быть ? |
| Для однобайтной версии 1. В Region ставим все для Латвии 2. Языки аналогично 3. в программе hmg ставим LVWIN (1257), где у тебя RUSSIAN но в целом фигово выходит, т.к. у многих Region Русский и вся hmg с лат. яз. разваливается надо исп. версию Unicode, пример работы с разными языками уже давал. Текстовые файлы, включая ini надо делать в Utf-8, желательно с BOM тогда все нормально и пофиг, что в Region
|
|
|
|
| постоянный участник
|
Пост N: 7074
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.09.21 15:17. Заголовок: SergKis пишет: Текс..
SergKis пишет: цитата: | Текстовые файлы, включая ini надо делать в Utf-8, желательно с BOM |
| Текстовые файлы в Utf-8 знаю как делать. А что такое с BOM ?
|
|
|
|
| |
Пост N: 7451
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.09.21 15:32. Заголовок: Andrey пишет: А что..
Andrey пишет: Гугл спроси а то Сергей у тебя как справочное бюро
|
|
|
|
|
| постоянный участник
|
Пост N: 7075
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.09.21 15:38. Заголовок: Dima пишет: Гугл сп..
|
|
|
|
| |
Пост N: 1774
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.09.21 15:53. Заголовок: Andrey пишет: Блин,..
|
|
|
|
| постоянный участник
|
Пост N: 7076
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.09.21 16:04. Заголовок: Спасибо ! :sm36: А..
Спасибо ! А то и не знаешь что читать. Пока до правильной статьи доберёшься, глаза в кучку соберутся...
|
|
|
|
| постоянный участник
|
Пост N: 3904
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.09.21 16:21. Заголовок: Andrey чаще читай hm..
Andrey, чаще читай hmg исходники. Создание файла с BOM в hmg HMG_CreateFile_UTF16LE_BOM( cFile ) или hb hb_MemoWrit( cFile, hb_utf8Chr( 0xFEFF ) ) потом дописывай в файл cFile, делая hb_StrToUtf8( cValue ) цитата: | А в Far'е это можно делать ? |
| Ставь кодовую страницу редактору Shift+F8 Utf-8 (при сохранении BOM не будет) или бери в редактор файл с BOM (созданный выше) или исп. редактор hbedit.exe ставь кодовую страницу редактору Shift+F8 Utf-8 и при Save as ... ставь галочку с BOM
|
|
|
|
| постоянный участник
|
Пост N: 7077
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.09.21 16:56. Заголовок: Спасибо БОЛЬШОЕ ! :..
Спасибо БОЛЬШОЕ !
|
|
|
|
| |
Пост N: 7452
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.09.21 18:10. Заголовок: SergKis пишет: Став..
SergKis пишет: цитата: | Ставь кодовую страницу редактору Shift+F8 Utf-8 (при сохранении BOM не будет) |
| Не совсем так
|
|
|
|
| постоянный участник
|
Пост N: 3905
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.09.21 18:22. Заголовок: Dima пишет Не совсем..
Dima пишет Я и забыл про Shift+F2, жмукаю сразу F2, т.к. файлы уже с BOM в работе для Far
|
|
|
|
| постоянный участник
|
Пост N: 7097
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.10.21 10:31. Заголовок: Искал белорусский яз..
Искал белорусский язык в МиниГуи. Не нашёл ... Может не там искал. Смотрел i_lang.ch Так же почему то не нашёл как поставить латвийский язык. Просто для проверки. SergKis пишет: цитата: | 3. в программе hmg ставим LVWIN (1257), где у тебя RUSSIAN |
| Вообще не компилируется: #include "hblang.ch" #include "hbextcdp.ch" ...... SET CODEPAGE TO LVWIN // (1257) SET LANGUAGE TO LVWIN // (1257) Harbour 3.2.0dev (r2104281802) Copyright (c) 1999-2021, https://harbour.github.io/ SetsEnv_misc.prg(25) Error E0030 Syntax error "syntax error at 'CODEPAGE'" SetsEnv_misc.prg(26) Error E0030 Syntax error "syntax error at 'LANGUAGE'" 2 errors No code generated.
|
|
|
|
| постоянный участник
|
Пост N: 3924
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.10.21 11:03. Заголовок: Andrey пишет Вообще ..
Andrey пишет Не трать время, говорил, ранее. НЕ работает и не нужен однобайтовый вариант от слова, совсем HB_CDPSELECT( "LVWIN" ) HB_LANGSELECT( "LVWIN" ) Работает только в unicode версии hmg вариант oCol:bDecode := {|cv| hb_StrToUtf8(cv, "LVWIN" ) } oCol:bEncode := {|cv| hb_Utf8ToStr(cv, "LVWIN" ) } oCol:cHeading += CRLF + "LVWIN" или все в Utf8
|
|
|
|
| постоянный участник
|
Пост N: 7098
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.10.21 11:20. Заголовок: SergKis пишет: Не т..
SergKis пишет: цитата: | Не трать время, говорил, ранее. НЕ работает |
| Пропустил это. А как ты тогда собираешь свою версию МиниГуи, кроме unicode ? Просто интересно.
|
|
|
|
| постоянный участник
|
Пост N: 3925
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.10.21 11:26. Заголовок: Andrey пишет А как т..
Andrey пишет цитата: | А как ты тогда собираешь свою версию МиниГуи, кроме unicode ? |
| Тоже много раз писал в темах. Сборка hb 3.2 unicode с LV866 (EN,RU,LV языки) Сборка hmg 2.07 unicode от 2012 года с работающим MDI интерфейсом с совместной работой MODAL окон Тсб версии 7.0 + изменения от тсб версии 9.0 (тек. версии) и кое что свое по минимуму VO 2.7 переделанная в unicode (работа с pdf, почтой, печать) до сих пор на ней Win32 C++ модуль с HtmLayout.dll (от 2003-2009 года), на нем была работа (css, html) таблиц (как тсб, но с расцветкой слов в ячейках) до появления версии hb 2.0 unicode, сейчас не модифицируется, т.к. продвижение (behaviors) dll ушло из C++ в js подобный язык, а потом совсем прекратилось
|
|
|
|
| постоянный участник
|
Пост N: 7099
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.10.21 12:05. Заголовок: Понял. Спасибо !..
Понял. Спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 7170
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.12.21 18:34. Заголовок: Что то не получается..
Что то не получается правильно переключать языки в МиниГуи. Открываю 4 окна (одна функция) со своим языком. Вот кусок из примера: SET CODEPAGE TO ENGLISH SET LANGUAGE TO ENGLISH ? Hb_LangSelect() ---> в лог-файле будет en.EN myViewer("NOWAIT", "(1) CodePage: ENGLISH ! ") // открыть базу для белорусского языка SET LANGUAGE TO BYELORUSSIAN myViewer("NOWAIT", "(2) CodePage: RU1251 ! ") // открыть базу для украинского языка SET CODEPAGE TO UKRAINIAN // hb_SetCodepage( "UA1251" ) SET LANGUAGE TO UKRAINIAN // hb_CdpSelect( "UA1251" ) ? Hb_LangSelect() ---> в лог-файле будет uk.UA1251 myViewer("NOWAIT", "(3) CodePage: UA1251 ! ") // открыть базу для русского языка SET CODEPAGE TO RUSSIAN SET LANGUAGE TO RUSSIAN ? Hb_LangSelect() ---> в лог-файле будет ru.RU1251 myViewer("NOWAIT", "(4) CodePage: RU1251 ! ") ... Function myViewer(cWait, cTitle) ... cSetCP := hb_SetCodepage() cSelCdp := hb_CdpSelect() cLngSel := Hb_LangSelect() ... DEFINE WINDOW &cForm ...TITLE cTitle ... ; WINDOWTYPE STANDARD TOPMOST NOMAXIMIZE NOSIZE ; ON GOTFOCUS myLangRecover(cSetCP,cSelCdp,cLngSel) ; // возврат фокуса на форму .... CENTER WINDOW &cForm ACTIVATE WINDOW &cForm NOWAIT RETURN NIL FUNCTION myLangRecover(cSetCP,cSelCdp,cLngSel) DO EVENTS hb_SetCodepage(cSetCP) hb_CdpSelect(cSelCdp) hb_LangSelect(cLngSel) myGetLang(cTitle) // Какой язык в окне ? DO EVENTS RETURN NIL FUNCTION myGetLang(cTitle) // Какой язык в окне ? LOCAL cMsg cMsg := "hb_SetCodepage()= " + hb_SetCodepage() + ";" cMsg += "hb_CdpSelect() = " + hb_CdpSelect() + ";" cMsg += "hb_LangSelect() = " + hb_LangSelect() + ";" cMsg += "hb_langName() = " + hb_langName() + ";" cMsg += "hb_langMessage()= " + hb_langMessage() + ";" AlertInfo( cMsg, cTitle, , , {RED} ) RETURN NIL И в результате если переключаюсь на окно (1) имею вот такой результат: hb_SetCodepage()= EN hb_CdpSelect() = EN hb_LangSelect() = en.EN.EN hb_langName() = Harbour Language: en.EN.EN English (English) hb_langMessage()= en.EN.EN hb_langErrMsg(1)= Argument error Или на окно (4) hb_SetCodepage()= RU1251 hb_CdpSelect() = RU1251 hb_LangSelect() = ru.RU1251.RU1251 hb_langName() = Harbour Language: ru.RU1251.RU1251 Russian () hb_langMessage()= ru.RU1251.RU1251 hb_langErrMsg(1)= Почему задвоение языка идёт ? ru.RU1251.RU1251 вместо ru.RU1251 ? Или нужно по другому переключать язык ? И почему в МиниГуи 2 команды всего для смены языка, а приходиться задействовать у себя 3 ?
|
|
|
|
| постоянный участник
|
Пост N: 7181
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.21 14:50. Заголовок: А как можно узнать, ..
А как можно узнать, какие языки подключены в ехе-нике программы ?
|
|
|
|
| постоянный участник
|
Пост N: 4010
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.12.21 15:28. Заголовок: Andrey пишет А как м..
Andrey пишет цитата: | А как можно узнать, какие языки подключены в ехе-нике программы ? |
| Ты сам делаешь список request подключений языков, можешь составить список (ИИ тут не причем ) REQUEST HB_CODEPAGE_UA1251, HB_CODEPAGE_UA866 // украинский язык REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866 // русский язык REQUEST HB_LANG_BEWIN // белорусский язык
|
|
|
|
| постоянный участник
|
Пост N: 7182
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.21 15:50. Заголовок: SergKis пишет: Ты с..
SergKis пишет: цитата: | Ты сам делаешь список request подключений языков, можешь составить список (ИИ тут не причем ) |
| Нужен ОБЯЗАТЕЛЬНО ИИ в своей проге. Список открытых баз делаем же: hb_waEval( {|| AADD(aAlias, Alias()) } ) hb_waEval( {|| AADD(aSelect, Select()) } ) hb_waEval( {|| AADD(aRdd, RddName()) } ) Список используемых фонтов в программе тоже делаем. Почему нельзя определить в программе список доступных CODEPAGE и LANGUAGE ?
|
|
|
|
| постоянный участник
|
Пост N: 4011
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.12.21 16:03. Заголовок: Andrey пишет Почему ..
Andrey пишет цитата: | Почему нельзя определить в программе список доступных CODEPAGE и LANGUAGE ? |
| Потому что не сделав REQUEST\EXTERNAL, не будет подключения модуля языка к exe. посмотри hbedit.exe сборку, там есть ch файлы для подкл. ф-ий, в том числе и по языку и сборка hbp с параметром full и без него. цитата: | Список используемых фонтов в программе тоже делаем. |
| Это большого смысла не имеет, т.к. однобайтная сборка завязана на Region, т.е. в exe можешь подключить "все языки мира", но для работы уст. только связаный с Region. prg файл будет в каком языке ? Текстовые константы, которые используешь в Label, не из dbf, будут на каком языке ? Т.е. нет большого смысла в однобайтной сборке пихать языки в один exe, проще для каждого языка делать свою сборку exe.
|
|
|
|
| постоянный участник
|
Пост N: 7183
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.21 16:53. Заголовок: SergKis пишет: т.е...
SergKis пишет: цитата: | т.е. в exe можешь подключить "все языки мира" |
| Да не хочу я подключать все языки мира. Речь идёт о программе, которую пишет любой программист. Он и использует свой язык - один. А у меня в проге уже используется 3 языка (анг.,русский и украинский), причём ещё разные кодировки. Вот русские жадные аж 4 кодировки для себя придумали. Это был юмор, если кто не понял. Теперь борются с ними... SergKis пишет: цитата: | Т.е. нет большого смысла в однобайтной сборке пихать языки в один exe, проще для каждого языка делать свою сборку exe. |
| Ну Григорий же как то выкручивается для разных языков. CASE cLang == "EL" ///////////////////////////////////////////////////////////// // GREEK - ΕΛΛΗΝΙΚΑ ///////////////////////////////////////////////////////////// aMessages[ 1 ] := "Ελαττώστε κάτι από τα παρακάτω (ή όλα):" // 1 aMessages[ 2 ] := "- τον αριθμό Στηλών" // 2 aMessages[ 3 ] := "- το αριστερό περιθώριο" // 3 aMessages[ 4 ] := "ή επιλέξτε LANDSCAPE προσανατολισμό σελίδας." // 4 aMessages[ 5 ] := "Πρόβλημα: Η γραμμή ξεπερνάει το πλάτος σελίδας!" // 5 aMessages[ 6 ] := "Μέγεθος Σελίδας:" // 6 aMessages[ 7 ] := "Μέγεθος γραμμ/σειράς = " // 7 aMessages[ 8 ] := "Μέγιστος αριθμός γραμμών =" // 8 aMessages[ 9 ] := "Αριθμός γραμμών που ζητήθηκαν =" // 9 aMessages[ 10 ] := "Μέγιστος αριθμός Στηλών =" // 10 aMessages[ 11 ] := "Αριθμός Στηλών που ζητήθηκαν =" // 11 Вот и я хотел бы просто определить какие языки подключены в свой ехе-ник через REQUEST\EXTERNAL SergKis пишет: цитата: | Текстовые константы, которые используешь в Label, не из dbf, будут на каком языке ? |
| Ну на том языке, какой установили на окно. DEFINE WINDOW ... ON GOTFOCUS myLangRecover(cSetCP,cSelCdp,cLngSel) ; // возврат фокуса на форму
|
|
|
|
| постоянный участник
|
Пост N: 4012
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.12.21 17:06. Заголовок: Григорий же как то в..
цитата: | Григорий же как то выкручивается для разных языков |
| Это просто данные, переведенные и полученные на том языке ("EL" в данном случае), например ставим нужный язык в редакторе и переводим EN аналоги текста и переносим в prg не меняя, т.е. будем видеть кракозяблики, но установив соответствующий язык, в prg и обратившись к этим константам, получишь правильный текст. Если prg у меня в проекте будут в utf-8 (RUSSIAN тексты или др. язык), а использовать их я буду в однобайтной сборке, то перекодировав utf-8 => RU1251 (или др. язык) в работе exe будут правильные тексты и сообщения по языкам, что и делал ранее для редактора Akelpad, даже для clipper проектов, т.к. у M$, hb нет кодировки LV866 цитата: | Вот и я хотел бы просто определить какие языки подключены в свой ехе-ник через REQUEST\EXTERNAL |
| Если сам делал REQUEST\EXTERNAL, то и сделай массив, или в BEGIN SEQUNCE ... делай перебор, ОПЯТЬ ЖЕ ПО СПИСКУ (массив откуда взять ?) ЯЗЫКОВ и составляй массив, не попавших в RECOVER цитата: | Ну на том языке, какой установили на окно. DEFINE WINDOW ... ON GOTFOCUS myLangRecover(cSetCP,cSelCdp,cLngSel) ; // возврат фокуса на форму |
| Всегда получишь ерунду, если язык не соответствует установке Region
|
|
|
|
| постоянный участник
|
Пост N: 7185
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.21 17:31. Заголовок: Если основной текст ..
Если основной текст программы в RU1251, то языковой модуль для этой программы (отдельный prg) делаем его в кодировке utf-8: IF cLang == "RU1251" xRet := { "Удалить последний фильтр столбца",; "Удалить ВСЕ фильтры по столбцам" } ELSEIF cLang == "UA1251" xRet := { "Видалити останній фільтр стовпця",; "Видалити ВСІ фільтри по стовпцях" } ELSEIF cLang == "KZWIN" xRet := {"Соңғы баған сүзгісін жою" ,; "БАРЛЫҚ сүзгілерді бағандар бойынша жою"} .... For i :=1 To Len(xRet) xRet := hb_Utf8ToStr(xRet , "RU1251") Next .... Return xRet И в основной программе размещаем эти текстовые константы. Так будет верно ?
|
|
|
|
| постоянный участник
|
Пост N: 4013
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.12.21 17:39. Заголовок: Andrey пишет Так буд..
Andrey пишет Попробуй, это же не долго, у тебя все под рукой Возможно команды из текста prg utf8 убери в осн. модуль и правильно напиши For i :=1 To Len(xRet) xRet := hb_Utf8ToStr(xRet , "RU1251") Next PS что за cdp будет стоять ?
|
|
|
|
| постоянный участник
|
Пост N: 7186
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.21 19:16. Заголовок: SergKis пишет: что ..
SergKis пишет: цитата: | что за cdp будет стоять ? |
| Да это сайт глюкнул. Писал так xRet [ nJ ] := hb_Utf8ToStr( xRet [ nJ ] , "RU1251")
|
|
|
|
| постоянный участник
|
Пост N: 4014
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.12.21 19:22. Заголовок: Andrey SergKis пише..
Andrey SergKis пишет: цитата: | что за cdp будет стоять ? |
| Ты переводишь все в RU1251, а какая cdp будет уставлена для работы в момент работы с текстом ?
|
|
|
|
| постоянный участник
|
Пост N: 7187
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.21 20:24. Заголовок: SergKis пишет: Ты п..
SergKis пишет: цитата: | Ты переводишь все в RU1251, а какая cdp будет уставлена для работы в момент работы с текстом ? |
| Так теrст проги установлен в 1251, значит все значения на форме будут в 1251. Это я под себя перевожу под 1251. А для других надо бы тогда по другому: FUNCTION myLangeRes(..,cPrgCP) LOCAL xRet, cLang := hb_CdpSelect() ... xRet [ nJ ] := hb_Utf8ToStr( xRet [ nJ ] , cPrgCP)
|
|
|
|
| постоянный участник
|
Пост N: 7628
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.23 18:28. Заголовок: REQUEST HB_CODEPAGE_..
REQUEST HB_CODEPAGE_UA1251, HB_CODEPAGE_UA866 // украинский язык REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866 // русский язык REQUEST HB_LANG_BEWIN // белорусский язык А как работать в МиниГуи с кодовой страницей LANG_BEWIN ? В Харборе есть кодовая страница LANG_BEWIN ?
|
|
|
Ответов - 66
, стр:
1
2
3
4
All
[только новые]
|
|