Локализация встроенных констант

Данная статья показывает, как можно перевести на русский язык строки, заголовки которых недоступны для "простого присваивания", например заголовки окна функции MessageDlg.

Пример

Вы создали свое приложение, форму, в вашей программе все или почти все заголовки строк на русском. И наверняка вы используете такую функцию, как MessageDlg.

Рассмотрим функцию:

MessageDlg('Ошибка чтения файла!'+#13+'Продолжить?',mtWarning,[mbYes,mbNo],0);

[Image]
Не знаю, как вам, но для меня "Ошибка чтения файла! Продолжить?" на фоне заголовка "Warning" и кнопок "Yes" и "No" смотрится "не по-русски".

Реализация перевода

Delphi добрую массу строковых констант берёт из модуля Consts. Для реализации перевода соответствующего модуля необходимо сделать следующее:

  1. Открыть через 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.

  2. В разделе resourcestring файла Consts.pas перевести на русский язык те строки, которые вам необходимы. Можете перевести все, если хотите.
  3. Сохраните копию Consts.pas и пустое приложение вместе в отдельной папке.
  4. Обязательно подключите модуль Consts.pas(если вы его не подключили) к сохранённому приложению и сохраните приложение ещё раз.
    Обратите внимание: приложение должно использовать модуль Consts.pas, сохранённый вами вместе с самим приложением, а не из папки …\DelphiX\Source\Vcl. Чтобы убедиться в этом, закройте страницу Consts.pas, затем, удерживая Ctrl, кликните мышью в разделе модулей по слову Consts - должен открыться файл Consts.pas непосредственно из того места, где вы его сохранили.
  5. Запустите приложение. После того, как вы его запустили, в папке с приложением должен появиться файл Consts.dcu.
  6. В папке с сохранённым приложением у вас помимо прочих файлов типа 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.

 


Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5605