是否有Delphi5编译器(dcc32.exe)或IDE开关/选项来更改可执行文件的语言?

是否有Delphi5编译器(dcc32.exe)或IDE开关/选项来更改可执行文件的语言?,delphi,delphi-5,dcc32,delphi-ide,Delphi,Delphi 5,Dcc32,Delphi Ide,我正在维护一个旧的Delphi5程序,它是用Delphi5专业德语构建的 问题是,创建的可执行文件的所有对话框和错误消息都以德语显示,即使在位置设置为美国或英国的英语窗口上也是如此 我是否需要英语版本的Delphi 5 Pro,或者是否有配置选项/编译器开关/选项来更改“输出语言” 我不是在谈论IDE语言,我已经了解到我可以通过删除Delphi安装目录中的所有*.DE文件将其改回英语 例如: 更新: 根据这些评论,我在源目录中查找德语邮件-我立即找到了几个文件: Source/Rtl/Sy

我正在维护一个旧的Delphi5程序,它是用Delphi5专业德语构建的

问题是,创建的可执行文件的所有对话框和错误消息都以德语显示,即使在位置设置为美国或英国的英语窗口上也是如此

我是否需要英语版本的Delphi 5 Pro,或者是否有配置选项/编译器开关/选项来更改“输出语言”

我不是在谈论IDE语言,我已经了解到我可以通过删除Delphi安装目录中的所有*.DE文件将其改回英语

例如:

更新: 根据这些评论,我在源目录中查找德语邮件-我立即找到了几个文件:

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

我希望有一个更简单的方法。不要以为我会走这条路……

工具“BDSSetLang.exe”的bin目录中有 如果在安装过程中指定了德语和英语,则可以在其中更改IDE语言、库语言等

因此,解决这个问题应该是可能的

试试这个

//...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;

来源:

工具“BDSSetLang.exe”的bin目录中有 如果在安装过程中指定了德语和英语,则可以在其中更改IDE语言、库语言等

因此,解决这个问题应该是可能的

试试这个

//...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;

来源:

这些文本内容在unit
Consts.pas
中定义为
resourcestring

那些
resourcestring
可以通过一些库动态更改。无需更改RTL源代码

请参阅以获取参考

我推荐使用您的Delphi 5版本,并为大多数使用的语言提供一组标准Delphi标题的预翻译文本


编辑:如果您只想恢复为英文VCL值,则原始Deplhi 5 CD中的
Extra\VCLUS
文件夹中应有默认的英文.pas和.dcu文件。只需用这些文件覆盖您的本地文件。文件已在预期的子文件夹布局中设置。

这些文本内容在unit
Consts.pas
中定义为
resourcestring

那些
resourcestring
可以通过一些库动态更改。无需更改RTL源代码

请参阅以获取参考

我推荐使用您的Delphi 5版本,并为大多数使用的语言提供一组标准Delphi标题的预翻译文本



编辑:如果您只想恢复为英文VCL值,则原始Deplhi 5 CD中的
Extra\VCLUS
文件夹中应有默认的英文.pas和.dcu文件。只需用这些文件覆盖您的本地文件。文件已在预期的子文件夹布局中设置。

您看到的是字符串常量,可能是在
conss.pas
单元中定义的(至少在Delphi 7中是这样)。虽然我不知道是否有可能修改此文件并重建Delphi 5 VCL.RTL?Consts.pas文件位于何处?位于Delphi5安装的
库的子库中。好的,我找到了Consts.pas,但我没有看到那里的所有消息。我用更多的样本更新了我的问题。还有其他文件吗编辑:只是通过搜索找到它:Source/Rtl/Sys/syscont.pas.Delphi 5和7并没有像现代版本那样随所有本地化一起提供。因此,你要么从D5的英文版本中复制它们,可能是盗版,也可能不是盗版,灰色地带给我,或者按照建议进行翻译。编译器中没有从零中获取某些内容的选项。德尔福没有自己学习语言和做翻译的想法。如果您在安装CD上找不到英文翻译,那么您必须这样做,或者在其他地方找到。德尔福没有戴一顶maic帽子,把兔子从虚空中拉出来。要想得到l10n,必须有人去做!您看到的是字符串常量,可能是在
Consts.pas
单元中定义的(至少在Delphi7中是这样)。虽然我不知道是否有可能修改此文件并重建Delphi 5 VCL.RTL?Consts.pas文件位于何处?位于Delphi5安装的
库的子库中。好的,我找到了Consts.pas,但我没有看到那里的所有消息。我用更多的样本更新了我的问题。还有其他文件吗编辑:只是通过搜索找到它:Source/Rtl/Sys/syscont.pas.Delphi 5和7并没有像现代版本那样随所有本地化一起提供。因此,你要么从D5的英文版本中复制它们,可能是盗版,也可能不是盗版,灰色地带给我,或者按照建议进行翻译。编译器中没有从零中获取某些内容的选项。德尔福没有自己学习语言和做翻译的想法。如果您在安装CD上找不到英文翻译,那么您必须这样做,或者在其他地方找到。德尔福没有戴一顶maic帽子,把兔子从虚空中拉出来。要想得到l10n,必须有人去做!我不想更改对话框标题,我只想使用默认的英文文本。请再次阅读我的答案。我发布了两个解决方案。第一句可以解决你的问题是的,我跳过了你的第一句,对不起。我会调查的。BDSSetLang.exe在我的Delphi 5 Pro安装目录中不存在。BDSSetLang.exe是在Delphi 2010中添加的。我不想更改对话框标题,我只想使用默认的英文文本。请再次阅读我的答案。我发布了两个解决方案。第一句可以解决你的问题是的,我跳过了你的第一句,对不起。我将对此进行调查。BDSSetLang.exe不存在于我的Delphi 5 Pro安装目录中。BDSSetLang.exe是在Delphi 2010中添加的。我不尝试翻译为其他语言,我希望返回默认的英文文本。然后获取