On-line: tnsr2, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 6875
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.21 16:55. Заголовок: Интерфейс с украинским языком ?


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

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 66 , стр: 1 2 3 4 All [только новые]


администратор




Пост N: 7451
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.09.21 15:32. Заголовок: Andrey пишет: А что..


Andrey пишет:

 цитата:
А что такое с BOM ?


Гугл спроси а то Сергей у тебя как справочное бюро

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7075
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.21 15:38. Заголовок: Dima пишет: Гугл сп..


Dima пишет:

 цитата:
Гугл спроси а то Сергей у тебя как справочное бюро


Блин, уже пробовал...
https://yandex.ru/search/?text=%D1%87%D1%82%D0%BE+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+%D0%92%D0%9E%D0%9C&lr=2&clid=2186621

Текстовые файлы, включая ini надо делать в Utf-8, желательно с BOM
А в Far'е это можно делать ?
Или нужен другой редактор и какой ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1774
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.09.21 15:53. Заголовок: Andrey пишет: Блин,..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7076
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.21 16:04. Заголовок: Спасибо ! :sm36: А..


Спасибо !
А то и не знаешь что читать. Пока до правильной статьи доберёшься, глаза в кучку соберутся...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7077
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.21 16:56. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7452
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.09.21 18:10. Заголовок: SergKis пишет: Став..


SergKis пишет:

 цитата:
Ставь кодовую страницу редактору Shift+F8 Utf-8 (при сохранении BOM не будет)


Не совсем так


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3905
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.09.21 18:22. Заголовок: Dima пишет Не совсем..


Dima пишет
 цитата:
Не совсем так


Я и забыл про Shift+F2, жмукаю сразу F2, т.к. файлы уже с BOM в работе для Far

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7098
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.10.21 11:20. Заголовок: SergKis пишет: Не т..


SergKis пишет:

 цитата:
Не трать время, говорил, ранее. НЕ работает


Пропустил это.
А как ты тогда собираешь свою версию МиниГуи, кроме unicode ?
Просто интересно.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 подобный язык, а потом совсем прекратилось

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7099
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.10.21 12:05. Заголовок: Понял. Спасибо !..


Понял. Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7181
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.12.21 14:50. Заголовок: А как можно узнать, ..


А как можно узнать, какие языки подключены в ехе-нике программы ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 // белорусский язык


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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) ; // возврат фокуса на форму

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 66 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 127
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет