AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Mehrsprachige Anwendung: Ich kriegs nicht hin

Mehrsprachige Anwendung: Ich kriegs nicht hin

Ein Thema von bgeltenpoth · begonnen am 25. Sep 2015 · letzter Beitrag vom 30. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2   
bgeltenpoth

Registriert seit: 24. Jan 2012
15 Beiträge
 
Delphi XE7 Enterprise
 
#1

Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 25. Sep 2015, 16:31
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 http://stackoverflow.com/questions/1...ingual-support
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....

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
Benedikt Geltenpoth
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 26. Sep 2015, 02:43
Schau mal hier:
http://stackoverflow.com/questions/1...ingual-support

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 resourcestring -Konstante deklarieren.

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 GNU GetText an. Einen ähnlichen Ansatz nutzen wir auch für unsere Anwendung (Deutsch, Englisch, Slowakisch, Spanisch, Japanisch, Russisch, ...)

Bei GNU GetText extrahiert er automatisch Strings aus DFM Dateien. Und für deine Texte im Code musst du diese in _('...') kapseln. Also zB ...
Delphi-Quellcode:
MessageDlg(_('Hallo Welt'), ...);
Label_Status.Caption := Format(_('Kopiere %s nach %s'), [strSourceFile, strTargetFile]);
// usw.
Es gibt keine DLLs und der Übersetzer braucht nur einen Texteditor.

Geändert von nuclearping (26. Sep 2015 um 02:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 26. Sep 2015, 11:43
Aber nebenbei: Benutzt eigentlich wirklich jemand produktiv diese Delphi-eigenen Übersetzungswerkzeuge?

Ich habe das Anno dazumal versucht und recht schnell sein gelassen.
Mir ging es genauso, allerdings ist das schon mindestens 15 Jahre her. Vielleicht sind sie ja besser geworden?

Dafür ist es zu einschränkend und umständlich. Zum Beispiel um Strings in einer Unit zu übersetzen, musst du diese als resourcestring -Konstante deklarieren.
Es gibt immer wieder Leute, die das fuer einen Vorteil halten. Ich konnte deren Argumente nie nachvollziehen, ausser einem: Man kann die Uebersetzung dann mit einem beliebigen Tool, das Resource Strings unterstuetzt, durchfuehren.

Schau dir mal GNU GetText an. Einen ähnlichen Ansatz nutzen wir auch für unsere Anwendung (Deutsch, Englisch, Slowakisch, Spanisch, Japanisch, Russisch, ...)

Bei GNU GetText extrahiert er automatisch Strings aus DFM Dateien. Und für deine Texte im Code musst du diese in _('...') kapseln. Also zB ...
Delphi-Quellcode:
MessageDlg(_('Hallo Welt'), ...);
Label_Status.Caption := Format(_('Kopiere %s nach %s'), [strSourceFile, strTargetFile]);
// usw.
Da fehlt noch was: Man muss die Uebersetzung eines Formulars im Constructor oder in OnCreate mit
Delphi-Quellcode:
constructor TMyForm.Create(_Owner: TComponent);
begin
  inherited;
  TranslateComponent(Self);
end;
anstossen.

Es gibt keine DLLs und der Übersetzer braucht nur einen Texteditor.
Oder er benutzt ein Tool, das bequemer ist, z.B. PoEdit oder das von mir favorisierte Gorm bzw. ein neueres Release
Thomas Mueller
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 28. Sep 2015, 10:27
Zitat:
Aber nebenbei: Benutzt eigentlich wirklich jemand produktiv diese Delphi-eigenen Übersetzungswerkzeuge?

Ich habe das Anno dazumal versucht und recht schnell sein gelassen.
Ich habe es vor ca. einem Jahr versucht, mich geschüttelt, und es auch bleiben gelassen. Mit DxGetText bin ich ebenfalls sehr glücklich geworden, besser hätte es nicht werden können
  Mit Zitat antworten Zitat
bgeltenpoth

Registriert seit: 24. Jan 2012
15 Beiträge
 
Delphi XE7 Enterprise
 
#5

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 28. Sep 2015, 12:47
Hallo,

vielen Dank für die Anmerkungen ich werden mit DXGetText mal anschauen
Benedikt Geltenpoth
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.882 Beiträge
 
Delphi 12 Athens
 
#6

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 28. Sep 2015, 17:23
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
  Mit Zitat antworten Zitat
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#7

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 29. Sep 2015, 13:53
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
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 29. Sep 2015, 15:35
Wenns auch etwas Geld kosten darf, kann ich uneingeschränkt den Sisulizer empfehlen. DFMs werden ohnehin übersetzt, und im Strings im Quellcode einfach zu resourcestrings machen (Gibt ja ein Refaktoringtool dafür). Und schon bekommt man einfache Lokalisierung inklusive wiederverwendbarer Übersetzungs-DB und einem schicken kostenlosen Tool, das man an Übersetzer geben kann.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 12:06
Wenns auch etwas Geld kosten darf, kann ich uneingeschränkt den Sisulizer empfehlen. DFMs werden ohnehin übersetzt, und im Strings im Quellcode einfach zu resourcestrings machen (Gibt ja ein Refaktoringtool dafür). Und schon bekommt man einfache Lokalisierung inklusive wiederverwendbarer Übersetzungs-DB und einem schicken kostenlosen Tool, das man an Übersetzer geben kann.

Sherlock
Wenn ich mir deren Seite so anschaue, scheint diese Lösung aber die gleichen Probleme und Einschränkungen zu haben, wie das Board-Werkzeug von Delphi?

- Umständlich
- Aufgebläht
- Resourcenstrings
- Localized Builds

Zitat:
Now that your translator has finished translating all of your strings, and you've received your updated file, simply run Sisulizer to build the new version of your program in the new language.
So wie das klingt gibt es dann für jede Sprache eine eigene Anwendung?

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 L.Translate(Self) übersetzt und Texte im Code per LabelX.Caption := L['Hallo Welt'] gekapselt.
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?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 12:27
Weil wir nicht das Rad neu erfinden wollten. Und resourcestrings sind nunmal Standard. Wenn man dann noch hier http://dxgettext.po.dk/Home liest, daß seit 2008 sich gerade mal gar nichts getan hat stiftet das wenig Vertrauen. Ich behaupte nicht, daß das Tool Mist ist. Ich würde es nur nich kommerziell einsetzen wollen. Wie ist es eigentlich um die Wiederverwendbarkeit der Übersetzungen über Projektgrenzen hinaus bestellt? so wie sich mir das darstellt, sind die Übersetzungen dort projektbezogen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:45 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