| Локализация PE файлов Delphi/C++ Builder |
|
|
|
JPAGE_CURRENT_OF_TOTAL Компилятор и среда проектирования Delphi/C++ Builder позволяет создавать PE файлы и при этом обеспечивает дополнительную поддержку локализации создаваемых файлов. Кроме стандартных ресурсов Delphi/C++ Builder размещает в ресурсах RC_DATA[#10] ресурсы VCL форм, фреймов и модулей данных. PE файлы данного типа поддерживаются двумя парсерами:
Использование двух парсеров необходимо для корректного добавления данных в ресурсы 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 файла задается на вкладке исходных ресурсов в диалоге параметров файла. |
|