Введение
Данная статья показывает, как можно перевести на русский язык строки, заголовки которых недоступны для “простого присваивания”, например заголовки окна функции 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.