Ошибка: Failed to parse the Currency Converter XML document.
$1 595.77
|
Ошибка: Failed to parse the Currency Converter XML document.
$305.11
|
Ошибка: Failed to parse the Currency Converter XML document.
$2 929.23
|
Перевод программ под Windows
Программа может содержать различные ресурсы 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 модуля.
Переводим его на русский язык так, чтобы наш текст не выходил за рамки оригинального текста и сохраняем.
И самое главное: не забывайте первое правило любого крякера Делайте резервные копии!