-
NordRus (29.10.17 09:54) [0]Добрый день!
Вопрос по русификации диалогов в приложении на Delphi.
Когда-то давно вопрос замены "Yes" на "Да" в стандартных диалогах решался подключением в программу русифицированного варианта файлика consts.pas:program MyProgram;
uses
Consts in 'shared\rus\Consts.pas',
Forms,
Classes,
...
Содержимое этого файлика было таким (все константы переведены на русский):unit Consts;
interface
resourcestring
SOpenFileTitle = 'Открыть';
SCantWriteResourceStreamError = 'Невозможно записывать в поток ресурсов \"только для чтения\"';
SDuplicateReference = 'WriteObject вызван дважды для одного и того же экземпляра';
...
Однако при открытии проекта в современной версии Delphi это не работает.
Осторожно предположу, что из-за того, что константы в VCL теперь реорганизованы.
Простое переименование русифицированного consts.pas в vcl.consts.pas вызывает ошибки при компиляции.
Подскажите, пожалуйста, какой на сегодняшний день корректный путь русификации диалогов в программах, написанных на Delphi? -
Игорь Шевченко © (29.10.17 14:51) [1]
> какой на сегодняшний день корректный путь русификации диалогов
> в программах, написанных на Delphi?
Intergrated translation environment же. -
NordRus (29.10.17 22:28) [2]Игорь, спасибо за ответ.
Полазил по настройкам. Базовый язык у меня в проекте - 419 (русский, как я понимаю).
Попробовал добавить язык, ещё раз русский - моя программа на русском должна работать.
Посмотрел Translation Editor - понятно, можно свои формы делать на разных языках.
Но это всё не про то.
Как мне перевести стандартные диалоги? Чтобы в стандартных диалогах (не в моих формах, они-то уже сразу на русском!) вместо "Confirm" писало "Подтверждение", вместо "Yes" - "Да", вместо "Cancel" - "Отмена", чтобы стандартные сообщения об ошибках выскакивали на русском языке, и т.д. У меня есть файлы, в которых все эти строковые константы переведены. Как мне их пристроить, чтобы компилятор их "подхватил" и вставил в программу вместо англоязычных? -
Игорь Шевченко © (30.10.17 10:52) [3]NordRus (29.10.17 22:28) [2]
Насколько мне известно, стандартные ресурсные строки (MessageDlg и его производные) участвуют в процессе перевода точно так же, как и строки проекта.
Вот тут очень неплохая статья есть:
http://www.gunsmoker.ru/2010/06/delphi-ite-integrated-translation.html