Для перевода программ под Windows используются редакторы ресурсов, которых развелось достаточно много. Самые лучшие, на мой взгляд, Resurs Hacker и Restorator. У каждой из них есть свои плюсы и минусы. С помощью программы Resurs Hacker Вы можете курсором мыши передвигать или растягивать окна и кнопки, а это Вам понадобится, так как переведя надпись кнопки на другой язык, она может быть больше и не вмещаться в размеры кнопки. Также можно изменять стили, создавать новые или удалять существующие ресурсы непосредственно в exe модуле или res файле. У программы Restorator более удобное дерево ресурсов, есть возможность произвести удаление или замену системного файла после перезагрузки компьютера. Это удобно если файл используется Windows. К сожалению, эта функция Restorator не поддерживает длинные имена каталогов и файлов. Двух этих программ для русификации будет более чем достаточно. Не в счет программы для распаковки exe модулей, а также Вам может понадобится шестнадцатеричный редактор. Самые лучшие программы из этой области, на мой взгляд, WinHex и Qview. Шестнадцатеричный редактор будет нужен только в том случае, если определенный текст находится не в ресурсах, а в самом модуле программы. К сожалению, здесь нельзя вводить текст, который будет превышать оригинальный текст. Не забывайте об этом, иначе программа просто перестанет работать.

 

Программа может содержать различные ресурсы - AVI (видео), Bitmap (изображения), Menu (меню), String (строковые ресурсы, то есть текст), Icon (значки), Dialog (диалоговые окна) и другие. Мы рассмотрим пример ресурса Dialog, отображаемый в программе Resurs Hacker. Это всего лишь пример, здесь не указаны Стили, которые будут отображены в реальном ресурсе и разделены между собой вертикальной чертой (|). Комментарии выделены курсивом:

 

ABOUT DIALOG 138, 102, 276, 68;Размеры всего диалога
STYLE (Стили);Стиль окна
CAPTION "About...";Название окна
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL;Язык диалога
FONT 8, "MS Sans Serif";Размер и тип используемого шрифта
{
CONTROL "©2002 by LENIN INC", 8, STATIC (Стили), 40, 14, 90, 32
CONTROL "All Rights Reserved", 9, STATIC (Стили), 40, 19, 90, 32
CONTROL "&OK", 1, BUTTON (Стили), 218, 6, 50, 14
CONTROL "&Cancel", 2, BUTTON (Стили), 218, 26, 50, 14
CONTROL 1, 3903, STATIC (Стили), 10, 10, 18, 20
}

 

Для перевода на другой язык вам нужно будет заменять текст, находящийся в кавычках (" "). Если Ваш текст не помещается, растяните его курсором мыши в окне. Размер текста и кнопок можно также задать числами, которые находятся в конце строк.

 

Посмотрите на окончание самой последней из строк - Вы увидите четыре числа:

  • Первое - задает отступ элемента от правого края
  • Второе - задает отступ элемента от верхнего края
  • Третье - задает ширину элемента
  • Четвертое - задает высоту элемента

Символ & подчеркивает букву, расположенную после него. Подчеркнутая буква устанавливает "гарячую" клавишу, при нажатии на которую запускаеться соответствующий процесс. Ресурсы Menu и String редактируються также, как и Dialog - изменяется текст, находящийся в кавычках (" "). Посмотрите как выглядит ресурс меню:

 

TOOLBAR MENU
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL;Язык меню
{
POPUP "&File"
{
MENUITEM "&Open File\tCtrl+O", 190
MENUITEM "&Save File\tCtrl+S", 151
MENUITEM "Save File &As...\tShift+Ctrl+S", 152
MENUITEM SEPARATOR;Разделительная полоса
MENUITEM "&Exit\tAlt+X", 143
}
}

 

После элемента \t указаны сочитания клавиш для быстрого доступа. Их не рекомендуеться изменять.

 

Все, что было сказано выше, в основном касается программ, написанных на API настоящими программистами, то есть без использования визуальных компонентов. Открыв программу, написанную с помощью визуальных компонентов, например, в Delphi, Вы увидите структуру, в которой будут ресурсы типа RCData. Чуть ниже представлен фрагмент подобного кода, который отображает окно "Errors". К сожалению, само окно Вы не сможите увидеть в редакторе ресурсов. Ни один из указанных здесь редакторов ресурсов не отображает предпросмотр окон программ, написанных в Delphi.

 

object ErrForm: TErrForm \\Начало создания окна
Left = 389
Top = 337
Width = 348
\\Ширина
основного окна
Height = 283
\\Высота основного окна
Caption = 'Errors'
\\Заголовок окна
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
\\Используемый шрифт
Font.Style = [ ]
Position = poDefaultPosOnly
OnClose = FormClose
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
\\Начало создания панели
Left = 0
\\Отступ слева
Top = 0
\\Отступ справа
Width = 340
\\Ширина панели
Height = 25
\\Высота панели
Align = alTop
Alignment = taLeftJustify
BevelOuter = bvNone
Hint = 'Message'
\\Текст подсказки
Caption = 'Not found this files! Run process again?'
TabOrder = 0
end
\\Завершение создания панели
end
\\Завершение создания окна
 

Здесь нужно изменять текст, находящийся между одинарными кавычками (' ').

Если при переводе Ваш текст не поместился в одну строку, добавьте конструкцию WordWrap = True. Это позволит расположить текст любой длины, причем количество строк будет определяться автоматически:

 

object Panel1: TPanel \\Начало создания панели
Left = 0
\\Отступ слева
Top = 0
\\Отступ справа
Width = 340
\\Ширина панели
Height = 25
\\Высота панели
Align = alTop
Alignment = taLeftJustify
BevelOuter = bvNone
Hint = 'Message'
\\Текст подсказки
Caption = 'Not found this files! Run process again?'
WordWrap = True
\\Добавили новый параметр
TabOrder = 0
end
\\Завершение создания панели
 

Но это будет работать только для компонента, который имеет свойство WordWrap, иначе будет ошибка.

 

Все это достаточно просто, ведь текст в редакторе ресурсов виден и доступен для редактирования. Но что делать, если текст какого-то окна сообщения находиться не в ресурсах, а в внутри модуля программы? Вот тут нам и поможет шестнадцатеричный редактор. Итак, мы открываем программу, например, в WinHex и находим структуру, которую хотим перевести. Возмем для примера текст All Rights Reserved, который спрятан внутри EXE модуля:

 

 

Переводим его на русский язык так, чтобы наш текст не выходил за рамки оригинального текста и сохраняем:

 

 

И самое главное: не забывайте первое правило любого крякера - Делайте резервные копии!

2004.05.21
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".