3.12 Handling Gnulib’s own message translations

Gnulib provides some functions that emit translatable messages using GNU gettext. The ‘gnulib’ domain at the Translation Project collects translations of these messages, which you should incorporate into your own programs.

The recommended way to achieve this is that your package depends on the package ‘gnulib-l10n’. This package contains the Gnulib localizations as .mo files.

In order to use this method, you must – in each program that might use Gnulib code – add an extra line to the part of the program that initializes locale-dependent behavior. Where you would normally write something like:

  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);

you should add an additional bindtextdomain call to inform gettext of where the MO files for the extra message domain may be found:

  bindtextdomain ("gnulib", GNULIB_LOCALEDIR);

Since you do not change the textdomain call, the default message domain for your program remains the same and your own use of gettext functions will not be affected.

If your package has a DEPENDENCIES file, for the ease of installers and distributors, you should add the ‘gnulib-l10n’ dependency in this file.

If your package does not support localization, you can simplify its build process by using gnulib-tool’s --avoid=gnulib-i18n option. The package need not call bindtextdomain or textdomain, and all Gnulib-generated messages will be in American English.

Two older methods to use Gnulib localizations are deprecated: