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




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


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

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


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




Пост N: 7275
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.21 17:04. Заголовок: Andrey пишет: Вопро..


Andrey пишет:

 цитата:
Вопрос такой - как для имеющей сейчас программы МиниГуи добавить украинский режим сохранения ini-файлов


Я так думаю что менять ни чего не нужно если мы о форме ввода а вот вывод на печать да придется переделать
на мову. Ну и тебе временно надо поставить укр.раскладку что бы формы вывода перебить.
Andrey пишет:

 цитата:
И как переключать принудительно на украинский язык отдельное окно для настроек текстовых данных ?


Где то был такой вопрос и решение тут , с ходу не найду.

У тебя базы кстати в какой кодировке ?

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




Пост N: 6876
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.21 18:22. Заголовок: Dima пишет: У тебя ..


Dima пишет:

 цитата:
У тебя базы кстати в какой кодировке ?


RU866

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




Пост N: 7276
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.01.21 19:56. Заголовок: Andrey пишет: RU866..


Andrey пишет:

 цитата:
RU866


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

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




Пост N: 6877
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.01.21 23:06. Заголовок: Dima пишет: Возмож..


Dima пишет:

 цитата:

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


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

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




Пост N: 7277
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.01.21 16:19. Заголовок: Andrey Может тут ht..

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




Пост 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 - ошибка пропала.
Можно ли поправить исходники МиниГуи от этой ошибки ?

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




Пост N: 6883
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.21 07:38. Заголовок: И ещё одна проблема ..


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

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




Пост N: 3559
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.02.21 10:34. Заголовок: Andrey пишет Можно л..


Andrey пишет
 цитата:
Можно ли это тоже поправить ?


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

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




Пост N: 6884
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.21 10:51. Заголовок: SergKis пишет: или ..


SergKis пишет:

 цитата:
или
Использовать только EN названия каталогов и файлов в своей программе


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

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




Пост N: 3560
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.02.21 11:26. Заголовок: Andrey пишет _SetGet..


Andrey пишет
 цитата:
_SetGetLogFile() запоминать кодировку и писать потом со сменой кодировке.


Так это твоя проблема в какой кодировке выводить, работать, открывать конкретные файлы, а не hmg и аналогичных файловых ф-ий много и hb (hmg) также должен быть unicode

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




Пост N: 3997
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.02.21 13:10. Заголовок: GetStartUpFolder раб..


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

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




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

И ВСЁ ! Дальше не выводит отладку от слова СОВСЕМ !
Куда идёт отладка после переключения ?

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




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


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




Пост 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 ?
Почему лог-файл ошибки не пишется ?

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


Пост N: 1608
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 07.03.21 08:42. Заголовок: Путь к файлу с русск..


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

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




Пост N: 6909
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.21 22:04. Заголовок: PSP пишет: Путь к ф..


PSP пишет:

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


А как сделать вывод в лог-ошибки, как переназначить путь на русскую кодировку ?
Доступа же нет к этому пути.

Почему лог-файл ошибки не пишется ?

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


Пост N: 1609
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.03.21 09:03. Заголовок: Andrey пишет: Почем..


Andrey пишет:

 цитата:
Почему лог-файл ошибки не пишется ?


Думаю, по той же причине.
У тебя в примере

 цитата:
_SetGetLogFile( GetStartUpFolder() + "\_Msg.log" )


и лог-файл не создается.
Попробуй обернуть вот так hb_ANSItoOEM( GetStartUpFolder() )

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




Пост N: 6913
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.21 12:55. Заголовок: Мне очень интересно ..


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

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




Пост N: 4011
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.03.21 15:09. Заголовок: Андрей, а можно как-..


Андрей, а можно как-то прояснить, какие используются кодировки ?

Кодировки семейства 866: RU866, UA866, UA1125

Кодировки семейства 1251: RU1251, UA1251

Какие предполагается использовать для программы, какие для dbf, и из каких соображений ?

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




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

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




Пост N: 6914
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.03.21 15:13. Заголовок: Pasha пишет: Кодиро..


Pasha пишет:

 цитата:
Кодировки семейства 1251: RU1251, UA1251


Да это скорее всего. База у меня сейчас в RU866 переделаю на RU1251.

Приходят реестры в xlsx файлах - для программы перекодирую в dbf-RU1251, вроде нормально укр.буквы сохраняются.

Вот и подумал, может быть вообще оставить только одну кодировку RU1251 ?
И сделать простой переключатель у себя в программе Рус./Укр.
Или так не пойдёт, из-за каких то особенностей укр.языка ?

А тексты перевода хотелось бы иметь в текстовых файлах. Переводить проще.
На окно в программе повесить процедуру замены русского языка на украинский.
Только как реализовать, пока не знаю.

Dima пишет:

 цитата:
Ну и тебе временно надо поставить укр.раскладку что бы формы вывода перебить.


А без этого нельзя ?
В гугле-переводчике вроде текст нормально переводиться на украинский.

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




Пост N: 4012
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.03.21 18:04. Заголовок: Andrey пишет: Вот и..


Andrey пишет:

 цитата:
Вот и подумал, может быть вообще оставить только одну кодировку RU1251 ?



cp1251 - единая кодовая страница что для русского, что для украинского языка.
RU1251 и UA1251 содержат каждая свое подмножество символов из этих языков. Их совместно использовать можно и нужно. Это подход здорового человека.
Мена резанул как раз вопрос совместного использования RU1251 и UA1125 - это совсем разные кодовые страницы, и их совместное использование - подход курильщика.

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




Пост N: 6915
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.03.21 22:31. Заголовок: Спасибо Pasha ! :sm..


Спасибо Pasha !
Хоть понятней стало мне.
Буду переделывать тогда базу и справочники на RU1251.

Нужно тогда мне будет сделать сопровождение клиентов со старой базой в RU866 и новой RU1251.
Как сделать, пока не знаю. Всех клиентов переводить, это утомительное занятие.
Какой то переключатель в настройках делать нужно наверное.

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




Пост N: 4013
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.03.21 09:16. Заголовок: Так можно и наоборот..


Так можно и наоборот. RU866 и UA1125 обе на основе cp866, можно делать такую комбинацию

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




Пост N: 6917
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.03.21 23:25. Заголовок: Pasha пишет: RU1251..


Pasha пишет:

 цитата:
RU1251 и UA1251 содержат каждая свое подмножество символов из этих языков.
Их совместно использовать можно и нужно.


А в чём их разница, по простому объяснить можешь ?
Можно ли просто оставить одну кодировку RU1251 в программе, раз можно там записывать укр. язык ?

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




Пост N: 4014
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.03.21 09:02. Заголовок: Изучаем матчасть. По..


Изучаем матчасть. По хорошему это первое, что надо было сделать, прежде чем использовать эти кодовые страницы

Есть cp866, в котором отсутствует украинская i, а остальные украинские и белорусские допсимволы присутствуют. Отсутствует украинская г с хвостиком, так как на момент создания cp866 ее в украинском алфавите еще не было.
Страница 1125 из укрстандарта совпадает с cp866 кроме допимволов, а именно: там нет белорусских допсимволов, есть украинская i и г с хвостиком. И коды украинских допсимволов не совпадают с кодами из cp866

Ну а cp1251 она и в африке 1251 - там все допсимволы уже есть

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




Пост N: 6918
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.03.21 11:24. Заголовок: Спасибо БОЛЬШОЕ Pash..


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

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




Пост N: 7027
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.21 20:16. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста как сделать запись в текстовое поле БД, чтобы после сортировки эта запись стояла в конце базы ?
С учётом украинского языка.
Кодировка базы у меня 1251.
Я раньше писал код CHR(250)+" итого", подойдет так или нет ?

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




Пост N: 7441
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.08.21 20:59. Заголовок: Andrey пишет: Я ран..


Andrey пишет:

 цитата:
Я раньше писал код CHR(250)+" итого", подойдет так или нет ?


Попробуй и узнаешь , ну ты как маленький , такие детские вопросы задавать

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




Пост N: 7028
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.21 23:00. Заголовок: Dima пишет: Попробу..


Dima пишет:

 цитата:
Попробуй и узнаешь , ну ты как маленький , такие детские вопросы задавать


Попробовал.
В печати знак "ъ" выдаёт.

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




Пост N: 1744
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 23.08.21 23:24. Заголовок: Andrey пишет: Попро..


Andrey пишет:

 цитата:
Попробовал.
В печати знак "ъ" выдаёт.


И правильно выдаёт.
https://wm-school.ru/html/html_win-1251.html
Можно сделать техническое поле из одного символа и использовать составную сортировку

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




Пост N: 7029
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.08.21 00:23. Заголовок: Haz пишет: Можно сд..


Haz пишет:

 цитата:
Можно сделать техническое поле из одного символа и использовать составную сортировку


Спасибо БОЛЬШОЕ !
Об этом и не подумал.
Хороший трюк !

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




Пост 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, нашёл методом тыка.

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


Пост N: 1716
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.21 21:19. Заголовок: Andrey пишет: нашёл..


Andrey пишет:

 цитата:
нашёл методом тыка


И тему также выбрал..

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




Пост N: 7067
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.09.21 21:21. Заголовок: Andrey пишет: Пытаю..


Andrey пишет:

 цитата:
Пытаюсь прочитать объекты на форме через:


Это для перевода на украинский язык.
Всё что на форме считываю и перевожу на украинский язык.

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




Пост N: 7071
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.09.21 12:03. Заголовок: Сделал пример для не..


Сделал пример для нескольких языков в проекте.
Кому интересно смотреть здесь - https://cloud.mail.ru/public/jXWN/CCoGsRBmD
Там смотреть файл readme.txt
Подход простой: один файл с языками *.lng и перевод формы при показе.
Для этого в окно в процедуру ставлю везде так - ON INIT Form2Lang()

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




Пост N: 7072
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.09.21 09:19. Заголовок: А как можно получить..


А как можно получить список окон своей программы ?
Если окно открыто, то это понятно что можно выбрать список окон МиниГуи в памяти.
А если программу свою открыл, то как узнать какие есть окна в своей программе ?

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




Пост N: 7073
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.21 14:41. Заголовок: Кодировки RU1251 хва..


Кодировки RU1251 хватает для русского, белорусского и украинского языков.
А как сделать файл для прибалтийских языков ? Какая кодировка должна быть ?
Это просто для себя понять как можно делать.

А как интересно работают с казахским языком ?
Или с языками Средней Азии ?
Можно в МиниГуи работать с ними ?

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




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

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




Пост N: 7074
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.21 15:17. Заголовок: SergKis пишет: Текс..


SergKis пишет:

 цитата:
Текстовые файлы, включая ini надо делать в Utf-8, желательно с BOM


Текстовые файлы в Utf-8 знаю как делать.
А что такое с BOM ?

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




Пост 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 
ПрофильЦитата Ответить
постоянный участник




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

И в основной программе размещаем эти текстовые константы.
Так будет верно ?

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




Пост 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 будет стоять ?

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




Пост N: 7186
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.12.21 19:16. Заголовок: SergKis пишет: что ..


SergKis пишет:

 цитата:
что за cdp будет стоять ?


Да это сайт глюкнул.
Писал так
xRet [ nJ ] := hb_Utf8ToStr( xRet [ nJ ] , "RU1251")

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




Пост N: 4014
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.12.21 19:22. Заголовок: Andrey SergKis пише..


Andrey
SergKis пишет:
 цитата:
что за cdp будет стоять ?


Ты переводишь все в RU1251, а какая cdp будет уставлена для работы в момент работы с текстом ?

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




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


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




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

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

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