Задавайте вопросы по русификации и мы по возможности ответим
Для желающих получить ответы на свои вопросы:1. Будьте добры давать ссылку на программу, в архиве
-
kurkoff1965, мало информации. По вашей картинке не понятно, что у вас не получается. В любом случае обратитесь к справке к программе (она на русском языке), к главе "Локализация файлов РЕ -> Жестко-закодированные строки".5 мая 2018 - 10:53 / #1251
-
Нужна помощь. Вот программа для жеребьевки шахматных турниров, последняя версия 5.7.8: https://www.schaakbond.nl/swissmaster, скачать: https://www.schaakbond.nl/sites/default/files/userfiles/schaakbond/org
anisatoren/swismaster.zip.
Я переводил версию 5.6.12 http://rgho.st/7MXTcWYdb, почти все нормально, но в Карточках пар, Отчетах и Инструменты-Опубликовать в сети появляются кракозябры. Пользователи потом могут решить это, например: отчеты - экспортировать в блокнот, при публикации в сети на сайте - править документ .htaccess, но хотелось бы правильно сделать. Раньше Ю.Воронов переводил версию 5.5.3 http://rgho.st/7f2sJ9GMk (портабель), там вроде нормально было. Я писал ему, но он не отвечает. Посоветуйте, как это можно исправить.7 мая 2018 - 20:51 / #1252 -
Еще информация: при переводе версии 5.6.12 после подмены файла кодовой страницы c_1252.NLS на c_1251.NLS кракозябры большей частью исчезали. Рисунки с ними загрузил сюда http://dropmefiles.com/DmDmF, на rgho.st почему-то никак не грузились.8 мая 2018 - 12:54 / #1253
-
Цитата: NexusСсылка на модифицированный файл под русификацию
Nexus нельзя ли подправить как-нибудь место под длину строки (подчеркнуто красным)Сообщение отредактировал gazon01 27 октября 2018 - 15:5010 мая 2018 - 16:00 / #1254 -
Цитата: alexgerNexus нельзя ли подправить как-нибудь место под длину строки (подчеркнуто красным)
Через сутки доберусь домой, тогда и поколдую над проблемой, весь инструментарий на ПК стоит, а пишу пока с планшета...
StInd2013,
По шахматам тоже гляну что да как, если из наших на сайте никто не решит бяку прежде.10 мая 2018 - 22:19 / #1255 -
Оффлайн
Звание: Эксперт
Мастер
Сообщений: 532
Создано тем: 52
Рейтинг: 6
Репа: (269|269|0)
Баллы: 2551
Страна: не указана!
Был: 2024-11-20 20:43
Лайков: 264
Цитата: StInd2013появляются кракозябры
Почитайте этот обучающий материал про функции CreateFontA (Рисунок 15)
После исправления(некоторых 0 на 1):Сообщение отредактировал gazon01 27 октября 2018 - 15:5111 мая 2018 - 01:09 / #1256 -
Цитата: alexgerнельзя ли подправить как-нибудь место под длину строки (подчеркнуто красным)
alexger, можно. Отладчик вам в помощь. Пока предлагаю вам уже готовое решение, с которым вы справитесь самостоятельно. Откройте исполняемый файл программы SonicfirePro6.exe (далее в примере использован оригинальный файл программы) в шестнадцатеричном редакторе. Например, я это делаю в редакторе WinHEX. Откройте диалог поиска последовательности байт и введите значение "6A126A3768", также укажите параметр вывести все найденные позиции в виде списка.
Нажмите ОК и получите список с адресами найденных вхождений, всего четыре адреса.
Перейдите в редакторе по первому вхождению, найденное вхождение будет выделено цветовым блоком. В этом блоке найдите байт со значением "37".
Теперь вместо значение "37" введите значение "7F" (просто установите курсор на байт "37" и с клавиатуры введите "7F").
Аналогичным образом сделайте для всех остальных найденных вхождений. Всего у вас получится 4 изменения, по числу найденных блоков. Сохраните изменения в файле.
Значение "37" - это ширина элемента управления для надписи "Mood". Естественно это значение в шестнадцатеричном виде, а десятичном будет 55 пикселей (для перевода величин из одной системы счисления в другую можете использовать обычный калькулятор Windows). Мы изменяем это значение на "7F" - 128 пикселей. Этого вполне достаточно. Большее значение вводить нельзя, программа перестанет работать. Если же очень нужно сделать ширину более 128 пикселей (7F), то тогда нужно использовать отладчик.
Правку можете выполнить в локализованном файле, просто тогда адресация искомых вхождений может быть другой, а не как показана в примере.Сообщение отредактировал gazon01 29 мая 2018 - 09:4411 мая 2018 - 14:16 / #1257 -
Цитата: 78SergeyПочитайте этот обучающий материал про функции CreateFontA (Рисунок 15)
Не получается найти, как в описании. Запускаю ollydbg, открываю в ней файл Swiss_RUS.exe, выбераю команду "Search for -> All intermodular calls". В списке найденных функций CreateFontA у меня нет. Есть CreateFontAStub 5 строк, но у них в комментариях нет фразы "CharSet=ANSI_CHARSET", и есть CreateFontIndirectА строк 30, но они без комментариев. Как найти "CharSet=ANSI_CHARSET" и далее PUSH0 не понимаю.11 мая 2018 - 15:05 / #1258 -
StInd2013, у вашей программы классический случай с функциями CreateFont, описанный в указанной статье. Просто для новичков, не знакомых с работой в отладчике и ассемблером, материал довольно сложный для понимания, хотя автор и старался сделать его доступным для широкой аудитории пользователей. Первое, за что я зацепился при знакомстве с вашей локализованной версией (5.6.12_Rus), так это некорректное отображение кириллицы в отчетах HTML (меню Инструменты -> Опубликовать в Сети...). Здесь все оказалось просто. Открываем в текстовом редакторе файл отчета и смотрим атрибут установки кодировки текста:
Кодировка текста задана iso-8859-1, которая не дружит с кириллицей. Нам нужна кодировка windows-1251. То есть необходимо, чтобы при публикации программа записывала атрибут "charset=windows-1251" вместо "[s]charset=iso-8859-1[/s]". Отправляем исполняемый файл программы в шестнадцатеричный редактор (я использую WinHEX) и задаем поиск текста iso-8859-1. Также указываем параметр вывести все найденные позиции в виде списка.
Будет найден всего лишь один адрес с искомым текстом. Переходим на него.
Смотрим, есть ли возможность записать вместо "iso-8859-1" кодировку "windows-1251". Строка "windows-1251" длиннее строки "iso-8859-1" на 2 символа, что равнозначно 2-м байтам. Как раз в конце блока с кодировкой имеется 3-и пустых байта.
Один пустой байт должен быть обязательно. Он символизирует конец строки. Остается 2-а байта в нашем распоряжении, поэтому смело пишем нашу кодировку (не забываем скопировать окончание строки как в оригинале - ">0x0A).
Сохраняем изменения в файле. Проверяем создание отчета для публикации. Теперь все правильно.
Если вы делаете локализацию в Radialix, то найдите в жестко-закодированных строку "meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"" и для перевода запишите как "meta http-equiv="Content-Type" content="text/html; charset=windows-1251"". Тогда не нужно будет шаманить в шестнадцатериченом редакторе.
Теперь по функциям CreateFont. Предлагаю вам использовать современный отладчик x64Dbg. OllyDbg не развивается и устарел (хотя в хозяйстве все еще полезный инструмент). Поиск проблемных мест в коде лучше всего вести по именам шрифта "Arial" и "Courier New" (эти шрифты используются программой). Найдите все ссылки на эти шрифты. Запустите программу под отладчиком. После запуска и отображения главного окна программы поставьте точки останова на все найденные ссылки. Теперь по очереди вызывайте диалоги и формы, где неверно отображается кириллица. При создании логических шрифтов отладчик будет останавливать выполнение программы. Так сразу можно выявить конкретные места в коде.Сообщение отредактировал gazon01 29 мая 2018 - 09:3711 мая 2018 - 18:42 / #1259 -
Оффлайн
Звание: Эксперт
Мастер
Сообщений: 532
Создано тем: 52
Рейтинг: 6
Репа: (269|269|0)
Баллы: 2551
Страна: не указана!
Был: 2024-11-20 20:43
Лайков: 264
Цитата: StInd2013Не получается найти, как в описании.
После выбора в контекстном меню(OllyDbg) команды "Search for -> All intermodular calls" откроется список найденных функций, щелкните вверху списка по Dest name для сортировки функций.
Если не получится, напишите здесь, тогда кинем модифицированный exe.
Удачи!11 мая 2018 - 20:29 / #1260
Статистика форума, пользователей онлайн: 0 (за последние 20 минут)
---
- Создано тем
- 1197
- Всего сообщений
- 15763
- Пользователей
- 18016
- Новый участник
- gippokrat