Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Лучшие статьи журнала ╚Компьютеры+Программы╩


Информационный Канал Subscribe.Ru

Здравствуйте, уважаемые читатели!

Четвертый номер журнала «Компьютеры+Программы» за 2003 г. готов. Выбор статьи, которая будет опубликована в этом выпуске, определился голосованием по содержанию номера и анонсам статей. Результаты голосования выглядят следующим образом.

АвторСтатьяГолосов
Владимир ДригалкинПЕРЕВОД ПРОГРАММ ПОД WINDOWS53
Виталий КРАВЧЕНКОЛЕТУЧАЯ МЫШЬ ОБГОНЯЕТ ЭКСПРЕСС?42
Роман СЕМЧЕНКОФУТБОЛЬНЫЙ МЯЧ В PHOTOSHOP42
Сергей КРИВОШЕЕВБАЗА ДАННЫХ БЕЗ BDE: ПРЯМОЕ ОБРАЩЕНИЕ К СОДЕРЖИМОМУ ФАЙЛА32
Олег РЕМИЗОВИСПОЛЬЗОВАНИЕ ШАБЛОНОВ В C++30
Евгений БЕЛЯКОВCITRIX METAFRAME XP: СМЫВАЯ ГРАНИЦЫ23
Олег НикитенкоCD-RW И XP: ПОЧТИ СЧАСТЛИВЫЙ СОЮЗ22
Юрий ГУДЗЬMICROSOFT PROJECT С ЧЕЛОВЕЧЕСКИМ ЛИЦОМ17
 УЧИТЬСЯ — НА ЛЕГАЛЬНОМ СОФТЕ!15
Сергей ГРИЦАЧУКНА ГРАНИ СЛЫШИМОГО13
Виталий ЧУЖАБАЛЛАДА О КОНСТРУКТОРАХ В C#10
Юрій ГУДЗЬИНСТРУКЦИЯ ПО ВЫБРАСЫВАНИЮ ВИДЕОМАГНИТОФОНА10
Елена ПОЛОНСКАЯДЕЛА МАСТЕРОВ, или ИСТОРИЯ УСПЕХА ДЛИНОЙ В 10 ЛЕТ8
Арсений ЧЕБОТАРЕВINFERNO — ВИРТУАЛЬНЫЙ ПОСТ-UNIX В КАРМАНЕ7
Евгений ПАТИЙIBOOK: ЯБЛОЧКО ОТ ЯБЛОНЬКИ5
Арсений ЧЕБОТАРЁВINTEL ОПРЕДЕЛИЛ БУДУЩЕЕ PC НА БЛИЖАЙШИЕ ШЕСТЬ КВАРТАЛОВ5
Дмитрий КОСТЮК, Евгений ПАТИЙЭТА МУЗЫКА БУДЕТ ВЕЧНОЙ5
Юрій ГУДЗЬ«ДИСК: УПРАВЛІННЯ ПІДПРИЄМСТВОМ ВЕБ» — WEB НА 100% 4
Юрий ГУДЗЬДО 2084 ГОДА ОСТАЛОСЬ3
Елена ПОЛОНСКАЯINTEL CENTRINO: ИНТЕРНЕТ ПОДМЫШКОЙ2
Сергей ПЕРУН, Николай ФУЗИКВ ЧЬЮ ПОЛЬЗУ НИЧЬЯ?2

Таким образом, наибольший интерес у читателей рассылки вызвала статья Владимира Дригалкина «ПЕРЕВОД ПРОГРАММ ПОД WINDOWS», которая и предлагается вашему вниманию в этом выпуске. Второе место заняли статьи Виталия КРАВЧЕНКО «ЛЕТУЧАЯ МЫШЬ ОБГОНЯЕТ ЭКСПРЕСС?» и Романа СЕМЧЕНКО «ФУТБОЛЬНЫЙ МЯЧ В PHOTOSHOP», а третье место — статья Сергея КРИВОШЕЕВА «БАЗА ДАННЫХ БЕЗ BDE: ПРЯМОЕ ОБРАЩЕНИЕ К СОДЕРЖИМОМУ ФАЙЛА». Эти статьи мы опубликуем в следующих выпусках рассылки.

Дорогие читатели! Редакция будет рада узнать ваше мнение о прочитанных статьях. Пишите нам в редакцию по адресу ep_big@comizdat.com.


Владимир Дригалкин,
ep_big@comizdat.com

Перевод программ под Windows

Как это не прискорбно, но многие хорошие программы имеют англоязычный интерфейс и не всегда программисты заботятся о многоязыковой поддержке своих программных продуктов. Но существует выход: перевести интерфейс программы на другой язык самому. Данная статья рассказывает как это сделать, и с помощью каких программ…

Для перевода программ под 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 модуля (http://www.comizdat.com/3/4/6/2852/img/1/3/4/6/90/2850/2852/before.jpg).

Переводим его на русский язык так, чтобы наш текст не выходил за рамки оригинального текста и сохраняем (http://www.comizdat.com/3/4/6/2852/img/1/3/4/6/90/2850/2852/after.jpg)

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

Владимир Дригалкин,
ep_big@comizdat.com


Подписаться на дискуссионный лист
Послать письмо на дискуссионный лист
Задать вопрос
Прислать свою статью для публикации в журнале
Просто поговорить
Получить именной бланк подписки на "бумажную" версию

До следующего выпуска!
Елена Полонская, редактор "К+П"
www.comizdat.com

Перепечатка материалов этой рассылки разрешается только по согласованию с редакцией журнала "Компьютеры+Программы"



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное