Previous: Makefile.in in src/, Up: Files You Must Create or Alter [Contents][Index]
Internationalization of packages, as provided by GNU gettext
, is
optional. It can be turned off in two situations:
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.
Previous: Makefile.in in src/, Up: Files You Must Create or Alter [Contents][Index]