Installing the locales fixes a bug (feature ?) that is in the catopen command in Linux libc. Say you create a program that uses message catalogs, and you create an German catalog and put it in /home/peeter/catalogs/de_DE
.
Now upon doing the following, without the de_DE locale installed :
export LC_MESSAGES=de_DE export NLSPATH=/home/peeter/catalogs/%L/%N.cat:$NLSPATH
the German message catalog does not get opened, and the default messages in the catgets calls are used.
This is because catopen does a setlocale call to get the right message category, the setlocale fails even though the environment variable has been set. catopen then attempts to load the message catalog substituting « C » for all the « %L »‘s in the NLSPATH.
You can still use your message catalog without installing the locale, but you would have to explicitly set the « %L » part of the NLSPATH like
export NLSPATH=/home/peeter/catalogs/de_DE/%N.cat:$NLSPATH
, but this defeats the whole purpose of the locale catagory environment variables.