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