Локализация встроенных констант
Введение
Данная статья показывает, как можно перевести на русский язык строки, заголовки которых недоступны для “простого присваивания”, например заголовки окна функции MessageDlg.
Пример
Вы создали свое приложение, форму, в вашей программе все или почти все заголовки строк на русском. И наверняка вы используете такую функцию, как MessageDlg.
Рассмотрим функцию:
MessageDlg('Ошибка чтения файла!'+#13+'Продолжить?',mtWarning,[mbYes,mbNo],0);Не знаю, как вам, но для меня «Ошибка чтения файла! Продолжить?» на фоне заголовка «Warning» и кнопок «Yes» и «No» смотрится “не по-русски”.
Реализация перевода
Delphi добрую массу строковых констант берёт из модуля Consts. Для реализации перевода соответствующего модуля необходимо сделать следующее:
Открыть через Delphi файл Consts.pas. Лучше всего это сделать так: создайте пустое приложение, в разделе uses пропишите модуль Consts и, удерживая клавишу Ctrl, кликните мышью прямо по слову Consts – откроется файл Consts.pas из папки …BORLAND\DelphiX\Source\Vcl примерно следующего содержания:
Unit Consts; Interface Resourcestring SOpenFileTitle = 'Open'; SCantWriteResourceStreamError = 'Can''t write to a read-only resource stream’; … Implementation End.В разделе resourcestring файла Consts.pas перевести на русский язык те строки, которые вам необходимы. Можете перевести все, если хотите.
Сохраните копию Consts.pas и пустое приложение вместе в отдельной папке.
Обязательно подключите модуль Consts.pas(если вы его не подключили) к сохранённому приложению и сохраните приложение ещё раз.
Обратите внимание: приложение должно использовать модуль Consts.pas, сохранённый вами вместе с самим приложением, а не из папки …\DelphiX\Source\Vcl. Чтобы убедиться в этом, закройте страницу Consts.pas, затем, удерживая Ctrl, кликните мышью в разделе модулей по слову Consts – должен открыться файл Consts.pas непосредственно из того места, где вы его сохранили.
Запустите приложение. После того, как вы его запустили, в папке с приложением должен появиться файл Consts.dcu.
В папке с сохранённым приложением у вас помимо прочих файлов типа Unit1.pas или project1.res должны быть следующие: Consts.pas и Consts.dcu.
Если вы хотите, чтобы перевод на русский действовал только в данном приложении, то вам больше ничего делать не нужно, т.е. достаточно одного только их присутствия в папке данного приложения.
Если же вы хотите, чтобы перевод коснулся всех приложений, то:
– файл Consts.pas вам необходимо скопировать поверх уже имеющегося в папку …\BORLAND\DelphiX\Source\Vcl
– файл Consts.dcu в папку …\BORLAND\DelphiX\Lib поверх уже существующего.
Возможно, вышеперечисленный процесс можно и упростить, но так, по крайней мере, делал я. Уже переведённый мною файл Consts.pas вы можете скачать здесь.
Заключение
Если вы хотите, чтобы модули вашего производства использовались всеми приложениями Delphi, то файлы вашего модуля x.pas и x.dcu, где x – название вашего модуля, необходимо сохранить в папках:
…\BORLAND\DelphiX\Source\Vcl
…\BORLAND\DelphiX\Lib
соответственно.
То же, что и с модулем Consts, можно выполнять и с другими модулями. Вот, собственно и всё. В результате вы получите переведённый на русский язык ряд диалоговых заголовков, предупреждений и кнопок, генерируемых самим Delphi. Вот и всё, Удачи!
No results found.