| Перевод программ под Windows. | ||||
| Как это не прискорбно, но многие хорошие программы имеют англоязычный интерфейс и не всегда программисты заботятся о многоязыковой поддержке своих программных продуктов. Но существует выход: перевести интерфейс программы на другой язык самому. Данная статья рассказывает как это сделать, и с помощью каких программ... Для перевода программ под Windows используются редакторы ресурсов, которых развелось достаточно много. Самые лучшие, на мой взгляд, Resurs Hacker и Restorator. У каждой из них есть свои плюсы и минусы. С помощью программы Resurs Hacker Вы можете курсором мыши передвигать или растягивать окна и кнопки, а это Вам понадобится, так как переведя надпись кнопки на другой язык, она может быть больше и не вмещаться в размеры кнопки. Также можно изменять стили, создавать новые или удалять существующие ресурсы непосредственно в exe модуле или res файле. У программы Restorator более удобное дерево ресурсов, есть возможность произвести удаление или замену системного файла после перезагрузки компьютера. Это удобно если файл используется Windows. К сожалению, эта функция Restorator не поддерживает длинные имена каталогов и файлов. Двух этих программ для русификации будет более чем достаточно. Не в счет программы для распаковки exe модулей, а также Вам может понадобится шестнадцатеричный редактор. Самые лучшие программы из этой области, на мой взгляд, WinHex и Qview. Шестнадцатеричный редактор будет нужен только в том случае, если определенный текст находится не в ресурсах, а в самом модуле программы. К сожалению, здесь нельзя вводить текст, который будет превышать оригинальный текст. Не забывайте об этом, иначе программа просто перестанет работать. Программа может содержать различные ресурсы - AVI (видео), Bitmap (изображения), Menu (меню), String (строковые ресурсы, то есть текст), Icon (значки), Dialog (диалоговые окна) и другие. Мы рассмотрим пример ресурса Dialog, отображаемый в программе Resurs Hacker. Мои комментарии выделены красным:
Для перевода на другой язык вам нужно будет заменять текст, находящийся в кавычках (" "). Если Ваш текст не помещается, растяните его курсором мыши в окне. Размер текста и кнопок можно также задать числами, которые находятся в конце строк (выделены зеленым). Посмотрите на окончание самой последней из строк - Вы увидите четыре числа:
Первое - задает отступ элемента от правого края Символ & подчеркивает букву, расположенную после него. Подчеркнутая буква задает "гарячую" клавишу, при нажатии на которую запускаеться соответствующий процесс. Ресурсы Menu и String редактируються также, как и Dialog - изменяется текст, находящийся в кавычках (" "). Посмотрите как выглядит ресурс меню:
После элемента \t указаны сочитания клавиш для быстрого доступа. Они бывают не всегда. Все, что было сказано выше, в основном касается программ, написанных на WIN32API. Открыв программу, написанную в Delphi с помощью VCL (визуальных компонентов), вы увидите структуру, в которой будут еще и ресурсы типа RCData. Привожу фрагмент подобного кода, который отображает окно "Errors". К сожалению, само окно Вы не сможите увидеть в редакторе ресурсов.
Здесь нужно изменять текст, находящийся между кавычками (' '). Я разделил цветом каждый объект ресурса, который начинается атрибутом object и завершается end. Если при переводе Ваш текст не поместился в одну строку, добавьте элемент WordWrap = True. Это позволит расположить текст любой длины, причем количество строк будет определяться автоматически.
Но это будет работать только для компонента, который имеет свойство WordWrap, иначе будет ошибка. Все это достаточно просто, ведь текст в редакторе ресурсов виден и доступен для редактирования. Но что делать, если текст какого-то окна сообщения находиться не в ресурсах, а в внутри модуля программы? Вот тут нам и поможет шестнадцатеричный редактор. Итак, мы открываем программу, например, в WinHex и находим структуру, которую хотим перевести. Возьмем для примера текст All Rights Reserved, который спрятан внутри EXE модуля:
Переводим его на русский язык так, чтобы наш текст не выходил за рамки оригинального текста и сохраняем:
И самое главное: не забывайте первое правило любого крякера - Делайте резервные копии! И еще: изменение кода программы с помощью шестнадцатеричных редакторов может повлечь за собой уголовную ответственность. Внимательно читайте лицензионное соглашение программ. |
| Copyright © 2002-2008 by Vladimir Drigalkin aka LENIN INC. All Rights Reserved. |