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/)
-   -   Dialogservice Mehrsprachigkeit (https://www.delphipraxis.net/190062-dialogservice-mehrsprachigkeit.html)

Peter666 25. Aug 2016 12:04

Dialogservice Mehrsprachigkeit
 
Hi,

Embarcadero hat leider die ganzen Texte in FMX.Const als Resourcestring gespeichert und das ist gelinde gesagt echt zum brechen. Kennt jemand eine Möglichkeit die Texte für Abbrechen, Ok, Ja, Nein zu übersetzen?

Peter

Der schöne Günther 25. Aug 2016 12:35

AW: Dialogservice Mehrsprachigkeit
 
Hilft dir dieser schlaue Mann hier weiter?

CHackbart 25. Aug 2016 13:46

AW: Dialogservice Mehrsprachigkeit
 
Das läuft doch nur auf die Übersetzung der FMX.Const hinaus. Hast du ne App die mehrsprachig ist, geht das nicht. Ich hab ne eigene Dialogroutine geschrieben, bei Bedarf poste ich das mal.

haentschman 25. Aug 2016 16:59

AW: Dialogservice Mehrsprachigkeit
 
Hallo... 8-)

um dem aus dem Weg zu gehen, kann man sich eine Form als MessageDialog designen. Da hat man auch gleich Corporate Design und die Übersetzungen des Language Tools. :thumb:

Sherlock 26. Aug 2016 08:27

AW: Dialogservice Mehrsprachigkeit
 
Ähm, ich würde gerne eine Lanze für Embarcadero brechen. Resourcestrings zu verwenden ist die Delphi Methode zum Übersetzen. Der Spieß gehört demzufolge umgedreht: Programme die damit nicht zurecht kommen, sind zum Brechen. Nur weil es Programme gibt, die nicht damit zurecht kommen, sollte man Resourcestrings nicht verteufeln. GnuGetText soll dem Vernehmen nach wunderbar damit arbeiten; kommerzielle Produkte ohnehin.

Was ist das konkrete Problem bei den Resourcestrings?

Sherlock

himitsu 26. Aug 2016 09:25

AW: Dialogservice Mehrsprachigkeit
 
Jupp, genau aus dem Grund sind es "extra" ResourceStrings, denn diese lassen sich eben übersetzen.
Die Delphi-IDE ist Englisch und durch die ganzen .de-Dateien neben deren .bpl's werden automatisch jene ResourceStrings übersetzt, wenn das Windows eine passende (deutsche) Sprache eingestellt hat.

Beim Kompilieren ohne Laufzeitpackages werden die in Delphi eingerichteten Sprach-Versionen dieser CONST-Units einkompiliert und mit Laufzeitpackages muß man nur die .DE mitgeben.

Und dann gibt es noch sowas wie GnuGetText, was sich in LoadResString hoockt, um es auch zur Laufzeit übersetzen zu können


PS: Man muß nur die ResourceStrings korrekt im Programm verwenden, denn wenn man es falsch macht, dann kommt der Compiler und macht an diesen falschen Stellen eine "normale" String-Konstante draus. :stupid:

Peter666 26. Aug 2016 16:45

AW: Dialogservice Mehrsprachigkeit
 
Danke für die Antworten, aber ich wüsste nicht wie das unter iOS oder OSX mit den bpls funktionieren soll. Eine Alternative native Lösung für Inputstrings und Messages wäre schön, so hab ich ein separates Formular erstellt.

Gerd01 26. Aug 2016 18:06

AW: Dialogservice Mehrsprachigkeit
 
Ich empfehle GNU Gettext for Delphi and C++ Builder

http://dxgettext.po.dk/

es gibt dort auch Bibliotheken für Delphi. Ich benutze es schon seit Jahren und es funktioniert primig

Der schöne Günther 26. Aug 2016 19:36

AW: Dialogservice Mehrsprachigkeit
 
Ich glaube ihr habt alle noch nicht mitbekommen dass es hier nicht nur um Windows geht. So toll DxGetText ist, außerhalb von Windows kann man nicht viel damit anfangen.

Ich würde Resourcestrings auch nicht verteufeln, eigentlich sind sie klasse. Und eigentlich müsste man nur die LoadResString-Methode patchen. DxGetText zeigt wie das unter Windows geht. Wie könnte man das auf anderen Plattformen machen?


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