AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Texte in Englisch ausgeben

Ein Thema von LinuxFan · begonnen am 5. Okt 2008 · letzter Beitrag vom 6. Apr 2009
Antwort Antwort
LinuxFan

Registriert seit: 9. Jul 2007
Ort: Bensheim
20 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Delphi-Texte in Englisch ausgeben

  Alt 5. Okt 2008, 02:20
Hallo zusammen,

ich verwende D5 in Deutsch.

Ich bin gerade dabei, ein Programm zu schreiben, dass komplett in Englisch laufen soll. Insoweit kein Problem, nur werden MessageDlgs, ShortCuts, Exceptions etc. mit deutschsprachigen Texten versehen (zumindest zu 99 %).

Gibt es irgendwo Delphi-interne Sprachdateien, wo die Übersetzungen drin stehen?

Lustig:
Möchte ich den Shortcut "Strg+Links" definieren, wird dieser so von Delphi nicht erkannt - anstatt dessen muss ich Strg+Left im Objektinspektor definieren. Bei "Strg+Rechts" meckert Delphi nicht.
Genauso bescheuert steht es dann auch im Menü des fertigen Programms:
Code:
Indent right   Strg+Rechts
Indent left    Strg+Left
MfG
Victor
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Delphi-Texte in Englisch ausgeben

  Alt 5. Okt 2008, 02:58
Hallo Victor

Was die Shortcuts anbelangt: http://www.delphipraxis.net/internal...=946701#946701
Thomas
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Delphi-Texte in Englisch ausgeben

  Alt 5. Okt 2008, 03:26
Folgendes ersteinmal zu den Meldungen.
ShowMessage() und MessageDlg() sind Delphi-Eigenkreationen und besitzen Deutsch-Sprachige Buttons, die hard-gecoded sind. Diese musst du also auf jeden Fall rauswerfen. Ein guter Kandidat für Multilinguale Anwendungen ist Application.MessageBox. Hier sind die Buttons (Ja, Nein, OK, Abbrechen, ...) in der Windows-Sprache angegeben, da eine Win32-API-Funktion benutzt wird.

Die Delphi-Exceptions sind schon etwas schwieriger. Soweit ich das weiß sind einige Exceptions in Delphi in einer Unit ausgelagert. Dort sind sie alle deutschsprachig als resourcestrings gelistet. Du müsstest diese Delphi-RTL-Unit also verändern und neu compilieren. (Kann man das überhaupt?) Oder du veränderst bei deiner kompilierten Ziel-EXE die resourcenstrings mit einem Ressourceneditor, was jedoch aufwändig ist.

Das richtig große Problem hast du mit deutschen Delphi-Exceptions, die Borland nicht in Ressourcen-Strings ausgelagert hat. Es ist also gut möglich, dass eine beliebige VCL-Unit von Delphi deutsche Exceptiontexte beinhaltet. Daher würde ich empfehlen
a) Die exakten Ressourcentexte von einer englisch kompilierten EXE zu besorgen
b) Besser: Die englischsprachige RTL zu besorgen
c) Noch besser: Delphi auf irgend eine Art und Weiße auf Englisch zu besorgen, ggf. Turbo Delphi zum Kompilieren nutzen?

Vielleicht reicht dir aber auch nur die Variante mit der MessageBox.

Bei bekannten / erwarteten Exceptions sollst du natürlich diese Abfangen und behandeln bzw. im unbehandelbaren Fall den Benutzer mit einer selbstgeschriebenen Meldung konfrontieren.

Und bei einer unerwarteten Exception, die ja meist einen Bug oder ein Ableben des Prozesses zum Vorschein bringt, muss sich der englischsprachige Endanwender ja nicht wie Zuhause fühlen

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Delphi-Texte in Englisch ausgeben

  Alt 6. Apr 2009, 07:57
Kleines Update -

In Delphi Enterprise gibts einen Translation-Manager, den du verwenden kannst, sobald du eine Resourcen-DLL erstellt hast. Du erhälst am Ende dann zusätzlich eine Patch-Datei mit der Erweiterung DEU oder ENU (Englisch USA), die DLL-Daten enthält und deine EXE zur Laufzeit patched. Du kannst mit dem Translationmanager sowohl alle DFMs als auch alle resourcestrings verändern (auch die von Borland, die du sonst nicht ändern kannst!)

Wichtig ist eben, dass du alle Meldungen nur mit Application.MessageBox ausgibst (Ja/Nein/OK... nach Windowssprache) sowie überall resourcestrings - vorzugsweise mit Zuhilfenahme von Format() verwendest.

Da du mit dem Translationmanager auch die Borland resourcestrings ändern kannst, was normalerweise nicht ohne Recompilieren der RTL geht (wenn das überhaupt machbar ist), solltest du folgende Regel anwenden:
Ist deine RTL/IDE auf Englisch, mach dein Projekt als Basissprache (EXE) auch Englisch und mache einen deutschen Patch (DEU).
Ist deine RTL/IDE deutsch, dann lass dein Projekt als Basissprache (EXE) deutsch sein und mache einen englischen Patch (ENU/ENG).
Denn dann kannst du auch solche Dinger wie "Division durch Null" übersetzen und es den internationalen Anwendern noch einfacher machen. Denn obwohl wenn diese Texte nicht aus deinem Projekt kommen, sind sie für den Endanwender ggf. auch mal sichtbar und sollten zur Verbesserung des Programms führen, sofern der Anwender sie lesen kann.

PS: Dieser Translationmanager reagiert irgendwie seltsam, wenn man Events in den DFMs verändern will und man läuft beim manuellen Editieren in Gefahr, dass es Asynchron wird, vielleicht bin ich aber einfach auch nur unfähig, das Teil zu bedienen

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz