Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Übersetzung mit GNU Gettext (Fehler nach Komprimierung) (https://www.delphipraxis.net/117207-uebersetzung-mit-gnu-gettext-fehler-nach-komprimierung.html)

DelphiManiac 14. Jul 2008 10:29


Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Hallo,

ich habe mein Programm 2-sprachig mit Gettext übersetzt, nun habe ich ja die Möglichkeit, die Sprachdatei mit an die Exe "zu hängen".

Jetzt habe ich die Exe in ein Zip gepackt und wieder entpackt, dann ist es so, dass meine Übersetzung nicht mehr geht... :(

Liegt das an der Komprimierung,

und was kann man dagegen tun?

Viele Grüße
DelphiManiac

Klaus01 14. Jul 2008 20:00

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Guten Abend,

das kann ich mir kaum vorstellen, das durch komprimieren und dekomprimieren
die ExeDatei beschädigt wird. Erstelle doch vor der Komprimierung eine checkSumme
und vergleiche sie mit der checkSumme der wieder ausgepackten Datei.
Sind diese gleich, so kann man davon ausgehen, dass auch die Dateien gleich sind.
Dann dürfte Dein Problem woanders zu suchen sein.

Grüße
Klaus

DelphiManiac 15. Jul 2008 09:19

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Ja da hast du wahrscheinlich recht,

das Problem liegt wohl an der Recompilierung.
Wenn ich die Datei angehängt habe und dann neu compiliere, dann ist meine Übersetzung futsch...
Gibt es eine Möglichkeit das automatisiert mit der Compilierung zu machen?

Meflin 15. Jul 2008 09:23

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Zitat:

Zitat von DelphiManiac
Gibt es eine Möglichkeit das automatisiert mit der Compilierung zu machen?

Welche Delphi-Version benutzt du? Ich glaube ab Delphi 2006 (?) gibt es die Möglichkeit, Pre- und Postbuild-Ereignisse zu definieren. Unter Projekt > Optionen kannst du da eine Batchdatei eintragen, die wird dann zumindest bei Builds (ich glaube nicht bei simpler Kompilierung) ausgeführt :)

Union 15. Jul 2008 09:27

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Oder hänge die Datei als Resource an die Exe. Die wird auch jedesmal automatisch mit eingebunden.

Assertor 15. Jul 2008 09:40

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Zitat:

Zitat von Union
Oder hänge die Datei als Resource an die Exe. Die wird auch jedesmal automatisch mit eingebunden.

Das geht mit gnugettext nicht. Soweit ich weiß, schreibt der dxgettext Patcher die Position der angehängten Übersetzungen selbst in eine Signatur mitten in den Bytecode der EXE. Das ist auch der Grund, warum es nicht möglich ist, die Dateien mit UPX und ähnlich zu packen UND eine Übersetzung anzuhängen.

Ich hatte Lars Dybdahls vor ein paar Jahren mal eine bessere Lösung geschickt (Signatur vom Patcher mit relativem Offset an die EXE angehängt) - trotzdem hat er sie in 1.2.2 noch nicht eingearbeitet. Da werd ich mal nachfragen, sobald ich Zeit hab...

Gruß Assertor

DelphiManiac 17. Jul 2008 13:44

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Heißt das also,

dass sobald ich die Exe als Zip packe und an meine Kunden verschicke, so ist die angehängte Übersetzungsdatei futsch und die Übersetzung funzt nicht mehr???

Assertor 17. Jul 2008 13:53

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Zitat:

Zitat von DelphiManiac
Heißt das also,
dass sobald ich die Exe als Zip packe und an meine Kunden verschicke, so ist die angehängte Übersetzungsdatei futsch und die Übersetzung funzt nicht mehr???

Äh, nein. Absolut nicht.

Wenn Du die EXE neu erstellt, ist natürlich alles angehängte weg. Das ist Dein Problem mit der "Rekompilierung". Aber ein ZIP - genau wie jede andere verlustlose Kompression - darf und wird NIE NIE NIE die enthaltenen Daten ändern.

Gruß Assertor

DelphiManiac 17. Jul 2008 14:58

Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
Ja da hast du vollkommen recht.

Nunja wer lesen kann ist klar im Vorteil:

Aus der Anleitung:
(hätte ich mir wohl mal vorher die 100 Seiten zur Brust nehmen müssen :-D )

Zitat:

6. Give your translations to us, so that other people may use your translation.
In order to have one .exe file that contains everything, including the translations,
you can now click with the right mouse button on the executable, and choose
"Embed translations". This will append the default.mo file, that is in the
locale\LL\LC_MESSAGES subdirectory into the .exe file. Please note that you have
to do this every time that you have compiled and generated a new .exe file.

McSquirrel 24. Okt 2010 22:28

AW: Re: Übersetzung mit GNU Gettext (Fehler nach Komprimierung)
 
[QUOTE=Assertor;803323]
Zitat:

Zitat von Union

Ich hatte Lars Dybdahls vor ein paar Jahren mal eine bessere Lösung geschickt (Signatur vom Patcher mit relativem Offset an die EXE angehängt) - trotzdem hat er sie in 1.2.2 noch nicht eingearbeitet. Da werd ich mal nachfragen, sobald ich Zeit hab...

Gruß Assertor

Huhu,

hatte gerade sehr netten Kontakt zu Assertor, und er teilte mir mit, dass seine Lösung inzwischen in das Projekt eingeflossen ist. Allerdings gibt es derzeit noch keinen neuen Download, d.h. man muss sich die Delphi-Quelldateien zu assemble.exe und ggassemble.exe aus dem SVN herunterladen und selbst kompilieren. Im SVN gibt es auch die aktuelle gnugettext.pas:

http://developer.berlios.de/svn/?group_id=3252


Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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 by Thomas Breitkreuz