--- /dev/null
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ACLOCAL_VERSION = @ACLOCAL_VERSION@
+AS = @AS@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+DATADIRNAME = @DATADIRNAME@
+DLLTOOL = @DLLTOOL@
+DVIPS = @DVIPS@
+EMACS = @EMACS@
+EXEEXT = @EXEEXT@
+GENCAT = @GENCAT@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LIBICONV = @LIBICONV@
+LIBOBJS = @LIBOBJS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+POFILES = @POFILES@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+TEXI2HTML = @TEXI2HTML@
+TEXI2PDF = @TEXI2PDF@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+YACC = @YACC@
+aclocaldir = @aclocaldir@
+lispdir = @lispdir@
+
+VERSION = @VERSION@
+mandir = @mandir@
+docdir = $(prefix)/doc/@PACKAGE@
+htmldir = $(docdir)
+
+AUTOMAKE_OPTIONS = 1.2 gnits
+
+man_MAN3 = gettext.3 ngettext.3 textdomain.3 bindtextdomain.3 bind_textdomain_codeset.3
+
+man_MAN3IN = gettext.3.in ngettext.3.in textdomain.3.in bindtextdomain.3.in bind_textdomain_codeset.3.in
+
+man_MANS = $(man_MAN3) dgettext.3 dcgettext.3 dngettext.3 dcngettext.3
+
+
+man_HTML = gettext.3.html ngettext.3.html textdomain.3.html bindtextdomain.3.html bind_textdomain_codeset.3.html
+
+
+EXTRA_DIST = $(man_MANS) $(man_MAN3IN) $(man_HTML)
+MAINTAINERCLEANFILES = $(man_MAN1) $(man_MAN3) $(man_HTML)
+
+RM = rm -f
+
+# groff 1.17 or newer.
+MAN2HTML = groff -mandoc -Thtml
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+man3dir = $(mandir)/man3
+MANS = $(man_MANS)
+
+NROFF = nroff
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps man/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+install-man3:
+ $(mkinstalldirs) $(DESTDIR)$(man3dir)
+ @list='$(man3_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.3*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst; \
+ done
+
+uninstall-man3:
+ @list='$(man3_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.3*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man3dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man3dir)/$$inst; \
+ done
+install-man: $(MANS)
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-man3
+uninstall-man:
+ @$(NORMAL_UNINSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-man3
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = man
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-man install-data-local
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-man uninstall-local
+uninstall: uninstall-am
+all-am: Makefile $(MANS) all-local
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man3
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: install-man3 uninstall-man3 install-man uninstall-man tags \
+distdir info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-local \
+install-data-am install-data install-am install uninstall-local \
+uninstall-am uninstall all-local all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# We distribute both the man pages and their HTML equivalent.
+# The user can generate the parts, via
+# make man
+# make html
+
+all-local: html
+install-data-local: install-html
+installdirs-local: installdirs-html
+uninstall-local: uninstall-html
+
+# Man pages.
+
+gettext.3: gettext.3.in $(top_srcdir)/configure.in
+ sed -e 's/@''VERSION''@/@VERSION@/g' < $(srcdir)/gettext.3.in > t-$@
+ mv t-$@ $@
+ngettext.3: ngettext.3.in $(top_srcdir)/configure.in
+ sed -e 's/@''VERSION''@/@VERSION@/g' < $(srcdir)/ngettext.3.in > t-$@
+ mv t-$@ $@
+textdomain.3: textdomain.3.in $(top_srcdir)/configure.in
+ sed -e 's/@''VERSION''@/@VERSION@/g' < $(srcdir)/textdomain.3.in > t-$@
+ mv t-$@ $@
+bindtextdomain.3: bindtextdomain.3.in $(top_srcdir)/configure.in
+ sed -e 's/@''VERSION''@/@VERSION@/g' < $(srcdir)/bindtextdomain.3.in > t-$@
+ mv t-$@ $@
+bind_textdomain_codeset.3: bind_textdomain_codeset.3.in $(top_srcdir)/configure.in
+ sed -e 's/@''VERSION''@/@VERSION@/g' < $(srcdir)/bind_textdomain_codeset.3.in > t-$@
+ mv t-$@ $@
+
+# Man pages in HTML format.
+
+html: $(man_HTML)
+
+gettext.3.html: gettext.3.in
+ $(MAN2HTML) $(srcdir)/gettext.3.in > t-$@
+ mv t-$@ $@
+ngettext.3.html: ngettext.3.in
+ $(MAN2HTML) $(srcdir)/ngettext.3.in > t-$@
+ mv t-$@ $@
+textdomain.3.html: textdomain.3.in
+ $(MAN2HTML) $(srcdir)/textdomain.3.in > t-$@
+ mv t-$@ $@
+bindtextdomain.3.html: bindtextdomain.3.in
+ $(MAN2HTML) $(srcdir)/bindtextdomain.3.in > t-$@
+ mv t-$@ $@
+bind_textdomain_codeset.3.html: bind_textdomain_codeset.3.in
+ $(MAN2HTML) $(srcdir)/bind_textdomain_codeset.3.in > t-$@
+ mv t-$@ $@
+
+install-html:
+ $(mkinstalldirs) $(DESTDIR)$(htmldir)
+ for file in $(man_HTML); do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ $(INSTALL_DATA) $$dir/$$file $(DESTDIR)$(htmldir)/$$file; \
+ done
+
+installdirs-html:
+ $(mkinstalldirs) $(DESTDIR)$(htmldir)
+
+uninstall-html:
+ for file in $(man_HTML); do \
+ $(RM) $(DESTDIR)$(htmldir)/$$file; \
+ done
+
+# One more automake bug.
+installdirs: installdirs-local
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" References consulted:
+.\" GNU glibc-2 source code and manual
+.\" GNU gettext source code and manual
+.\" LI18NUX 2000 Globalization Specification
+.\"
+.TH BIND_TEXTDOMAIN_CODESET 3 "May 2001" "GNU gettext 0.10.38"
+.SH NAME
+bind_textdomain_codeset \- set encoding of message translations
+.SH SYNOPSIS
+.nf
+.B #include <libintl.h>
+.sp
+.BI "char * bind_textdomain_codeset (const char * " domainname ,
+.BI " const char * " codeset );
+.fi
+.SH DESCRIPTION
+The \fBbind_textdomain_codeset\fP function sets the output codeset for message
+catalogs for domain \fIdomainname\fP.
+.PP
+A message domain is a set of translatable \fImsgid\fP messages. Usually,
+every software package has its own message domain.
+.PP
+By default, the \fBgettext\fP family of functions returns translated messages
+in the locale's character encoding, which can be retrieved as
+\fBnl_langinfo(CODESET)\fP. The need for calling \fBbind_textdomain_codeset\fP
+arises for programs which store strings in a locale independent way (e.g.
+UTF-8) and want to avoid an extra character set conversion on the returned
+translated messages.
+.PP
+\fIdomainname\fP must be a non-empty string.
+.PP
+If \fIcodeset\fP is not NULL, it must be a valid encoding name which can be
+used for the \fBiconv_open\fP function. The \fBbind_textdomain_codeset\fP
+function sets the output codeset for message catalogs belonging to domain
+\fIdomainname\fP to \fIcodeset\fP. The function makes copies of the argument
+strings as needed.
+.PP
+If \fIcodeset\fP is NULL, the function returns the previously set codeset for
+domain \fIdomainname\fP. The default is NULL, denoting the locale's character
+encoding.
+.SH "RETURN VALUE"
+If successful, the \fBbind_textdomain_codeset\fP function returns the current
+codeset for domain \fIdomainname\fP, after possibly changing it. The resulting
+string is valid until the next \fBbind_textdomain_codeset\fP call for the same
+\fIdomainname\fP and must not be modified or freed. If a memory allocation
+failure occurs, it sets \fBerrno\fP to \fBENOMEM\fP and returns NULL. If no
+codeset has been set for domain \fIdomainname\fP, it returns NULL.
+.SH ERRORS
+The following error can occur, among others:
+.TP
+.B ENOMEM
+Not enough memory available.
+.SH BUGS
+The return type ought to be \fBconst char *\fP, but is \fBchar *\fP to avoid
+warnings in C code predating ANSI C.
+.SH "SEE ALSO"
+.BR gettext (3),
+.BR dgettext (3),
+.BR dcgettext (3),
+.BR ngettext (3),
+.BR dngettext (3),
+.BR dcngettext (3),
+.BR textdomain (3),
+.BR nl_langinfo (3),
+.BR iconv_open (3)
--- /dev/null
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta name="Content-Style" content="text/css">
+<title>BIND_TEXTDOMAIN_CODESET</title>
+</head>
+<body>
+
+<h1 align=center>BIND_TEXTDOMAIN_CODESET</h1>
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#RETURN VALUE">RETURN VALUE</a><br>
+<a href="#ERRORS">ERRORS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+
+<hr>
+<!-- Creator : groff version 1.17 -->
+<!-- CreationDate: Sun May 20 13:45:15 2001 -->
+<a name="NAME"></a>
+<h2>NAME</h2>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+bind_textdomain_codeset - set encoding of message translations</td></table>
+<a name="SYNOPSIS"></a>
+<h2>SYNOPSIS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<pre><b>#include <libintl.h>
+
+char * bind_textdomain_codeset (const char *</b> <i>domainname</i><b>,
+ const char *</b> <i>codeset</i><b>);
+</b></pre></td></table>
+<a name="DESCRIPTION"></a>
+<h2>DESCRIPTION</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <b>bind_textdomain_codeset</b> function sets the output
+codeset for message catalogs for domain
+<i>domainname</i>.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+A message domain is a set of translatable <i>msgid</i>
+messages. Usually, every software package has its own
+message domain.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+By default, the <b>gettext</b> family of functions returns
+translated messages in the locale's character encoding,
+which can be retrieved as <b>nl_langinfo(CODESET)</b>. The
+need for calling <b>bind_textdomain_codeset</b> arises for
+programs which store strings in a locale independent way
+(e.g. UTF-8) and want to avoid an extra character set
+conversion on the returned translated messages.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<i>domainname</i> must be a non-empty string.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If <i>codeset</i> is not NULL, it must be a valid encoding
+name which can be used for the <b>iconv_open</b> function.
+The <b>bind_textdomain_codeset</b> function sets the output
+codeset for message catalogs belonging to domain
+<i>domainname</i> to <i>codeset</i>. The function makes
+copies of the argument strings as needed.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If <i>codeset</i> is NULL, the function returns the
+previously set codeset for domain <i>domainname</i>. The
+default is NULL, denoting the locale's character
+encoding.</td></table>
+<a name="RETURN VALUE"></a>
+<h2>RETURN VALUE</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If successful, the <b>bind_textdomain_codeset</b> function
+returns the current codeset for domain <i>domainname</i>,
+after possibly changing it. The resulting string is valid
+until the next <b>bind_textdomain_codeset</b> call for the
+same <i>domainname</i> and must not be modified or freed. If
+a memory allocation failure occurs, it sets <b>errno</b> to
+<b>ENOMEM</b> and returns NULL. If no codeset has been set
+for domain <i>domainname</i>, it returns NULL.</td></table>
+<a name="ERRORS"></a>
+<h2>ERRORS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The following error can occur, among others:</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>ENOMEM</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+Not enough memory available.</td></table>
+<a name="BUGS"></a>
+<h2>BUGS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The return type ought to be <b>const char *</b>, but is
+<b>char *</b> to avoid warnings in C code predating ANSI
+C.</td></table>
+<a name="SEE ALSO"></a>
+<h2>SEE ALSO</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>gettext</b>(3), <b>dgettext</b>(3), <b>dcgettext</b>(3),
+<b>ngettext</b>(3), <b>dngettext</b>(3),
+<b>dcngettext</b>(3), <b>textdomain</b>(3),
+<b>nl_langinfo</b>(3), <b>iconv_open</b>(3)</td></table>
+<hr>
+</body>
+</html>
--- /dev/null
+.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" References consulted:
+.\" GNU glibc-2 source code and manual
+.\" GNU gettext source code and manual
+.\" LI18NUX 2000 Globalization Specification
+.\"
+.TH BINDTEXTDOMAIN 3 "May 2001" "GNU gettext 0.10.38"
+.SH NAME
+bindtextdomain \- set directory containing message catalogs
+.SH SYNOPSIS
+.nf
+.B #include <libintl.h>
+.sp
+.BI "char * bindtextdomain (const char * " domainname ", const char * " dirname );
+.fi
+.SH DESCRIPTION
+The \fBbindtextdomain\fP function sets the base directory of the hierarchy
+containing message catalogs for a given message domain.
+.PP
+A message domain is a set of translatable \fImsgid\fP messages. Usually,
+every software package has its own message domain. The need for calling
+\fBbindtextdomain\fP arises because packages are not always installed with
+the same prefix as the <libintl.h> header and the libc/libintl libraries.
+.PP
+Message catalogs will be expected at the pathnames
+\fIdirname\fP/\fIlocale\fP/\fIcategory\fP/\fIdomainname\fP.mo,
+where \fIlocale\fP is a locale name and \fIcategory\fP is a locale facet such
+as \fBLC_MESSAGES\fP.
+.PP
+\fIdomainname\fP must be a non-empty string.
+.PP
+If \fIdirname\fP is not NULL, the base directory for message catalogs belonging
+to domain \fIdomainname\fP is set to \fIdirname\fP. The function makes copies
+of the argument strings as needed. If the program wishes to call the
+\fBchdir\fP function, it is important that \fIdirname\fP be an absolute
+pathname; otherwise it cannot be guaranteed that the message catalogs will
+be found.
+.PP
+If \fIdirname\fP is NULL, the function returns the previously set base
+directory for domain \fIdomainname\fP.
+.SH "RETURN VALUE"
+If successful, the \fBbindtextdomain\fP function returns the current base
+directory for domain \fIdomainname\fP, after possibly changing it. The
+resulting string is valid until the next \fBbindtextdomain\fP call for the
+same \fIdomainname\fP and must not be modified or freed. If a memory allocation
+failure occurs, it sets \fBerrno\fP to \fBENOMEM\fP and returns NULL.
+.SH ERRORS
+The following error can occur, among others:
+.TP
+.B ENOMEM
+Not enough memory available.
+.SH BUGS
+The return type ought to be \fBconst char *\fP, but is \fBchar *\fP to avoid
+warnings in C code predating ANSI C.
+.SH "SEE ALSO"
+.BR gettext (3),
+.BR dgettext (3),
+.BR dcgettext (3),
+.BR ngettext (3),
+.BR dngettext (3),
+.BR dcngettext (3),
+.BR textdomain (3),
+.BR realpath (3)
--- /dev/null
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta name="Content-Style" content="text/css">
+<title>BINDTEXTDOMAIN</title>
+</head>
+<body>
+
+<h1 align=center>BINDTEXTDOMAIN</h1>
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#RETURN VALUE">RETURN VALUE</a><br>
+<a href="#ERRORS">ERRORS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+
+<hr>
+<!-- Creator : groff version 1.17 -->
+<!-- CreationDate: Sun May 20 13:45:14 2001 -->
+<a name="NAME"></a>
+<h2>NAME</h2>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+bindtextdomain - set directory containing message catalogs</td></table>
+<a name="SYNOPSIS"></a>
+<h2>SYNOPSIS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<pre><b>#include <libintl.h>
+
+char * bindtextdomain (const char *</b> <i>domainname</i><b>, const char *</b> <i>dirname</i><b>);
+</b></pre></td></table>
+<a name="DESCRIPTION"></a>
+<h2>DESCRIPTION</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <b>bindtextdomain</b> function sets the base directory
+of the hierarchy containing message catalogs for a given
+message domain.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+A message domain is a set of translatable <i>msgid</i>
+messages. Usually, every software package has its own
+message domain. The need for calling <b>bindtextdomain</b>
+arises because packages are not always installed with the
+same prefix as the <libintl.h> header and the
+libc/libintl libraries.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+Message catalogs will be expected at the pathnames
+<i>dirname</i>/<i>locale</i>/<i>category</i>/<i>domainname</i>.mo,
+where <i>locale</i> is a locale name and <i>category</i> is
+a locale facet such as <b>LC_MESSAGES</b>.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<i>domainname</i> must be a non-empty string.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If <i>dirname</i> is not NULL, the base directory for
+message catalogs belonging to domain <i>domainname</i> is
+set to <i>dirname</i>. The function makes copies of the
+argument strings as needed. If the program wishes to call
+the <b>chdir</b> function, it is important that
+<i>dirname</i> be an absolute pathname; otherwise it cannot
+be guaranteed that the message catalogs will be
+found.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If <i>dirname</i> is NULL, the function returns the
+previously set base directory for domain
+<i>domainname</i>.</td></table>
+<a name="RETURN VALUE"></a>
+<h2>RETURN VALUE</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If successful, the <b>bindtextdomain</b> function returns
+the current base directory for domain <i>domainname</i>,
+after possibly changing it. The resulting string is valid
+until the next <b>bindtextdomain</b> call for the same
+<i>domainname</i> and must not be modified or freed. If a
+memory allocation failure occurs, it sets <b>errno</b> to
+<b>ENOMEM</b> and returns NULL.</td></table>
+<a name="ERRORS"></a>
+<h2>ERRORS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The following error can occur, among others:</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>ENOMEM</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+Not enough memory available.</td></table>
+<a name="BUGS"></a>
+<h2>BUGS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The return type ought to be <b>const char *</b>, but is
+<b>char *</b> to avoid warnings in C code predating ANSI
+C.</td></table>
+<a name="SEE ALSO"></a>
+<h2>SEE ALSO</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>gettext</b>(3), <b>dgettext</b>(3), <b>dcgettext</b>(3),
+<b>ngettext</b>(3), <b>dngettext</b>(3),
+<b>dcngettext</b>(3), <b>textdomain</b>(3),
+<b>realpath</b>(3)</td></table>
+<hr>
+</body>
+</html>
--- /dev/null
+.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" References consulted:
+.\" GNU glibc-2 source code and manual
+.\" GNU gettext source code and manual
+.\" LI18NUX 2000 Globalization Specification
+.\"
+.TH GETTEXT 3 "May 2001" "GNU gettext 0.10.38"
+.SH NAME
+gettext, dgettext, dcgettext \- translate message
+.SH SYNOPSIS
+.nf
+.B #include <libintl.h>
+.sp
+.BI "char * gettext (const char * " msgid );
+.BI "char * dgettext (const char * " domainname ", const char * " msgid );
+.BI "char * dcgettext (const char * " domainname ", const char * " msgid ,
+.BI " int " category );
+.fi
+.SH DESCRIPTION
+The \fBgettext\fP, \fBdgettext\fP and \fBdcgettext\fP functions attempt to
+translate a text string into the user's native language, by looking up the
+translation in a message catalog.
+.PP
+The \fImsgid\fP argument identifies the message to be translated. By
+convention, it is the English version of the message, with non-ASCII
+characters replaced by ASCII approximations. This choice allows the
+translators to work with message catalogs, called PO files, that contain
+both the English and the translated versions of each message, and can be
+installed using the \fBmsgfmt\fP utility.
+.PP
+A message domain is a set of translatable \fImsgid\fP messages. Usually,
+every software package has its own message domain. The domain name is used
+to determine the message catalog where the translation is looked up; it must
+be a non-empty string. For the \fBgettext\fP function, it is specified through
+a preceding \fBtextdomain\fP call. For the \fBdgettext\fP and \fBdcgettext\fP
+functions, it is passed as the \fIdomainname\fP argument; if this argument is
+NULL, the domain name specified through a preceding \fBtextdomain\fP call is
+used instead.
+.PP
+Translation lookup operates in the context of the current locale. For the
+\fBgettext\fP and \fBdgettext\fP functions, the \fBLC_MESSAGES\fP locale
+facet is used. It is determined by a preceding call to the \fBsetlocale\fP
+function. \fBsetlocale(LC_ALL,"")\fP initializes the \fBLC_MESSAGES\fP locale
+based on the first nonempty value of the three environment variables
+\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP; see \fBsetlocale\fP(3). For the
+\fBdcgettext\fP function, the locale facet is determined by the \fIcategory\fP
+argument, which should be one of the \fBLC_xxx\fP constants defined in the
+<locale.h> header, excluding \fBLC_ALL\fP. In both cases, the functions also
+use the \fBLC_CTYPE\fP locale facet in order to convert the translated message
+from the translator's codeset to the current locale's codeset, unless
+overridden by a prior call to the \fBbind_textdomain_codeset\fP function.
+.PP
+The message catalog used by the functions is at the pathname
+\fIdirname\fP/\fIlocale\fP/\fIcategory\fP/\fIdomainname\fP.mo. Here
+\fIdirname\fP is the directory specified through \fBbindtextdomain\fP. Its
+default is system and configuration dependent; typically it is
+\fIprefix\fP/share/locale, where \fIprefix\fP is the installation prefix of the
+package. \fIlocale\fP is the name of the current locale facet; the GNU
+implementation also tries generalizations, such as the language name without
+the territory name. \fIcategory\fP is \fBLC_MESSAGES\fP for the \fBgettext\fP
+and \fBdgettext\fP functions, or the argument passed to the \fBdcgettext\fP
+function.
+.PP
+If the \fBLANGUAGE\fP environment variable is set to a nonempty value, and the
+locale is not the "C" locale, the value of \fBLANGUAGE\fP is assumed to contain
+a colon separated list of locale names. The functions will attempt to look up
+a translation of \fImsgid\fP in each of the locales in turn. This is a GNU
+extension.
+.PP
+In the "C" locale, or if none of the used catalogs contain a translation for
+\fImsgid\fP, the \fBgettext\fP, \fBdgettext\fP and \fBdcgettext\fP functions
+return \fImsgid\fP.
+.SH "RETURN VALUE"
+If a translation was found in one of the specified catalogs, it is converted
+to the locale's codeset and returned. The resulting string is statically
+allocated and must not be modified or freed. Otherwise \fImsgid\fP is returned.
+.SH ERRORS
+\fBerrno\fP is not modified.
+.SH BUGS
+The return type ought to be \fBconst char *\fP, but is \fBchar *\fP to avoid
+warnings in C code predating ANSI C.
+.PP
+When an empty string is used for \fImsgid\fP, the functions may return a
+nonempty string.
+.SH "SEE ALSO"
+.BR ngettext (3),
+.BR dngettext (3),
+.BR dcngettext (3),
+.BR setlocale (3),
+.BR textdomain (3),
+.BR bindtextdomain (3),
+.BR bind_textdomain_codeset (3),
+.BR msgfmt (1)
--- /dev/null
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta name="Content-Style" content="text/css">
+<title>GETTEXT</title>
+</head>
+<body>
+
+<h1 align=center>GETTEXT</h1>
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#RETURN VALUE">RETURN VALUE</a><br>
+<a href="#ERRORS">ERRORS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+
+<hr>
+<!-- Creator : groff version 1.17 -->
+<!-- CreationDate: Sun May 20 13:45:13 2001 -->
+<a name="NAME"></a>
+<h2>NAME</h2>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+gettext, dgettext, dcgettext - translate message</td></table>
+<a name="SYNOPSIS"></a>
+<h2>SYNOPSIS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<pre><b>#include <libintl.h>
+
+char * gettext (const char *</b> <i>msgid</i><b>);
+char * dgettext (const char *</b> <i>domainname</i><b>, const char *</b> <i>msgid</i><b>);
+char * dcgettext (const char *</b> <i>domainname</i><b>, const char *</b> <i>msgid</i><b>,
+ int</b> <i>category</i><b>);
+</b></pre></td></table>
+<a name="DESCRIPTION"></a>
+<h2>DESCRIPTION</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <b>gettext</b>, <b>dgettext</b> and <b>dcgettext</b>
+functions attempt to translate a text string into the user's
+native language, by looking up the translation in a message
+catalog.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <i>msgid</i> argument identifies the message to be
+translated. By convention, it is the English version of the
+message, with non-ASCII characters replaced by ASCII
+approximations. This choice allows the translators to work
+with message catalogs, called PO files, that contain both
+the English and the translated versions of each message, and
+can be installed using the <b>msgfmt</b>
+utility.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+A message domain is a set of translatable <i>msgid</i>
+messages. Usually, every software package has its own
+message domain. The domain name is used to determine the
+message catalog where the translation is looked up; it must
+be a non-empty string. For the <b>gettext</b> function, it
+is specified through a preceding <b>textdomain</b> call. For
+the <b>dgettext</b> and <b>dcgettext</b> functions, it is
+passed as the <i>domainname</i> argument; if this argument
+is NULL, the domain name specified through a preceding
+<b>textdomain</b> call is used instead.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+Translation lookup operates in the context of the current
+locale. For the <b>gettext</b> and <b>dgettext</b>
+functions, the <b>LC_MESSAGES</b> locale facet is used. It
+is determined by a preceding call to the <b>setlocale</b>
+function. <b>setlocale(LC_ALL,"")</b> initializes
+the <b>LC_MESSAGES</b> locale based on the first nonempty
+value of the three environment variables <b>LC_ALL</b>,
+<b>LC_MESSAGES</b>, <b>LANG</b>; see <b>setlocale</b>(3).
+For the <b>dcgettext</b> function, the locale facet is
+determined by the <i>category</i> argument, which should be
+one of the <b>LC_xxx</b> constants defined in the
+<locale.h> header, excluding <b>LC_ALL</b>. In both
+cases, the functions also use the <b>LC_CTYPE</b> locale
+facet in order to convert the translated message from the
+translator's codeset to the current locale's codeset, unless
+overridden by a prior call to the
+<b>bind_textdomain_codeset</b> function.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The message catalog used by the functions is at the pathname
+<i>dirname</i>/<i>locale</i>/<i>category</i>/<i>domainname</i>.mo.
+Here <i>dirname</i> is the directory specified through
+<b>bindtextdomain</b>. Its default is system and
+configuration dependent; typically it is
+<i>prefix</i>/share/locale, where <i>prefix</i> is the
+installation prefix of the package. <i>locale</i> is the
+name of the current locale facet; the GNU implementation
+also tries generalizations, such as the language name
+without the territory name. <i>category</i> is
+<b>LC_MESSAGES</b> for the <b>gettext</b> and
+<b>dgettext</b> functions, or the argument passed to the
+<b>dcgettext</b> function.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If the <b>LANGUAGE</b> environment variable is set to a
+nonempty value, and the locale is not the "C"
+locale, the value of <b>LANGUAGE</b> is assumed to contain a
+colon separated list of locale names. The functions will
+attempt to look up a translation of <i>msgid</i> in each of
+the locales in turn. This is a GNU extension.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+In the "C" locale, or if none of the used catalogs
+contain a translation for <i>msgid</i>, the <b>gettext</b>,
+<b>dgettext</b> and <b>dcgettext</b> functions return
+<i>msgid</i>.</td></table>
+<a name="RETURN VALUE"></a>
+<h2>RETURN VALUE</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If a translation was found in one of the specified catalogs,
+it is converted to the locale's codeset and returned. The
+resulting string is statically allocated and must not be
+modified or freed. Otherwise <i>msgid</i> is
+returned.</td></table>
+<a name="ERRORS"></a>
+<h2>ERRORS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>errno</b> is not modified.</td></table>
+<a name="BUGS"></a>
+<h2>BUGS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The return type ought to be <b>const char *</b>, but is
+<b>char *</b> to avoid warnings in C code predating ANSI
+C.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+When an empty string is used for <i>msgid</i>, the functions
+may return a nonempty string.</td></table>
+<a name="SEE ALSO"></a>
+<h2>SEE ALSO</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>ngettext</b>(3), <b>dngettext</b>(3),
+<b>dcngettext</b>(3), <b>setlocale</b>(3),
+<b>textdomain</b>(3), <b>bindtextdomain</b>(3),
+<b>bind_textdomain_codeset</b>(3),
+<b>msgfmt</b>(1)</td></table>
+<hr>
+</body>
+</html>
--- /dev/null
+.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" References consulted:
+.\" GNU glibc-2 source code and manual
+.\" GNU gettext source code and manual
+.\" LI18NUX 2000 Globalization Specification
+.\"
+.TH NGETTEXT 3 "May 2001" "GNU gettext 0.10.38"
+.SH NAME
+ngettext, dngettext, dcngettext \- translate message and choose plural form
+.SH SYNOPSIS
+.nf
+.B #include <libintl.h>
+.sp
+.BI "char * ngettext (const char * " msgid ", const char * " msgid_plural ,
+.BI " unsigned long int " n );
+.BI "char * dngettext (const char * " domainname ,
+.BI " const char * " msgid ", const char * " msgid_plural ,
+.BI " unsigned long int " n );
+.BI "char * dcngettext (const char * " domainname ,
+.BI " const char * " msgid ", const char * " msgid_plural ,
+.BI " unsigned long int " n ", int " category );
+.fi
+.SH DESCRIPTION
+The \fBngettext\fP, \fBdngettext\fP and \fBdcngettext\fP functions attempt to
+translate a text string into the user's native language, by looking up the
+appropriate plural form of the translation in a message catalog.
+.PP
+Plural forms are grammatical variants depending on the a number. Some languages
+have two forms, called singular and plural. Other languages have three forms,
+called singular, dual and plural. There are also languages with four forms.
+.PP
+The \fBngettext\fP, \fBdngettext\fP and \fBdcngettext\fP functions work like
+the \fBgettext\fP, \fBdgettext\fP and \fBdcgettext\fP functions, respectively.
+Additionally, they choose the appropriate plural form, which depends on the
+number \fIn\fP and the language of the message catalog where the translation
+was found.
+.PP
+In the "C" locale, or if none of the used catalogs contain a translation for
+\fImsgid\fP, the \fBngettext\fP, \fBdngettext\fP and \fBdcngettext\fP functions
+return \fImsgid\fP if \fIn\fP == 1, or \fImsgid_plural\fP if \fIn\fP != 1.
+.SH "RETURN VALUE"
+If a translation was found in one of the specified catalogs, the appropriate
+plural form is converted to the locale's codeset and returned. The resulting
+string is statically allocated and must not be modified or freed. Otherwise
+\fImsgid\fP or \fImsgid_plural\fP is returned, as described above.
+.SH ERRORS
+\fBerrno\fP is not modified.
+.SH BUGS
+The return type ought to be \fBconst char *\fP, but is \fBchar *\fP to avoid
+warnings in C code predating ANSI C.
+.SH "SEE ALSO"
+.BR gettext (3),
+.BR dgettext (3),
+.BR dcgettext (3)
--- /dev/null
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta name="Content-Style" content="text/css">
+<title>NGETTEXT</title>
+</head>
+<body>
+
+<h1 align=center>NGETTEXT</h1>
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#RETURN VALUE">RETURN VALUE</a><br>
+<a href="#ERRORS">ERRORS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+
+<hr>
+<!-- Creator : groff version 1.17 -->
+<!-- CreationDate: Sun May 20 13:45:13 2001 -->
+<a name="NAME"></a>
+<h2>NAME</h2>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+ngettext, dngettext, dcngettext - translate message and choose plural form</td></table>
+<a name="SYNOPSIS"></a>
+<h2>SYNOPSIS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<pre><b>#include <libintl.h>
+
+char * ngettext (const char *</b> <i>msgid</i><b>, const char *</b> <i>msgid_plural</i><b>,
+ unsigned long int</b> <i>n</i><b>);
+char * dngettext (const char *</b> <i>domainname</i><b>,
+ const char *</b> <i>msgid</i><b>, const char *</b> <i>msgid_plural</i><b>,
+ unsigned long int</b> <i>n</i><b>);
+char * dcngettext (const char *</b> <i>domainname</i><b>,
+ const char *</b> <i>msgid</i><b>, const char *</b> <i>msgid_plural</i><b>,
+ unsigned long int</b> <i>n</i><b>, int</b> <i>category</i><b>);
+</b></pre></td></table>
+<a name="DESCRIPTION"></a>
+<h2>DESCRIPTION</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <b>ngettext</b>, <b>dngettext</b> and <b>dcngettext</b>
+functions attempt to translate a text string into the user's
+native language, by looking up the appropriate plural form
+of the translation in a message catalog.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+Plural forms are grammatical variants depending on the a
+number. Some languages have two forms, called singular and
+plural. Other languages have three forms, called singular,
+dual and plural. There are also languages with four
+forms.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <b>ngettext</b>, <b>dngettext</b> and <b>dcngettext</b>
+functions work like the <b>gettext</b>, <b>dgettext</b> and
+<b>dcgettext</b> functions, respectively. Additionally, they
+choose the appropriate plural form, which depends on the
+number <i>n</i> and the language of the message catalog
+where the translation was found.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+In the "C" locale, or if none of the used catalogs
+contain a translation for <i>msgid</i>, the <b>ngettext</b>,
+<b>dngettext</b> and <b>dcngettext</b> functions return
+<i>msgid</i> if <i>n</i> == 1, or <i>msgid_plural</i> if
+<i>n</i> != 1.</td></table>
+<a name="RETURN VALUE"></a>
+<h2>RETURN VALUE</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If a translation was found in one of the specified catalogs,
+the appropriate plural form is converted to the locale's
+codeset and returned. The resulting string is statically
+allocated and must not be modified or freed. Otherwise
+<i>msgid</i> or <i>msgid_plural</i> is returned, as
+described above.</td></table>
+<a name="ERRORS"></a>
+<h2>ERRORS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>errno</b> is not modified.</td></table>
+<a name="BUGS"></a>
+<h2>BUGS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The return type ought to be <b>const char *</b>, but is
+<b>char *</b> to avoid warnings in C code predating ANSI
+C.</td></table>
+<a name="SEE ALSO"></a>
+<h2>SEE ALSO</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>gettext</b>(3), <b>dgettext</b>(3),
+<b>dcgettext</b>(3)</td></table>
+<hr>
+</body>
+</html>
--- /dev/null
+.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" References consulted:
+.\" GNU glibc-2 source code and manual
+.\" GNU gettext source code and manual
+.\" LI18NUX 2000 Globalization Specification
+.\"
+.TH TEXTDOMAIN 3 "May 2001" "GNU gettext 0.10.38"
+.SH NAME
+textdomain \- set domain for future gettext() calls
+.SH SYNOPSIS
+.nf
+.B #include <libintl.h>
+.sp
+.BI "char * textdomain (const char * " domainname );
+.fi
+.SH DESCRIPTION
+The \fBtextdomain\fP function sets or retrieves the current message domain.
+.PP
+A message domain is a set of translatable \fImsgid\fP messages. Usually,
+every software package has its own message domain. The domain name is used
+to determine the message catalog where a translation is looked up; it must
+be a non-empty string.
+.PP
+The current message domain is used by the \fBgettext\fP, \fBngettext\fP
+functions, and by the \fBdgettext\fP, \fBdcgettext\fP, \fBdngettext\fP and
+\fBdcngettext\fP functions when called with a NULL domainname argument.
+.PP
+If \fIdomainname\fP is not NULL, the current message domain is set to
+\fIdomainname\fP. The string the function stores internally is a copy of the
+\fIdomainname\fP argument.
+.PP
+If \fIdomainname\fP is NULL, the function returns the current message domain.
+.SH "RETURN VALUE"
+If successful, the \fBtextdomain\fP function returns the current message
+domain, after possibly changing it. The resulting string is valid until the
+next \fBtextdomain\fP call and must not be modified or freed. If a memory
+allocation failure occurs, it sets \fBerrno\fP to \fBENOMEM\fP and returns
+NULL.
+.SH ERRORS
+The following error can occur, among others:
+.TP
+.B ENOMEM
+Not enough memory available.
+.SH BUGS
+The return type ought to be \fBconst char *\fP, but is \fBchar *\fP to avoid
+warnings in C code predating ANSI C.
+.SH "SEE ALSO"
+.BR gettext (3),
+.BR ngettext (3),
+.BR bindtextdomain (3),
+.BR bind_textdomain_codeset (3)
--- /dev/null
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta name="Content-Style" content="text/css">
+<title>TEXTDOMAIN</title>
+</head>
+<body>
+
+<h1 align=center>TEXTDOMAIN</h1>
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#RETURN VALUE">RETURN VALUE</a><br>
+<a href="#ERRORS">ERRORS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+
+<hr>
+<!-- Creator : groff version 1.17 -->
+<!-- CreationDate: Sun May 20 13:45:14 2001 -->
+<a name="NAME"></a>
+<h2>NAME</h2>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+textdomain - set domain for future gettext() calls</td></table>
+<a name="SYNOPSIS"></a>
+<h2>SYNOPSIS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<pre><b>#include <libintl.h>
+
+char * textdomain (const char *</b> <i>domainname</i><b>);
+</b></pre></td></table>
+<a name="DESCRIPTION"></a>
+<h2>DESCRIPTION</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The <b>textdomain</b> function sets or retrieves the current
+message domain.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+A message domain is a set of translatable <i>msgid</i>
+messages. Usually, every software package has its own
+message domain. The domain name is used to determine the
+message catalog where a translation is looked up; it must be
+a non-empty string.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The current message domain is used by the <b>gettext</b>,
+<b>ngettext</b> functions, and by the <b>dgettext</b>,
+<b>dcgettext</b>, <b>dngettext</b> and <b>dcngettext</b>
+functions when called with a NULL domainname
+argument.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If <i>domainname</i> is not NULL, the current message domain
+is set to <i>domainname</i>. The string the function stores
+internally is a copy of the <i>domainname</i>
+argument.</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If <i>domainname</i> is NULL, the function returns the
+current message domain.</td></table>
+<a name="RETURN VALUE"></a>
+<h2>RETURN VALUE</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+If successful, the <b>textdomain</b> function returns the
+current message domain, after possibly changing it. The
+resulting string is valid until the next <b>textdomain</b>
+call and must not be modified or freed. If a memory
+allocation failure occurs, it sets <b>errno</b> to
+<b>ENOMEM</b> and returns NULL.</td></table>
+<a name="ERRORS"></a>
+<h2>ERRORS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The following error can occur, among others:</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>ENOMEM</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+Not enough memory available.</td></table>
+<a name="BUGS"></a>
+<h2>BUGS</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+The return type ought to be <b>const char *</b>, but is
+<b>char *</b> to avoid warnings in C code predating ANSI
+C.</td></table>
+<a name="SEE ALSO"></a>
+<h2>SEE ALSO</h2>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>gettext</b>(3), <b>ngettext</b>(3),
+<b>bindtextdomain</b>(3),
+<b>bind_textdomain_codeset</b>(3)</td></table>
+<hr>
+</body>
+</html>