2003-01-31  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (libgettextpo): New node.

2003-01-24  Bruno Haible  <bruno@clisp.org>

	* msgattrib.texi: Document options --only-file and --ignore-file.

2003-01-23  Bruno Haible  <bruno@clisp.org>

	* msgmerge.texi: Document option -N/--no-fuzzy-matching.

2003-01-22  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (AM_GNU_GETTEXT): Don't document use-libtool, as it's
	useless.
	Reported by Simon Josefsson <jas@extundo.com> and
	Alexandre Duret-Lutz <duret_g@lrde.epita.fr>.

2003-01-12  Bruno Haible  <bruno@clisp.org>

	* Makefile.am: Make use of += for variables.

2003-01-10  Bruno Haible  <bruno@clisp.org>

	* ISO_3166_de: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2002-11-05  Bruno Haible  <bruno@clisp.org>

	* xgettext.texi: Document --from-code option.

2002-10-30  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (C): Refer to node Top of autosprintf.info. Needed to
	work around a stupid error message from makeinfo-4.2.
	Reported by Pavel Roskin <proski@gnu.org>.

2002-10-28  Bruno Haible  <bruno@clisp.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-10-27  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (C): Add reference to autosprintf for C++.

2002-10-27  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (@direntry): Add more entry points: one for every
	program, except 'gettext' and 'ngettext', which are also available
	as functions.

2002-09-09  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Creating): Remove --verbose argument of msginit
	invocation.
	Reported by Simon Josefsson <jas@extundo.com>.

2002-09-09  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Smalltalk): Update.
	* xgettext.texi: Mention language Smalltalk.

2002-08-18  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (php-format): New subsection.
	(PHP): Update.
	* xgettext.texi: Mention language PHP.

2002-08-06  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.5 released.

2002-07-16  Bruno Haible  <bruno@clisp.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-08-06  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Files under CVS): Recommend use of
	AM_GNU_GETTEXT_VERSION.

2002-08-02  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (aclocal): Add ulonglong.m4.

2002-07-25  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.4 released.

2002-07-23  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (aclocal): Add inttypes-pri.m4.

2002-07-21  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Preparing Strings): Update section about <inttypes.h>
	macros.
	(aclocal): Add inttypes.m4, inttypes_h.m4, stdint_h.m4, uintmax_t.m4
	to the list of m4 files.
	(AM_GNU_GETTEXT): Document needsymbol value 'need-formatstring-macros'.

2002-07-19  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (aclocal): Mention intdiv0.m4.

2002-07-17  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.3 released.

2002-07-16  Bruno Haible  <bruno@clisp.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-05-28  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Template): Discuss the file extension.
	Reported by Mark Eichin <eichin@thok.org>.

2002-05-14  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (PO Files): Add two examples.
	(c-format Flag): Renamed from c-format.
	(c-format, python-format, lisp-format, elisp-format, librep-format,
	smalltalk-format, java-format, awk-format, object-pascal-format,
	ycp-format, tcl-format): New subsections.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Header Entry): Add ISO-8859-14, KOI8-T, GEORGIAN-PS to
	the list of allowed encodings. Mention the languages Breton,
	Cornish, Danish, Manx, Occitan, Tagalog, Uzbek, Walloon, Bosnian,
	Maori, Welsh, Tajik, Georgian.

2002-05-11  Bruno Haible  <bruno@clisp.org>

	* autopoint.texi: Recommend AM_GNU_GETTEXT_VERSION(..) syntax.
	* gettext.texi (AM_GNU_GETTEXT_VERSION): New subsection.

2002-05-08  Bruno Haible  <bruno@clisp.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-05-01  Bruno Haible  <bruno@clisp.org>

	* gettextize.texi: New file, mostly extracted from gettext.texi.
	* autopoint.texi: New file.
	* gettext.texi (gettextize Invocation): Move to gettextize.texi.
	(CVS Issues): New section.
	* Makefile.am (gettext_TEXINFOS): Add gettextize.texi, autopoint.texi.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (gettextize Invocation): Document option --dry-run.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (mkinstalldirs, config.h.in): New subsections.
	(src/Makefile): Mention the call to textdomain().

2002-04-24  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.2 released.

2002-04-23  Bruno Haible  <bruno@clisp.org>

	* msg*.texi, xgettext.texi: Document option --no-wrap.

2002-04-22  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Preparing Strings): New section.
	(po/POTFILES.in): Mention how to handle generated files.

2002-04-10  Bruno Haible  <bruno@clisp.org>

	* ISO_639: Update. Add id, wa. Change jw to jv.

2002-04-04  Bruno Haible  <bruno@clisp.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-03-12  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.1 released.

2002-03-07  Bruno Haible  <haible@clisp.cons.org>

	* xgettext.texi: Mention languages Python, Lisp, EmacsLisp, librep,
	awk, Tcl, RST, Glade.
	* msgfmt.texi: Mention Tcl mode.
	* msgunfmt.texi: Likewise.

2002-03-05  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Files You Must Create or Alter): Mention how things
	work when automake is used.

2002-03-04  Bruno Haible  <haible@clisp.cons.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-03-03  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Tcl): New node.

2002-02-21  Bruno Haible  <bruno@clisp.org>

	* msggrep.texi: Document option -C.

2002-02-14  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (configure.in): Mention the alternative for automake
	users. Reported by Karl Berry.

2002-01-14  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Glade): New node.

2002-01-27  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (gawk): Update.

2002-02-02  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Python): Update.

2002-02-03  Eli Zaretskii  <eliz@is.elta.co.il>
            Bruno Haible  <bruno@clisp.org>

	* gettext.texi: Add indices and many index entries.
	* msg*.texi, xgettext.texi: Add many index entries.
	* Makefile.am (MOSTLYCLEANFILES): New variable.

2002-02-02  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Creating Compendia): Use @samp instead of @command or
	@option.
	(Using Compendia): Likewise.

2002-01-31  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11 released.

2002-01-30  Bruno Haible  <bruno@clisp.org>

	* nls.texi (Using This Package): Document how to deal with locale name
	variations on other operating systems.

2002-01-26  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Makefile): Undocument the POSUB variable.

2002-01-25  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (gettextize Invocation): Document --no-changelog
	option.

2002-01-24  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (src/Makefile): Recommend @LIBINTL@, @LTLIBINTL@
	instead of @INTLLIBS@.
	(AM_GNU_GETTEXT): Likewise.
	(AM_ICONV): Document variable @LTLIBICONV@.

2002-01-12  Bruno Haible  <bruno@clisp.org>

	* gettext.texi: Remove the parentheses around the expansions of N_ and
	gettext_noop.

2002-01-14  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (c-format): Slight reformulation.

2002-01-08  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Emacs Lisp): Update.

2002-01-05  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (EXTRA_DIST_html): Remove variable.
	(EXTRA_DIST): Remove $(EXTRA_DIST_html).
	(dist-html, dist-html-monolithic, dist-html-split): New rules.
	(distdir): Depend on dist-html.

2002-01-04  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Comparison): Remove paragraph about alloca. libintl
	does not need alloca any more.
	(gettextize Invocation): Mention config.rpath.
	(Adjusting Files): Refer to GNU hello as an example.
	(lib/gettext.h): New node.
	(autoconf macros): New section.
	(Maintainers for other Languages): New section.
	* msgfilter.texi: Mention some filter requirements.

2002-01-04  Bruno Haible  <bruno@clisp.org>

	* xgettext.texi: Update --copyright-holder explanation.

2002-01-03  Bruno Haible  <haible@clisp.cons.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2002-01-02  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (librep): Needs librep 0.15.3 or newer. (setlocale call
	missing in earlier versions.)

2001-12-12  Bruno Haible  <bruno@clisp.org>

	* xgettext.texi: Document option --copyright-holder.

2001-12-17  Bruno Haible  <bruno@clisp.org>

	* msggrep.texi: Document that --location arguments may be wildcards.

2001-12-16  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (librep): Update.

2001-12-07  Ben Elliston  <bje@redhat.com>

	* gettext.texi (Overview): Grammar fixes.
	(PO Files): Likewise.
	(Main PO Commands): Likewise.
	(Modifying Translations): Likewise.

2001-12-09  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Common Lisp): Update.

2001-12-08  Bruno Haible  <bruno@clisp.org>

	* msgfilter.texi: Renamed from msgexec.texi.
	* msgexec.texi: New file.
	* gettext.texi (msgfilter Invocation): Renamed from msgexec Invocation.
	(msgexec Invocation): New section.
	(Manipulating): Update. Mention msgexec.
	* Makefile.am (gettext_TEXINFOS): Add msgfilter.texi.

2001-12-08  Bruno Haible  <bruno@clisp.org>

	* msgen.texi: Refer to msginit as an alternative.

2001-12-07  Bruno Haible  <bruno@clisp.org>

	* msgexec.texi: Document option --keep-header.

2001-12-05  Bruno Haible  <haible@clisp.cons.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2001-12-02  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (aclocal): Add lib-ld.m4, lib-link.m4, lib-prefix.m4
	to the list of autoconf macro files.

2001-11-25  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (po/Makevars): New node.

2001-11-25  Bruno Haible  <bruno@clisp.org>

	* msginit.texi: Document option --no-translator.

2001-11-18  Karl Eichwalder  <ke@gnu.franken.de>

	* gettext.texi (Main PO Commands, Entry Positioning, Marking,
	Translated Entries, Fuzzy Entries, Untranslated Entries,
	Obsolete Entries, Modifying Translations, Modifying Comments, Subedit,
	C Sources Context, Auxiliary): Update keystrokes and describe
	corresponding Emacs command names.

2001-11-25  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (EXTRA_DIST_html): Make it work when builddir != srcdir.

2001-11-18  Bruno Haible  <bruno@clisp.org>

	* gettext.texi (Common Lisp): Update.
	(Java): Refer to the Javadoc documentation.

2001-11-18  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Prerequisites): Update for autoconf-2.50 users.
	(gettextize Invocation): Document option --intl.
	(configure.in): Update for autoconf-2.50 users. Document possibility
	to work without intl directory.
	(aclocal): Likewise.

2001-11-17  Bruno Haible  <haible@clisp.cons.org>

	* msgfmt.texi: --check-accelerators has optional argument.

2001-11-11  Bruno Haible  <haible@clisp.cons.org>

	* msgfmt.texi: Document --check-accelerators option.

2001-11-11  Bruno Haible  <haible@clisp.cons.org>

	* msginit.texi: Remove --verbose documentation.

2001-08-23  Karl Eichwalder  <ke@suse.de>

	* gettext.texi (Main PO Commands): Reflect po-mode.el key binding
	changes.
	(Translated Entries): Likewise.
	(Fuzzy Entries): Likewise.
	(Untranslated Entries): Likewise.
	(Obsolete Entries): Likewise.
	(Auxiliary): Likewise.

2001-11-07  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Smalltalk): Update from
	Paolo Bonzini <bonzini@gnu.org>.

2001-11-05  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Aspects): Write "German" instead of "French", since
	the french number formatting rules are different.
	Reported by Mark Hoebeke <mh@jouy.inra.fr>.

2001-11-01  Bruno Haible  <haible@clisp.cons.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2001-10-30  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (EXTRA_DIST): Add texi2html.

2001-10-21  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Header Entry): The language-team address can be an
	URL instead of an email address.
	(Plural forms): Gaeilge is also known as Irish.
	(src/Makefile): No need to put libsupport.a into LIBS twice.
	(Java): Add more documentation.
	(Pascal): Likewise.
	(YCP): Likewise.
	(RST): Update.

2001-10-19  Bruno Haible  <haible@clisp.cons.org>

	* texi2html: New file, from texi2html-1.52 with modifications.
	* Makefile.am (TEXI2HTML): Use @PERL@, not @TEXI2HTML@.
	(gettext_toc.html): Update accordingly.

2001-10-11  Bruno Haible  <haible@clisp.cons.org>

	* msgattrib.texi: New file.
	* msgcat.texi: New file.
	* msgcmp.texi: New file.
	* msgcomm.texi: New file.
	* msgconv.texi: New file.
	* msgen.texi: New file.
	* msgexec.texi: New file.
	* msgfmt.texi: New file, partially from node "msgfmt Invocation".
	* msggrep.texi: New file.
	* msginit.texi: New file.
	* msgmerge.texi: New file.
	* msgunfmt.texi: New file.
	* msguniq.texi: New file.
	* xgettext.texi: New file, partially from node "xgettext Invocation".
	* gettext.texi (Top): Add a fourth author.
	(xgettext Invocation): Reorganize and move to xgettext.texi.
	(Creating): Move most of contents to node "Header Entry".
	(msginit Invocation): New node.
	(msgmerge Invocation): Include msgmerge.texi.
	(Manipulating): New chapter.
	(msgfmt invocation): Reorganize and move to msgfmt.texi.
	(msgunfmt invocation): New node.
	(History): Update.
	* Makefile.am (gettext_TEXINFOS): Add the new files.

2001-09-18  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi: Use file suffix .po instead of .pox.

2001-08-13  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (YCP): New node.

2001-08-08  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Compendium): Entirely rewritten by Karl Eichwalder.

2001-07-22  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Other Programming Languages): New chapter.

2001-07-22  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (po/LINGUAS): New node.
	(configure.in): Remove paragraph about ALL_LINGUAS.

2001-08-02  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Introduction): Change bug report address to
	<bug-gnu-gettext@gnu.org>.

2001-07-22  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Completing GNU gettext Installation): Don't recommend
	to use po-mode for POT files. See 2001-07-08 po-mode.el change.

2001-09-13  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.40 released.

2001-09-08  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Discussions): Rewrote the paragraph about GPL.
	* nls.texi (Using gettext in own code): Adapt for libintl license
	change.

2001-07-24  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.39 released.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	* nls.texi (Using gettext in own code): Clarify copyright wording.

2001-06-10  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am: (installdirs): New dependency. Yet another automake bug.

2001-05-30  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Plural forms): Remove remark about continuation lines.
	Add information about Croatian, Portuguese, Latvian, Korean.

2001-05-23  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.38 released.

2001-05-22  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Creating): Change "8-bit" to "8bit".

2001-05-16  Bruno Haible  <haible@clisp.cons.org>

	* matrix.texi: Update.
	* nls.texi (STATUS): Likewise.

2001-05-15  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (install-dvi, gettext.ps, install-ps, install-pdf,
	gettext.html, gettext_toc.html, install-html-monolithic): Don't use $<.
	Reported by Paul Eggert.

2001-05-11  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (aclocal): Add glibc21.m4 to the list of needed files.

2001-04-19  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.37 released.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (DVIPS): Use @DVIPS@. If dvips is missing, the
	gettext.ps target will fail.
	(TEXI2PDF): Use @TEXI2PDF@. If texi2pdf is missing, the gettext.pdf
	target will fail.
	(TEXI2HTML): Use @TEXI2HTML@. If texi2html is missing, the gettext.html
	target will fail.
	(gettext_toc.html): Rewrite so it will do nothing but not fail, if
	texi2html is missing.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (install-html-split): Install into correct directory.
	Don't use $<.
	(RM): New variable.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* ISO_3166: New file.
	* iso-3166.sed: New file.
	* iso-639.sed: Renamed from iso-apdx.sed.
	* Makefile.am (gettext_TEXINFOS): Remove iso-apdx.sed, add iso-639.sed
	and iso-3166.sed.
	(EXTRA_DIST): Likewise. Add ISO_3166.
	(iso-639.texi): Renamed rule from iso-apdx.texi.
	(iso-3166.texi): New rule.
	* nls.texi (Using This Package): Recommend to set LANG to 'll_CC'.
	glibc doesn't have locales named 'll'.
	* gettext.texi (End Users): Likewise.
	(Country Codes): New node.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi: Many tweaks by Philipp Thomas <pthomas@suse.de>.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Plural forms): Add section about Lithuanian, reported
	by Ricardas Cepas <rch@richard.eu.org>. Fix formula for Slovenian,
	reported by Roman Maurer <roman.maurer@amis.net>. Ukrainian is like
	Russian, reported by Andy Rysin <arysin@yahoo.com>.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (config.guess): New node.
	(aclocal): Update list of macros to include.
	(acconfig): Update: not needed any more.
	(Makefile): Add reminder to put intl in front of other directories.
	(src/Makefile): Add reminder to define LOCALEDIR.

2001-04-17  Bruno Haible  <haible@clisp.cons.org>

	* ISO_639: Add Avestan, Bosnian, Chechen, Chamorro, Church Slavic,
	Chuvash, Manx, Hiri Motu, Herero, Kikuyu, Kuanyama, Komi, Cornish,
	Letzeburgesch, Marshall, Norwegian Bokmal, Ndebele, Ndonga, Norwegian
	Nynorsk, Navajo, Nyanja, Pali, Sardinian, Northern Sami, Tahitian.
	Remove Serbo-Croatian.

2001-04-04  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (docdir, dvidir, psdir, pdfdir, htmldir): New variables.
	(EXTRA_DIST): Add EXTRA_DIST_html.
	(all-local, install-data-local, installdirs-local, uninstall-local):
	New targets.
	(html, install-html, uninstall-html): New targets.
	(EXTRA_DIST_html, CLEANFILES, MAINTAINERCLEANFILES): New variables.
	(install-dvi, installdirs-dvi, uninstall-dvi): New targets.
	(DVIPS): New variable.
	(ps, gettext.ps, install-ps, installdirs-ps, uninstall-ps): New
	targets.
	(TEXI2PDF, SUFFIXES): New variables.
	(.texi.pdf): New rule.
	(pdf, install-pdf, installdirs-pdf, uninstall-pdf): New targets.
	(TEXI2HTML): New variable.
	(html-monolithic, html-split, gettext.html, gettext_toc.html,
	install-html-monolithic, install-html-split, installdirs-html,
	uninstall-html-monolithic, uninstall-html-split): New targets.

2001-04-02  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Plural forms): Add Estonian. Fix the formula for
	Russian and add Czech and Slovak to this case.

2001-03-29  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.36 released.

2001-03-25  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Aspects): For full locale services, refer to glibc.
	(Files): Explain why gettext doesn't interface with system tools.
	(Template): Renamed chapter from "Initial".
	Move the sections "C Sources Context" and "Compendium" away.
	(Creating): New chapter.
	(Updating): Move the sections "C Sources Context" and "Compendium" to
	here.
	(Using libintl.a): Only HP-UX 10.01 lacks alloca. Newer versions have
	it.
	(Flat and Non-Flat): Don't mention combine-sh. Recommend the usual
	approach instead.

2001-03-15  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Plural forms): Clarify the syntax of the plural form
	information in the header entry. Always terminate it with a semicolon.

2001-03-09  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (MAKEINFO): Add 'env', to avoid shell syntax error in
	texi2dvi.

	* gettext.texi (Overview): Including libintl.h is not enough. Talk
	about libintl.so as well.
	(Comparison): gettext_noop is never defined in libintl.h.

2001-03-03  Bruno Haible  <haible@clisp.cons.org>

	* nls.texi (Using This Package): Rewrite paragraph about LANGUAGE.

2001-03-03  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Triggering): Mention that gettext() now needs the
	LC_CTYPE locale. Explain the possible solutions.

2001-02-17  Karl Eichwalder  <keichwa@gmx.net>

	* gettext.texi: ISO 639 specifies language codes, not country codes.

2001-01-28  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Installation): Call autoload with 4 arguments.

2001-01-06  Bruno Haible  <haible@clisp.cons.org>

	* gettext.texi (Magic for Installers): Remove references to catgets
	based emulation of gettext.
	(Being a `gettext' grok): Likewise. LANGUAGE now always works.
	(acconfig.h): Don't mention HAVE_CATGETS.
	* nls.texi: Remove references to catgets. Describe new working of
	autoconf macro.

2001-01-01  Bruno Haible  <haible@clisp.cons.org>

	* Makefile.am (MAKEINFO): New macro. Unset LANG and LANGUAGE while
	running makeinfo.

2001-01-01  Bruno Haible  <haible@clisp.cons.org>

	Implement plural form handling.
	* gettext.texi: Fix menus.
	(PO Files): Document entries for plural forms.
	(xgettext Invocation): Extended --keyword argument syntax. More
	default keywords.
	(MO Files): Document format of entries for plural forms.
	(Charset conversion): New node, mostly from glibc-2.2 manual.
	(Plural forms): Likewise.
	(GUI program problems): Likewise, without the GCC function macro.
	(Optimized gettext): Remove section about dcgettext macro. All
	caching is now done inside the *gettext functions.
	(Comparison): Move the example about Polish to node "Plural forms".
	Remove the print_month_info example.

2000-11-12  Bruno Haible  <haible@clisp.cons.org>

	* matrix.texi: Update.
	* nls.texi: Refer to the Free Translation Project's matrix page.

2000-11-10  Bruno Haible  <haible@clisp.cons.org>

	* nls.texi: In section "Translating Teams", refer to the Free
	Translation Project's homepage. It is more up to date than the
	previously included list.

2000-07-03  Bruno Haible  <haible@clisp.cons.org>

	* nls.texi: Rename section "One advise in advance" to "Quick
	configuration advice".

2000-05-06  Ulrich Drepper  <drepper@redhat.com>

	* nls.texi: Add section about "Using gettext in own code".

1999-10-11  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.texi: Fix use of @xref.

1998-05-01 08:47  Ulrich Drepper  <drepper@cygnus.com>

	* gettext-0.10.35 released.

1997-09-06 02:13  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.texi: Fix names of autoconf macros now that they are in
	automake.
	File NLS is now named ABOUT-NLS.
	Reported by Bruno Haible <haible@ilog.fr>.

	* nls.texi: Better description of --with-included-gettext.

1997-08-01 15:50  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Require version 1.2.

1997-04-12 17:45  Ulrich Drepper  <drepper@cygnus.com>

	* mdate-sh: Update from libit version.

	* mdate-sh: Handle ls output with file type in ls output is
	starting with -.

1997-04-05 18:14  Ulrich Drepper  <drepper@cygnus.com>

	* mdate-sh: Use ls command with -d so that we also can handle
	directories.  Patch by Bruno Haible.

1997-03-11 16:24  Ulrich Drepper  <drepper@cygnus.com>

	* nls.texi: Don't mention removed translation teams anymore.

Sat Dec  7 17:53:26 1996  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.texi: We don't need the hack for getting the cedille
	character anymore.

Tue Dec  3 15:46:09 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (EXTRA_DIST): texinfo.tex is now automatically
	distributed.

Sun Aug 18 16:55:02 1996  Ulrich Drepper  <drepper@myware.rz.uni-karlsruhe.de>

	* nls.texi: Set STATUS to August.

Mon Jun 17 02:29:15 1996  Ulrich Drepper  <drepper@myware.rz.uni-karlsruhe.de>

	* gettext.texi: More small fixes.

Sat Jun 15 16:55:00 1996  Ulrich Drepper  <drepper@myware.rz.uni-karlsruhe.de>

	* nls.texi, gettext.texi: Some better words by François Pinard.

Fri Jun 14 18:47:23 1996  Santiago Vila Doncel  <sanvila@unex.es>

	* gettext.texi: Correct a few typos.

Tue Jun 11 19:31:16 1996  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.texi: A few corrections by Thomas Esken.

Tue Jun 11 15:29:56 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Add variable.  Must be defined
        in all subdirs.

Tue Jun  4 03:43:17 1996  Ulrich Drepper  <drepper@cygnus.com>

	* gettext.texi:
	Tons of changes.  A first step for a real, uptodate manual.

Sun Jun  2 21:21:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* iso-apdx.sed, Makefile.am, ISO_639: Initial revision.

Sun May 26 18:21:25 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nls.texi: Add Arabic.

Fri May 24 18:24:56 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nls.texi: Add Ukrainian.

Tue May 21 14:25:02 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nls.texi: Fix typo: outself -> ourself.

	* nls.texi: Correct Indonesian.
	Add Slovenian and Hungarian.

Sun May 19 15:08:24 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nls.texi: Update language list.  Add Hebrew and Latin.

Sat May  4 00:41:17 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nls.texi: Rewording by François Pinard.

	* nls.texi: Change explicitely' to `explicitly'.  By François Pinard.

Fri May  3 17:21:48 1996  Ulrich Drepper  <drepper@cygnus.com>

	* matrix.texi: 9605031921

Wed Apr 10 22:04:29 1996  Ulrich Drepper  <drepper@myware>

	* nls.texi: matrix.texi now contains table commands.

	* matrix.texi: Update for 960410.

Wed Apr 10 21:58:17 1996  François Pinard  <pinard@iro.umontreal.ca>

	* nls.texi: Add Korean to list of languages.

Tue Apr  9 23:28:08 1996  François Pinard  <pinard@iro.umontreal.ca>

	* nls.texi: Some better words.

Sat Apr  6 11:13:18 1996  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Add matrix.texi.  Reported by François
        Pinard.

Wed Apr  3 23:40:29 1996  François Pinard  <pinard@iro.umontreal.ca>

	* nls.texi: Correct typo: ones -> one.

Tue Apr  2 18:53:01 1996  Ulrich Drepper  <drepper@myware>

	* Makefile.in (all-gettext): New goal.  Same as all.

Tue Apr  2 16:13:11 1996  Ulrich Drepper  <drepper@myware>

	* nls.texi:
	Document change in aclocal.m4.  Describe --with-catgets option.

Mon Mar 25 23:21:49 1996  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Append iso-apdx.sed, ISO_639,
        iso-apdx.texi.
	(gettext.info, gettext.dvi): Depend on iso-apdx.texi.
	(iso-apdx.texi): New rules.  Create file from ISO_639.

Mon Mar 25 02:55:23 1996  François Pinard  <pinard@iro.umontreal.ca>

	* gettext.texi: Latest update of PO mode documentation.

Sat Mar 23 14:07:57 1996  François Pinard  <pinard@iro.umontreal.ca>

	* gettext.texi:	Added changes concerning PO mode changes.

Sat Mar 23 13:46:49 1996  Frank Donahoe  <fdonahoe@wilkes1.wilkes.edu>

	* gettext.texi: Fixed many problems with the English language.

Wed Mar 13 21:06:17 1996  Ulrich Drepper  <drepper@myware>

	* nls.texi: Changed gnu-translation@prep to gnu-translation@gnu.
	Suggested by François Pinard.

Fri Mar  1 23:46:28 1996  Ulrich Drepper  <drepper@myware>

	* nls.texi: STATUS is 1996, not 1995.

Thu Feb 15 03:45:30 1996  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Update documentation for
	- `--force' option
	- `-d -' option
	- new intl/po subdir handling

Mon Feb 12 01:33:49 1996  Ulrich Drepper  <drepper@myware>

	* nls.texi: STATUS is January.

	* nls.texi: Omitted pl at lower side.

	* nls.texi: Add pl for gettext to matrix.

Fri Dec 29 14:00:17 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi: Incorporate some improvements by François Pinard.

Sun Dec 24 14:30:49 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi: Small corrections.
	Updte table for ko translation of gettext.

Tue Dec 19 22:13:40 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (Makefile): Explicitly use $(SHELL) for running
        shell scripts.

Fri Dec 15 19:34:50 1995  Karl Eichwalder  <ke@ke.central.de>

	* gettext.texi: Correct list of needed macros form aclocal.m4.

Mon Dec  4 16:19:29 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi (STATUS): Set to November.

Mon Dec  4 16:14:18 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi: Update matrix for official release.

Sun Nov 26 01:22:07 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Fix some typos.

Sat Nov 25 02:45:46 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (version.texi): Also depend on ../configure.in.

Thu Nov 23 01:26:35 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi:
	Change README.NLS to ABOUT-NLS.  Reported by François Pinard.

Tue Nov 14 12:43:22 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi: Mention Japanese translation for shar in table.

Thu Nov  9 01:14:49 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi:
	Document new option --directory and --files-from of xgettext program.

Tue Nov  7 10:54:43 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi: CLISP now uses GNU gettext.

Mon Nov  6 17:05:39 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in: Some more cleanups by François Pinard.

Mon Nov  6 00:36:37 1995  Ulrich Drepper  <drepper@>

	* nls.texi: Add comment about problems with systems which have GNU
	gettext previously installed.

Sun Nov  5 21:56:51 1995  Ulrich Drepper  <drepper@myware>

	* nls.texi:
	Advise about always using GNU gettext moved to here from ../README.

	* gettext.texi: Fix some typos reported by François Pinard.
	In description of _N change the name to N_.

	* Makefile.in (gettext.info):
	Remove old .info* files before generating new ones.
	(stamp-vti): Remove old stamp before generating new one.

Sun Nov  5 19:40:11 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist-gettext): Make synonym for dist.

Sun Nov  5 17:59:31 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Add nls.texi.

	* nls.texi: Initial revision.

	* gettext.texi: Protect RFC and number by @w.

Sun Nov  5 11:38:00 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist): Suppress error message when ln failed.
	Remove Emacs local variable definition.
	(dist): Get files from $(srcdir) explicitly.

	* gettext.texi: Add some comments about gettext_noop and _N.
	Describe defaults keywords for -k option of xgettext.

Fri Nov  3 00:20:35 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Some small changes by François.

Sat Oct 28 23:26:28 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi:
	Add warning about language changing and not using GNU gettext library.

Sat Oct 28 17:15:07 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Run spell checker. :-)  It was necessary.

	* gettext.texi: Document usage of libintl in other programs.
	Describe changing of language in programs.

Sun Sep 17 23:16:16 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Remove references to ISO 639 in description of
 	locale variable settings.

Wed Aug 23 20:49:57 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Applied François' patch from 950821.

Sat Aug 19 17:41:06 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in: Make only install-data depend on `all'.

	* Makefile.in (install-src):
	Make behave like install.  I.e. really install the manual.

Fri Aug 18 12:33:43 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Changes of 950817 by François Pinard.

Mon Aug 14 23:52:20 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (install-src): New no-op goal.

Tue Aug  8 01:39:45 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi:
	Add description of dcgettext() optimization for gcc-2.7.

Fri Aug  4 15:47:10 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist): Remove `copying instead' message.

Tue Aug  1 15:58:17 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Some typos fixed.  Email address update for Eugene
 	H. Dorr.  By François Pinard.

	* Makefile.in (stamp-vti):
	Use $(SHELL) and make compilation offside $(srcdir) possible.

Tue Aug  1 08:51:30 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (install-data): Use sed instead of expr to get basename.

Sun Jul 30 22:17:14 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Minor corrections to menus and typos by François.
	Some more words about LIBS rule in src/Makefile.in.
	PO mode file is now installed automatically.

Wed Jul 26 01:00:11 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi:
	Includes latest of François' changes for the maintainer chapter.
	Many little changes and addons.

Mon Jul 24 00:51:38 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Typo changes by François.
	Added section about special cases in translatable strings.
	Added section about changing Makefiles for Maintainers.
	Various minor addons.

Wed Jul 19 02:05:45 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi:
	Fix typo: keywoards -> keywords.  Reported by François Pinard.

	* gettext.texi:
	François added description of the last changes in Emacs PO mode
 	which allow marking translatable strings in C sources.

Tue Jul 18 21:25:44 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Now we have again gettext.info-[1-4].

	* gettext.texi (Comparison):
	Some points on comparing catgets vs. gettext are written.

Mon Jul 17 01:03:49 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi: Typo fixed.  Reported by François Pinard.

Sun Jul 16 13:25:05 1995  Ulrich Drepper  <drepper@myware>

	* gettext.texi:
	Latest version for 0.7.4.  Changes all by François Pinard.

Sun Jul 16 00:17:28 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES):
	With the current makeinfo (1.63) there are only gettext.info-[123]
	produced.  Remove gettext.info-4.  Reported by Erik Backus.

Thu Jul 13 01:41:14 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (check): New no-op goal.

	* gettext.texi: Version of 950712 by François.

Wed Jul 12 00:32:58 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): now we have gettext.info{,-[1-4]}

	* gettext.texi: First version after rewrite by François Pinard.

Mon Jul  3 23:36:25 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in: Correct for new manual with NLS and po-mode chapter.
	Do construct po-mode.{texi,dvi} use nls.texi.
	Last correction on install goal was wrong.
	Correct installation and unistallation rules.

	* gettext.texi: Version with po-mode and NLS chapter.
	Minor changes by François.

	* gettext.texi: Make NLS part an include file.

Sun Jul  2 12:32:37 1995  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): fix typo.

	* gettext.texi: some more things written about using GNU gettext
 	in own projects.

Sun Jul  2 01:47:02 1995  Ulrich Drepper  <drepper@myware>

	* First official release.  This directory now contains a very
	preliminary version of the gettext manual with a quite complete
	chapter for today's Emacs PO mode by François Pinard.
