Перевод и локализации игр и прикладного ПО с помощью Resource Tuner от Heaventools

Автор: Alconost

Источник

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

С похожей проблемой часто сталкиваются переводчики-специалисты по локализации программного обеспечения. Она возникает в том случае, если поддержка языков изначально не предусмотрена компанией-разработчиком. Или продукт больше не поддерживается создателями, а потому и кооперация с разработчиками в вопросах локализации представляется крайне затруднительной, или вовсе невозможна. В этом случае остается вариант перевода ресурсов готового (скомпилированного) приложения, дошедшего до локализатора в виде, например, .exe-файла. Простым и недорогим вариантом решения данной проблемы может стать Resource Tuner от компании Heaventools.

Общая характеристика Resource Tuner, его возможности при переводе и локализации игр и программного обеспечения.

Resource Tuner позволяет просматривать, редактировать, извлекать и заменять строки, рисунки, логотипы и иконки Windows-программ, не имея при этом специальных навыков программирования. Известно, что программы ОС Windows хранят элементы интерфейса (изображения, пиктограммы, текст) отдельно от исходного кода в специальных секциях ресурсов в исполняемых файлах (.exe, .dll, .ocx).

С помощью Resource Tuner переводчик может извлекать эти ресурсы (в RT имеются механизмы для одновременного извлечения и сохранения на диск нескольких типов ресурсов), изменять и удалять их. Это позволяет локализатору, не вмешиваясь в исходный код приложения, делать авторский ребрендинг визуального оформления, редактировать диалоговые сообщения, настраивать меню и панель инструментов.

По умолчанию в Resource Tuner интегрирован плагин UPX Unpacker, позволяющий распаковывать файлы, сжатые с помощью утилиты UPX (упаковщик исполняемых файлов, использующий алгоритм сжатия без потерь). Если плагин UPX Unpacker обнаруживает, что файл был запакован UPX, то этот файл будет распакован автоматически. Отмечаем, что изменённый пользователем файл будет сохраняться в распакованном виде, т.е. Resource Tuner не переупаковывает ранее упакованные файлы.

С помощью Менеджера плагинов (Plug-in Manager) можно подключать новые или отключать уже имеющиеся плагины, устанавливать их приоритет. Панель логов отображает все события и операции, которые были выполнены, в том числе и информацию о распаковывании файла.

Перевод и локализация .exe, .dll, .sys, .ocx, .msstyles, .cpl, .scr, .dpl и .bpl файлов с помощью встроенного в Resource Tuner визуального редактора ресурсов.

Resource Tuner работает с большинством исполняемых файлов Win32: .exe, .dll, файлы драйверов (.sys), ActiveX Controls (.ocx), визуальные стили XP (.msstyles), файлы панели управления Windows (.cpl), экранные заставки (.scr). Отдельно проработана поддержка Borland-библиотек (.dpl и .bpl), т.к. программы, созданные при помощи Delphi и C++Builder, обычно хранят информацию о меню, диалогах, строках в специальном ресурсе RC Data, который, в свою очередь, содержит информацию из нескомпилированного модуля DFM (Delphi Form Module).

Практически все операции над ресурсами выполняются с помощью Визуального редактора ресурсов (Visual Resource Editor). В зависимости от типа ресурса, редактор автоматически запускает соответствующий режим (графический редактор, редактор строк, диалогов или меню, редактор информации о версии продукта и др.). Следует обратить внимание, что не все ресурсы поддерживают непосредственное редактирование через Visual Resource Editor, но большинство их них может быть заменено на аналогичный, заранее подготовленный, ресурс.
Например, таким образом (заменяя одно изображение другим) можно переводить приложения, в которых часть надписей представлена в виде изображений, что особенно актуально при локализации игр.

Полный список поддерживаемых типов ресурсов, а также операций, которые можно с ними совершать, приведён тут. Среди дополнительных возможностей Resource Tuner отмечаем способность генерировать так называемый манифест приложения (Application Manifest). Это XML-документ, описывающий программу и библиотеки, необходимые для ее работы, и обычно использующийся для оформления приложений в соответствии с визуальными стилям Windows XP, Vista, 7. Существует также консольная версия Resource Tuner — Resource Tuner Console.

Несмотря на схожесть названий, Resource Tuner Console не является частью Resource Tuner и представляет собой абсолютно самостоятельное приложение от разработчиков Heaventools с несколько отличным функционалом. Сравнительную таблицу продуктов от Heaventools можно посмотреть по данной ссылке.

Resource Tuner: Главное окно, просмотр ресурсов.

Resource Tuner: Просмотр содержимого ресурса RC Data

Resource Tuner: Менеджер плагинов (Plug-in Manager)

Применение Resource Tuner для перевода и локализации строковых типов ресурсов приложений.

Нас, в первую очередь, интересует специфика применения Resource Tuner в качестве инструмента для локализации и перевода строковых ресурсов приложений. Продемонстрируем соответствующие возможности на примере редактирования строк, хранящихся в ресурсах типа таблицы строк (stringtables). Редактирование других типов ресурсов (например, элементов меню) происходит аналогичным образом с поправкой на использование другого режима редактора. Примеры выполнения основных задач с использованием Resource Tuner можно найти на официальном сайте проекта.

После открытия исполняемого файла с помощью Resource Tuner, в правой части рабочей области программы будет отображаться Дерево ресурсов (Resource Tree), в котором все доступные ресурсы сгруппированы по типам (диалоги, иконки, меню и т.п.). Строковые ресурсы, объединенные, как правило, в таблицы строк, в дереве ресурсов располагаются в «ветке» String. Далее выбираем для редактирования необходимую таблицу — в левой части рабочей области Resource Tuner будет отображаться скрипт таблицы строк (stringtable script). В общем случае, выбранный ресурс будет отображаться в виде графического изображения, текста или двоичного кода: клавиша F4 переключает режим просмотра, F8 — кодовая страница (DOS/WIN).

Двойным щелчком на выбранной таблице (или нажатием соответствующей кнопки в меню программы) переходим в Редактор ресурсов. Выбираем в таблице строку, которую необходимо отредактировать (в нашем случае — перевести), и вносим необходимые изменения в поле для редактирования, расположенное внизу окна. Каждой строке в таблице присвоен уникальный идентификатор (String ID), который не может быть изменен, т.к. его значение «зашито» в исходном файле, тем более что изменение идентификатора может негативно сказаться на работоспособности программы.

Данное ограничение распространяется на большинство ресурсов приложения, например, на меню и диалоги. Редактор поддерживает стандартные механизмы Windows, а потому строки можно переносить из стороннего источника, копируя их через буфер обмена. До окончательного выхода из редактора (с помощью кнопки «ОК») любые изменения можно отменить, используя функцию «Clear all changes». Особое внимание при при редактировании исполняемого файла или библиотеки (С++ или Delphi, например) необходимо обратить на наличие в строках управляющих символов и заполнителей (placeholders), например, %d или %s.

Как и в случае с идентификаторами, отсутствие управляющих символов, не говоря уже о наличии незаполненных, но предусмотренных разработчиком, строк, может привести к ошибкам программы во время её выполнения вплоть до аварийного завершения. После внесения исправлений (переводов) закрываем редактор ресурсов и сохраняем изменения в исходном файле через меню File главного меню программы.

Применение Resource Tuner для локализации изображений и графических элементов игр и программ.

Кратко затронем методику редактирования изображений — как уже говорилось выше, это может быть актуальным для локализации приложений, в которых некоторые требующие перевода текстовые элементы хранятся в виде изображений. В этом случае, процесс перевода будет заключаться в замене соответствующего изображения на заранее подготовленный (отредактированный) шаблон. В Дереве ресурсов Resource Tuner все доступные графические элементы сгруппированы в отдельные «ветки» согласно типу этих элементов: Icon, Bitmap, JPEG, GIF, PNG, Cursor и др.

Далее, как и в случае со строковыми ресурсами, выбираем для редактирования необходимый элемент и переходим в Редактор ресурсов — режим редактора для работы с графикой активируется автоматически. В левой части редактора размещено исходное изображение, а в правой открываем (или вставляем из буфера обмена) заготовку, т.е. то изображение, на которое будет заменён исходный ресурс. Особое внимание необходимо обратить на размер и глубину цвета — для того, чтобы избежать сбоев в работе программы, в заменяемом и заменяющем изображениях эти параметры должны совпадать.

Также рекомендуется перед выполнением операции по замене отдельно сохранить заменяемый элемент (функция «Save Resource As…» из контекстного меню ресурса), для того, чтобы при необходимости можно было восстановить данный графический ресурс в исходном виде.

Resource Tuner: Таблицы строк в Дереве ресурсов и запуск Визуального редактора ресурсов

Resource Tuner: Редактирование таблицы строк

Resource Tuner: Изображения в Дереве ресурсов

Resource Tuner: Редактирование графического ресурса.

Resource Tuner: Редактирование элементов меню.

Resource Tuner: Редактирование информации о версии программы

Достоинства и недостатки Resource Tuner как инструмента перевода и локализации игр и приложений

Описанный выше процесс редактирования и замены ресурсов локализируемого приложения наглядно демонстрирует, что переводить игру или программу на другой язык с помощью Resource Tuner сможет даже неподготовленный пользователь. Что же касается цели исследования, которую была нами определена, — рассмотреть Resource Tuner с точки зрения инструмента для перевода приложений, в которых не предусмотрена локализация, — то можно констатировать, что данную проверку утилита от Heaventools прошла, хотя и не без ряда оговорок.

Например, обращает на себя внимание отсутствие поддержки 64-битный приложений (во время попытки загрузить в Resource Tuner исполняемый файла такого приложения программа выдаёт ошибку), что существенно ограничивает сферу применения утилиты, учитывая рост количества программ ориентированных на эту архитектуру. По словам разработчиков из Heaventools, поддержка 64-битных приложений будет добавлена в программу, начиная с версии 2.0. Предположительно, версия 2.0 будет также переведена на различные мировые языки. По состоянию же на сегодня, последней версией является 1.99 R6 от 20 октября 2009 года — она доступна только на английском и немецком языках.

Процесс даже краткого ознакомления с программой показывает, что Resource Tuner — это, в первую очередь, простой редактор поддерживающий изменение, замену, удаление ресурсов, но никак не профессиональный инструмент для локализации. Говорить в контексте RT о таких механизмах, облегчающих работу переводчиков ПО, как-то: память переводов, поддержка словарей и баз данных терминов, естественно не приходится. Кроме того, и это вытекает из специфики Resource Tuner, с помощью данной утилиты невозможно создавать многоязычные приложения, т.к. процесс перевода ПО сводиться к замене оригинальных строк переведёнными.

Из положительных особенностей, которые, несомненно, будут полезны при выполнении локализации, необходимо отметить возможность модификации диалоговых окон: элементы диалоговых окон могут быть перемещены, а их размеры — изменены и адаптированы под готовый перевод. Resource Tuner воспринимается скорее как простое и недорогое решение для локального применения при переводе приложений в ситуациях, описанных в начале статьи, но Resource Tuner очевидно не может претендовать на статус основного инструмента локализатора.

О «домашнем», непрофессиональном статусе описываемой утилиты говорит и цена продукта — стоимость лицензии для персонального использования составляет $39.95, бизнес-лицензия в два раза дороже — $79.95. Для сравнения, стоимость более функциональной консольной версии Resource Tuner, ориентированной на использование специалистами, составляет $199, а утилиты PE Explorer (также от Heaventools), в состав которой, помимо расширенного (по сравнению с Resource Tuner) редактора ресурсов, входит дисассемблер, — $129. Получить актуальную 30-дневную trial-версию Resource Tuner можно на странице загрузки официального сайта программы.

Оцените статью