Hi all,

If you use the translations unit to translate unit resources strings,
then (even after stripping all debug info and using smart linking etc)
this will add about 1 Mb to the executable size.

This seems due to the fact that the
function ConvertEncoding(const s, FromEncoding, ToEncoding: string): string;
from lconvencoding unit is linked in.

It is used to translate the contents of po-files that are not utf-8 into utf-8.

A quick scan in the FreePascal and Lazarus source directories shows
that there are no .po files specifying non-utf8 encoding.

There are some files that do not specify an encoding, but
ConvertEncoding leaves them untouched.

I found these files without encoding (in the first 25 lines of text):
($FpcSource)\packages\fcl-base\examples\intl\restest.fr.po
($FpcSource)\packages\fcl-base\examples\intl\resttest.po
($FpcSource)\packages\fcl-base\examples\intl\restest.pb.po
($FpcSource)\packages\fcl-base\examples\intl\restest.de.po
($FpcSource)\packages\fcl-base\examples\intl\restest.nl.po
($FpcSource)\utils\fpdoc\intl\dwriter.de.po
($FpcSource)\utils\fpdoc\intl\makeskel.de.po
($FpcSource)\utils\fpdoc\intl\dglobals.de.po
($FpcSource)\utils\fpdoc\intl\fpdoc.de.po


(B.t.w. there is no sanity check in ConvertEncoding for empty
FromEncoding or ToEncoding parameter)


If we would specify that all fpc and lazarus .po files _must_ be in
utf-8, we can drop the lconvencoding unit from translations.pas, and
strip 1 Mb from the executable filesize.

(Tested on Windows platform only)


I know there have been lots of discussions about executable filesize
and 1 Mb doesn't seem much. But if you are short on webspace (where
you offer the executables for download) then it does matter.

Your opnions please?

Bart

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to