Задавайте вопросы по русификации и мы по возможности ответим

Для желающих получить ответы на свои вопросы:1. Будьте добры давать ссылку на программу, в архиве
  1. Оффлайн

    19691969

    Звание: Новичок

    Проверенные

    Сообщений: 39

    Создано тем: 0

    Рейтинг: 2

    Репа: 0

    Баллы: 51

    Был: 2024-06-30 23:30

    kurkoff1965, мало информации. По вашей картинке не понятно, что у вас не получается. В любом случае обратитесь к справке к программе (она на русском языке), к главе "Локализация файлов РЕ -> Жестко-закодированные строки".
    5 мая 2018 - 10:53 / #1251
  2. Оффлайн

    StInd2013

    Звание: Новичок

    Проверенные

    Сообщений: 23

    Создано тем: 3

    Рейтинг: 2

    Репа: (3|3|0)

    Баллы: 51

    Был: 2024-09-18 13:25

    Лайков: 2

    Нужна помощь. Вот программа для жеребьевки шахматных турниров, последняя версия 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
  3. Оффлайн

    StInd2013

    Звание: Новичок

    Проверенные

    Сообщений: 23

    Создано тем: 3

    Рейтинг: 2

    Репа: (3|3|0)

    Баллы: 51

    Был: 2024-09-18 13:25

    Лайков: 2

    Еще информация: при переводе версии 5.6.12 после подмены файла кодовой страницы c_1252.NLS на c_1251.NLS кракозябры большей частью исчезали. Рисунки с ними загрузил сюда http://dropmefiles.com/DmDmF, на rgho.st почему-то никак не грузились.
    8 мая 2018 - 12:54 / #1253
  4. Оффлайн

    alexger

    Звание: Прибывший

    Участники

    Сообщений: 10

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2023-01-09 10:17

    Цитата: Nexus
    Ссылка на модифицированный файл под русификацию



    Nexus нельзя ли подправить как-нибудь место под длину строки (подчеркнуто красным)

    Сообщение отредактировал gazon01 27 октября 2018 - 15:50
    10 мая 2018 - 16:00 / #1254
  5. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

    Цитата: alexger
    Nexus нельзя ли подправить как-нибудь место под длину строки (подчеркнуто красным)


    Через сутки доберусь домой, тогда и поколдую над проблемой, весь инструментарий на ПК стоит, а пишу пока с планшета...

    StInd2013,
    По шахматам тоже гляну что да как, если из наших на сайте никто не решит бяку прежде.
    10 мая 2018 - 22:19 / #1255
  6. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 519

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1936

    Страна: не указана!

    Был: 2024-09-22 13:17

    Лайков: 263

    Цитата: StInd2013
    появляются кракозябры


    Почитайте этот обучающий материал про функции CreateFontA (Рисунок 15)
    После исправления(некоторых 0 на 1):

    Сообщение отредактировал gazon01 27 октября 2018 - 15:51
    11 мая 2018 - 01:09 / #1256
  7. Оффлайн

    19691969

    Звание: Новичок

    Проверенные

    Сообщений: 39

    Создано тем: 0

    Рейтинг: 2

    Репа: 0

    Баллы: 51

    Был: 2024-06-30 23:30

    Цитата: alexger
    нельзя ли подправить как-нибудь место под длину строки (подчеркнуто красным)


    alexger, можно. Отладчик вам в помощь. Пока предлагаю вам уже готовое решение, с которым вы справитесь самостоятельно. Откройте исполняемый файл программы SonicfirePro6.exe (далее в примере использован оригинальный файл программы) в шестнадцатеричном редакторе. Например, я это делаю в редакторе WinHEX. Откройте диалог поиска последовательности байт и введите значение "6A126A3768", также укажите параметр вывести все найденные позиции в виде списка.



    Нажмите ОК и получите список с адресами найденных вхождений, всего четыре адреса.



    Перейдите в редакторе по первому вхождению, найденное вхождение будет выделено цветовым блоком. В этом блоке найдите байт со значением "37".



    Теперь вместо значение "37" введите значение "7F" (просто установите курсор на байт "37" и с клавиатуры введите "7F").



    Аналогичным образом сделайте для всех остальных найденных вхождений. Всего у вас получится 4 изменения, по числу найденных блоков. Сохраните изменения в файле.

    Значение "37" - это ширина элемента управления для надписи "Mood". Естественно это значение в шестнадцатеричном виде, а десятичном будет 55 пикселей (для перевода величин из одной системы счисления в другую можете использовать обычный калькулятор Windows). Мы изменяем это значение на "7F" - 128 пикселей. Этого вполне достаточно. Большее значение вводить нельзя, программа перестанет работать. Если же очень нужно сделать ширину более 128 пикселей (7F), то тогда нужно использовать отладчик.

    Правку можете выполнить в локализованном файле, просто тогда адресация искомых вхождений может быть другой, а не как показана в примере.
    Сообщение отредактировал gazon01 29 мая 2018 - 09:44
    11 мая 2018 - 14:16 / #1257
  8. Оффлайн

    StInd2013

    Звание: Новичок

    Проверенные

    Сообщений: 23

    Создано тем: 3

    Рейтинг: 2

    Репа: (3|3|0)

    Баллы: 51

    Был: 2024-09-18 13:25

    Лайков: 2

    Цитата: 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
  9. Оффлайн

    19691969

    Звание: Новичок

    Проверенные

    Сообщений: 39

    Создано тем: 0

    Рейтинг: 2

    Репа: 0

    Баллы: 51

    Был: 2024-06-30 23:30

    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:37
    11 мая 2018 - 18:42 / #1259
  10. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 519

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1936

    Страна: не указана!

    Был: 2024-09-22 13:17

    Лайков: 263

    Цитата: StInd2013
    Не получается найти, как в описании.


    После выбора в контекстном меню(OllyDbg) команды "Search for -> All intermodular calls" откроется список найденных функций, щелкните вверху списка по Dest name для сортировки функций.

    Если не получится, напишите здесь, тогда кинем модифицированный exe.
    Удачи!
    11 мая 2018 - 20:29 / #1260

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1189
Всего сообщений
15680
Пользователей
17956
Новый участник
orc-sav