Локализация PE файлов Delphi/C++ Builder PDF Печать E-mail
Индекс материала
Локализация PE файлов Delphi/C++ Builder
Ресурсы VCL
Дизайнер форм VCL
Редактор ресурса VCL
Автоматический выбор предков классов VCL
Все страницы

Компилятор и среда проектирования Delphi/C++ Builder позволяет создавать PE файлы и при этом обеспечивает дополнительную поддержку локализации создаваемых файлов. Кроме стандартных ресурсов Delphi/C++ Builder размещает в ресурсах RC_DATA[#10] ресурсы VCL форм, фреймов и модулей данных.

PE файлы данного типа поддерживаются двумя парсерами:

Исполняемые Unicode файлы Delphi

PE файлы, созданные с помощью Delphi версии 6 или более поздней. VCL ресурсы содержат данные в формате Unicode.

Исполняемые не-Unicode файлы Delphi

PE файлы, созданные с помощью Delphi версии 5 или более ранней. VCL ресурсы содержат данные в формате ANSI.

Использование двух парсеров необходимо для корректного добавления данных в ресурсы VCL при редактировании. Тип парсера устанавливается автоматически при добавлении файла в проект. Его также можно выбрать вручную в диалоге параметров файла. При некорректной установке парсера локализованные файлы могут оказаться не работоспособными.

В демонстрационных примерах имеется несколько проектов локализации PE файлов Delphi/C++ Builder

Строки resourcestring

Строки, которые необходимо локализовать, в проекте Delphi принято размещать в ресурсах, объявив их в разделе resourcestring:

resourcestring

rsSelectedItems = '%d items selected';

rsAddedItems = '%d items added';

Нет необходимости создавать RC файлы, содержащие ресурсы строк. Более того, делать это не рекомендуется, так как возможно появление конфликтов со сторонними библиотеками и компонентами. Компилятор определяет, какие строки из разделов resourcestring используются, и упаковывает их в ресурсы типа RT_STRING[#10]. Одновременно с этим компилятор формирует файл DRC, содержащий список строк, их индексы и уникальные имена (создание DRC файла разрешает опция Detailed Map в диалоге параметров проекта Delphi). Этот файл крайне необходим для обеспечения корректного обновления проекта Radialix 2 при выходе новой версии локализуемого файла. Строки RT_STRING[#10] в ресурсах PE файла идентифицируются по индексу. Даже при незначительных изменениях в исходных текстах и перекомпиляции локализуемой программы порядок и индексы строк могут значительно измениться, так как компилятор формирует его автоматически. В результате при обновлении ресурсов Radialix 2 не может сопоставить строки и воспринимает их как изменившиеся. Как результат, часть перевода приходится восстанавливать с помощью авто-перевода или вручную (переводы изменившихся строк сохраняются в память удаленных переводов). Если же подключить DRC файл, то строкам в RT_STRING[#10] будут назначены имена, и обновление ресурсов будет работать корректно. Имя DRC файла задается на вкладке исходных ресурсов в диалоге параметров файла.

Имя DRC файла