![]() |
Sprachdateien von Localizer (Korzh) in Exe einbinden
Hallo Leute
Ich benötige wieder einmal Eure geschätzte Hilfe. Ich verwende zur Sprachumstelltung das Localizer Tool von Korzh. Ich bin damit auch sehr zufrieden. Habe aber das Problem, dass ich in Zukunft dem Setup keine *.lng Files mehr beilegen möchte. In den Localizer Projekteinstellungen (Pro- Version) kann man die Sprachdateien direkt in das exe- File einbinden. Hab nun aber das Problem, wie ich dies im Source- Code bewerkstelligen muss. Es sind leider keine Demos für diesen Fall dabei. Wäre Euch sehr dankbar, wenn mir jemand ein wenig auf die Sprünge helfen könnte. |
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
In den Localizer Project Settings unter Other Options
|
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Hi Uwe
Danke für die Info, aber das wusste ich schon. Ich habe das Problem, dass ich nicht weiss wie ich im Source- Code darauf reagieren muss, wenn die "exe-internen" Spachdateien und nicht die externen dll's verwendet werden. Welche API- Funktionen muss ich nehmen? Wäre toll, wenn jemand ein Beispiel hätte... |
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Soweit ich weiß ändert sich gar nichts. Hast du es probiert? Welche Probleme tauchen auf?
|
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Ich habe die dll- Sprachdateien aus dem Verzeichnis gelöscht und sie in den Projekteinstellungen zum exe gelinkt.
Beim Aufstarten kann er die Spachdateien nicht mehr finden. Ich habe in der Projektdatei anstelle von: LocalizerOnFly.Init(ApplicationDir+'\'); neu LocalizerOnFly.Init(); eingefügt. In der Form Create Routine steht: LocalizerOnFly.SwitchToExt('ENG'); Beim Aufstarten kommt die Fehlermeldung: "Invalid File Format" und anschliessend " Localicer is not intialized" |
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Der Localizer bindet nicht die DLLs ein, sondern die LNG-Dateien.
|
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Zitat:
|
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Zitat:
(Komischerweise verlangt Win 7 übrigens Administratorenrechte bei der Installation, sonst kommt es zu einer Fehlermeldung beim Aufstarten. Das Exe- File scheint auch schreibend auf die *.lng Dateien zuzugreifen, oder kannst Du mir diesen Sachverhalt erklären?) Jetzt habe ich aber das Problem, dass ich diese *.lng Dateien nicht mehr mitliefern möchte, sonder dierekt im Exe- File integrieren möchte. Im den Projekteinstellungen habe ich wie gesagt bei "Link Languages to exe File" gemacht, nun weiss ich einfach nicht, wie ich das im Source- Code bewerkstellingen kann, damit die Texte im Exe beim Aufstarten auch gefunden werden. |
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Zitat:
Zitat:
|
AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
Hmmm...
Dann werde ich das wohl noch einmal probieren müssen. Gebe Dir dann Bescheid. Herzlichen Dank Uwe. Wünsche Dir einen schönen Abend. Gruss Andy |
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? |
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.
|
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.
|
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:
setzen, dann werden die Resource-DLLs immer wieder gelöscht. Alternativ kannst du auch
DeleteUnusedLDll := true
Delphi-Quellcode:
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.
SoftMode := true
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:50 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