Локализация приложений Delphi, используя StringTable |
![]() |
![]() |
Статьи |
В то время, как ресурсные файлы позволяют хранить больше, чем код программы в EXE файле, включением ресурсов StringTable в приложение, разработчик Delphi может легко проектировать многоязыковые приложение. Давайте научимся, как это делается. Ресурсы StringTableВ этой статье Вы научитесь проектировать приложение, которое поддерживает большое количество строковых ресурсов и может быть переведено на другой язык с минимальными усилиями. Сохранив локализованные заголовки меток, кнопок и других управлений в ресурсах StringTable мы получаем много преимуществ:
Как и любой другой тип ресурсов, ресурсы StringTable компилируются в .RES файл, который прилагается к EXE файлу Вашего приложения во время компиляции. Создание StringTable ресурсовДля создания ресурса StringTable приложения для двух языков: 1. Создайте текстовый .RC файл, который содержит Ваши строковые ресурсы в директории Вашего проекта. Назовите файл StringTableLanguage.rc. Вообще-то Вы можете назвать его по-любому, главное, чтобы расширение файла было .RC
2. Компилируйте этот RC файл в RES файл при помощи компилятора ресурсов BRCC32. Обратите внимание: Файл StringTableLanguage.rc может содержать любое дополнительное количество ресурсов другого типа (иконки, изображения, данные и т.д.) Таблица строк начинается с ключевого слова StringTable. Строки заключены в фигурные скобки. Каждой строке присвоен числовой идентификатор. Символьные строки заключены в кавычки. Если Вы хотите использовать нестандартный символ, вставьте обратный слеш и далее номер символа, который Вы хотите вставить. Единственное ограничение: когда Вам нужно будет вставить обратный слеш, Вам необходимо будет вставить двойной обратный слеш. Например:
Использование таблиц строкЧтобы загрузить определенную строку из StringTable нужно использовать функцию LoadString. Один из параметров в вызове LoadString - индекс строки в таблице строк. Связывание в приложенииКак и любой .RES файл, Вы можете связать файл ресурсов с Вашим приложением просто добавив следующую инструкцию в код Вашего приложения (после implementation).
Как только файл ресурсов будет связан с Вашей программой, Вы сможете загружать ресурс из любого модуля, даже если Вы определили директиву $R в другум модуле. LoadStringВот пример, как использовать функцию LoadString для загрузки строки из StringTable:
|
Комментарии
RSS лента комментариев этой записи