Локализация PE32/PE32+ файлов PDF Печать E-mail
Индекс материала
Локализация PE32/PE32+ файлов
Ресурсы
Жестко-закодированные строки
Ресурсы диалогов
Ресурсы меню
Способы локализации
Библиотеки ресурcов
Локализованные файлы
Выбор способа локализации
Все страницы

Файлы PE32/PE32+

Файлы в формате PE32/PE32+ - это исполняемые файлы ( exe, dll, ocx, cpl, scr и т.п.) операционных систем Windows (Windows 98, NT, 2000, XP, Vista, CE, Mobile и т.п.). Формат PE32 является 32-х разрядным, PE32+ - 64-х разрядным. Далее в тексте эти файлы именуются PE файлами.

PE файлы состоят из секций, в каждой из которых могут содержаться данные разного типа. Стандартными типами данных являются данные импорта, экспорта, таблицы перемещения, ресурсы, данные потоков и др. Обычно эти данные содержаться в отдельных секциях, но возможно и размещение данных разного типа в одной секции. Код программы и данные для него могут быть размещены произвольным образом - в одной секции, в разных секциях или распределены на несколько секций. Спецификация PE32/PE32+ предусматривает максимум 65535 секций, но на практике PE файлы обычно содержат не более 10 секций.

У каждой секции имеется имя и атрибуты. Имя секции может быть произвольным. Чаще всего используют имена, отражающие тип данных в секции: .text, .data, .rsrc, DATA. CODE, idata. Важное значение имеют атрибуты секции. Они характеризуют свойства данных - исполняемый код, инициализированные данные и д.р.

Стандартным способом поддержки локализации PE32/PE32+ файлов является размещение всех данных, зависящих от языка, в ресурсах приложения и встраивание в программу кода, выполняющего загрузку ресурсов в зависимости от текущего или выбранного пользователем языка. Локализованные ресурсы могут быть размещены как в самом локализуемом файле, так в отдельной библиотеке DLL, которую обычно называют библиотекой ресурсов. Такая библиотека, как правило, не содержит никакого полезного кода, а используется только для хранения ресурсов. Файл может содержать ресурсы сразу нескольких языков. Такой файл называется многоязычным.

Другим часто используемым способом локализации является использование текстовых файлов, содержащих строки, требующие перевода. Обычно файл имеет формат INI или XML и содержит данные только одного языка. Локализуемая программа содержит код, загружающий требуемые языковой файл и берет данные из него. Radialix 2 не поддерживает создание текстовых языковых файлов из PE файлов, но поддерживается локализация INI файлов, что позволяет создавать новые языковые INI файлы на основе уже существующих.

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