Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» вопрос: как русифицируются программы?

Автор: zibulber
Дата сообщения: 09.03.2002 05:07
хотя-бы в общих чертах

есть наладонник be300 с win 3.0 но с другим шелом (не pocet PC)
есть друг-програмер (любитель) в принципе он подписался
но чего делать теоретически опишите плз.
Автор: Yurr
Дата сообщения: 12.03.2002 00:17
ничего не понял
какую прогу именно ты хочешь русифицировать?
или просто сделать поддержку кирилицы?
Автор: Quickspider
Дата сообщения: 11.04.2002 14:57
Есть очень хорошая программа - Restarator 2.51. По-моему, она есть в разделе "Варезник".
Автор: zibulber
Дата сообщения: 11.04.2002 21:08
да, все в общем то

Yurr спасибо, посмотрю
Автор: BlackXSun
Дата сообщения: 07.11.2006 21:48
Руссифицирую программу (первый раз). Программа ничем не запакованна. Но есть моменты которые просто хотелось бы знать.

Собственно хотелосьбы выяснить некоторые моменты:

1. Обьясните механизм работы
Беру исполняемы файл (*exe). Открываю его "Мультиком". Говорю ему что надо не изменять сам файл, а сделать файл локализации. Все нормально - где надо вношу изменения, сохраняю. "Мультик" создает файл с названием вточности как название екзкшника но только с расширением *.RU, при этом не внося ни одного байта изменений в сам екзешник. И при всем этом, при запуске программы, она оказываеться измененной. Убираю файл - не измененная, возвращаю на место - измененная.
Обьясните пожалуйста механизм такой работы. Откуда екзешник знает, что надо считывать данные с того файлика??????

2. Проблема как всегда типичная, чтоб ее решать с помочу OgreGUI. Надо сделать надпись длинше, чем она есть на самом деле. Беру екзешник, открываю его OgreGUI, нахожу нужную строку, исправляю (при исправлении говорю что надо сделать ей инверсию и очистить старое положение). В результате получаю - в конце файла дописанна новая стока, старая строка азабита нолями, добавленна гдето в середине файла надпись "OgreGUI2.01", исправленно еще какихто пару байтов. Результат - при запуске программы на том месте, где должна быть новая надпись просто пусто. Или я чтото не так делаю или чтото не так делает программа?????

И еще если не сложно, то оьбясните как руками делать преадресации строк. В конце файла я руками дописать смогу нужное слово, а вот где и как надо на него ссылучку ставить, чтоб вместо какого нить слова отображалось мое?????


3. И на счет строк длиннее оригинальных. Разве Multilizer, PE eplorer и подобные ресурсо изменятели могут вставлять строки длиннее оригинальных????? Изменял испытуемый екзешник и PE eplorer-ом и Multilizer-ом, и менял строки на более длинные (пустого места для удлиннения строки небыло, былобы и ручками дописалбы). После сохранения все работает. Дак всетаки можно ставить строки длиннее оригинальных или это чемто черевато??? Или эти и подобные программы в ресурсах могут делать все что угодно (все что могут) ?????
Автор: LeoTon
Дата сообщения: 08.11.2006 09:03

Цитата:
.... И при всем этом, при запуске программы, она оказываеться измененной. Убираю файл - не измененная, возвращаю на место - измененная.
Обьясните пожалуйста механизм такой работы. Откуда екзешник знает, что надо считывать данные с того файлика??????

Видимо, программа все же изменена. В неё добавлена инструкция поиска того файла *.RU...

В обще, задача русификации самого экзешника довольно сложна, т.к. формат PE не как *.com где с первых байтов начинается исполняемый процессором код. Не удивительно, что часть строк записывается в конец файла, где расположены ресурсы, а то что они в последствии плохо вызываются -- это уже сложности изменения исполняемого файла. Фактически, если относиться с совестью к вопросу о русификации исполняемого файла, его нужно перекомпилировать с русским текстом внутри. Т.к. исходников, в большинстве своем, не имеется, то на помощь приходит частичное дизассемблирование, что тоже не всегда эффективно работает.
Автор: OdesitVadim
Дата сообщения: 08.11.2006 10:38

Цитата:
И еще если не сложно, то оьбясните как руками делать преадресации строк. В конце файла я руками дописать смогу нужное слово, а вот где и как надо на него ссылучку ставить, чтоб вместо какого нить слова отображалось мое?????

Как? Очень просто. Надо посмотреть адрес строки. Потом возможно чуточку скоректировать в зависимости какого типа это строка. Потом найти в коде все ссылки на эту строку. Далее дописать в конец файла (это образно, На самом деле нужно раздвинуть секцию и приписать в её конец.) строку, узнать адрес и заменить старый. Но здесь возникают проблемы
1) хотя 4 байта и длиная подстрока для поиска, но вполне возможно, что это будет часть кода. Тогда в лучшем случае вылет проги.
2)Возможно, что строки адресуются через смещение. Тоесть есть общий адрес для всех+смещение для каждой строки. Такое можно найти только дисзасемблированием.
-------------

Цитата:
добавленна гдето в середине файла надпись "OgreGUI2.01"

А преставьте, если здесь был код. Вылет с проги гарантирован.

Цитата:
Беру исполняемы файл (*exe). Открываю его "Мультиком". Говорю ему что надо не изменять сам файл, а сделать файл локализации. Все нормально - где надо вношу изменения, сохраняю. "Мультик" создает файл с названием вточности как название екзкшника но только с расширением *.RU, при этом не внося ни одного байта изменений в сам екзешник.

Это особенность самой винды. При старте она ищет подобные файлы, и если она их нашла, то ресурсы (например формы Делфи, иконки) грузит с этого файла. Способ удобен и одновременно ужасен - у меня к примеру в региональных настройках стоит "Украина" (Ну я же из Одессы!) и соответственно ищет файлы с расширением *.ua или *.ukr. Поэтому я всегда немного "нарушаю лицензию" русификатора "не изменять его" и переименовываю файлы.
Автор: BlackXSun
Дата сообщения: 08.11.2006 12:08

Цитата:
Видимо, программа все же изменена. В неё добавлена инструкция поиска того файла *.RU...

Ни один байт не измененн, но впринципе принцип работы уже обьяснили, за что огромное спасибо.

Страницы: 1

Предыдущая тема: Поиск библиотек к VC++


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.