[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Internationalization of packages, as provided by GNU gettext
, is
optional. It can be turned off in two situations:
intl/
subdirectory, and the
libintl.h header (with its associated libintl library, if any) is not
already installed on the system, it is preferrable that the package builds
without internationalization support, rather than to give a compilation
error.
A C preprocessor macro can be used to detect these two cases. Usually,
when libintl.h
was found and not explicitly disabled, the
ENABLE_NLS
macro will be defined to 1 in the autoconf generated
configuration file (usually called `config.h'). In the two negative
situations, however, this macro will not be defined, thus it will evaluate
to 0 in C preprocessor expressions.
`gettext.h' is a convenience header file for conditional use of
`<libintl.h>', depending on the ENABLE_NLS
macro. If
ENABLE_NLS
is set, it includes `<libintl.h>'; otherwise it
defines no-op substitutes for the libintl.h functions. We recommend
the use of "gettext.h"
over direct use of `<libintl.h>',
so that portability to older systems is guaranteed and installers can
turn off internationalization if they want to. In the C code, you will
then write
#include "gettext.h" |
instead of
#include <libintl.h> |
The location of gettext.h
is usually in a directory containing
auxiliary include files. In many GNU packages, there is a directory
`lib/' containing helper functions; `gettext.h' fits there.
In other packages, it can go into the `src' directory.
Do not install the gettext.h
file in public locations. Every
package that needs it should contain a copy of it on its own.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |