![]() |
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 |
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 |
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. :( |
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: |
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:
Liebe Grüße |
AW: Englische Dialoge mit deutschem Delphi
Zitat:
|
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. |
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. |
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:
Da lässt sich natürlich noch stark verfeinern.
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; |
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.
|
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 |
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) |
AW: Englische Dialoge mit deutschem Delphi
[ot]
tja RTFM! Bleibt nur die Frage "welches?" [/ot] Grüße K-H |
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 |
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. |
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 |
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.
|
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 |
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. |
AW: Englische Dialoge mit deutschem Delphi
Zitat:
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. |
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