Последние сообщения

Страницы: [1] 2 3 4 5 6 ... 10
1
RusMe - РусМи! / Re: Mpress GUI 0.2
« Последний ответ от leserg73 Вчера в 14:35:52 »
Ресурсы в программе есть (значок, манифест и прочее - это все ресурсы).
Просто элементы интерфейса создаются при запуске (in runtime mode).

Для определения размеров и координат размещения элементов на форме используйте оконные сканеры, например WinSpy++.
Узнаете фактические координаты желаемого элемента: Х=186 пикселей (в формате НЕХ - BAh) - изображение mpress01.png.

Затем открываете программу в отладчике (x64Dbg) и задаете поиск константы BAh.
Будет найдено несколько значений  - изображение mpress02.png.
В первую очередь следует обращать внимание на запись в регистр фактических значений, а не значения смещений.
Как видно, их четыре.

Переходим в код программы по первому значению - изображение mpress03.png.
Это положение первого элемента. Ниже по коду идут остальные три - координата Х у них одинаковая.

Изменяем значение Х на желаемое (в качестве примера я изменил на BFh) - изображение mpress04.png.
Результат изменения виден на рисунке выше. Аналогично для других элементов.

Сохраните сделанные в отладчике изменения в новый файл.

P.S.
В вашем локализованном файле MpressGUI_rus.exe вы сделали лишний перевод строк с именем файла упаковщика: mpress.exe >> mpress_rus.exe.
В результате сломали функции по кнопкам "Справка" и "Лицензия". Верните оригинальные строки с именем файла упаковщика.

2
RusMe - РусМи! / Re: Игра Snake от geeks3d
« Последний ответ от Kirill Borisenko 11 Мая 2025, 23:20:00 »
При релизе русификатора указал, что это всё было сделано Вами.

Как в описании, так и в патчере.
3
RusMe - РусМи! / Mpress GUI 0.2
« Последний ответ от Kirill Borisenko 11 Мая 2025, 22:25:36 »
Добрый день.

Вопрос к знатокам в области HEX редактирования.

Перевёл оболочку для архиватора Mpress GUI.
Однако, у программы нет секции ресурсов.
Есть необходимость сдвинуть часть "галочек" интерфейса вправо (какие - видно на скрине).
Однако, не могу понять, где кодируется их расположение.
4
Место, где можно отдохнуть от локализации... / Re: 20 лет проекту!
« Последний ответ от MSI Lab 10 Апреля 2025, 19:11:41 »
Поздравляю с прошедшим 23-летием) 
5
RusMe - РусМи! / Re: Игра Snake от geeks3d
« Последний ответ от leserg73 16 Марта 2025, 22:44:29 »
Приветствую!

В принципе уже всё сделано:
1) заменены шрифты на шрифты с поддержкой кириллицы (Prototype.ttf, Roboto-Regular.ttf);
2) пропатчена библиотека gxc_x64.dll для поддержки кириллицы (функция получения символов GetGlyphRangesDefault заменена на GetGlyphRangesCyrillic);
3) в настройках выбора языка интерфейса добавлен пункт с выбором русского (файл dico_ru.txt);
4) добавлена функция AnsiToUtf8 (автор Setuper) для преобразования кодировок строк интерфейса и этой функцией дополнен исходный код игрушки;
5) пересобран архив с кодом игрушки (файл "_").

Шрифты с поддержкой кириллицы можно подобрать другие, предварительно переименовав имена файлов соответственно в Prototype.ttf и Roboto-Regular.ttf.
Шрифт с именем Prototype.ttf используется для строк в главном меню, а шрифт с именем Roboto-Regular.ttf - для строк в игровом поле.
6
RusMe - РусМи! / Re: Игра Snake от geeks3d
« Последний ответ от Kirill Borisenko 06 Марта 2025, 23:53:33 »
Приветствую!
Есть ли у вас какие-либо подвижки в решении проблемы?
С разработчиком связывались?

Добрый день.
Написал на форум разработчика.
Просит прислать файл русского языка через Discord (заблокированный недавно на территории Российской Федерации).


Что нужно сделать?
1) Пропатчить библиотеку gxc_x64.dll на чтение символов кириллицы вместо символов Latin1.
2) Дешифровать и распаковать исходники программы из файла "_" (файл без расширения).
3) Написать (найти в инете) на языке Lua функцию преобразования строк ANSI в UTF-8.
4) В исходниках для строк интерфейса Dear ImGui добавить конвертер ANSI в UTF-8.
5) В исходниках заменить шрифты собственными, где вторая половина таблицы ASCII заменена на символы кириллицы (можно сделать самому при помощи редакторов шрифтов).
6) Запаковать и зашифровать исходники обратно в файл ресурса "_" (может и не получится, но тогда игру можно будет запускать через модуль GeeXLab).

Ничоси.
Спасибо за подробное изложение.

Можно ли сделать это без участия разработчика? Можно. Но работы очень много.

Попробую по вашему совету всё-таки через разработчика перевести.
Возможно, у него возникнут вопросы - процитирую Вас.
7
RusMe - РусМи! / Re: Игра Snake от geeks3d
« Последний ответ от leserg73 17 Февраля 2025, 15:49:15 »
Приветствую!
Есть ли у вас какие-либо подвижки в решении проблемы?
С разработчиком связывались?

Основная проблема: использование языка Lua - она поддерживает строки только в кодировке ASCII.
Вторая проблема: использование библиотеки Dear ImGui (https://github.com/ocornut/imgui). По умолчанию она использует набор символов Latin1.

Проблему Lua можно решить, если использовать шрифт в котором вторая половина таблицы ASCII заменена на символы кириллицы.
Вторую проблему может исправить разработчик. Но и здесь есть нюансы. Кроме набора символов, для библиотеки Dear ImGui нужно указывать кодировку UTF-8. Для этого в код игрушки нужно добавить дополнительный код на языке Lua, который будет конвертировать строки ANSI в кодировку UTF-8.

Главная страница игрушки - меню - использует интерфейс Dear ImGui. Для неё строки должны быть в кодировке UTF-8 и указан набор символов - кириллица.
Страница с самой игрой - использует Lua. Строки должны быть в кодировке ANSI (CP-1251).

Как видите, языковой файл должен быть:
 - для интерфейса Dear ImGui - в кодировке UTF-8;
 - для интерфейса Lua - в кодировке ANSI.

Сделать это в одном файле - просто невозможно. Необходимо вносить изменения в исходный код игрушки.

Можно ли сделать это без участия разработчика? Можно. Но работы очень много.

Что нужно сделать?
1) Пропатчить библиотеку gxc_x64.dll на чтение символов кириллицы вместо символов Latin1.
2) Дешифровать и распаковать исходники программы из файла "_" (файл без расширения).
3) Написать (найти в инете) на языке Lua функцию преобразования строк ANSI в UTF-8.
4) В исходниках для строк интерфейса Dear ImGui добавить конвертер ANSI в UTF-8.
5) В исходниках заменить шрифты собственными, где вторая половина таблицы ASCII заменена на символы кириллицы (можно сделать самому при помощи редакторов шрифтов).
6) Запаковать и зашифровать исходники обратно в файл ресурса "_" (может и не получится, но тогда игру можно будет запускать через модуль GeeXLab).
8
RusMe - РусМи! / Игра Snake от geeks3d
« Последний ответ от Kirill Borisenko 25 Января 2025, 22:14:34 »
Добрый день, коллеги.

Решил тут перевести игрушку Snake (да-да - ту самую "Змейку") для ПК.
https://geeks3d.com/geexlab/games/snake/

Опытным путём нашёл файлы локализации.
В игрушку "вшита" поддержка только двух файлов языков.

Перевести их несложно.

Вопрос в другом - игра не понимает русских символов. При том, что файл английского языка кодируется в ASCII.
Нашёл и заменил все шрифты на шрифты с поддержкой русского языка. Всё-равно не хочет нормально отображать.
Решил найти, где в игре находится путь к файлу языка, чтобы посмотреть, какую кодировку программа хочет увидеть.
Total Commander находит имя файла в бинарнике, но ни один HEX-редактор не хочет находить тоже самое в тех же самых файлах.
Подсобите, что можно сделать?
10
Место, где можно отдохнуть от локализации... / Re: Музыка
« Последний ответ от вован1 26 Мая 2024, 16:31:16 »
Страницы: [1] 2 3 4 5 6 ... 10