Mail Archives: djgpp-workers/2001/08/10/04:57:26.1
On Thu, 9 Aug 2001, Tim Van Holder wrote:
> On Thu, 9 Aug 2001, JT Williams wrote:
> > I probably lost my copy of `charset.alias' a frenzy of installation,
> > hacking, and reinstallation. Perhaps (a version of) `charset.alias'
> > should be included with any NLS-capable package?
>
> Hmm - it would seem better suited for inclusion in djdev.
> The same would go for locale.alias (so you can set LANGUAGE=german
> or LANGUAGE=deutsch).
Some aclarations:
_ charset.alias is a generated file. It is generated from lib/config.charset. That is a
shell script that is run during compilation and generates an appropiate charset.alias
for the OS for which the package has been configured.
_ This charset.alias is generated by *every* GNU package that offers NLS. On DOS/WIN95
the install target installs this file into DJDIR/lib overwritting a probabely already
installed charset.alias from another package. This is not dramatic because all charset.alias
are equal. Please inspect libiconv-1.7, recode-3.6, Textutils-2.0.14, Fileutils-4.1, etc.
All this packages have a config.charset in their /lib subdir and all they generate a
new charset.alias that will be installed in DJDIR/lib.
_ Very unfortunately I have written gtxt037, gtxt039, licv16 and licv17 manifest files
that remove charset.alias. This implies, if the user removes one of these packages
he removes also charset.alias breaking all the other packages. I will fix this ASAP.
_ As Tim pointed out LANGUAGE can be set to a series of language names (LANGUAGE=thai:turkish).
The contents of LANGUAGE are evaluated with the aid of locale.alias and the result is used to
build the path to the .mo file. GNU gettext knowns two different syntaces: XPG and CEN.
The LOCALE can consist of up to four recognized parts for the XPG syntax:
language[_territory[.codeset]][@modifier]
and six parts for the CEN syntax:
language[_territory][+audience][+special][,[sponsor][_revision]]
Beside the first part all of them are allowed to be missing. If
the full specified locale is not found, the less specific one are
looked for. The various parts will be stripped off according to
the following order:
(1) revision
(2) sponsor
(3) special
(4) codeset
(5) normalized codeset
(6) territory
(7) audience/modifier
locale.alias uses the XPG syntax. A path will looks like (for german):
/dev/env/DJDIR/share/locale/de_DE.ISO-8859-1.iso88591/LC_MESSAGE/gettext.mo
with:
dirname: /dev/env/DJDIR/share/locale (GNU uses this)
language: de
territory: DE
codeset: ISO-8859-1
normalized codeset: iso88591
lc_message: LC_MESSAGE (GNU uses this)
domain: gettext (this is usualy the program name)
Because a subdir like de_DE.ISO-8859-1.iso88591 will not be found,
the stripping rules given above will be applied finaly resulting in a `de' subdir.
It is worth to be noticed that the charset name included in a subdir name
like `de_DE.ISO-8859-1.iso88591' has no influence about the locale charset
to be used for on-the-fly recoding. Which locale charset will be used to recode
is only defined by the content of LANG in the DJGPP specific case.
In conclusion:
1) charset.alias is generated and installed by every GNU package that
offers NLS *and* runtime recoding. This are packages that come with
gettext => 0.10.36. This implies that every installation overwrites
the already installed charset.alias.
2) If charset.alias is included in the manifest file of an DJGPP package,
removing the package will break all other packages.
3) Including charset.alias and locale.alias in djdevNNN.zip will not really solve the difficulty, IMHO.
It is very unlikely that charset.alias will change very soon but netherless djdevNNN.zip
is released only every 3 or 4 years. This period of time seems to long to wait for
a probabely needed update of charset.alias IMHO.
4) The simplest solution seems to be to omit charset.alias and locale.alias from the manifest file
but if an inclusion of charset.alias and locale.alias into djdevNNN.zip is prefered
that will be ok with me. No objections.
Regards,
Guerrero, Juan Manuel
- Raw text -