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




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


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

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

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