Автор | Сообщение |
|
| постоянный участник
|
Пост N: 6875
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.21 16:55. Заголовок: Интерфейс с украинским языком ?
Объявился у меня старый заказчик из Киева, у него Win10 с тремя языками. Нужно ему сделать печать на украинском в ФастРепорте. Вопрос такой - как для имеющей сейчас программы МиниГуи добавить украинский режим сохранения ini-файлов ? И как переключать принудительно на украинский язык отдельное окно для настроек текстовых данных ? Типа банк, расчётный счёт и другие различные сообщения. Заранее СПАСИБО за ответ.
|
|
|
Ответов - 66
, стр:
1
2
3
4
All
[только новые]
|
|
|
| |
Пост 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
|
|
|
Ответов - 66
, стр:
1
2
3
4
All
[только новые]
|
|