Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Sprachdateien von Localizer (Korzh) in Exe einbinden (https://www.delphipraxis.net/170905-sprachdateien-von-localizer-korzh-exe-einbinden.html)

andydp 10. Okt 2012 15:57

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Habs noch rasch ausprobiert.
Bei einem kleinen Demoprojekt (Loc.exe) läuft es tatsächlich ohne die lng. Files im Verzeichnis des exe- Files.
Habe aber nun das Problem, dass immer beim Schliessen des Programms eine "Loc.ENG" Datei generiert wird.
Kannst Du mir sagen, wie ich das verhindern kann?

Uwe Raabe 10. Okt 2012 17:51

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Wurde die denn bisher nicht generiert? Das sind die eigentlichen Resource-DLLs, die beim Programmstart gleich die übersetzten Daten laden. Wenn sie nicht existieren oder veraltet sind, werden sie automatisch neu erzeugt. Du brauchst die zwar nicht mitliefern, aber vorhanden sein müssen sie dennoch. Deswegen muss man ja auch über DLLDir ein beschreibbares Verzeichnis angeben, sonst können die nicht erstellt werden.

andydp 11. Okt 2012 12:51

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Na ja, ich habe eigentlich gehofft, dass es ohne diese zusätzlichen Dateien geht. Weil laufen würde es ja ohne diese mitgelieferten dll's. Die Sprachdateien sind ja schon in der Exe Eingebunden. Ich sehe also nicht ein, wesshalb sie beim Schliessen des Programms noch generiert werden müssen.

Uwe Raabe 14. Okt 2012 14:21

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Sorry für die lange Pause - ich war ein paar Tage im Urlaub.

Es gib zwei Ansätze in diesem Fall. Zum einen kannst du das Property
Delphi-Quellcode:
DeleteUnusedLDll := true
setzen, dann werden die Resource-DLLs immer wieder gelöscht. Alternativ kannst du auch
Delphi-Quellcode:
SoftMode := true
setzen, dann werden die DLLs gar nicht erst erzeugt. Allerdings musst du dann einen Haufen Kram selbst erledigen - die Hilfe gibt dazu ein paar Hinweise. Die ansonsten sehre einfache Verwendung des Localizers wird damit hinfällig.

Delphi holt sich bei jedem Laden eines Forms die Properties aus der aktuellen Resourcen-DLL. Legt man solche DLLs bei, braucht man überhaupt nichts im Programm einbinden und es läuft trotzdem. Viele Übersetzungstools gehen diesen Weg. Andere hängen sich in den Lademechanismus oder ins OnFormCreate und übersetzen die Properties dynamisch, müssen dafür aber beim Compilieren eingebunden werden.

Die LocOnFly-Lösung des Localizers verbindet beide Methoden: Es werden Resource-DLLs erzeugt, damit beim Laden gleich die richtigen Übersetzungen verwendet werden, und es gibt eine dynamische Umschaltung zur Laufzeit, die alle existierenden Forms verarbeitet. Da sich der Localizer aber nicht in das Form-Loading einklinkt, sind auch für das dynamische Umschalten die entsprechenden Resource-DLLs nötig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.
Seite 2 von 2     12   

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