Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [D7] Multilanguage Anwendung (https://www.delphipraxis.net/72435-%5Bd7%5D-multilanguage-anwendung.html)

TUX_der_Pinguin 30. Jun 2006 08:56


[D7] Multilanguage Anwendung
 
Hi,

ich habe vor eine Delphi Win32 Anwendung in mehreren Sprachen anzubieten,

ich weiß noch nicht ob ich das ganze mit resourcestrings etc. löse.

Aber meine Eigentliche Frage unter Delphi 7 Personal, gibt es in
Projekt -> Option -> Versionsinfo eine Spracheinstellung.

Was genau hat das zubedeuten, wenn ich da von Deutsch auf z.b
Englisch umschalte.

Desweiteren Berechnungen in Delphi (z.b. 2,5 * 7,8 ) in der
Deutschen Delphi Vers. unter einem Deutschen Win98 muß ich als
Dezimaltrennzeichen ein Komma verwenden, wie schaut es da
aus muß ich da anpassungen vornehmen wenn die Anwendung auf
einem Englischen Windows läuft oder nimt Delphi immer die
Einstellungen die beim Kompilieren vorhanden sind ?


mfg

TUX

Union 30. Jun 2006 09:40

Re: [D7] Multilanguage Anwendung
 
Wenn Du den Übersetzungsmanager von Delphi verwendest, werden die unterschiedlichen Sprachen in DLL's gespeichert. Die [/oh]TFormatSettings[oh] holt Delphi sich aus dem System, und es reagiert auch automatisch auf die Nachrcht, die Windows beim Ändern der Einstellungen versendet.

TUX_der_Pinguin 6. Jul 2006 12:08

Re: [D7] Multilanguage Anwendung
 
In der Delphi 7 Personal Edition gibt es diesen Übersetzungs Manager
aber nicht, oder ich habe den noch nicht gefunden.

Bernhard Geyer 6. Jul 2006 12:29

Re: [D7] Multilanguage Anwendung
 
Zitat:

Zitat von TUX_der_Pinguin
Aber meine Eigentliche Frage unter Delphi 7 Personal, gibt es in
Projekt -> Option -> Versionsinfo eine Spracheinstellung.

Was genau hat das zubedeuten, wenn ich da von Deutsch auf z.b
Englisch umschalte.

Ist relativ egal. Wenn Du mehrere solche Einträge in der Exe hättest (wird von Delphi so nicht unterstützt) würdest du bei den Datei-Eigenschaften immer die passende sehen

Zitat:

Zitat von TUX_der_Pinguin
Desweiteren Berechnungen in Delphi (z.b. 2,5 * 7,8 ) in der
Deutschen Delphi Vers. unter einem Deutschen Win98 muß ich als
Dezimaltrennzeichen ein Komma verwenden, wie schaut es da
aus muß ich da anpassungen vornehmen wenn die Anwendung auf
einem Englischen Windows läuft oder nimt Delphi immer die
Einstellungen die beim Kompilieren vorhanden sind ?

Die Delphi-VCL fragt beim Programmstart einige Systemeinstellungen (wie Dezimaltrennzeichen) von Windows ab so das in vielen Fällen Du hier keine Anpassungen selbst vornehmen musst.

Amnon82 6. Jul 2006 13:00

Re: [D7] Multilanguage Anwendung
 
Das mit dem Dezimaltrenner kannst Du ganz einfach so lösen:

DecimalSeparator := '.';

Am Besten bei Create Deiner Hauptform reinschreiben. Statt dem Punkt kannst Du auch ein Komma verwenden. Zum Testen würd ich aber den Punkt nehmen, da wir in Deutschland das Komma verwenden. Mit DecimalSeparator setzt Du somit im Programm fest, welches Zeichen Dein Programm nutzt. Somit muss man dem User nicht zumuten irgendwas in Windoof zu ändern.

Mein Programm AutoQ2 wurde auch in mehrere Sprachen übersetzt. Ich hatte dazu eine TXT-Datei verwendet und bei Create die Captions, Strings etc. ersetzt. Es gibt auch Tools, die für Dich die Strings suchen. Es gibt mehrere Wege.

moonwhaler 6. Jul 2006 14:37

Re: [D7] Multilanguage Anwendung
 
Lustigerweise überschreibt Delphi die nachträglich eingestellten Formatsänderungen. In diesem Fall hilft "UpdateFormatSettings" auf FALSE zu setzen. Hier ein Auszug aus meinem Programm:

Delphi-Quellcode:
 
////////////////// COUNTRY SPECIFIC SETTINGS //////////////////

  // Do not allow any format changes during program execution
  Application.UpdateFormatSettings := FALSE;

  // COUNTRY SPECIFIC: Force to use this date seperator
  DateSeparator := '.';

  // COUNTRY SPECIFIC: Force GERMAN date format
  ShortDateFormat := 'dd.mm.yyyy';

  // COUNTRY SPECIFIC: Force GERMAN time format
  ShortTimeFormat := 'hh:nn:ss';

  // COUNTRY SPECIFIC: Force GERMAN time seperator
  TimeSeparator   := ':';

  // COUNTRY SPECIFIC: Force GERMAN thousand seperator
  ThousandSeparator := '.';

  // COUNTRY SPECIFIC: Force GERMAN decimal seperator
  DecimalSeparator := ',';

  ////////////////// COUNTRY SPECIFIC SETTINGS //////////////////
BTW: Ich empfehle Dir "GNUGetText" für Delphi als Übersetzer: http://dybdahl.dk/dxgettext/

Bernhard Geyer 6. Jul 2006 14:48

Re: [D7] Multilanguage Anwendung
 
Zitat:

Zitat von moonwhaler
Lustigerweise überschreibt Delphi die nachträglich eingestellten Formatsänderungen. In diesem Fall hilft "UpdateFormatSettings" auf FALSE zu setzen.

Wirklich Delphi oder eine übereifrige installierte Komponente? Schon mal im Debugger geschaut wer es überbügelt?

moonwhaler 6. Jul 2006 15:15

Re: [D7] Multilanguage Anwendung
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von moonwhaler
Lustigerweise überschreibt Delphi die nachträglich eingestellten Formatsänderungen. In diesem Fall hilft "UpdateFormatSettings" auf FALSE zu setzen.

Wirklich Delphi oder eine übereifrige installierte Komponente? Schon mal im Debugger geschaut wer es überbügelt?

Durch Internationalisierung unserer Anwendungen hatten wir speziell im englischen Sprachraum starke Probleme, da die Software speziell für den deutschen angepasst war. Nach einigen Änderungen (speziell DecimalSeperator) lief es vorerst ohne Probleme, erzeugte selbige aber nach kurzer Laufzeit erneut. Erst hatten wir keine Ahnung warum das zustande kam, bis wir herausfanden, dass die erzwungenen Regionaleinstellungen einfach auf den Systemstandard zurückgesetzt wurden. Die Erklärung war, dass unsere Software durch die "WndProc" Prozedur beeinflusst wurde. Durch einfügen der "Anweisung" diese nicht zu ersetzen, kam es zu keinen weiteren Fehlern, da die erzwungenen Einstellungen korrekt beibehalten wurden.

TUX_der_Pinguin 7. Jul 2006 09:05

Re: [D7] Multilanguage Anwendung
 
Hi,

vielen dank für die Hilfe, nun weiß ich bescheid und kann mein
Programm entsprechend anpassen.

mfg

TUX


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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