AGB  ·  Datenschutz  ·  Impressum  







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

Mehrsprachige Anwendung: Ich kriegs nicht hin

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

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

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 28. Sep 2015, 11: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
4.240 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 28. Sep 2015, 16: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
 
#3

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 29. Sep 2015, 12: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.821 Beiträge
 
Delphi 12 Athens
 
#4

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 29. Sep 2015, 14: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
 
#5

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 11: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.821 Beiträge
 
Delphi 12 Athens
 
#6

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 11: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
nuclearping

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

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 14:12
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.
So eine Lösung ist meiner Erfahrung nach auch nicht besonders wartungsintensiv. In unserer Localizer-Klasse haben wir auch schon seit Jahren nichts mehr ändern müssen.

Wie ist es eigentlich um die Wiederverwendbarkeit der Übersetzungen über Projektgrenzen hinaus bestellt? so wie sich mir das darstellt, sind die Übersetzungen dort projektbezogen.
Das ist im Prinzip egal. Die Kapselung in _('...') bzw. (bei uns) L['...'] ist ein Dictionary und er sucht sich die dazu passende Übersetzunge aus der eingestellten Sprachdatei raus.

Geändert von nuclearping (30. Sep 2015 um 14:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#8

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 12:50
So wie das klingt gibt es dann für jede Sprache eine eigene Anwendung?
Ich weiß jetzt nicht genau, wie es Sisulizer macht, aber die anderen mir bekannten Übersetzungstools, die auf DFM (=Resource) und resourcestrings arbeiten, legen die Übersetzungen als separate Resource-DLLs neben die unübersetzte Exe. Wenn du mal in deinem Delphi-Bin-Ordner nachsiehst, wirst du dort unter anderem eine bds.exe und eine bds.de entdecken. Die DE-Datei enthält lediglich die übersetzten Teile.

Der Vorteil bei dieser Herangehensweise ist, daß die entsprechende Funktionalität bereits in der RTL implementiert ist. Damit muss kein zusätzlicher Code eincompiliert werden, der deine Anwendung in eine andere Sprache übersetzt. Du musst lediglich eine passende Resource-DLL dazulegen und die Sache ist geritzt. Tools zum Erstellen dieser DLLs gibt es mehrere. Es würde mich wundern, wenn nicht auch Sisulizer dafür zumindest eine Option hat.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
rwalper

Registriert seit: 6. Sep 2006
48 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Mehrsprachige Anwendung: Ich kriegs nicht hin

  Alt 30. Sep 2015, 14:10
Hi,

kurz mal meine Erfahrung mit den Resourcen-DLL's in VCL-Projekten:
Ändert man am Projekt etwas, muss man zwingend die Resourcen-DLL neu compilieren, wenn nicht, gibt es kuriose Schutzverletzungen. Das ist insbesondere beim Debuggen umständlich, wenn man z.B. einen Fehler sucht, der nur mit der Tschechischen Übersetzung auftritt.

Nach etlichen Jahren des Herumquälens mit Resourcen-DLL's (erst per ITE und später dann mit dem Localizer) sind wir bei GnuGetText (dxgettext) angekommen.
Endlich braucht man nicht immer alles neu zu compilieren. Und bei der fertigen Exe kann der Übersetzer jederzeit das Resultat seiner Änderungen sehen, ohne dass ich ihm eine neue Exe comipiliere.

Und resourcestrings sind nunmal Standard.
Bleiben sie auch. Sie werden zur Laufzeit gegen die Übersetzung ausgetauscht.

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.
Schau mal: https://svn.code.sf.net/p/dxgettext/code/trunk

Einiges gibt es noch zu bemerken. Beim Betrachten der Quelltexte des Parsers für Resourcestrings war ich leicht schockiert. Aua, Bastelman und Söhne. Aber das Extrahieren und auch die Übersetzung im Programm funktioniert! Und es sind einige Tools zum Manipulieren der PO-Dateien dabei, wie z.B. Mergen von 2 PO-Dateien oder Übersetzen einer PO-Datei auf Basis einer anderen. So ist es auch relativ leicht, Übersetzungsrepositories zu erstellen und umgekehrt neue Projekte damit zu übersetzen. Daneben gibt es einige verschiedene PO-Editoren, die man ja nach Geschmack einsetzen kann.

Ohne die Forderung, dass der Vertriebspartner in anderen Ländern die Übersetzung mit einfachen Mitteln selbst anpassen können muss, wären wir vermutlich bei Resourcen-DLL's geblieben. Nach der Einarbeitung in gnugettext, der Überwindung einiger kleinerer Hürden und der Anpassung des Übesetzungs-Workflows bin ich jetzt schneller und flexibler (und auch zufriedener) als vorher.

Viele Grüße
  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 18:57 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