![]() |
Mehrsprachige Anwendung: Ich kriegs nicht hin
Hi,
ich versuche gerade meine erste mehrsprachige Anwendung zu erstellen und kriege es nicht hin. Ich benutzte Delphi XE7 Enterprise Update1. Ich habe die Anwendung erstellt und kann sie kompilieren. Die Anwendung besteht aus einer Anzahl von Formularen und Frames, einem Datamodule und einer Anzahl weiterer Units. Nun benutze ich den Resource DLL Wizard unter Projekte/Sprachen/Hinzufügen und füge eine Sprache hinzu (in meinem Fall mal: Französisch) Der Wizard läuft durch zum Ende bekomme ich angezeigt das er ein Resourcen Script bearbeitet hat, aber 0 Formulare. Mhh und dabei steht doch in ![]() unter "6.Expand one language project and you will see the DFM files to translate your forms" In der Projektgruppe wurde das "Sprachen Projekt" dann angelegt...Da finde ich aber keine DFM Files, aber eben eine Resourcendatei die ich mit dem Resource Editor auch bearbeiten kann. Nun habe ich unter Projekte/Sprachen die neue Sprache aktiviert (Also Französisch) und alle Projekte neu erstellt... Wenn ich die Anwendung dann starte bekomme ich eine EResnotFound Exception das er die Resource für das Main Form nicht findet.... Die Meldung ist dann sogar auf französisch....:-D Mir kommt schon spanisch vor das beim Resource Wizard keine Formulare bearbeitet worden sind. Was mache ich nur falsch...oder was läuft da falsch....? Vielleicht hat jemand ja mehr Erfahrung und kann mir auf de Sprünge helfen.... Liebe Grüsse Benedikt |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Schau mal hier:
![]() Hilft das? Aber nebenbei: Benutzt eigentlich wirklich jemand produktiv diese Delphi-eigenen Übersetzungswerkzeuge? Ich habe das Anno dazumal versucht und recht schnell sein gelassen. So wie ich das mitbekomme, ist das auch nicht das "State-Of-The-Art" Werkzeug, um dein Programm multilingual zu machen. Dafür ist es zu einschränkend und umständlich. Zum Beispiel um Strings in einer Unit zu übersetzen, musst du diese als
Delphi-Quellcode:
-Konstante deklarieren.
resourcestring
Und soweit ich weiss werden diese Übersetzungen als Resourcedatei abgelegt und mitkompiliert, dh ein potentieller Übersetzer muss sich durch eine "benutzerunfreundliche" Datei wühlen und braucht auch ein Delphi, um die .rc-Datei in eine .res-Datei umzuwandeln, um sie dann in eine .dll zu kompilieren. Schau dir mal ![]() Bei GNU GetText extrahiert er automatisch Strings aus DFM Dateien. Und für deine Texte im Code musst du diese in
Delphi-Quellcode:
kapseln. Also zB ...
_('...')
Delphi-Quellcode:
Es gibt keine DLLs und der Übersetzer braucht nur einen Texteditor.
MessageDlg(_('Hallo Welt'), ...);
Label_Status.Caption := Format(_('Kopiere %s nach %s'), [strSourceFile, strTargetFile]); // usw. |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
anstossen.
constructor TMyForm.Create(_Owner: TComponent);
begin inherited; TranslateComponent(Self); end; Zitat:
![]() ![]() ![]() |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Zitat:
|
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Hallo,
vielen Dank für die Anmerkungen ich werden mit DXGetText mal anschauen |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Mit dxGetText arbeite ich auch in einem Projekt mit einem angepassten Gorm-Editor weil
das Orginal PO-Edit nicht ganz mein Fall ist. Aber das Projekt ist schon sehr undurchsichtig, und ich meine so aus dem Bauch heraus das ganze könnte viel schlanker sein. Die dxGnugettext.pas hat so ca. 150 kB Sourcen. Dazu gibt es noch verschiedene Versionen und auch ein JEDI JvGnugettext, so das ich nie wirklich sicher bin was denn nun eigentlich der richtige dxGnugettext ist. Für Firemonkey scheint dxGnugettext wohl noch keine Portierung zu geben, oder ist das schonmal jemanden untergekommen ? Rollo |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Ich habe mitlerweile eine eigene Klasse geschrieben, mit der ich Lnaguage-Files direkt aus den Ressourcen laden kann. Ich weiß nicht ob die Klasse alle Wünsche erfüllt, aber in meinem Projekt läuft sie einwandfrei. Wenn jemand interesse hat, kann ich mein Werk gerne mal posten :P
|
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Wenns auch etwas Geld kosten darf, kann ich uneingeschränkt den
![]() Sherlock |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Zitat:
- Umständlich - Aufgebläht - Resourcenstrings - Localized Builds Zitat:
Wir haben für unser Projekt eine eigene Lösung entwickelt, die eine extreme "Lightweight"-Variante von GNU GetText ist. Der Source des Parsers zum extrahieren der Texte ist ~30kB groß. Die Localizer-Unit ist nur 18kB und arbeitet nach dem gleichen Schema, also Formulare werden per
Delphi-Quellcode:
übersetzt und Texte im Code per
L.Translate(Self)
Delphi-Quellcode:
gekapselt.
LabelX.Caption := L['Hallo Welt']
Dazu haben wir noch einen WYSIWYG-Editor geschrieben, der die Bearbeitung im Tabellenformat, wie Excel, ermöglicht. Damit betreiben wir unser Projekt schon seit fast 10 Jahren und hatten bei keiner Sprache bisher irgendwelche Probleme, egal ob Deutsch, Englisch, Russisch, Japanisch, ... Verstehe nicht, wieso Firmen / Entwickler solche aufgeblähten und umständlichen Tools für so eine simple Sache entwickeln und / oder nutzen? |
AW: Mehrsprachige Anwendung: Ich kriegs nicht hin
Weil wir nicht das Rad neu erfinden wollten. Und resourcestrings sind nunmal Standard. Wenn man dann noch hier
![]() Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 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 by Thomas Breitkreuz