gettextize ProgramThe gettextize program is an interactive tool that helps the
maintainer of a package internationalized through GNU gettext.
It is used for two purposes:
gettext for
the first time.
gettext support in
a package from a previous to a newer version of GNU gettext.
This program performs the following tasks:
gettext.
gettext versions to the form recommended for the current GNU
gettext version.
gettextize.
It can be invoked as follows:
gettextize [ option... ] [ directory ]
and accepts the following options:
AM_GNU_GETTEXT in configure.ac should read:
‘AM_GNU_GETTEXT([external])’, and internationalization will not
be enabled on systems lacking GNU gettext.
gettextize
logs all changes (file additions, modifications and removals) in a
file called ‘ChangeLog’ in each affected directory.
gettext is installed on the system.
gettextize would normally execute are inhibited and instead only
listed on standard output.
If directory is given, this is the top level directory of a
package to prepare for using GNU gettext. If not given, it
is assumed that the current directory is the top level directory of
such a package.
The program gettextize provides the following files. However,
no existing file will be replaced unless the option --force
(-f) is specified.
gettextize,
if you have one handy. You may also fetch a more recent copy of file
ABOUT-NLS from Translation Project sites, and from most GNU
archive sites.
gettext distribution
(beware the double ‘.in’ in the file name) and a few auxiliary
files. If the po/ directory already exists, it will be preserved
along with the files it contains, and only Makefile.in.in and
the auxiliary files will be overwritten.
If ‘--po-dir’ has been specified, this holds for every directory specified through ‘--po-dir’, instead of po/.
gettext
distribution. Also, if option --force (-f) is given,
the intl/ directory is emptied first.
AM_GNU_GETTEXT
autoconf macro.
automake:
A set of autoconf macro files is copied into the package's
autoconf macro repository, usually in a directory called m4/.
If your site support symbolic links, gettextize will not
actually copy the files into your package, but establish symbolic
links instead. This avoids duplicating the disk space needed in
all packages. Merely using the ‘-h’ option while creating the
tar archive of your distribution will resolve each link by an
actual copy in the distribution archive. So, to insist, you really
should use ‘-h’ option with tar within your dist
goal of your main Makefile.in.
Furthermore, gettextize will update all Makefile.am files
in each affected directory, as well as the top level configure.ac
or configure.in file.
It is interesting to understand that most new files for supporting
GNU gettext facilities in one package go in intl/,
po/ and m4/ subdirectories. One distinction between
intl/ and the two other directories is that intl/ is
meant to be completely identical in all packages using GNU gettext,
while the other directories will mostly contain package dependent
files.
The gettextize program makes backup files for all files it
replaces or changes, and also write ChangeLog entries about these
changes. This way, the careful maintainer can check after running
gettextize whether its changes are acceptable to him, and
possibly adjust them. An exception to this rule is the intl/
directory, which is added or replaced or removed as a whole.
It is important to understand that gettextize can not do the
entire job of adapting a package for using GNU gettext. The
amount of remaining work depends on whether the package uses GNU
automake or not. But in any case, the maintainer should still
read the section Adjusting Files after invoking gettextize.
In particular, if after using ‘gettexize’, you get an error ‘AC_COMPILE_IFELSE was called before AC_GNU_SOURCE’ or ‘AC_RUN_IFELSE was called before AC_GNU_SOURCE’, you can fix it by modifying configure.ac, as described in configure.ac.
It is also important to understand that gettextize is not part
of the GNU build system, in the sense that it should not be invoked
automatically, and not be invoked by someone who doesn't assume the
responsibilities of a package maintainer. For the latter purpose, a
separate tool is provided, see autopoint Invocation.