Delphi-PRAXiS
Seite 1 von 2  1 2      

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 9. Okt 2012 17:35

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.

Uwe Raabe 9. Okt 2012 18:34

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
In den Localizer Project Settings unter Other Options

andydp 10. Okt 2012 08:30

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...

Uwe Raabe 10. Okt 2012 08:42

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Soweit ich weiß ändert sich gar nichts. Hast du es probiert? Welche Probleme tauchen auf?

andydp 10. Okt 2012 08:53

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"

Uwe Raabe 10. Okt 2012 09:24

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Der Localizer bindet nicht die DLLs ein, sondern die LNG-Dateien.

Uwe Raabe 10. Okt 2012 09:27

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Zitat:

Zitat von andydp (Beitrag 1186453)
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"

Der Pfad beim Init muss zu den LNG-Dateien zeigen; den Pfad zu den DLLs stellt man über DLLDir ein. Du kannst beim Aufruf den Pfad zu den LNGs ruhig drin lassen, dann werden auch zusätzliche Sprachdateien gefunden, die nicht mit eingebunden sind.

andydp 10. Okt 2012 10:25

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Zitat:

Der Localizer bindet nicht die DLLs ein, sondern die LNG-Dateien.
Da hast Du natürlich vollkommen recht :oops: Es sind natürlich die *.lng Dateien, die ich jeweils im Setup mitliefere und die mit LocalizerOnFly.Init(); eingebunden werden. Das funktioniert ja auch alles ohne Probleme.

(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.

Uwe Raabe 10. Okt 2012 10:42

AW: Sprachdateien von Localizer (Korzh) in Exe einbinden
 
Zitat:

Zitat von andydp (Beitrag 1186468)
(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?)

Localizer erzeugt bei Bedarf die Resourcen-Dateien (DLLs) in besagtem DLLDir. Ist das nicht angegeben, wird das Verzeichnis der EXE genommen. Allerdings ist das häufig schreibgeschützt, was zu den von dir geschilderten Problemen führt. Ich setze daher das DLLDir vor dem Init auf einen eigenen Pfad im AppData-Folder.

Zitat:

Zitat von andydp (Beitrag 1186468)
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.

Wie gesagt, du brauchst dazu eigentlich gar nichts machen. Ich habe das hier bei einer Anwendung probiert: Sind die Sprachen eingebunden und die LNG-Dateien sind nicht vorhanden, läuft es genauso als wenn die Sprachen nur als LNG-Dateien vorliegen.

andydp 10. Okt 2012 15:42

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 Uhr.
Seite 1 von 2  1 2      

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