Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Englische Dialoge mit deutschem Delphi (https://www.delphipraxis.net/158519-englische-dialoge-mit-deutschem-delphi.html)

haraldr 20. Feb 2011 19:43

Englische Dialoge mit deutschem Delphi
 
Ich bin dabei, eine Software in englischer Sprache zu erstellen, habe ein deutsches Delphi (XE, Enterprise Verion) und ein deutsches WindowsXP.

Mein Problem: Die in Delphi enthaltenen Dialoge (TOpenDialog, TSaveDialog usw.) werden deutschsprachig eingebunden, einschließlich darin enthaltener Abfragen (zB.: Die Datei blabla existiert bereits... usw.)

Gibt es einen Weg, diese Dialoge in Englisch zu erzeugen?

Ich habe die Unit Dialogs versucht zu verstehen, scheitere dabei aber schon an Zeilen diesen Inhalts:
(*$HPPEMIT ' #pragma alias "@Dialogs@TSaveDialog@Execute$qqrpv"="@Dialogs@TSa veDialog@Execute$qqrp6HWND__"' *)

Oder benötige ich ein englisches Delphi?

Herzliche Grüße
haraldr

mirage228 20. Feb 2011 19:49

AW: Englische Dialoge mit deutschem Delphi
 
Die Öffnen- und Speicher-Dialoge kommen meines Wissens nach direkt von Windows.
Daher sollten sie auf einem englischen Windows ebenfalls in englischer Sprache sein.

Viele Grüße

cookie22 20. Feb 2011 19:49

AW: Englische Dialoge mit deutschem Delphi
 
Common Dialogs werden immer in der jeweiligen Landessprache des OS angezeigt. Wenn dein Programm auf einem englischen Rechener läuft sind die Dialoge in englisch. Das einzige, was du beeinflussen kannst sind die Filter und die Caption vom Dialog.

Edit: zu spät. :(

himitsu 20. Feb 2011 19:57

AW: Englische Dialoge mit deutschem Delphi
 
Texte von Windows werden in der installierten Systemsprache angezeigt.
> Also auf einem englischem System dann in englischer Sprache
TOpenDialog und TSaveDialog sollten mit dazugehören.

Irgendwo kann man auch die Texte der VCL ändern, also z.B. die delphieigenen Exception-Texte und von den delphieigenen Dialogen.
Ich weiß nur grade nicht wo man das umstellen kann (im Delphi-Setup konnte man sich allerdings auswählen welche Sprachen installiert werden wollte).
> In deinem Delphi-Programme-Verzeichnis sollte es aber z.B. einige .de-Dateien und de-Verzeichnisse befinden (ebenso für die anderen installierten Sprachen) ... die darin enthaltenen Dateien könnte man auch manuell mit denen im übergeordneten Verzeichnis tauschen.

[edit]
auch wenn ich etwas langsam war ... ich schick's dennoch ab :tongue:

geskill 20. Feb 2011 20:20

AW: Englische Dialoge mit deutschem Delphi
 
Hi,
für die Delphi-eigenen Fehlermeldungen musst du aber noch kurz selbst Hand anlegen, ich hatte mich damit mal im Zusammenhang mit dem ITE beschäftigt:
Zitat:

Wenn das Hauptprogramm Englisch ist sollte man dafür sorgen das auch die Ressourcenstrings aus Consts.pas etc. in Englisch sind. Das habe ich gemacht, indem ich unter Tools->Optionen->Umgebungsoptionen->Delphi Optionen->Bibliothek Übersetzt, die Pfade gelöscht habe. Danach nutzt Delphi nur die englischen Dateien, der Übersetzungseditor kann aber dadurch die Ressourcenstrings automatisch übersetzten und alles ist so wie es soll...

Kannst dir die Pfade ja auch in einer Textdatei abspeichern, damit du nachher wieder die Deutschen hast. So musst du nicht wie himitsu meinte irgendwelche Dateien verschieben oder Ordner umbenennen, wenn ich das jetzt richtig verstanden habe.

Liebe Grüße

cookie22 20. Feb 2011 20:40

AW: Englische Dialoge mit deutschem Delphi
 
Zitat:

Irgendwo kann man auch die Texte der VCL ändern, also z.B. die delphieigenen Exception-Texte und von den delphieigenen Dialogen.
Das dürfte dann wohl "Consts.pas" sein.

himitsu 20. Feb 2011 21:00

AW: Englische Dialoge mit deutschem Delphi
 
und SysConsts.pas und ... nja, aber eine "automatische" Umschaltung würde ich auch bevorzugen.

Ich dachte ich hätte mal in der DP ein Programm gesehn oder zumindestens davon gelesen, welches dieses ordentlich umstellt, aber finden kann ich jetzt nirgends was davon.

geskill 20. Feb 2011 21:27

AW: Englische Dialoge mit deutschem Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also nochmal, alles was man machen muss, ist Delphi die Pfade zu den übersetzten Dateien wegzunehmen, dass kann man ganz einfach in den Optionen machen --- ich habe mal ein Bild angehängt, wie es dann nachher aussehen muss.

Die Pfade kann man sich ja in einer Textdatei irgendwo sichern.

Hansa 21. Feb 2011 03:24

AW: Englische Dialoge mit deutschem Delphi
 
Anstatt Quelltexte zu übersetzen, Pfade zu verbiegen etc. würde ich mir mal lieber überlegen, wie man wichtige Fehlermeldungen überhaupt behandelt. Die eigene Delphi Version ist ansonsten im Endeffekt eventuell nicht mehr zu gebrauchen. Man kann ja auch komplett eigene Fehlermeldungen anzeigen:
Delphi-Quellcode:
PROCEDURE TForm1.ExceptionDeutscheMeldung (Sender : Tobject;E : Exception);
BEGIN  // zumindest Sender und E können direkt ausgewertet werden
  MessageDLG (' Fehler   : ' + E.Message + #10#13 +
              ' Fehlertyp : ' + E.Classname + #10#13 +
              ' Sender   : ' + Sender.Classname + #10#13 +
              ' Sender Parent  : ' + Sender.ClassParent.ClassName,
              mtError,[mbOK],0);
END;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := ExceptionDeutscheMeldung;
end;

procedure TForm1.btn1Click(Sender: TObject);
var i : Integer;
    r : Real;
begin
  i := 0;
  r := r / i;
ShowMessage(FloatToStr(r)); // MUSS aufgerufen werden, sonst Effekt nicht zu sehen
end;
Da lässt sich natürlich noch stark verfeinern.

Uwe Raabe 21. Feb 2011 06:42

AW: Englische Dialoge mit deutschem Delphi
 
Delphi XE hat im Delphi Bin-Verzeichnis ein Programm namens BdsSetLang.exe, mit dem man die Sprache der Bibliothek einfach umstellen kann. Je nachdem, was bei der Installation ausgewählt wurde, kann man zwischen Deutsch, Englisch, Französisch und Japanisch wählen.

haraldr 21. Feb 2011 09:40

AW: Englische Dialoge mit deutschem Delphi
 
Vielen Dank an alle, die so schnell geantwortet haben.

Uwes Lösung ist für mich am praktikabelsten.
Leider kannte ich die BDSSetLang.exe bisher noch nicht.:cry:

Habe die Bibliothek auf English(USA) geändert. (Vorher die IDE beenden!)
Danach kommen die von Delphi vorgefertigten Dialoge (z.B. messagedlg) korrekt auf Englisch.:thumb:

Dialoge wie TOpenDlg oder DSaveDlg werden in englischer Windows-Umgebung auch auf Englisch eingeblendet. (Habe ich gerade auf einer englischen Server2003 Plattform getestet).:thumb:

Liebe Grüße
haraldr

himitsu 21. Feb 2011 10:20

AW: Englische Dialoge mit deutschem Delphi
 
BdsSetLang.exe ... ahhh, da versteckt es sich und es wird auch gleich mitgeliefert :wall:
Nja, jedenfalls wird es "netter Weise" nicht im Startmenü und auch nicht innerhalb der IDE verlinkt. (ok, wärend die IDE läuft, kann man wohl eh nicht umschalten)

p80286 21. Feb 2011 11:06

AW: Englische Dialoge mit deutschem Delphi
 
[ot]
tja RTFM! Bleibt nur die Frage "welches?"
[/ot]

Grüße
K-H

himitsu 21. Feb 2011 11:15

AW: Englische Dialoge mit deutschem Delphi
 
Nachfolgenden Code als BDSSetLangTool.cmd in "C:\Dokumente und Einstellungen\All Users\Dokumente\RAD Studio\8.0" abspeichern.
(Pfad je nach Delphiversion anpassen)

und dann nur noch in Tools > Tools konfigurieren... > und dort zwei/mehr neue Einträge anlegen

Titel: IDE/VCL-Sprache wechseln
Programm: $(BDSCOMMONDIR)\BDSSetLangTool.cmd

Titel: IDE/VCL-Sprache auf Englisch umstellen
Programm: $(BDSCOMMONDIR)\BDSSetLangTool.cmd
Parameter: EN

Titel: IDE/VCL-Sprache auf Deutsch umstellen
Programm: $(BDSCOMMONDIR)\BDSSetLangTool.cmd
Parameter: DE

:!: Achtung, beim Umschalten wird die IDE neu gestartet.

Code:
@ECHO OFF

REM Copyright by himitsu ^_^

IF "%BDSBIN%"=="" GOTO ERROR
IF NOT "%BDSBIN:~1,1%"==":" GOTO ERROR
ECHO.
ECHO.
TASKKILL /IM bds.exe
ECHO.
ECHO.
ECHO sobald die Delphi-IDE beendet wurde . . .
PAUSE
ECHO.
%BDSBIN:~0,2%
CD %BDSBIN%
PUSHD
BDSSetLang.exe %1
POPD
START BDS.exe
EXIT

:ERROR
ECHO.
ECHO Error...
ECHO.
PAUSE
EXIT




die BDSSetLangTool.cmd hierhin kopieren: (Beispiel für Delphi/RAD XE)
C:\Dokumente und Einstellungen\All Users\Dokumente\RAD Studio\8.0

und dann in Delphi-IDE > Tools > Tools konfigurieren.../Configure Tools... > und dort zwei/mehrere neue Einträge anlegen

Titel:      IDE-Sprache wechseln
Programm: $(BDSCOMMONDIR)\BDSSetLangTool.cmd
ohne Parameter

Titel:      IDE-Sprache auf Englisch umstellen
Programm: $(BDSCOMMONDIR)\BDSSetLangTool.cmd
Parameter: EN

Titel:      IDE-Sprache auf Deutsch umstellen
Programm: $(BDSCOMMONDIR)\BDSSetLangTool.cmd
Parameter: DE

das Selbe eventuell auch noch für Französisch/FR und Japanisch/JP (vermute ich mal)

mögliche Parameter siehe CMD: "C:\Programme\Embarcadero\RAD Studio\8.0\bin\BDSSetLang.exe" /?


!!! Achtung, beim Umschalten wird die IDE neu gestartet

kopernikus 1. Nov 2011 11:25

AW: Englische Dialoge mit deutschem Delphi
 
Wenn man nur die Bibliothekssprache umschalten will, hilft diese Batch-Datei leider nicht weiter.
Die Spracheinstellung hierfür wird in der Registry gespeichert:

Key: HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\MUI
Value: Translated Library Directory (= EN oder DE)

Hier ein kleines Konsolenprogramm, mit dem sich diese Umstellung vornehmen lässt:

Delphi-Quellcode:
{ Delphi XE/XE2 utility
  Select MUI language (language for libraries to be used inside a program)
  JR, Nov. 2011

  Calling:
    ChangeMUILanguage <XX>
    with XX = EN - English
            = DE - German
  }

program ChangeMUILanguage;

{$APPTYPE CONSOLE}

uses
  SysUtils, Registry, Windows;

const
  MaxLang = 2;
  Languages : array[0..MaxLang-1] of string[2] = ('EN','DE');
  MuiKey = 'Software\Embarcadero\BDS\9.0\MUI';
  KeyName = 'Translated Library Directory';
var
  s : string;
  i : integer;
begin
  if ParamCount>= 1 then begin
    s:=ParamStr(1);
    for i:=1 to MaxLang-1 do if AnsiSametext(s,Languages[i]) then Break;
    if i>=MaxLang then s:=Languages[0] else s:=Languages[i]; // default = english
    with TRegistry.Create do begin
      RootKey:=HKEY_CURRENT_USER;
      if OpenKey(MuiKey,false) then WriteString(KeyName,s);
      CloseKey;
      Free;
      end;
    end;
  end.

MarcoGöli 22. Feb 2016 09:15

AW: Englische Dialoge mit deutschem Delphi
 
Hallo Community

Ich habe Rad Studio RX10 Seattle neu installiert, da ich meinen Mac komplett neu aufgesetzt habe. Rad Studio funktioniert alles einwandfrei. Jedoch wenn ich mein erstelltes Programm starte und einen Hinweis oder Dialog öffnet, sind die Buttons in Englisch und nicht in Deutsch (siehe Bild). Das ganze läuft unter dem System:
- Mac OSX El Capitain 10.11.3, Sprache und Tastatur Schweiz(Deutsch)
- Parallels Desktop 11, Sprache Deutsch
- Windows 10 Pro, Sprache und Tastatur Schweiz(Deutsch)

Wenn ich die C:/Programme(x86)/Embarcadero/Studid/17.0/bin/BDSSetLang.exe ausführe wird mir unter Sprache Benutzeroberfläche und Bibliothekssprache Deutsch(Deutschland) angezeigt. Also sollte doch in meinem Programm die Hinweis und Dialogbuttons in Deutsch sein.
Weis einer woran das liegen kann? Vor der Neuinstallation hat dies auch funktioniert.

Diesen Pfad finde ich in der Registry nicht: HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0\MU I

bra 22. Feb 2016 09:19

AW: Englische Dialoge mit deutschem Delphi
 
Schau mal in den Delphi-Einstellungen unter "Environment Variables", was da bei "LANGDIR" eingetragen ist. Das ggf. auf DE (oder die schweizerische Entsprechung) ändern. Allerdings weiss ich nicht, ob das auf dem Mac eventuell anders heisst.

MarcoGöli 22. Feb 2016 09:39

AW: Englische Dialoge mit deutschem Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe nachgeschaut "HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0\E nvironment Variables", jedoch finde ich Rechts den Eintrag "LANGDIR" nicht.
Rad Studio ist ja unter Windows 10 installiert, das sollte doch keine Rolle spielen

bra 22. Feb 2016 09:47

AW: Englische Dialoge mit deutschem Delphi
 
Lege den einfach einmal an und trage als Wert "DE" ein. Eigentlich sollten sich diese Einträge über die Konfiguration in der IDE auch ändern lassen. Ich glaube wir haben den auch nachträglich hinzugefügt.

Übrigens gibt es in den Projekteinstellungen unter Version Info auch eine Spracheinstellung. Die hat eventuell auch noch Auswirkungen auf die Dialoge.

Uwe Raabe 22. Feb 2016 10:04

AW: Englische Dialoge mit deutschem Delphi
 
Zitat:

Zitat von MarcoGöli (Beitrag 1330945)
Ich habe nachgeschaut "HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0\E nvironment Variables", jedoch finde ich Rechts den Eintrag "LANGDIR" nicht.

Der steht ja auch unter "HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0\M UI\Translated Library Directory". Wenn der leer ist, wird die Windows-Sprache verwendet. Gibt es die nicht, dann fällt das System auf Englisch zurück. Du kannst dort ja mal gezielt ein "DE" eintragen.

Dann müssen natürlich in den lib-Verzeichnisse die Unterverzeichnisse für die jeweilige Sprache (hier DE) existieren, aber davon gehe ich mal aus.

Der nächste Knackpunkt kann die Reihenfolge der Suchpfade sein. Ich hatte schon mal den Fall, daß das lib\Win32 manuell im ProjektPfad gesetzt war, was dann natürlich das Sprach-Verzeichnis überdeckt hatte.

MarcoGöli 22. Feb 2016 10:22

AW: Englische Dialoge mit deutschem Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ihn mal hinzugefügt (siehe Bild Anhang). Leider immer noch das Problem.
In den Projekteinstellung unter Versionsinformationen habe ich schon Deutsch(Schweiz) eingestellt.

Bei mir gibt es kein Verzeichnis MUI in der Registry.
In den lib Unterverzeichnissen ist das Verzeichnis "de" enthalten.
Bei den Pfaden ist mir nichts auffälliges aufgefallen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz