2013-05-29 8 views
0

Я поддерживаю старую программу Delphi 5, построенную с Delphi 5 Professional German.Есть ли компилятор Delphi 5 (dcc32.exe) или IDE-переключатель/опция, чтобы изменить язык исполняемого файла?

Проблема заключается в том, что все диалоги и сообщения об ошибках созданного исполняемого файла отображаются на немецком языке, даже на английском языке Windows с местоположением, установленным на что-то вроде США или Великобритании.

Нужна ли мне английская версия Delphi 5 Pro или есть опция конфигурации/переключатель/опция компилятора для изменения «языка вывода»?

Я не говорю о языке IDE, я уже узнал, что могу изменить это на английский, удалив все файлы * .DE в каталоге установки Delphi.

Пример:

enter image description here

enter image description here

enter image description here

Обновление: На основе комментариев я пошел искать немецких сообщений в каталоге Source - я сразу нашел несколько файлов:

Source/Rtl/Sys/comconst.pas 
Source/Rtl/Sys/sysconst.pas 
Source/Rtl/Sys/comconst.pas 
Source/Vcl/bdeconst.pas 
Source/Vcl/comstrs.pas 
Source/Vcl/consts.pas 
Source/Vcl/dbconsts.pas 
Source/Vcl/ib.pas 
Source/Vcl/oleconst.pas 

Желаю, чтобы был более простой способ. Не думаю, что я иду по этому пути ...

+1

То, что вы видите, это строковые константы, которые, вероятно, определены в блоке 'Consts.pas' (по крайней мере, в Delphi 7 это так).Хотя я не знаю, возможно ли изменить этот файл и перестроить Delphi 5 VCL. – TLama

+0

RTL? Где находится файл Consts.pas? – Zalumon

+1

В под библиотеке библиотеки 'source' установки Delphi5. –

ответ

1

есть в каталоге bin инструмента «BDSSetLang.exe» Если вы указали во время установки немецкий и английский языки, вы можете изменить там язык IDE, библиотеки и т. д.

Так что проблема должна быть решена.

OR

Попробуйте это.

//...bei einem Message Dialog die Beschriftungen der Buttons ändern 
function xMessageDlg(const Msg: string; DlgType : TMsgDlgType; 
        Buttons : TMsgDlgButtons; Captions: array of string) : Integer; 
var 
    aMsgDlg : TForm; 
    CaptionIndex, 
    i : integer; 
    dlgButton : TButton; // uses stdctrls 
begin 
    // Dlg erzeugen 
    aMsgDlg := CreateMessageDialog(Msg, DlgType, buttons); 
    CaptionIndex := 0; 
    // alle Objekte des Dialoges testen 
    for i := 0 to aMsgDlg.ComponentCount - 1 do begin 
    // wenn es ein Button ist, dann... 
    if (aMsgDlg.Components[i] is TButton) then begin 
     dlgButton := TButton(aMsgDlg.Components[i]); 
     if CaptionIndex > High(Captions) then Break; 
     // Beschriftung entsprechend Captions-array ändern 
     dlgButton.Caption := Captions[CaptionIndex]; 
     Inc(CaptionIndex); 
    end; 
    end; 
    Result := aMsgDlg.ShowModal; 
end; 

procedure TForm1.SpeedButton2Click(Sender: TObject); 
var 
    erg : integer; 
begin 
    erg := xMessageDlg('Hier steht der gewünschte Text,' + chr($0D) + 'die Buttons sind geändert', 
         mtConfirmation, 
         [mbYes, mbNo, mbCancel], // benutzte Schaltflächen 
         ['Alles', 'Teil','Abbrechen']); // zugehörige Texte 
    case erg of // zugehörige Antworten 
    mrYes : ShowMessage('"1" clicked'); 
    mrNo : ShowMessage('"2" clicked'); 
    mrCancel: ShowMessage('"3" clicked'); 
    end; // of case 
end; 

Источник: http://www.delphipraxis.net/3307-caption-der-buttons-yes-no-im-dialog-messagedlg-aendern.html

+0

Я не хочу менять заголовок диалогового окна, я просто хотел бы иметь английские тексты по умолчанию. – Zalumon

+0

Прочтите мой ответ еще раз. Я опубликовал 2 решения. Первый решит проблему ур – Hidden

+0

Да, я пропустил ваше первое предложение, извините. Я посмотрю. – Zalumon

5

Те текстовое содержание определяются в блоке Consts.pas в resourcestring.

Эти resourcestringмогут быть изменены на лету, через некоторые библиотеки. Не нужно менять исходный код RTL!

См. this question about localization для справки.

Я рекомендую GNU Gettext for Delphi, который работает с вашей версией Delphi 5 и имеет набор предварительно переведенных текстов стандартных субтитров Delphi для большинства используемых языков.

Edit: Если вы просто хотите, чтобы вернуться к значениям английский VCL, должен быть по умолчанию английский .pas в и .DCU файлы в оригинальном Deplhi 5 CD, в папке Extra\VCLUS. Просто перезапишите свои локальные файлы. Файлы уже установлены в ожидаемом макете подпапки.

+0

Я не пытаюсь перевести на другой язык, я хотел бы вернуться к английским текстам по умолчанию. – Zalumon

+1

Затем получите эти * const.pas файлы с английского Delphi и замените немецко-локализованные, если ваша программа не использует BPL, а монолитный EXE. Или вы можете использовать библиотеки, которые могут изменить «resourcestring» в памяти на ходу. Как VgLib1 или GetText, а затем добавьте перевод тех строк, которые вас раздражают. –

+0

Если бы у меня был английский Delphi, я бы просто установил его, и моя проблема была бы решена. Мне просто интересно, нужно ли мне покупать английскую Delphi или если можно каким-то образом настроить немецкий немецкий Delphi на английский (часто в интернационализированных программах английский язык все еще находится где-то под капотом). – Zalumon