bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Indexing for Gettext documentation


From: Eli Zaretskii
Subject: Indexing for Gettext documentation
Date: Thu, 31 Jan 2002 17:54:36 +0200 (IST)

This is not really a bug report.

I find it very hard to use a manual efficiently if it doesn't have an 
index.  So I added index entries to the Gettext manual.  The diffs are 
below; hopefully you will find them useful.

(While at that, I also fixed a small number of typos that caught my eye.)

--- doc/gettext.t~0     Thu Jan 24 14:47:06 2002
+++ doc/gettext.texi    Thu Jan 31 17:41:16 2002
@@ -3,6 +3,12 @@
 @setfilename gettext.info
 @settitle GNU @code{gettext} utilities
 @finalout
address@hidden kw
address@hidden op
address@hidden fn cp
address@hidden vr cp
address@hidden kw cp
address@hidden op cp
 @c %**end of header
 
 @include version.texi
@@ -91,6 +97,7 @@ @node Top, Introduction, (dir), (dir)
 * Maintainers::                 The Maintainer's View
 * Programming Languages::       Other Programming Languages
 * Conclusion::                  Concluding Remarks
+* Index::
 
 * Language Codes::              ISO 639 language codes
 * Country Codes::               ISO 3166 country codes
@@ -305,6 +312,8 @@ @node Introduction, Basics, Top, Top
 material is delayed.
 @end quotation
 
address@hidden sex
address@hidden he, she, and they
 In this manual, we use @emph{he} when speaking of the programmer or
 maintainer, @emph{she} when speaking of the translator, and @emph{they}
 when speaking of the installers or end users of the translated program.
@@ -324,6 +333,7 @@ @node Introduction, Basics, Top, Top
 initial generation of these files, and later, how the maintenance
 cycle should usually operate.
 
address@hidden bugs reports, where to send
 Please send suggestions and corrections to:
 
 @example
@@ -358,6 +368,7 @@ @node Why, Concepts, Introduction, Intro
 Many would simply @emph{love} to see their computer screen showing
 a lot less of English, and far more of their own language.
 
address@hidden Translation Project
 However, to many people, this dream might appear so far fetched that
 they may believe it is not even worth spending time thinking about
 it.  They have no confidence at all that the dream might ever
@@ -416,6 +427,8 @@ @node Why, Concepts, Introduction, Intro
 @node Concepts, Aspects, Why, Introduction
 @section I18n, L10n, and Such
 
address@hidden i18n
address@hidden l10n
 Two long words appear all the time when we discuss support of native
 language in programs, and these words have a precise meaning, worth
 being explained here, once and for all in this document.  The words are
@@ -427,6 +440,7 @@ @node Concepts, Aspects, Why, Introducti
 But in this manual, in the sake of clarity, we will patiently write
 the names in full, each address@hidden
 
address@hidden internationalization
 By @dfn{internationalization}, one refers to the operation by which a
 program, or a set of programs turned into a package, is made aware of and
 able to support multiple languages.  This is a generalization process,
@@ -436,6 +450,7 @@ @node Concepts, Aspects, Why, Introducti
 internationalize their programs.  Some of these have been standardized.
 GNU @code{gettext} offers one of these standards.  @xref{Programmers}.
 
address@hidden localization
 By @dfn{localization}, one means the operation by which, in a set
 of programs already internationalized, one gives the program all
 needed information so that it can adapt itself to handle its input
@@ -461,6 +476,8 @@ @node Concepts, Aspects, Why, Introducti
 to ``accessing the locale routines'', they are referring to the
 complete suite of routines that access all of the locale's information.
 
address@hidden NLS
address@hidden Native Language Support
 One uses the expression @dfn{Native Language Support}, or merely NLS,
 for speaking of the overall activity or feature encompassing both
 internationalization and localization, allowing for multi-lingual
@@ -475,6 +492,7 @@ @node Concepts, Aspects, Why, Introducti
 @node Aspects, Files, Concepts, Introduction
 @section Aspects in Native Language Support
 
address@hidden translation aspects
 For a totally multi-lingual distribution, there are many things to
 translate beyond output messages.
 
@@ -547,6 +565,7 @@ @node Aspects, Files, Concepts, Introduc
 @table @emph
 
 @item Characters and Codesets
address@hidden codeset
 
 The codeset most commonly used through out the USA and most English
 speaking parts of the world is the ASCII codeset.  However, there are
@@ -559,12 +578,14 @@ @node Aspects, Files, Concepts, Introduc
 the codeset.
 
 @item Currency
address@hidden currency symbols
 
 The symbols used vary from country to country as does the position
 used by the symbol.  Software needs to be able to transparently
 display currency figures in the native mode for each locale.
 
 @item Dates
address@hidden date format
 
 The format of date varies between locales.  For example, Christmas day
 in 1994 is written as 12/25/94 in the USA and as 25/12/94 in Australia.
@@ -576,6 +597,7 @@ @node Aspects, Files, Concepts, Introduc
 of the Daylight Saving correction vary widely between countries.
 
 @item Numbers
address@hidden number format
 
 Numbers can be represented differently in different locales.
 For example, the following numbers are all written correctly for
@@ -593,6 +615,7 @@ @node Aspects, Files, Concepts, Introduc
 about how numbers are spelled in full.
 
 @item Messages
address@hidden messages
 
 The most obvious area is the language support within a locale.  This is
 where GNU @code{gettext} provides the means for developers and users to
@@ -609,6 +632,7 @@ @node Aspects, Files, Concepts, Introduc
 @node Files, Overview, Aspects, Introduction
 @section Files Conveying Translations
 
address@hidden files, @file{.po} and @file{.mo}
 The letters PO in @file{.po} files means Portable Object, to
 distinguish it from @file{.mo} files, where MO stands for Machine
 Object.  This paradigm, as well as the PO file format, is inspired
@@ -643,6 +667,8 @@ @node Files, Overview, Aspects, Introduc
 @node Overview,  , Files, Introduction
 @section Overview of GNU @code{gettext}
 
address@hidden overview of @code{gettext}
address@hidden tutorial of @code{gettext} usage
 The following diagram summarizes the relation between the files
 handled by GNU @code{gettext} and the tools acting on these files.
 It is followed by somewhat detailed explanations, which you should
@@ -730,6 +756,8 @@ @node Overview,  , Files, Introduction
 @code{gettext} library functions are already contained in GNU libc.
 That is all you have to change.
 
address@hidden template PO file
address@hidden files, @file{.pot}
 Once the C sources have been modified, the @code{xgettext} program
 is used to find and extract all translatable strings, and create a
 PO template file out of all these.  This @address@hidden file
@@ -873,6 +901,8 @@ @node Basics, Sources, Introduction, Top
 @node Installation, PO Files, Basics, Basics
 @section Completing GNU @code{gettext} Installation
 
address@hidden installing @code{gettext}
address@hidden @code{gettext} installation
 Once you have received, unpacked, configured and compiled the GNU
 @code{gettext} distribution, the @samp{make install} command puts in
 place the programs @code{xgettext}, @code{msgfmt}, @code{gettext}, and
@@ -880,6 +910,7 @@ @node Installation, PO Files, Basics, Ba
 top off a comfortable installation, you might also want to make the
 PO mode available to your Emacs users.
 
address@hidden PO mode, @file{.emacs} customizations
 During the installation of the PO mode, you might want to modify your
 file @file{.emacs}, once and for all, so it contains a few lines looking
 like:
@@ -918,6 +949,7 @@ @node Installation, PO Files, Basics, Ba
 
 @node PO Files, Main PO Commands, Installation, Basics
 @section The Format of PO Files
address@hidden PO files' format
 
 A PO file is made up of many entries, each entry holding the relation
 between an original untranslated string and its corresponding
@@ -950,6 +982,8 @@ @node PO Files, Main PO Commands, Instal
 are created and maintained automatically by GNU @code{gettext} tools.
 All comments, of either kind, are optional.
 
address@hidden msgid
address@hidden msgstr
 After white space and comments, entries show two strings, namely
 first the untranslated string as it appears in the original program
 sources, and then, the translation of this string.  The original
@@ -976,6 +1010,7 @@ @node PO Files, Main PO Commands, Instal
 
 @table @kbd
 @item fuzzy
address@hidden address@hidden flag}
 This flag can be generated by the @code{msgmerge} program or it can be
 inserted by the translator herself.  It shows that the @code{msgstr}
 string might not be a correct translation (anymore).  Only the translator
@@ -986,7 +1021,9 @@ @node PO Files, Main PO Commands, Instal
 search only.  @xref{Fuzzy Entries}.
 
 @item c-format
address@hidden address@hidden flag}
 @itemx no-c-format
address@hidden address@hidden flag}
 These flags should not be added by a human.  Instead only the
 @code{xgettext} program adds them.  In an automated PO file processing
 system as proposed here the user changes would be thrown away again as
@@ -998,6 +1035,7 @@ @node PO Files, Main PO Commands, Instal
 
 @end table
 
address@hidden msgid_plural
 A different kind of entries is used for translations which involve
 plural forms.
 
@@ -1014,6 +1052,7 @@ @node PO Files, Main PO Commands, Instal
 msgstr[N] @var{translated-string-case-n}
 @end example
 
address@hidden address@hidden, Emacs command}
 It happens that some lines, usually whitespace or comments, follow the
 very last entry of a PO file.  Such lines are not part of any entry,
 and PO mode is unable to take action on those lines.  By using the
@@ -1062,6 +1101,7 @@ @node PO Files, Main PO Commands, Instal
 string, and end of lines in the PO file itself, outside string quotes,
 which have no incidence on the represented string.
 
address@hidden comments in PO files
 Outside strings, white lines and comments may be used freely.
 Comments start at the beginning of a line with @samp{#} and extend
 until the end of the PO file line.  Comments written by translators
@@ -1074,6 +1114,7 @@ @node PO Files, Main PO Commands, Instal
 @node Main PO Commands, Entry Positioning, PO Files, Basics
 @section Main PO mode Commands
 
address@hidden PO mode (Emacs) commands
 After setting up Emacs with something similar to the lines in
 @ref{Installation}, PO mode is activated for a window when Emacs finds a
 PO file in that window.  This puts the window read-only and establishes a
@@ -1099,29 +1140,40 @@ @node Main PO Commands, Entry Positionin
 
 @table @kbd
 @item _
address@hidden U
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 Undo last modification to the PO file (@code{po-undo}).
 
 @item Q
address@hidden address@hidden, PO Mode command}
 Quit processing and save the PO file (@code{po-quit}).
 
 @item q
address@hidden address@hidden, PO Mode command}
 Quit processing, possibly after confirmation (@code{po-confirm-and-quit}).
 
 @item 0
address@hidden address@hidden, PO Mode command}
 Temporary leave the PO file window (@code{po-other-window}).
 
 @item ?
 @itemx h
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 Show help about PO mode (@code{po-help}).
 
 @item =
address@hidden address@hidden, PO Mode command}
 Give some PO file statistics (@code{po-statistics}).
 
 @item V
address@hidden address@hidden, PO Mode command}
 Batch validate the format of the whole PO file (@code{po-validate}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{_} (@code{po-undo}) interfaces to the Emacs
 @emph{undo} facility.  @xref{Undo, , Undoing Changes, emacs, The Emacs
 Editor}.  Each time @kbd{U} is typed, modifications which the translator
@@ -1132,6 +1184,7 @@ @node Main PO Commands, Entry Positionin
 implied several actions.  However, while in the editing window, one
 can undo the edition work quite parsimoniously.
 
address@hidden address@hidden, PO Mode command}
 The commands @kbd{Q} (@code{po-quit}) and @kbd{q}
 (@code{po-confirm-and-quit}) are used when the translator is done with the
 PO file.  The former is a bit less verbose than the latter.  If the file
@@ -1142,6 +1195,7 @@ @node Main PO Commands, Entry Positionin
 of an Emacs PO file buffer.  Merely killing it through the usual command
 @address@hidden k}} (@code{kill-buffer}) is not the tidiest way to proceed.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{0} (@code{po-other-window}) is another, softer way,
 to leave PO mode, temporarily.  It just moves the cursor to some other
 Emacs window, and pops one if necessary.  For example, if the translator
@@ -1153,16 +1207,19 @@ @node Main PO Commands, Entry Positionin
 in the PO file window, or by asking Emacs to edit this file once again,
 PO mode is then recovered.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{h} (@code{po-help}) displays a summary of all available PO
 mode commands.  The translator should then type any character to resume
 normal PO mode operations.  The command @kbd{?} has the same effect
 as @kbd{h}.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{=} (@code{po-statistics}) computes the total number of
 entries in the PO file, the ordinal of the current entry (counted from
 1), the number of untranslated entries, the number of obsolete entries,
 and displays all these numbers.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{V} (@code{po-validate}) launches @code{msgfmt} in
 checking and verbose
 mode over the current PO file.  This command first offers to save the
@@ -1171,6 +1228,7 @@ @node Main PO Commands, Entry Positionin
 the features of this program for checking the overall format of a PO file,
 as well as all individual entries.
 
address@hidden address@hidden, stepping through PO file validation results}
 The program @code{msgfmt} runs asynchronously with Emacs, so the
 translator regains control immediately while her PO file is being studied.
 Error output is collected in the Emacs @samp{*compilation*} buffer,
@@ -1183,6 +1241,7 @@ @node Main PO Commands, Entry Positionin
 @node Entry Positioning, Normalizing, Main PO Commands, Basics
 @section Entry Positioning
 
address@hidden current entry of a PO file
 The cursor in a PO file window is almost always part of
 an entry.  The only exceptions are the special case when the cursor
 is after the last entry in the file, or when the PO file is
@@ -1191,6 +1250,7 @@ @node Entry Positioning, Normalizing, Ma
 so moving the cursor does more than allowing the translator to browse
 the PO file, this also selects on which entry commands operate.
 
address@hidden moving through a PO file (PO Mode)
 Some PO mode commands alter the position of the cursor in a specialized
 way.  A few of those special purpose positioning are described here,
 the others are described in following sections (for a complete list try
@@ -1199,33 +1259,42 @@ @node Entry Positioning, Normalizing, Ma
 @table @kbd
 
 @item .
address@hidden address@hidden, PO Mode command}
 Redisplay the current entry (@code{po-current-entry}).
 
 @item n
address@hidden address@hidden, PO Mode command}
 Select the entry after the current one (@code{po-next-entry}).
 
 @item p
address@hidden address@hidden, PO Mode command}
 Select the entry before the current one (@code{po-previous-entry}).
 
 @item <
address@hidden <@r{, PO Mode command}
 Select the first entry in the PO file (@code{po-first-entry}).
 
 @item >
address@hidden >@r{, PO Mode command}
 Select the last entry in the PO file (@code{po-last-entry}).
 
 @item m
address@hidden address@hidden, PO Mode command}
 Record the location of the current entry for later use
 (@code{po-push-location}).
 
 @item r
address@hidden address@hidden, PO Mode command}
 Return to a previously saved entry location (@code{po-pop-location}).
 
 @item x
address@hidden address@hidden, PO Mode command}
 Exchange the current entry location with the previously saved one
 (@code{po-exchange-location}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
 Any Emacs command able to reposition the cursor may be used
 to select the current entry in PO mode, including commands which
 move by characters, lines, paragraphs, screens or pages, and search
@@ -1250,12 +1319,16 @@ @node Entry Positioning, Normalizing, Ma
 more worth to me than opinions from programmers @emph{thinking} about
 how @emph{others} should do translation.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{n} (@code{po-next-entry}) and @kbd{p}
 (@code{po-previous-entry}) move the cursor the entry following,
 or preceding, the current one.  If @kbd{n} is given while the
 cursor is on the last entry of the PO file, or if @kbd{p}
 is given while the cursor is on the first entry, no move is done.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{<} (@code{po-first-entry}) and @kbd{>}
 (@code{po-last-entry}) move the cursor to the first entry, or last
 entry, of the PO file.  When the cursor is located past the last
@@ -1274,6 +1347,8 @@ @node Entry Positioning, Normalizing, Ma
 for saving the current cursor location in some register, and use that
 register for getting back, or else, use the location ring.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 PO mode offers another approach, by which cursor locations may be saved
 onto a special stack.  The command @kbd{m} (@code{po-push-location})
 merely adds the location of current entry to the stack, pushing
@@ -1289,6 +1364,7 @@ @node Entry Positioning, Normalizing, Ma
 element, then go elsewhere with the intent of getting back later, she
 ought to use @kbd{m} immediately after @kbd{r}.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{x} (@code{po-exchange-location}) simultaneously
 repositions the cursor to the entry associated with the top element of
 the stack of saved locations, and replaces that top element with the
@@ -1300,6 +1376,7 @@ @node Entry Positioning, Normalizing, Ma
 
 @node Normalizing,  , Entry Positioning, Basics
 @section Normalizing Strings in Entries
address@hidden string normalization in entries
 
 There are many different ways for encoding a particular string into a
 PO file entry, because there are so many different ways to split and
@@ -1327,6 +1404,7 @@ @node Normalizing,  , Entry Positioning,
 
 @table @kbd
 @item M-x po-normalize
address@hidden address@hidden, PO Mode command}
 Tidy the whole PO file by making entries more uniform.
 
 @end table
@@ -1353,6 +1431,7 @@ @node Normalizing,  , Entry Positioning,
 clean out those trailing backslashes used by XView's @code{msgfmt}
 for continued lines.
 
address@hidden importing PO files
 Having such an explicit normalizing command allows for importing PO
 files from other sources, but also eases the evolution of the current
 convention, evolution driven mostly by aesthetic concerns, as of now.
@@ -1363,6 +1442,7 @@ @node Normalizing,  , Entry Positioning,
 having Emacs handy, and who would nevertheless want to handcraft
 their PO files in nice ways.
 
address@hidden multi-line strings
 Right now, in PO mode, strings are single line or multi-line.  A string
 goes multi-line if and only if it has @emph{embedded} newlines, that
 is, if it matches @samp{[^\n]\n+[^\n]}.  So, we would have:
@@ -1403,6 +1483,7 @@ @node Normalizing,  , Entry Positioning,
 
 @node Sources, Template, Basics, Top
 @chapter Preparing Program Sources
address@hidden writing programs for translation
 
 @c FIXME: Rewrite (the whole chapter).
 
@@ -1437,6 +1518,7 @@ @node Sources, Template, Basics, Top
 @node Triggering, Mark Keywords, Sources, Sources
 @section Triggering @code{gettext} Operations
 
address@hidden initialization of locale data, in a program
 The initialization of locale data should be done with more or less
 the same code in every program, as demonstrated below:
 
@@ -1460,6 +1542,8 @@ @node Triggering, Mark Keywords, Sources
 @file{config.h} or by the Makefile.  For now consult the @code{gettext}
 sources for more information.
 
address@hidden LC_ALL
address@hidden LC_CTYPE
 The use of @code{LC_ALL} might not be appropriate for you.
 @code{LC_ALL} includes all locale categories and especially
 @code{LC_CTYPE}.  This later category is responsible for determining
@@ -1495,6 +1579,13 @@ @node Triggering, Mark Keywords, Sources
 @end group
 @end example
 
address@hidden LC_COLLATE
address@hidden LC_TIME
address@hidden LC_MONETARY
address@hidden LC_NUMERIC
address@hidden LC_TIME
address@hidden LC_MESSAGES
address@hidden LC_RESPONSES
 @noindent
 On all POSIX conformant systems the locale categories @code{LC_CTYPE},
 @code{LC_COLLATE}, @code{LC_MONETARY}, @code{LC_NUMERIC}, and
@@ -1518,6 +1609,7 @@ @node Triggering, Mark Keywords, Sources
 
 @node Mark Keywords, Marking, Triggering, Sources
 @section How Marks Appear in Sources
address@hidden marking strings that require translation
 
 All strings requiring translation should be marked in the C sources.  Marking
 is done in such a way that each translatable string appears to be
@@ -1558,6 +1650,7 @@ @node Mark Keywords, Marking, Triggering
 of using more horizontal space, forcing more indentation work on
 sources for those trying to keep them within 79 or 80 columns.
 
address@hidden address@hidden, a macro to mark strings for translation}
 Many packages use @samp{_} (a simple underline) as a keyword,
 and write @samp{_("Translatable string")} instead of @samp{gettext
 ("Translatable string")}.  Further, the coding rule, from GNU standards,
@@ -1586,6 +1679,7 @@ @node Mark Keywords, Marking, Triggering
 
 @node Marking, c-format, Mark Keywords, Sources
 @section Marking Translatable Strings
address@hidden PO Mode, and marking strings for translation
 
 In PO mode, one set of features is meant more for the programmer than
 for the translator, and allows him to interactively mark which strings,
@@ -1598,6 +1692,7 @@ @node Marking, c-format, Mark Keywords, 
 strings in the program sources, while simultaneously producing a set of
 translation in some language, for the package being internationalized.
 
address@hidden @code{etags}, using for marking strings
 The set of program sources, targetted by the PO mode commands describe
 here, should have an Emacs tags table constructed for your project,
 prior to using these PO file commands.  This is easy to do.  In any
@@ -1615,6 +1710,7 @@ @node Marking, c-format, Mark Keywords, 
 directory, somewhat summarizing the contents using a special file
 format Emacs can understand.
 
address@hidden @file{TAGS}, and marking translatable strings
 For packages following the GNU coding standards, there is
 a make goal @code{tags} or @code{TAGS} which constructs the tag files in
 all directories and for all files containing source code.
@@ -1629,19 +1725,23 @@ @node Marking, c-format, Mark Keywords, 
 
 @table @kbd
 @item ,
address@hidden ,@r{, PO Mode command}
 Search through program sources for a string which looks like a
 candidate for translation (@code{po-tags-search}).
 
 @item M-,
address@hidden M-,@r{, PO Mode command}
 Mark the last string found with @samp{_()} (@code{po-mark-translatable}).
 
 @item M-.
address@hidden address@hidden, PO Mode command}
 Mark the last string found with a keyword taken from a set of possible
 keywords.  This command with a prefix allows some management of these
 keywords (@code{po-select-mark-and-mark}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
 The @kbd{,} (@code{po-tags-search}) command searches for the next
 occurrence of a string which looks like a possible candidate for
 translation, and displays the program source in another Emacs window,
@@ -1683,6 +1783,8 @@ @node Marking, c-format, Mark Keywords, 
 prefix) might also reinitialize the regular Emacs tags searching to the
 first tags file, this reinitialization might be considered spurious.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The @kbd{M-,} (@code{po-mark-translatable}) command will mark the
 recently found string with the @samp{_} keyword.  The @kbd{M-.}
 (@code{po-select-mark-and-mark}) command will request that you type
@@ -1787,6 +1889,8 @@ @node c-format, Special cases, Marking, 
 only a heuristic.  In the @file{.po} file the entry is marked using the
 @code{c-format} flag in the @kbd{#,} comment line (@pxref{PO Files}).
 
address@hidden address@hidden, and @code{xgettext}}
address@hidden address@hidden, and @code{xgettext}}
 The careful reader now might say that this again can cause problems.
 The heuristic might guess it wrong.  This is true and therefore
 @code{xgettext} knows about special kind of comment which lets
@@ -1823,6 +1927,7 @@ @node c-format, Special cases, Marking, 
 @node Special cases,  , c-format, Sources
 @section Special Cases of Translatable Strings
 
address@hidden marking string initializers
 The attentive reader might now point out that it is not always possible
 to mark translatable string with @code{gettext} or something like this.
 Consider the following case:
@@ -1915,6 +2020,7 @@ @node Special cases,  , c-format, Source
 
 @node Template, Creating, Sources, Top
 @chapter Making the PO Template File
address@hidden PO template file
 
 After preparing the sources, the programmer creates a PO template file.
 This section explains how to use @code{xgettext} for this purpose.
@@ -1932,6 +2038,7 @@ @node xgettext Invocation,  , Template, 
 
 @node Creating, Updating, Template, Top
 @chapter Creating a New PO File
address@hidden creating a new PO file
 
 When starting a new translation, the translator creates a file called
 @address@hidden, as a copy of the @address@hidden template
@@ -1964,6 +2071,7 @@ @node msginit Invocation, Header Entry, 
 
 @node Header Entry,  , msginit Invocation, Creating
 @section Filling in the Header Entry
address@hidden header entry of a PO file
 
 The initial comments "SOME DESCRIPTIVE TITLE", "YEAR" and
 "FIRST AUTHOR <EMAIL@@ADDRESS>, YEAR" ought to be replaced by sensible
@@ -1997,17 +2105,21 @@ @node Header Entry,  , msginit Invocatio
 your translation team, not only to make sure you don't do duplicated work,
 but also to coordinate difficult linguistic issues.
 
address@hidden list of translation teams, where to find
 In the Free Translation Project, each translation team has its own mailing
 list.  The up-to-date list of teams can be found at the Free Translation
-Project's homepage, @file{http://www.iro.umontreal.ca/contrib/po/HTML/},
+Project's homepage, @uref{http://www.iro.umontreal.ca/contrib/po/HTML/},
 in the "National teams" area.
 
 @item Content-Type
address@hidden encoding of characters in PO files
address@hidden charset of PO files
 Replace @samp{CHARSET} with the character encoding used for your language,
 in your locale, or UTF-8.  This field is needed for correct operation of the
 @code{msgmerge} and @code{msgfmt} programs, as well as for users whose
 locale's character encoding differs from yours (see @ref{Charset conversion}).
 
address@hidden @code{locale} program
 You get the character encoding of your locale by running the shell command
 @samp{locale charmap}.  If the result is @samp{C} or @samp{ANSI_X3.4-1968},
 which is equivalent to @samp{ASCII} (= @samp{US-ASCII}), it means that your
@@ -2015,6 +2127,7 @@ @node Header Entry,  , msginit Invocatio
 team which charset to use.  @samp{ASCII} is not usable for any language
 except Latin.
 
address@hidden supported character encodings
 Because the PO files must be portable to operating systems with less advanced
 internationalization facilities, the character encodings that can be used
 are limited to those supported by both GNU @code{libc} and GNU
@@ -2033,6 +2146,7 @@ @node Header Entry,  , msginit Invocatio
 In the GNU system, the following encodings are frequently used for the
 corresponding languages.
 
address@hidden encoding for your language
 @itemize
 @item @code{ISO-8859-1} for
  Afrikaans, Albanian, Basque, Catalan, Dutch, English, Estonian, Faroese,
@@ -2063,6 +2177,7 @@ @node Header Entry,  , msginit Invocatio
 @item @code{UTF-8} for any language, including those listed above.
 @end itemize
 
address@hidden quote characters, use in PO files
 When single quote characters or double quote characters are used in
 translations for your language, and your locale's encoding is one of the
 ISO-8859-* charsets, it is best if you create your PO files in UTF-8
@@ -2074,6 +2189,7 @@ @node Header Entry,  , msginit Invocatio
 vertical apostrophe and the vertical double quote instead (because that's
 what the character set conversion will transliterate them to).
 
address@hidden @code{xmodmap} program, and typing quote characters
 To enter such quote characters under X11, you can change your keyboard
 mapping using the @code{xmodmap} program.  The X11 names of the quote
 characters are "leftsinglequotemark", "rightsinglequotemark",
@@ -2122,29 +2238,37 @@ @node msgmerge Invocation, Translated En
 
 @node Translated Entries, Fuzzy Entries, msgmerge Invocation, Updating
 @section Translated Entries
address@hidden translated entries
 
 Each PO file entry for which the @code{msgstr} field has been filled with
 a translation, and which is not marked as fuzzy (@pxref{Fuzzy Entries}),
-is a said to be a @dfn{translated} entry.  Only translated entries will
+is said to be a @dfn{translated} entry.  Only translated entries will
 later be compiled by GNU @code{msgfmt} and become usable in programs.
 Other entry types will be excluded; translation will not occur for them.
 
address@hidden moving by translated entries (PO Mode)
 Some commands are more specifically related to translated entry processing.
 
 @table @kbd
 @item t
address@hidden address@hidden, PO Mode command}
 Find the next translated entry (@code{po-next-translated-entry}).
 
 @item T
address@hidden address@hidden, PO Mode command}
 Find the previous translated entry (@code{po-previous-translated-entry}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{t} (@code{po-next-translated-entry}) and @kbd{M-t}
 (@code{po-previous-translated-entry}) move forwards or backwards, chasing
 for an translated entry.  If none is found, the search is extended and
 wraps around in the PO file buffer.
 
address@hidden address@hidden, PO Mode variable}
 Translated entries usually result from the translator having edited in
 a translation for them, @ref{Modifying Translations}.  However, if the
 variable @code{po-auto-fuzzy-on-edit} is not @code{nil}, the entry having
@@ -2154,7 +2278,10 @@ @node Translated Entries, Fuzzy Entries,
 
 @node Fuzzy Entries, Untranslated Entries, Translated Entries, Updating
 @section Fuzzy Entries
address@hidden fuzzy entries
 
address@hidden attributes of a PO file entry
address@hidden attribute, fuzzy
 Each PO file entry may have a set of @dfn{attributes}, which are
 qualities given a name and explicitely associated with the translation,
 using a special system comment.  One of these attributes
@@ -2173,6 +2300,7 @@ @node Fuzzy Entries, Untranslated Entrie
 the intervention of the translator.  For this reason, @code{msgmerge}
 might mark some entries as being fuzzy.
 
address@hidden moving by fuzzy entries (PO Mode)
 Also, the translator may decide herself to mark an entry as fuzzy
 for her own convenience, when she wants to remember that the entry
 has to be later revisited.  So, some commands are more specifically
@@ -2180,22 +2308,29 @@ @node Fuzzy Entries, Untranslated Entrie
 
 @table @kbd
 @item z
address@hidden address@hidden, PO Mode command}
 @c better append "-entry" all the time. -ke-
 Find the next fuzzy entry (@code{po-next-fuzzy-entry}).
 
 @item Z
address@hidden address@hidden, PO Mode command}
 Find the previous fuzzy entry (@code{po-previous-fuzzy-entry}).
 
 @item @key{TAB}
address@hidden address@hidden, PO Mode command}
 Remove the fuzzy attribute of the current entry (@code{po-unfuzzy}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{z} (@code{po-next-fuzzy-entry}) and @kbd{Z}
 (@code{po-previous-fuzzy-entry}) move forwards or backwards, chasing for
 a fuzzy entry.  If none is found, the search is extended and wraps
 around in the PO file buffer.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode variable}
 The command @address@hidden (@code{po-unfuzzy}) removes the fuzzy
 attribute associated with an entry, usually leaving it translated.
 Further, if the variable @code{po-auto-select-on-unfuzzy} has not
@@ -2213,6 +2348,7 @@ @node Fuzzy Entries, Untranslated Entrie
 on the same blow.  If she is not satisfied yet, she merely uses @address@hidden
 to chase another entry, leaving the entry fuzzy.
 
address@hidden address@hidden, PO Mode command}
 The translator may also use the @address@hidden command
 (@code{po-fade-out-entry}) over any translated entry to mark it as being
 fuzzy, when she wants to easily leave a trace she wants to later return
@@ -2224,6 +2360,7 @@ @node Fuzzy Entries, Untranslated Entrie
 
 @node Untranslated Entries, Obsolete Entries, Fuzzy Entries, Updating
 @section Untranslated Entries
address@hidden untranslated entries
 
 When @code{xgettext} originally creates a PO file, unless told
 otherwise, it initializes the @code{msgid} field with the untranslated
@@ -2237,6 +2374,7 @@ @node Untranslated Entries, Obsolete Ent
 entries on the same level as active entries.  Untranslated entries
 are easily recognizable by the fact they end with @address@hidden ""}}.
 
address@hidden moving by untranslated entries (PO Mode)
 The work of the translator might be (quite naively) seen as the process
 of seeking for an untranslated entry, editing a translation for
 it, and repeating these actions until no untranslated entries remain.
@@ -2245,9 +2383,11 @@ @node Untranslated Entries, Obsolete Ent
 
 @table @kbd
 @item u
address@hidden address@hidden, PO Mode command}
 Find the next untranslated entry (@code{po-next-untranslated-entry}).
 
 @item U
address@hidden address@hidden, PO Mode command}
 Find the previous untranslated entry (@code{po-previous-untransted-entry}).
 
 @item k
@@ -2255,6 +2395,9 @@ @node Untranslated Entries, Obsolete Ent
 
 @end table
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{u} (@code{po-next-untranslated-entry}) and @kbd{M-u}
 (@code{po-previous-untransted-entry}) move forwards or backwards,
 chasing for an untranslated entry.  If none is found, the search is
@@ -2270,6 +2413,7 @@ @node Untranslated Entries, Obsolete Ent
 
 @node Obsolete Entries, Modifying Translations, Untranslated Entries, Updating
 @section Obsolete Entries
address@hidden obsolete entries
 
 By @dfn{obsolete} PO file entries, we mean those entries which are
 commented out, usually by @code{msgmerge} when it found that the
@@ -2287,22 +2431,29 @@ @node Obsolete Entries, Modifying Transl
 may apply to obsolete entries, carefully leaving the entry obsolete
 after the fact.
 
address@hidden moving by obsolete entries (PO Mode)
 Moreover, some commands are more specifically related to obsolete
 entry processing.
 
 @table @kbd
 @item o
address@hidden address@hidden, PO Mode command}
 Find the next obsolete entry (@code{po-next-obsolete-entry}).
 
 @item O
address@hidden address@hidden, PO Mode command}
 Find the previous obsolete entry (@code{po-previous-obsolete-entry}).
 
 @item @key{DEL}
address@hidden address@hidden, PO Mode command}
 Make an active entry obsolete, or zap out an obsolete entry
 (@code{po-fade-out-entry}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{o} (@code{po-next-obsolete-entry}) and @kbd{M-o}
 (@code{po-previous-obsolete-entry}) move forwards or backwards,
 chasing for an obsolete entry.  If none is found, the search is
@@ -2314,6 +2465,9 @@ @node Obsolete Entries, Modifying Transl
 in the program sources.  This goes with the philosophy of never
 introducing useless @code{msgid} values.
 
address@hidden address@hidden, PO Mode command}
address@hidden obsolete active entry
address@hidden comment out PO file entry
 However, it is possible to comment out an active entry, so making
 it obsolete.  GNU @code{gettext} utilities will later react to the
 disappearance of a translation by using the untranslated string.
@@ -2338,6 +2492,7 @@ @node Obsolete Entries, Modifying Transl
 
 @node Modifying Translations, Modifying Comments, Obsolete Entries, Updating
 @section Modifying Translations
address@hidden editing translations
 
 PO mode prevents direct modification of the PO file, by the usual
 means Emacs gives for altering a buffer's contents.  By doing so,
@@ -2356,26 +2511,33 @@ @node Modifying Translations, Modifying 
 
 @table @kbd
 @item @key{RET}
address@hidden address@hidden, PO Mode command}
 Interactively edit the translation (@code{po-edit-msgstr}).
 
 @item @key{LFD}
 @itemx C-j
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 Reinitialize the translation with the original, untranslated string
 (@code{po-msgid-to-msgstr}).
 
 @item k
address@hidden address@hidden, PO Mode command}
 Save the translation on the kill ring, and delete it (@code{po-kill-msgstr}).
 
 @item w
address@hidden address@hidden, PO Mode command}
 Save the translation on the kill ring, without deleting it
 (@code{po-kill-ring-save-msgstr}).
 
 @item y
address@hidden address@hidden, PO Mode command}
 Replace the translation, taking the new from the kill ring
 (@code{po-yank-msgstr}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
 The command @address@hidden (@code{po-edit-msgstr}) opens a new Emacs
 window meant to edit in a new translation, or to modify an already existing
 translation.  The new window contains a copy of the translation taken from
@@ -2386,17 +2548,20 @@ @node Modifying Translations, Modifying 
 results, or @address@hidden C-k}} to abort her modifications.  @xref{Subedit},
 for more information.
 
address@hidden address@hidden, PO Mode command}
 The command @address@hidden (@code{po-msgid-to-msgstr}) initializes, or
 reinitializes the translation with the original string.  This command is
 normally used when the translator wants to redo a fresh translation of
 the original string, disregarding any previous work.
 
address@hidden address@hidden, PO Mode variable}
 It is possible to arrange so, whenever editing an untranslated
 entry, the @address@hidden command be automatically executed.  If you set
 @code{po-auto-edit-with-msgid} to @code{t}, the translation gets
 initialised with the original string, in case none exists already.
 The default value for @code{po-auto-edit-with-msgid} is @code{nil}.
 
address@hidden starting a string translation
 In fact, whether it is best to start a translation with an empty
 string, or rather with a copy of the original string, is a matter of
 taste or habit.  Sometimes, the source language and the
@@ -2408,6 +2573,9 @@ @node Modifying Translations, Modifying 
 progressively overwrite the original text with the translation, even
 if this requires some extra editing work to get rid of the original.
 
address@hidden cut and paste for translated strings
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The command @kbd{k} (@code{po-kill-msgstr}) merely empties the
 translation string, so turning the entry into an untranslated
 one.  But while doing so, its previous contents is put apart in
@@ -2433,6 +2601,7 @@ @node Modifying Translations, Modifying 
 into their corresponding characters.  In the special case of obsolete
 entries, the translation is also uncommented prior to saving.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{y} (@code{po-yank-msgstr}) completely replaces the
 translation of the current entry by a string taken from the kill ring.
 Following Emacs terminology, we then say that the replacement
@@ -2460,6 +2629,7 @@ @node Modifying Translations, Modifying 
 on the kill ring.  The main exceptions to this general rule are the
 yanking commands themselves.
 
address@hidden using obsolete translations to make new entries
 To better illustrate the operation of killing and yanking, let's
 use an actual example, taken from a common situation.  When the
 programmer slightly modifies some string right in the program, his
@@ -2492,6 +2662,7 @@ @node Modifying Translations, Modifying 
 
 @node Modifying Comments, Subedit, Modifying Translations, Updating
 @section Modifying Comments
address@hidden editing comments in PO files
 
 Any translation work done seriously will raise many linguistic
 difficulties, for which decisions have to be made, and the choices
@@ -2513,17 +2684,21 @@ @node Modifying Comments, Subedit, Modif
 @table @kbd
 
 @item #
address@hidden address@hidden, PO Mode command}
 Interactively edit the translator comments (@code{po-edit-comment}).
 
 @item K
address@hidden address@hidden, PO Mode command}
 Save the translator comments on the kill ring, and delete it
 (@code{po-kill-comment}).
 
 @item W
address@hidden address@hidden, PO Mode command}
 Save the translator comments on the kill ring, without deleting it
 (@code{po-kill-ring-save-comment}).
 
 @item Y
address@hidden address@hidden, PO Mode command}
 Replace the translator comments, taking the new from the kill ring
 (@code{po-yank-comment}).
 
@@ -2536,6 +2711,7 @@ @node Modifying Comments, Subedit, Modif
 slightly succinct, it is because the full details have already been given.
 @xref{Modifying Translations}.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{#} (@code{po-edit-comment}) opens a new Emacs window
 containing a copy of the translator comments on the current PO file entry.
 If there are no such comments, PO mode understands that the translator wants
@@ -2547,9 +2723,13 @@ @node Modifying Comments, Subedit, Modif
 allow the translator to tell she is finished with editing the comment.
 @xref{Subedit}, for further details.
 
address@hidden address@hidden, PO Mode variable}
 Functions found on @code{po-subedit-mode-hook}, if any, are executed after
 the string has been inserted in the edit buffer.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The command @kbd{K} (@code{po-kill-comment}) gets rid of all
 translator comments, while saving those comments on the kill ring.
 The command @kbd{W} (@code{po-kill-ring-save-comment}) takes
@@ -2583,6 +2763,7 @@ @node Modifying Comments, Subedit, Modif
 
 @node Subedit, C Sources Context, Modifying Comments, Updating
 @section Details of Sub Edition
address@hidden subedit minor mode
 
 The PO subedit minor mode has a few peculiarities worth being described
 in fuller detail.  It installs a few commands over the usual editing set
@@ -2590,23 +2771,29 @@ @node Subedit, C Sources Context, Modify
 
 @table @kbd
 @item C-c C-c
address@hidden C-c address@hidden, PO Mode command}
 Complete edition (@code{po-subedit-exit}).
 
 @item C-c C-k
address@hidden C-c address@hidden, PO Mode command}
 Abort edition (@code{po-subedit-abort}).
 
 @item C-c C-a
address@hidden C-c address@hidden, PO Mode command}
 Consult auxiliary PO files (@code{po-subedit-cycle-auxiliary}).
 
 @end table
 
address@hidden exiting PO subedit
address@hidden address@hidden, PO Mode command}
 The window's contents represents a translation for a given message,
 or a translator comment.  The translator may modify this window to
-her heart's content.  Once this done, the command @address@hidden C-c}}
+her heart's content.  Once this is done, the command @address@hidden C-c}}
 (@code{po-subedit-exit}) may be used to return the edited translation into
 the PO file, replacing the original translation, even if it moved out of
 sight or if buffers were switched.
 
address@hidden address@hidden, PO Mode command}
 If the translator becomes unsatisfied with her translation or comment,
 to the extent she prefers keeping what was existent prior to the
 @address@hidden or @kbd{#} command, she may use the command @address@hidden 
C-k}}
@@ -2615,6 +2802,7 @@ @node Subedit, C Sources Context, Modify
 normally with @address@hidden C-c}}, then type @code{U} once for undoing the
 whole effect of last edition.
 
address@hidden address@hidden, PO Mode command}
 The command @address@hidden C-a}} (@code{po-subedit-cycle-auxiliary})
 allows for glancing through translations
 already achieved in other languages, directly while editing the current
@@ -2642,6 +2830,7 @@ @node Subedit, C Sources Context, Modify
 the delimiting @kbd{<} may not be removed; so the string should appear,
 in the editing window, as ending with two @kbd{<} in a row.
 
address@hidden editing multiple entries
 When a translation (or a comment) is being edited, the translator may move
 the cursor back into the PO file buffer and freely move to other entries,
 browsing at will.  If, with an edition pending, the translator wanders in the
@@ -2652,6 +2841,7 @@ @node Subedit, C Sources Context, Modify
 on a field already being edited merely resumes that particular edit.  Yet,
 the translator should better be comfortable at handling many Emacs windows!
 
address@hidden pending subedits
 Pending subedits may be completed or aborted in any order, regardless
 of how or when they were started.  When many subedits are pending and the
 translator asks for quitting the PO file (with the @kbd{q} command), subedits
@@ -2659,6 +2849,9 @@ @node Subedit, C Sources Context, Modify
 
 @node C Sources Context, Auxiliary, Subedit, Updating
 @section C Sources Context
address@hidden consulting program sources
address@hidden looking at the source to aid translation
address@hidden use the source, Luke
 
 PO mode is particularily powerful when used with PO files
 created through GNU @code{gettext} utilities, as those utilities
@@ -2687,28 +2880,35 @@ @node C Sources Context, Auxiliary, Sube
 variable and function names (if he dared chosing them well), and
 overall organization, than to programmation itself.
 
address@hidden find source fragment for a PO file entry
 The following commands are meant to help the translator at getting
 program source context for a PO file entry.
 
 @table @kbd
 @item s
address@hidden address@hidden, PO Mode command}
 Resume the display of a program source context, or cycle through them
 (@code{po-cycle-source-reference}).
 
 @item M-s
address@hidden address@hidden, PO Mode command}
 Display of a program source context selected by menu
 (@code{po-select-source-reference}).
 
 @item S
address@hidden address@hidden, PO Mode command}
 Add a directory to the search path for source files
 (@code{po-consider-source-path}).
 
 @item M-S
address@hidden address@hidden, PO Mode command}
 Delete a directory from the search path for source files
 (@code{po-ignore-source-path}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 The commands @kbd{s} (@code{po-cycle-source-reference}) and @kbd{M-s}
 (@code{po-select-source-reference}) both open another window displaying
 some source program file, and already positioned in such a way that
@@ -2745,6 +2945,8 @@ @node C Sources Context, Auxiliary, Sube
 This command is useful only where there are really many contexts
 available for a single string to translate.
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 Program source files are usually found relative to where the PO
 file stands.  As a special provision, when this fails, the file is
 also looked for, but relative to the directory immediately above it.
@@ -2761,6 +2963,7 @@ @node C Sources Context, Auxiliary, Sube
 
 @node Auxiliary, Compendium, C Sources Context, Updating
 @section Consulting Auxiliary PO Files
address@hidden consulting translations to other languages
 
 PO mode is able to help the knowledgeable translator, being fluent in
 many languages, at taking advantage of translations already achieved
@@ -2769,6 +2972,7 @@ @node Auxiliary, Compendium, C Sources C
 it has features to ease the production of translations for many languages
 at once, for translators preferring to work in this way.
 
address@hidden auxiliary PO file
 An @dfn{auxiliary} PO file is an existing PO file meant for the same
 package the translator is working on, but targeted to a different mother
 tongue language.  Commands exist for declaring and handling auxiliary
@@ -2778,25 +2982,32 @@ @node Auxiliary, Compendium, C Sources C
 
 @table @kbd
 @item a
address@hidden address@hidden, PO Mode command}
 Seek auxiliary files for another translation for the same entry
 (@code{po-cycle-auxiliary}).
 
 @item C-c C-a
address@hidden C-c address@hidden, PO Mode command}
 Switch to a particular auxiliary file (@code{po-select-auxiliary}).
 
 @item A
address@hidden address@hidden, PO Mode command}
 Declare this PO file as an auxiliary file (@code{po-consider-as-auxiliary}).
 
 @item M-A
address@hidden address@hidden, PO Mode command}
 Remove this PO file from the list of auxiliary files
 (@code{po-ignore-as-auxiliary}).
 
 @end table
 
address@hidden address@hidden, PO Mode command}
address@hidden address@hidden, PO Mode command}
 Command @kbd{A} (@code{po-consider-as-auxiliary}) adds the current
 PO file to the list of auxiliary files, while command @kbd{M-A}
 (@code{po-ignore-as-auxiliary} just removes it.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{a} (@code{po-cycle-auxiliary}) seeks all auxiliary PO
 files, round-robin, searching for a translated entry in some other language
 having an @code{msgid} field identical as the one for the current entry.
@@ -2806,6 +3017,7 @@ @node Auxiliary, Compendium, C Sources C
 in this newly displayed PO file will seek another PO file, and so on,
 so repeating @kbd{a} will eventually yield back the original PO file.
 
address@hidden address@hidden, PO Mode command}
 The command @kbd{C-c C-a} (@code{po-select-auxiliary}) asks the translator
 for her choice of a particular auxiliary file, with completion, and
 then switches to that selected PO file.  The command also checks if
@@ -2821,6 +3033,7 @@ @node Auxiliary, Compendium, C Sources C
 expected to be much a problem in practice, as most existing PO files have
 their @code{msgid} entries written by the same GNU @code{gettext} tools.
 
address@hidden address@hidden, PO Mode command}
 However, PO files initially created by PO mode itself, while marking
 strings in source files, are normalised differently.  So are PO
 files resulting of the the @samp{M-x normalize} command.  Until these
@@ -2829,7 +3042,9 @@ @node Auxiliary, Compendium, C Sources C
 
 @node Compendium,  , Auxiliary, Updating
 @section Using Translation Compendia
address@hidden using translation compendia
 
address@hidden compendium
 A @dfn{compendium} is a special PO file containing a set of
 translations recurring in many different packages.  The translator can
 use gettext tools to build a new compendium, to add entries to her
@@ -2843,14 +3058,17 @@ @node Compendium,  , Auxiliary, Updating
 
 @node Creating Compendia, Using Compendia, Compendium, Compendium
 @subsection Creating Compendia
address@hidden creating compendia
 
 Basically every PO file consisting of translated entries only can be
-declared as a valid compendium.  Often the translater wants to have
+declared as a valid compendium.  Often the translator wants to have
 special compendia; let's consider two cases: @cite{concatenating PO
 files} and @cite{extracting a message subset from a PO file}.
 
 @subsubsection Concatenate PO Files
 
address@hidden concatenating PO files into a compendium
address@hidden accumulating translations
 To concatenate several valid PO files into one compendium file you can
 use @command{msgcomm} or @command{msgcat} (the latter preferred):
 
@@ -2916,6 +3134,7 @@ @node Creating Compendia, Using Compendi
 @option{--no-obsolete-entries}.)
 
 @subsubsection Extract a Message Subset from a PO File
address@hidden extracting parts of a PO file into a compendium
 
 Nobody wants to translate the same messages again and again; thus you
 may wish to have a compendium file containing @file{getopt.c} messages.
@@ -2935,6 +3154,7 @@ @node Using Compendia,  , Creating Compe
 or to update an already existing translation.
 
 @subsubsection Initialize a New Translation File
address@hidden initialize translations from a compendium
 
 Since a PO file with translations does not exist the translator can
 merely use @file{/dev/null} to fake the ``old'' translation file.
@@ -2944,6 +3164,7 @@ @node Using Compendia,  , Creating Compe
 @end example
 
 @subsubsection Update an Existing Translation File
address@hidden update translations from a compendium
 
 Concatenate the compendium file(s) and the existing PO, merge the
 result with the POT file and remove the obsolete entries (optional,
@@ -2956,6 +3177,7 @@ @node Using Compendia,  , Creating Compe
 
 @node Manipulating, Binaries, Updating, Top
 @chapter Manipulating PO Files
address@hidden manipulating PO files
 
 Sometimes it is necessary to manipulate PO files in a way that is better
 performed automatically than by hand.  GNU @code{gettext} includes a
@@ -2980,8 +3202,8 @@ @node Manipulating, Binaries, Updating, 
 that source file and use @samp{msgmerge}.
 
 When a translator wants to adjust some translation catalog for a special
-dialect or orthography - for example, German as written in Switzerland
-versus German as written in Germany -, she needs to apply some text
+dialect or orthography --- for example, German as written in Switzerland
+versus German as written in Germany --- she needs to apply some text
 processing to every message in the catalog.  The tool for doing this is
 @samp{msgfilter}.
 
@@ -3098,10 +3320,12 @@ @node msgunfmt Invocation, MO Files, msg
 
 @node MO Files,  , msgunfmt Invocation, Binaries
 @section The Format of GNU MO Files
address@hidden format of MO files
 
 The format of the generated MO files is best described by a picture,
 which appears below.
 
address@hidden magic signature of MO files
 The first two words serve the identification of the file.  The magic
 number will always signal GNU MO files.  The number is stored in the
 byte order of the generating machine, so the magic number really is
@@ -3270,6 +3494,9 @@ @node Users, Programmers, Binaries, Top
 
 @node Matrix, Installers, Users, Users
 @section The Current @file{ABOUT-NLS} Matrix
address@hidden Translation Matrix
address@hidden what translations are available
address@hidden @file{ABOUT-NLS} file
 
 Languages are not equally supported in all packages using GNU
 @code{gettext}.  To know if some package uses GNU @code{gettext}, one
@@ -3292,6 +3519,8 @@ @node Matrix, Installers, Users, Users
 
 @node Installers, End Users, Matrix, Users
 @section Magic for Installers
address@hidden package build and installation options
address@hidden setting up @code{gettext} at build time
 
 By default, packages fully using GNU @code{gettext}, internally,
 are installed in such a way that they to allow translation of
@@ -3306,6 +3535,7 @@ @node Installers, End Users, Matrix, Use
 while @samp{./configure --disable-nls}
 produces programs totally unable to translate messages.
 
address@hidden address@hidden, environment variable}
 Internationalized packages have usually many @address@hidden
 files.  Unless
 translations are disabled, all those available are installed together
@@ -3316,7 +3546,10 @@ @node Installers, End Users, Matrix, Use
 
 @node End Users,  , Installers, Users
 @section Magic for End Users
address@hidden setting up @code{gettext} at run time
address@hidden selecting message language
 
address@hidden address@hidden, environment variable}
 We consider here those packages using GNU @code{gettext} internally,
 and for which the installers did not disable translation at
 @emph{configure} time.  Then, users only have to set the @code{LANG}
@@ -3354,6 +3587,7 @@ @node Programmers, Translators, Users, T
 
 @node catgets, gettext, Programmers, Programmers
 @section About @code{catgets}
address@hidden @code{catgets}, X/Open specification
 
 The @code{catgets} implementation is defined in the X/Open Portability
 Guide, Volume 3, XSI Supplementary Definitions, Chapter 5.  But the
@@ -3383,6 +3617,7 @@ @node catgets, gettext, Programmers, Pro
 
 @node Interface to catgets, Problems with catgets, catgets, catgets
 @subsection The Interface
address@hidden interface to @code{catgets}
 
 The interface to the @code{catgets} implementation consists of three
 functions which correspond to those used in file access: @code{catopen}
@@ -3391,6 +3626,7 @@ @node Interface to catgets, Problems wit
 for the functions and the needed definitions are in the
 @code{<nl_types.h>} header file.
 
address@hidden address@hidden, a @code{catgets} function}
 @code{catopen} is used like in this:
 
 @example
@@ -3404,6 +3640,7 @@ @node Interface to catgets, Problems wit
 is to use @code{0} as the value.  The return value is a handle to the
 message catalog, equivalent to handles to file returned by @code{open}.
 
address@hidden address@hidden, a @code{catgets} function}
 This handle is of course used in the @code{catgets} function which can
 be used like this:
 
@@ -3430,6 +3667,7 @@ @node Interface to catgets, Problems wit
 1988, one year before ANSI C.
 
 @noindent
address@hidden address@hidden, A @code{catgets} function}
 The last of these function functions is used and behaves as expected:
 
 @example
@@ -3440,9 +3678,10 @@ @node Interface to catgets, Problems wit
 
 @node Problems with catgets,  , Interface to catgets, catgets
 @subsection Problems with the @code{catgets} Interface?!
address@hidden problems with @code{catgets} interface
 
 Now that this description seemed to be really easy --- where are the
-problem we speak of?  In fact the interface could be used in a
+problems we speak of?  In fact the interface could be used in a
 reasonable way, but constructing the message catalogs is a pain.  The
 reason for this lies in the third argument of @code{catgets}: the unique
 message ID.  This has to be a numeric value for all messages in a single
@@ -3455,6 +3694,7 @@ @node Problems with catgets,  , Interfac
 
 @node gettext, Comparison, catgets, Programmers
 @section About @code{gettext}
address@hidden @code{gettext}, a programmer's view
 
 The definition of the @code{gettext} interface comes from a Uniforum
 proposal and it is followed by at least one major Unix vendor
@@ -3485,6 +3725,7 @@ @node gettext, Comparison, catgets, Prog
 
 @node Interface to gettext, Ambiguities, gettext, gettext
 @subsection The Interface
address@hidden @code{gettext} interface
 
 The minimal functionality an interface must have is a) to select a
 domain the strings are coming from (a single domain for all programs is
@@ -3517,6 +3758,7 @@ @node Interface to gettext, Ambiguities,
 char *gettext (const char *msgid);
 @end example
 
address@hidden
 is to be used.  This is the simplest reasonable form one can imagine.
 The translation of the string @var{msgid} is returned if it is available
 in the current domain.  If not available the argument itself is
@@ -3537,6 +3779,8 @@ @node Interface to gettext, Ambiguities,
 
 @node Ambiguities, Locating Catalogs, Interface to gettext, gettext
 @subsection Solving Ambiguities
address@hidden several domains
address@hidden domain ambiguities
 
 While this single name domain works well for most applications there
 might be the need to get translations from more than one domain.  Of
@@ -3596,6 +3840,7 @@ @node Ambiguities, Locating Catalogs, In
 
 @node Locating Catalogs, Charset conversion, Ambiguities, gettext
 @subsection Locating Message Catalog Files
address@hidden message catalog files location
 
 Because many different languages for many different packages have to be
 stored we need some way to add these information to file message catalog
@@ -3631,6 +3876,7 @@ @node Locating Catalogs, Charset convers
 
 @node Charset conversion, Plural forms, Locating Catalogs, gettext
 @subsection How to specify the output character set @code{gettext} uses
address@hidden charset conversion
 
 @code{gettext} not only looks up a translation in a message catalog.  It
 also converts the translation on the fly to the desired output character
@@ -3677,6 +3923,7 @@ @node Charset conversion, Plural forms, 
 
 @node Plural forms, GUI program problems, Charset conversion, gettext
 @subsection Additional functions for plural forms
address@hidden plural forms
 
 The functions of the @code{gettext} family described so far (and all the
 @code{catgets} functions as well) have one problem in the real world
@@ -3709,7 +3956,7 @@ @node Plural forms, GUI program problems
 that is all.  Once again people fell into the trap of believing the
 rules their language is using are universal.  But the handling of plural
 forms differs widely between the language families.  For example,
-Rafal Maszkowski @code{<rzm@@mat.uni.torun.pl>} reports:
address@hidden@@mat.uni.torun.pl, Rafal Maszkowski} reports:
 
 @quotation
 In Polish we use e.g. plik (file) this way:
@@ -3729,7 +3976,7 @@ @node Plural forms, GUI program problems
 
 @itemize @bullet
 @item
-The form how plural forms are build differs.  This is a problem with
+The form how plural forms are built differs.  This is a problem with
 languages which have many irregularities.  German, for instance, is a
 drastic case.  Though English and German are part of the same language
 family (Germanic), the almost regular forming of plural noun forms
@@ -3814,6 +4061,9 @@ @node Plural forms, GUI program problems
 hardcoding the information in the code (which still would require the
 possibility of extensions to not prevent the use of new languages).
 
address@hidden specifying plural form in a PO file
address@hidden address@hidden, in a PO file header}
address@hidden address@hidden, in a PO file header}
 The information about the plural form selection has to be stored in the
 header entry of the PO file (the one with the empty @code{msgid} string).
 The plural form information looks like this:
@@ -3835,6 +4085,7 @@ @node Plural forms, GUI program problems
 value of @code{nplurals}.
 
 @noindent
address@hidden known rules for plurals
 The following rules are known at this point.  The language with families
 are listed.  But this does not necessarily mean the information can be
 generalized for the whole family (as can be easily seen in the table
@@ -4007,6 +4258,8 @@ @node Plural forms, GUI program problems
 
 @node GUI program problems, Optimized gettext, Plural forms, gettext
 @subsection How to use @code{gettext} in GUI programs
address@hidden GUI programs
address@hidden translating menu entries
 
 One place where the @code{gettext} functions, if used normally, have big
 problems is within programs with graphical user interfaces (GUIs).  The
@@ -4127,6 +4380,7 @@ @node GUI program problems, Optimized ge
 
 @node Optimized gettext,  , GUI program problems, gettext
 @subsection Optimization of the *gettext functions
address@hidden optimization of @code{gettext} functions
 
 At this point of the discussion we should talk about an advantage of the
 GNU @code{gettext} implementation.  Some readers might have pointed out
@@ -4174,6 +4428,8 @@ @node Optimized gettext,  , GUI program 
 
 @node Comparison, Using libintl.a, gettext, Programmers
 @section Comparing the Two Interfaces
address@hidden @code{gettext} vs @code{catgets}
address@hidden comparison of interfaces
 
 @c FIXME: arguments to catgets vs. gettext
 @c Partly done 950718 -- drepper
@@ -4223,6 +4479,7 @@ @node Comparison, Using libintl.a, gette
 program which does not depend on translations to be available, but which
 can use any that becomes available.
 
address@hidden address@hidden, a @code{gettext} macro}
 The same procedure can be done for the @code{gettext_noop} invocations
 (@pxref{Special cases}).  One usually defines @code{gettext_noop} as a
 no-op macro.  So you should consider the following code for your project:
@@ -4304,6 +4561,7 @@ @node gettext grok, Temp Programmers, Us
 
 @itemize @bullet
 @item Changing the language at runtime
address@hidden language selection at runtime
 
 For interactive programs it might be useful to offer a selection of the
 used language at runtime.  To understand how to do this one need to know
@@ -4351,6 +4609,7 @@ @node gettext grok, Temp Programmers, Us
   @}
 @end example
 
address@hidden _nl_msg_cat_cntr
 The variable @code{_nl_msg_cat_cntr} is defined in @file{loadmsgcat.c}.
 The programmer will find himself in need for a construct like this only
 when developing programs which do run longer and provide the user to
@@ -4897,6 +5156,7 @@ @node Information Flow,  , Organization,
 
 @node Maintainers, Programming Languages, Translators, Top
 @chapter The Maintainer's View
address@hidden package maintainer's view of @code{gettext}
 
 The maintainer of a package has many responsibilities.  One of them
 is ensuring that the package will install easily on many platforms,
@@ -4960,6 +5220,7 @@ @node Flat and Non-Flat, Prerequisites, 
 
 @node Prerequisites, gettextize Invocation, Flat and Non-Flat, Maintainers
 @section Prerequisite Works
address@hidden converting a package to @code{gettext}
 
 There are some works which are required for using GNU @code{gettext}
 in one of your package.  These works have some kind of generality
@@ -5042,6 +5303,7 @@ @node Prerequisites, gettextize Invocati
 
 @node gettextize Invocation, Adjusting Files, Prerequisites, Maintainers
 @section Invoking the @code{gettextize} Program
address@hidden @code{gettextize} program
 
 Some files are consistently and identically needed in every package
 internationalized through GNU @code{gettext}.  As a matter of
@@ -5058,6 +5320,8 @@ @node gettextize Invocation, Adjusting F
 @table @samp
 @item -c
 @itemx --copy
address@hidden address@hidden, @code{gettextize} option}
address@hidden address@hidden, @code{gettextize} option}
 Copy the needed files instead of making symbolic links.  Using links
 would allow the package to always use the latest @code{gettext} code
 available on the system, but it might disturb some mechanism the
@@ -5066,9 +5330,12 @@ @node gettextize Invocation, Adjusting F
 
 @item -f
 @itemx --force
address@hidden address@hidden, @code{gettextize} option}
address@hidden address@hidden, @code{gettextize} option}
 Force replacement of files which already exist.
 
 @item --intl
address@hidden address@hidden, @code{gettextize} option}
 Install the libintl sources in a subdirectory named @file{intl/}.
 This libintl will be used to provide internationalization on systems
 that don't have GNU libintl installed. If this option is omitted,
@@ -5078,9 +5345,12 @@ @node gettextize Invocation, Adjusting F
 
 @item -h
 @itemx --help
address@hidden address@hidden, @code{gettextize} option}
address@hidden address@hidden, @code{gettextize} option}
 Display this help and exit.
 
 @item --version
address@hidden address@hidden, @code{gettextize} option}
 Output version information and exit.
 
 @end table
@@ -5149,6 +5419,7 @@ @node gettextize Invocation, Adjusting F
 
 @node Adjusting Files, autoconf macros, gettextize Invocation, Maintainers
 @section Files You Must Create or Alter
address@hidden @code{gettext} files
 
 Besides files which are automatically added through @code{gettextize},
 there are many files needing revision for properly interacting with
@@ -5181,6 +5452,7 @@ @node Adjusting Files, autoconf macros, 
 
 @node po/POTFILES.in, po/LINGUAS, Adjusting Files, Adjusting Files
 @subsection @file{POTFILES.in} in @file{po/}
address@hidden @file{POTFILES.in} file
 
 The @file{po/} directory should receive a file named
 @file{POTFILES.in}.  This file tells which files, among all program
@@ -5213,6 +5485,7 @@ @node po/POTFILES.in, po/LINGUAS, Adjust
 
 @node po/LINGUAS, po/Makevars, po/POTFILES.in, Adjusting Files
 @subsection @file{LINGUAS} in @file{po/}
address@hidden @file{LINGUAS} file
 
 The @file{po/} directory should also receive a file named
 @file{LINGUAS}.  This file contains the list of available translations.
@@ -5236,6 +5509,7 @@ @node po/LINGUAS, po/Makevars, po/POTFIL
 
 @node po/Makevars, configure.in, po/LINGUAS, Adjusting Files
 @subsection @file{Makefile} pieces in @file{po/}
address@hidden @file{Makevars} file
 
 The @file{po/} directory also has a file named @file{Makevars}.
 It can be left unmodified if your package has a single message domain
@@ -5271,6 +5545,7 @@ @node configure.in, config.guess, po/Mak
 
 @enumerate
 @item Declare the package and version.
address@hidden package and version declaration in @file{configure.in}
 
 This is done by a set of lines like these:
 
@@ -5358,6 +5633,7 @@ @node config.guess, aclocal, configure.i
 
 @node aclocal, acconfig, config.guess, Adjusting Files
 @subsection @file{aclocal.m4} at top level
address@hidden @file{aclocal.m4} file
 
 If you do not have an @file{aclocal.m4} file in your distribution,
 the simplest is to concatenate the files @file{codeset.m4},
@@ -5385,6 +5661,7 @@ @node aclocal, acconfig, config.guess, A
 
 @node acconfig, Makefile, aclocal, Adjusting Files
 @subsection @file{acconfig.h} at top level
address@hidden @file{acconfig.h} file
 
 Earlier GNU @code{gettext} releases required to put definitions for
 @code{ENABLE_NLS}, @code{HAVE_GETTEXT} and @code{HAVE_LC_MESSAGES},
@@ -5566,6 +5843,8 @@ @node src/Makefile,  lib/gettext.h, Make
 
 @node lib/gettext.h,  , src/Makefile, Adjusting Files
 @subsection @file{gettext.h} in @file{lib/}
address@hidden @file{gettext.h} file
address@hidden turning off NLS support
 
 Internationalization of packages, as provided by GNU @code{gettext}, is
 optional. It can be turned off in two situations:
@@ -5623,6 +5902,7 @@ @node lib/gettext.h,  , src/Makefile, Ad
 
 @node autoconf macros,  , Adjusting Files, Maintainers
 @section Autoconf macros for use in @file{configure.in}
address@hidden autoconf macros for @code{gettext}
 
 GNU @code{gettext} installs macros for use in a package's
 @file{configure.in} or @file{configure.ac}.
@@ -5637,6 +5917,7 @@ @node autoconf macros,  , Adjusting File
 @node AM_GNU_GETTEXT, AM_ICONV, autoconf macros, autoconf macros
 @subsection AM_GNU_GETTEXT in @file{gettext.m4}
 
address@hidden address@hidden, autoconf macro}
 The @code{AM_GNU_GETTEXT} macro tests for the presence of the GNU gettext
 function family in either the C library or a separate @code{libintl}
 library (shared or static libraries are both supported) or in the package's
@@ -5683,6 +5964,7 @@ @node AM_GNU_GETTEXT, AM_ICONV, autoconf
 
 @itemize @bullet
 @item
address@hidden @code{libintl} library
 Some operating systems have @code{gettext} in the C library, for example
 glibc. Some have it in a separate library @code{libintl}. GNU @code{libintl}
 might have been installed as part of the GNU @code{gettext} package.
@@ -5715,6 +5997,7 @@ @node AM_GNU_GETTEXT, AM_ICONV, autoconf
 @node AM_ICONV,  , AM_GNU_GETTEXT, autoconf macros
 @subsection AM_ICONV in @file{iconv.m4}
 
address@hidden address@hidden, autoconf macro}
 The @code{AM_ICONV} macro tests for the presence of the POSIX
 @code{iconv} function family in either the C library or a separate
 @code{libiconv} library. If found, it sets the @code{am_cv_func_iconv}
@@ -5733,6 +6016,7 @@ @node AM_ICONV,  , AM_GNU_GETTEXT, autoc
 
 @itemize @bullet
 @item
address@hidden @code{libiconv} and @code{iconv} libraries
 Some operating systems have @code{iconv} in the C library, for example
 glibc. Some have it in a separate library @code{libiconv}, for example
 OSF/1 or FreeBSD. Regardless of the operating system, GNU @code{libiconv}
@@ -5782,6 +6066,7 @@ @node Programming Languages, Conclusion,
 
 @node Language Implementors, Programmers for other Languages, Programming 
Languages, Programming Languages
 @section The Language Implementor's View
address@hidden language implementations and @code{gettext}
 
 All programming and scripting languages that have the notion of strings
 are eligible to supporting @code{gettext}.  Supporting @code{gettext}
@@ -5952,6 +6237,7 @@ @node List of Programming Languages, Lis
 
 @node C, sh, List of Programming Languages, List of Programming Languages
 @subsection C, C++, Objective C
address@hidden C and C-like languages
 
 @table @asis
 @item RPMs
@@ -6004,6 +6290,7 @@ @node C, sh, List of Programming Languag
 
 @node sh, bash, C, List of Programming Languages
 @subsection sh - Shell Script
address@hidden shell scripts
 
 @table @asis
 @item RPMs
@@ -6051,6 +6338,7 @@ @node sh, bash, C, List of Programming L
 
 @node bash, Python, sh, List of Programming Languages
 @subsection bash - Bourne-Again Shell Script
address@hidden bash
 
 @table @asis
 @item RPMs
@@ -6098,6 +6386,7 @@ @node bash, Python, sh, List of Programm
 
 @node Python, Common Lisp, bash, List of Programming Languages
 @subsection Python
address@hidden Python
 
 @table @asis
 @item RPMs
@@ -6150,6 +6439,7 @@ @node Python, Common Lisp, bash, List of
 
 @node Common Lisp, clisp C, Python, List of Programming Languages
 @subsection GNU clisp - Common Lisp
address@hidden common lisp
 
 @table @asis
 @item RPMs
@@ -6197,6 +6487,7 @@ @node Common Lisp, clisp C, Python, List
 
 @node clisp C, Emacs Lisp, Common Lisp, List of Programming Languages
 @subsection GNU clisp C sources
address@hidden clisp C sources
 
 @table @asis
 @item RPMs
@@ -6246,6 +6537,7 @@ @node clisp C, Emacs Lisp, Common Lisp, 
 
 @node Emacs Lisp, librep, clisp C, List of Programming Languages
 @subsection Emacs Lisp
address@hidden Emacs lisp
 
 @table @asis
 @item RPMs
@@ -6293,6 +6585,7 @@ @node Emacs Lisp, librep, clisp C, List 
 
 @node librep, Smalltalk, Emacs Lisp, List of Programming Languages
 @subsection librep
address@hidden @code{librep}
 
 @table @asis
 @item RPMs
@@ -6340,6 +6633,7 @@ @node librep, Smalltalk, Emacs Lisp, Lis
 
 @node Smalltalk, Java, librep, List of Programming Languages
 @subsection GNU Smalltalk
address@hidden Smalltalk
 
 @table @asis
 @item RPMs
@@ -6393,6 +6687,7 @@ @node Smalltalk, Java, librep, List of P
 
 @node Java, gawk, Smalltalk, List of Programming Languages
 @subsection Java
address@hidden Java, and @code{gettext}
 
 @table @asis
 @item RPMs
@@ -6487,6 +6782,7 @@ @node Java, gawk, Smalltalk, List of Pro
 
 @node gawk, Pascal, Java, List of Programming Languages
 @subsection GNU awk
address@hidden gawk
 
 @table @asis
 @item RPMs
@@ -6535,6 +6831,8 @@ @node gawk, Pascal, Java, List of Progra
 
 @node Pascal, wxWindows, gawk, List of Programming Languages
 @subsection Pascal - Free Pascal Compiler
address@hidden Pascal
address@hidden Free Pascal
 
 @table @asis
 @item RPMs
@@ -6588,6 +6886,7 @@ @node Pascal, wxWindows, gawk, List of P
 
 @node wxWindows, YCP, Pascal, List of Programming Languages
 @subsection wxWindows library
address@hidden @code{wxWindows} library
 
 @table @asis
 @item RPMs
@@ -6635,6 +6934,8 @@ @node wxWindows, YCP, Pascal, List of Pr
 
 @node YCP, Perl, wxWindows, List of Programming Languages
 @subsection YCP - YaST2 scripting language
address@hidden YCP
address@hidden YaST2 scripting language
 
 @table @asis
 @item RPMs
@@ -6682,6 +6983,7 @@ @node YCP, Perl, wxWindows, List of Prog
 
 @node Perl, PHP, YCP, List of Programming Languages
 @subsection Perl
address@hidden Perl
 
 @table @asis
 @item RPMs
@@ -6730,6 +7032,7 @@ @node Perl, PHP, YCP, List of Programmin
 
 @node PHP, Pike, Perl, List of Programming Languages
 @subsection PHP Hypertext Preprocessor
address@hidden PHP
 
 @table @asis
 @item RPMs
@@ -6777,6 +7080,7 @@ @node PHP, Pike, Perl, List of Programmi
 
 @node Pike,  , PHP, List of Programming Languages
 @subsection Pike
address@hidden Pike
 
 @table @asis
 @item RPMs
@@ -6887,6 +7191,7 @@ @node POT, RST, List of Data Formats, Li
 
 @node RST,  , POT, List of Data Formats
 @subsection Resource String Table
address@hidden RST
 
 @table @asis
 @item RPMs
@@ -6915,7 +7220,7 @@ @node RST,  , POT, List of Data Formats
 
 @end ignore
 
address@hidden Conclusion, Language Codes, Programming Languages, Top
address@hidden Conclusion, Index, Programming Languages, Top
 @chapter Concluding Remarks
 
 We would like to conclude this GNU @code{gettext} manual by presenting
@@ -6930,6 +7235,7 @@ @node Conclusion, Language Codes, Progra
 
 @node History, References, Conclusion, Conclusion
 @section History of GNU @code{gettext}
address@hidden history of GNU @code{gettext}
 
 Internationalization concerns and algorithms have been informally
 and casually discussed for years in GNU, sometimes around GNU
@@ -7005,6 +7311,7 @@ @node History, References, Conclusion, C
 
 @node References,  , History, Conclusion
 @section Related Readings
address@hidden related reading
 
 Eugene H. Dorr (@file{dorre@@well.com}) maintains an interesting
 bibliography on internationalization matters, called
@@ -7047,8 +7354,14 @@ @node References,  , History, Conclusion
 @noindent
 together with French translations of many Linux-related documents.
 
address@hidden Language Codes, Country Codes, Conclusion, Top
address@hidden Index, Language Codes, Conclusion, Top
address@hidden Index
+
address@hidden cp
+
address@hidden Language Codes, Country Codes, Index, Top
 @appendix Language Codes
address@hidden language codes
 
 The @w{ISO 639} standard defines two character codes for many languages.
 All abbreviations for languages used in the Translation Project should
@@ -7060,6 +7373,7 @@ @node Language Codes, Country Codes, Con
 
 @node Country Codes,  , Language Codes, Top
 @appendix Country Codes
address@hidden country codes
 
 The @w{ISO 3166} standard defines two character codes for many countries
 and territories.  All abbreviations for countries used in the Translation

--- doc/xgettext.t~0    Fri Jan  4 13:36:54 2002
+++ doc/xgettext.texi   Thu Jan 31 13:53:26 2002
@@ -2,6 +2,7 @@
 xgettext address@hidden address@hidden @dots{}
 @end example
 
address@hidden @code{xgettext} program, description of usage
 The @code{xgettext} program extracts translatable strings from given
 input files.
 
@@ -13,11 +14,15 @@
 
 @item -f @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Read the names of the input files from @var{file} instead of getting
 them from the command line.
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -31,19 +36,26 @@
 @table @samp
 @item -d @var{name}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Use @address@hidden for output (instead of @file{messages.po}).
 
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Write output to specified file (instead of @address@hidden or
 @file{messages.po}).
 
 @item -p @var{dir}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Output files will be placed in directory @var{dir}.
 
 @end table
 
address@hidden output to stdout, @code{xgettext}
 If the output @var{file} is @samp{-} or @samp{/dev/stdout}, the output
 is written to standard output.
 
@@ -52,12 +64,17 @@
 @table @samp
 @item -L @var{name}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
address@hidden supported languages, @code{xgettext}
 Specifies the language of the input files.  The supported languages
 are @code{C}, @code{C++}, @code{ObjectiveC}, @code{PO}, @code{Java},
 @code{YCP}.
 
 @item -C
 @itemx --c++
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 This is a shorthand for @code{--language=C++}.
 
 @end table
@@ -70,15 +87,21 @@
 @table @samp
 @item -j
 @itemx --join-existing
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Join messages with existing file.
 
 @item -x @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Entries from @var{file} are not extracted.  @var{file} should be a PO or
 POT file.
 
 @item -c address@hidden
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Place comment block with @var{tag} (or those preceding keyword lines)
 in output file.
 
@@ -89,13 +112,18 @@
 @table @samp
 @item -a
 @itemx --extract-all
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Extract all strings.
 
 @item -k @var{keywordspec}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Additional keyword to be looked for (without @var{keywordspec} means not to
 use default keywords).
 
address@hidden adding keywords, @code{xgettext}
 If @var{keywordspec} is a C identifer @var{id}, @code{xgettext} looks
 for strings in the first argument of each call to the function or macro
 @var{id}.  If @var{keywordspec} is of the form
@@ -113,9 +141,14 @@
 
 @item -T
 @itemx --trigraphs
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
address@hidden C trigraphs
 Understand ANSI C trigraphs for input.
 
 @itemx --debug
address@hidden address@hidden, @code{xgettext} option}
address@hidden debugging messages marked as format strings
 Use the flags @kbd{c-format} and @kbd{possible-c-format} to show who was
 responsible for marking a message as a format string.  The latter form is
 used if the @code{xgettext} program decided, the format form is used if
@@ -136,48 +169,65 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{xgettext} option}
 Always write an output file even if no message is defined.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{xgettext} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item -n
 @itemx --add-location
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{xgettext} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
address@hidden sorting output of @code{xgettext}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Sort output by file location.
 
 @item --omit-header
address@hidden address@hidden, @code{xgettext} option}
 Don't write header with @samp{msgid ""} entry.
 
address@hidden testing @file{.gmo} files for identity
 This is useful for testing purposes because it eliminates a source
 of variance for generated @code{.gmo} files.  With @code{--omit-header},
 two invocations of @code{xgettext} on the same files with the same
 options at different times are guaranteed to produce the same results.
 
 @item address@hidden
address@hidden address@hidden, @code{xgettext} option}
 Set the copyright holder in the output.  @var{string} should be the
 copyright holder of the surrounding package.  (Note that the msgstr
 strings, extracted from the package's sources, belong to the copyright
@@ -192,16 +242,21 @@
 simply because @code{xgettext} was first used in the GNU project.
 
 @item --foreign-user
address@hidden address@hidden, @code{xgettext} option}
 Omit FSF copyright in output.  This option is equivalent to
 @samp{--copyright-holder=''}.  It can be useful for packages outside the GNU
 project that want their translations to be in the public domain.
 
 @item -m address@hidden
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Use @var{string} (or "" if not specified) as prefix for msgstr entries.
 
 @item -M address@hidden
 @itemx address@hidden
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Use @var{string} (or "" if not specified) as suffix for msgstr entries.
 
 @end table
@@ -211,10 +266,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{xgettext} option}
address@hidden address@hidden, @code{xgettext} option}
 Output version information and exit.
 
 @end table

--- doc/msgmerge.t~0    Thu Oct 11 20:27:32 2001
+++ doc/msgmerge.texi   Thu Jan 31 14:53:56 2002
@@ -2,6 +2,7 @@
 msgmerge address@hidden @var{def}.po @var{ref}.pot
 @end example
 
address@hidden @code{msgmerge} program, description of usage
 The @code{msgmerge} program merges two Uniforum style .po files together.
 The @var{def}.po file is an existing PO file with translations which will
 be taken over to the newly created file as long as they still match;
@@ -24,12 +25,16 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
 
 @item -C @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Specify an additional library of message translations.  @xref{Compendium}.
 This option may be specified more than once.
 
@@ -40,6 +45,8 @@
 @table @samp
 @item -U
 @itemx --update
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Update @var{def}.po.  Do nothing if @var{def}.po is already up to date.
 
 @end table
@@ -49,10 +56,13 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Write output to specified file.
 
 @end table
 
address@hidden standard output, and @code{msgmerge} program
 The results are written to standard output if no output file is specified
 or if it is @samp{-}.
 
@@ -62,13 +72,17 @@
 
 @table @samp
 @item address@hidden
address@hidden address@hidden, @code{msgmerge} option}
address@hidden backup old file, and @code{msgmerge} program
 Make a backup of @var{def}.po
 
 @item address@hidden
address@hidden address@hidden, @code{msgmerge} option}
 Override the usual backup suffix.
 
 @end table
 
address@hidden version control for backup files, @code{msgmerge}
 The version control method may be selected via the @code{--backup} option
 or through the @code{VERSION_CONTROL} environment variable.  Here are the
 values:
@@ -101,6 +115,8 @@
 @table @samp
 @item -m
 @itemx --multi-domain
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Apply @var{ref}.pot to each of the domains in @var{def}.po.
 
 @end table
@@ -111,36 +127,49 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgmerge} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msgmerge} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item --add-location
address@hidden address@hidden, @code{msgmerge} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgmerge} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
address@hidden sorting @code{msgmerge} output
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Sort output by file location.
 
 @end table
@@ -150,19 +179,28 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Output version information and exit.
 
 @item -v
 @itemx --verbose
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Increase verbosity level.
 
 @item -q
 @itemx --quiet
 @itemx --silent
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
address@hidden address@hidden, @code{msgmerge} option}
 Suppress progress indicators.
 
 @end table

--- doc/msgcat.t~0      Thu Oct 11 14:10:46 2001
+++ doc/msgcat.texi     Thu Jan 31 15:46:30 2002
@@ -2,6 +2,8 @@
 msgcat address@hidden address@hidden
 @end example
 
address@hidden concatenate and merge PO files
address@hidden @code{msgcat} program
 The @code{msgcat} program concatenates and merges the specified PO files.
 It finds messages which are common to two or more of the specified PO files.
 By using the @code{--more-than} option, greater commonality may be requested
@@ -20,11 +22,15 @@
 
 @item -f @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Read the names of the input files from @var{file} instead of getting
 them from the command line.
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -38,10 +44,13 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Write output to specified file.
 
 @end table
 
address@hidden standard output, and @code{msgcat}
 The results are written to standard output if no output file is specified
 or if it is @samp{-}.
 
@@ -50,16 +59,22 @@
 @table @samp
 @item -< @var{number}
 @itemx address@hidden
address@hidden -<@r{, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Print messages with less than @var{number} definitions, defaults to infinite
 if not set.
 
 @item -> @var{number}
 @itemx address@hidden
address@hidden ->@r{, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Print messages with more than @var{number} definitions, defaults to 0 if not
 set.
 
 @item -u
 @itemx --unique
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Shorthand for @samp{--less-than=2}.  Requests that only unique messages be
 printed.
 
@@ -72,44 +87,61 @@
 @table @samp
 @item -t
 @itemx address@hidden
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Specify encoding for output.
 
 @item --use-first
address@hidden address@hidden, @code{msgcat} option}
 Use first available translation for each message.  Don't merge several
 translations into one.
 
 @item --force-po
address@hidden address@hidden, @code{msgcat} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msgcat} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item -n
 @itemx --add-location
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgcat} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
address@hidden sorting @code{msgcat} output
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Sort output by file location.
 
 @end table
@@ -119,10 +151,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgcat} option}
address@hidden address@hidden, @code{msgcat} option}
 Output version information and exit.
 
 @end table

--- doc/msgconv.t~0     Thu Oct 11 15:50:12 2001
+++ doc/msgconv.texi    Thu Jan 31 15:49:54 2002
@@ -2,6 +2,8 @@
 msgconv address@hidden address@hidden
 @end example
 
address@hidden convert translations to a different encoding
address@hidden @code{msgconv} program
 The @code{msgconv} program converts a translation catalog to a different
 character encoding.
 
@@ -13,6 +15,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -26,6 +30,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Write output to specified file.
 
 @end table
@@ -38,6 +44,8 @@
 @table @samp
 @item -t
 @itemx address@hidden
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Specify encoding for output.
 
 @end table
@@ -50,36 +58,48 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgconv} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msgconv} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item --add-location
address@hidden address@hidden, @code{msgconv} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgconv} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Sort output by file location.
 
 @end table
@@ -89,10 +109,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgconv} option}
address@hidden address@hidden, @code{msgconv} option}
 Output version information and exit.
 
 @end table

--- doc/msggrep.t~0     Tue Dec 18 16:00:30 2001
+++ doc/msggrep.texi    Thu Jan 31 15:55:06 2002
@@ -2,6 +2,8 @@
 msggrep address@hidden address@hidden
 @end example
 
address@hidden search messages in a catalog
address@hidden @code{msggrep} program
 The @code{msggrep} program extracts all messages of a translation catalog
 that match a given pattern or belong to some given source files.
 
@@ -13,6 +15,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -26,6 +30,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Write output to specified file.
 
 @end table
@@ -62,39 +68,57 @@
 @table @samp
 @item -N @var{sourcefile}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Select messages extracted from @var{sourcefile}.  @var{sourcefile} can be
 either a literal file name or a wildcard pattern.
 
 @item -M @var{domainname}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Select messages belonging to domain @var{domainname}.
 
 @item -K
 @itemx --msgid
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Start of patterns for the msgid.
 
 @item -T
 @itemx --msgstr
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Start of patterns for the msgstr.
 
 @item -E
 @itemx --extended-regexp
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Specify that @var{pattern} is an extended regular expression.
 
 @item -F
 @itemx --fixed-strings
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Specify that @var{pattern} is a set of newline-separated strings.
 
 @item -e @var{pattern}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Use @var{pattern} as a regular expression.
 
 @item -f @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Obtain @var{pattern} from @var{file}.
 
 @item -i
 @itemx --ignore-case
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Ignore case distinctions.
 
 @end table
@@ -105,33 +129,42 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msggrep} option}
 Always write an output file even if it contains no message.
 
 @item --indent
address@hidden address@hidden, @code{msggrep} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msggrep} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item --add-location
address@hidden address@hidden, @code{msggrep} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msggrep} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item --sort-output
address@hidden address@hidden, @code{msggrep} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item --sort-by-file
address@hidden address@hidden, @code{msggrep} option}
 Sort output by file location.
 
 @end table
@@ -141,10 +174,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msggrep} option}
address@hidden address@hidden, @code{msggrep} option}
 Output version information and exit.
 
 @end table

--- doc/msgfilter.t~0   Fri Jan  4 13:37:48 2002
+++ doc/msgfilter.texi  Thu Jan 31 16:00:16 2002
@@ -2,6 +2,8 @@
 msgfilter address@hidden @var{filter} address@hidden
 @end example
 
address@hidden apply a filter to translations
address@hidden @code{msgfilter} program
 The @code{msgfilter} program applies a filter to all translations of a
 translation catalog.
 
@@ -10,10 +12,14 @@
 @table @samp
 @item -i @var{inputfile}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Input PO file.
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -27,6 +33,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Write output to specified file.
 
 @end table
@@ -40,6 +48,7 @@
 input and writes a modified translation to standard output.  A frequently
 used filter is @samp{sed}.
 
address@hidden @code{msgfilter} filter and catalog encoding
 Note: It is your responsibility to ensure that the @var{filter} can cope
 with input encoded in the translation catalog's encoding.  If the
 @var{filter} wants input in a particular encoding, you can in a first step
@@ -50,6 +59,7 @@
 @samp{msgconv} program and then make @samp{msgfilter} work in an UTF-8
 locale, by using the @code{LC_ALL} environment variable.
 
address@hidden last line of catalog not ending in newline
 Note: Most translations in a translation catalog don't end with a newline
 character. For this reason, it is important that the @var{filter}
 recognizes its last input line even if it ends without a newline, and that
@@ -63,15 +73,22 @@
 @table @samp
 @item -e @var{script}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Add @var{script} to the commands to be executed.
 
 @item -f @var{scriptfile}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Add the contents of @var{scriptfile} to the commands to be executed.
 
 @item -n
 @itemx --quiet
 @itemx --silent
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Suppress automatic printing of pattern space.
 
 @end table
@@ -82,40 +99,52 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgfilter} option}
 Always write an output file even if it contains no message.
 
 @item --indent
address@hidden address@hidden, @code{msgfilter} option}
 Write the .po file using indented style.
 
 @item --keep-header
address@hidden address@hidden, @code{msgfilter} option}
 Keep the header entry, i.e. the message with @samp{msgid ""}, unmodified,
 instead of filtering it.  By default, the header entry is subject to
 filtering like any other message.
 
 @item --no-location
address@hidden address@hidden, @code{msgfilter} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item --add-location
address@hidden address@hidden, @code{msgfilter} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgfilter} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Sort output by file location.
 
 @end table
@@ -125,10 +154,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgfilter} option}
address@hidden address@hidden, @code{msgfilter} option}
 Output version information and exit.
 
 @end table

--- doc/msguniq.t~0     Thu Oct 11 19:08:28 2001
+++ doc/msguniq.texi    Thu Jan 31 16:03:52 2002
@@ -2,6 +2,8 @@
 msguniq address@hidden address@hidden
 @end example
 
address@hidden unify duplicate translations
address@hidden @code{msguniq} program
 The @code{msguniq} program unifies duplicate translations in a translation
 catalog.  It finds duplicate translations of the same message ID.  Such
 duplicates are invalid input for other programs like @code{msgfmt},
@@ -21,6 +23,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -34,6 +38,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Write output to specified file.
 
 @end table
@@ -46,10 +52,14 @@
 @table @samp
 @item -d
 @itemx --repeated
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Print only duplicates.
 
 @item -u
 @itemx --unique
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Print only unique messages, discard duplicates.
 
 @end table
@@ -61,44 +71,60 @@
 @table @samp
 @item -t
 @itemx address@hidden
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Specify encoding for output.
 
 @item --use-first
address@hidden address@hidden, @code{msguniq} option}
 Use first available translation for each message.  Don't merge several
 translations into one.
 
 @item --force-po
address@hidden address@hidden, @code{msguniq} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msguniq} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item -n
 @itemx --add-location
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msguniq} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Sort output by file location.
 
 @end table
@@ -108,10 +134,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msguniq} option}
address@hidden address@hidden, @code{msguniq} option}
 Output version information and exit.
 
 @end table

--- doc/msgcomm.t~0     Thu Oct 11 15:37:34 2001
+++ doc/msgcomm.texi    Thu Jan 31 16:07:50 2002
@@ -2,6 +2,8 @@
 msgcomm address@hidden address@hidden
 @end example
 
address@hidden find common messages
address@hidden @code{msgcomm} program
 The @code{msgcomm} program finds messages which are common to two or more
 of the specified PO files.
 By using the @code{--more-than} option, greater commonality may be requested
@@ -20,11 +22,15 @@
 
 @item -f @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Read the names of the input files from @var{file} instead of getting
 them from the command line.
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -38,6 +44,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Write output to specified file.
 
 @end table
@@ -50,16 +58,22 @@
 @table @samp
 @item -< @var{number}
 @itemx address@hidden
address@hidden -<@r{, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Print messages with less than @var{number} definitions, defaults to infinite
 if not set.
 
 @item -> @var{number}
 @itemx address@hidden
address@hidden ->@r{, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Print messages with more than @var{number} definitions, defaults to 1 if not
 set.
 
 @item -u
 @itemx --unique
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Shorthand for @samp{--less-than=2}.  Requests that only unique messages be
 printed.
 
@@ -71,40 +85,54 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgcomm} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msgcomm} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item -n
 @itemx --add-location
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgcomm} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Sort output by file location.
 
 @item --omit-header
address@hidden address@hidden, @code{msgcomm} option}
 Don't write header with @samp{msgid ""} entry.
 
 @end table
@@ -114,10 +142,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgcomm} option}
address@hidden address@hidden, @code{msgcomm} option}
 Output version information and exit.
 
 @end table

--- doc/msgcmp.t~0      Thu Oct 11 18:26:44 2001
+++ doc/msgcmp.texi     Thu Jan 31 16:09:28 2002
@@ -2,6 +2,8 @@
 msgcmp address@hidden @var{def}.po @var{ref}.pot
 @end example
 
address@hidden compare PO files
address@hidden @code{msgcmp} program
 The @code{msgcmp} program compares two Uniforum style .po files to check that
 both contain the same set of msgid strings.  The @var{def}.po file is an
 existing PO file with the translations.  The @var{ref}.pot file is the last
@@ -21,6 +23,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgcmp} option}
address@hidden address@hidden, @code{msgcmp} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.
 
@@ -31,6 +35,8 @@
 @table @samp
 @item -m
 @itemx --multi-domain
address@hidden address@hidden, @code{msgcmp} option}
address@hidden address@hidden, @code{msgcmp} option}
 Apply @var{ref}.pot to each of the domains in @var{def}.po.
 
 @end table
@@ -40,10 +46,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgcmp} option}
address@hidden address@hidden, @code{msgcmp} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgcmp} option}
address@hidden address@hidden, @code{msgcmp} option}
 Output version information and exit.
 
 @end table

--- doc/msgattrib.t~0   Thu Oct 11 13:45:52 2001
+++ doc/msgattrib.texi  Thu Jan 31 16:14:18 2002
@@ -2,6 +2,8 @@
 msgattrib address@hidden address@hidden
 @end example
 
address@hidden filter messages according to attributes
address@hidden @code{msgattrib} program
 The @code{msgattrib} program filters the messages of a translation catalog
 according to their attributes, and manipulates the attributes.
 
@@ -13,6 +15,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -26,6 +30,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Write output to specified file.
 
 @end table
@@ -37,48 +43,61 @@
 
 @table @samp
 @item --translated
address@hidden address@hidden, @code{msgattrib} option}
 Keep translated messages, remove untranslated messages.
 
 @item --untranslated
address@hidden address@hidden, @code{msgattrib} option}
 Keep untranslated messages, remove translated messages.
 
 @item --no-fuzzy
address@hidden address@hidden, @code{msgattrib} option}
 Remove `fuzzy' marked messages.
 
 @item --only-fuzzy
address@hidden address@hidden, @code{msgattrib} option}
 Keep `fuzzy' marked messages, remove all other messsages.
 
 @item --no-obsolete
address@hidden address@hidden, @code{msgattrib} option}
 Remove obsolete #~ messages.
 
 @item --only-obsolete
address@hidden address@hidden, @code{msgattrib} option}
 Keep obsolete #~ messages, remove all other messages.
 
 @end table
 
 @subsection Attribute manipulation
 
address@hidden modify message attrributes
 Attributes are modified after the message selection/removal has been
 performed.
 
 @table @samp
 @item --set-fuzzy
address@hidden address@hidden, @code{msgattrib} option}
 Set all messages `fuzzy'.
 
 @item --clear-fuzzy
address@hidden address@hidden, @code{msgattrib} option}
 Set all messages non-`fuzzy'.
 
 @item --set-obsolete
address@hidden address@hidden, @code{msgattrib} option}
 Set all messages obsolete.
 
 @item --clear-obsolete
address@hidden address@hidden, @code{msgattrib} option}
 Set all messages non-obsolete.
 
 @item --fuzzy
address@hidden address@hidden, @code{msgattrib} option}
 Synonym for @samp{--only-fuzzy --clear-fuzzy}: It keeps only the fuzzy
 messages and removes their `fuzzy' mark.
 
 @item --obsolete
address@hidden address@hidden, @code{msgattrib} option}
 Synonym for @samp{--only-obsolete --clear-obsolete}: It keeps only the
 obsolete messages and makes them non-obsolete.
 
@@ -90,37 +109,50 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgattrib} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msgattrib} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item -n
 @itemx --add-location
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgattrib} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Sort output by file location.
 
 @end table
@@ -130,10 +162,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgattrib} option}
address@hidden address@hidden, @code{msgattrib} option}
 Output version information and exit.
 
 @end table

--- doc/msgen.t~0       Mon Dec 10 16:00:20 2001
+++ doc/msgen.texi      Thu Jan 31 16:17:00 2002
@@ -2,6 +2,8 @@
 msgen address@hidden @var{inputfile}
 @end example
 
address@hidden generate translation catalog in English
address@hidden @code{msgen} program
 The @code{msgen} program creates an English translation catalog.  The
 input file is the last created English PO file, or a PO Template file
 (generally created by xgettext).  Untranslated entries are assigned a
@@ -19,6 +21,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -32,6 +36,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Write output to specified file.
 
 @end table
@@ -45,36 +51,48 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgen} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Write the .po file using indented style.
 
 @item --no-location
address@hidden address@hidden, @code{msgen} option}
 Do not write @samp{#: @var{filename}:@var{line}} lines.
 
 @item --add-location
address@hidden address@hidden, @code{msgen} option}
 Generate @samp{#: @var{filename}:@var{line}} lines (default).
 
 @item --strict
address@hidden address@hidden, @code{msgen} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
 @item -F
 @itemx --sort-by-file
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Sort output by file location.
 
 @end table
@@ -84,10 +102,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgen} option}
address@hidden address@hidden, @code{msgen} option}
 Output version information and exit.
 
 @end table

--- doc/msgexec.t~0     Sat Dec  8 05:38:04 2001
+++ doc/msgexec.texi    Thu Jan 31 16:22:22 2002
@@ -2,6 +2,8 @@
 msgexec address@hidden @var{command} address@hidden
 @end example
 
address@hidden apply command to all translations in a catalog
address@hidden @code{msgexec} program
 The @code{msgexec} program applies a command to all translations of a
 translation catalog.
 The @var{command} can be any program that reads a translation from standard
@@ -9,15 +11,20 @@
 msgexec's output.  @code{msgexec}'s return code is the maximum return code
 across all invocations.
 
address@hidden terminate translations with a null byte
address@hidden @code{xargs}, and output from @code{msgexec}
 A special builtin command called @samp{0} outputs the translation, followed
 by a null byte.  The output of @samp{msgexec 0} is suitable as input for
 @samp{xargs -0}.
 
address@hidden address@hidden, environment variable}
address@hidden address@hidden, environment variable}
 During each @var{command} invocation, the environment variable
 @code{MSGEXEC_MSGID} is bound to the message's msgid, and the environment
 variable @code{MSGEXEC_LOCATION} is bound to the location in the PO file
 of the message.
 
address@hidden catalog encoding and @code{msgexec} output
 Note: It is your responsibility to ensure that the @var{command} can cope
 with input encoded in the translation catalog's encoding.  If the
 @var{command} wants input in a particular encoding, you can in a first step
@@ -33,10 +40,14 @@
 @table @samp
 @item -i @var{inputfile}
 @itemx address@hidden
address@hidden address@hidden, @code{msgexec} option}
address@hidden address@hidden, @code{msgexec} option}
 Input PO file.
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgexec} option}
address@hidden address@hidden, @code{msgexec} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -50,10 +61,14 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgexec} option}
address@hidden address@hidden, @code{msgexec} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgexec} option}
address@hidden address@hidden, @code{msgexec} option}
 Output version information and exit.
 
 @end table

--- doc/msgunfmt.t~0    Thu Oct 11 20:59:02 2001
+++ doc/msgunfmt.texi   Thu Jan 31 16:39:48 2002
@@ -2,6 +2,8 @@
 msgunfmt address@hidden address@hidden
 @end example
 
address@hidden convert binary message catalog into PO file
address@hidden @code{msgunfmt} program
 The @code{msgunfmt} program converts a binary message catalog to a
 Uniforum style .po file.
 
@@ -10,6 +12,9 @@
 @table @samp
 @item -j
 @itemx --java
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden Java mode, and @code{msgunfmt} program
 Java mode: generate a Java @code{ResourceBundle} class.
 
 @end table
@@ -29,10 +34,14 @@
 @table @samp
 @item -r @var{resource}
 @itemx address@hidden
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Specify the resource name.
 
 @item -l @var{locale}
 @itemx address@hidden
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Specify the locale name, either a language specification of the form @var{ll}
 or a combined language and country specification of the form @var{ll_CC}.
 
@@ -46,6 +55,8 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Write output to specified file.
 
 @end table
@@ -59,25 +70,34 @@
 
 @table @samp
 @item --force-po
address@hidden address@hidden, @code{msgunfmt} option}
 Always write an output file even if it contains no message.
 
 @item -i
 @itemx --indent
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Write the .po file using indented style.
 
 @item --strict
address@hidden address@hidden, @code{msgunfmt} option}
 Write out a strict Uniforum conforming PO file.  Note that this
 Uniforum format should be avoided because it doesn't support the
 GNU extensions.
 
 @item -w @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Set the output page width.  Long strings in the output files will be
 split across multiple lines in order to ensure that each line's width
 (= number of screen columns) is less or equal to the given @var{number}.
 
 @item -s
 @itemx --sort-output
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden sorting @code{msgunfmt} output
 Generate sorted output.  Note that using this option makes it much harder
 for the translator to understand each message's context.
 
@@ -88,14 +108,20 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Output version information and exit.
 
 @item -v
 @itemx --verbose
address@hidden address@hidden, @code{msgunfmt} option}
address@hidden address@hidden, @code{msgunfmt} option}
 Increase verbosity level.
 
 @end table

--- doc/msgfmt.t~0      Mon Nov 19 13:23:00 2001
+++ doc/msgfmt.texi     Thu Jan 31 17:38:40 2002
@@ -2,6 +2,8 @@
 msgfmt address@hidden @var{filename}.po @dots{}
 @end example
 
address@hidden generate binary message catalog from PO file
address@hidden @code{msgfmt} program
 The @code{msgfmt} programs generates a binary message catalog from a textual
 translation description.
 
@@ -12,6 +14,8 @@
 
 @item -D @var{directory}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Add @var{directory} to the list of directories.  Source files are
 searched relative to this list of directories.  The resulting @file{.po}
 file will be written relative to the current directory, though.
@@ -25,9 +29,13 @@
 @table @samp
 @item -j
 @itemx --java
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
address@hidden Java mode, and @code{msgfmt} program
 Java mode: generate a Java @code{ResourceBundle} class.
 
 @item --java2
address@hidden address@hidden, @code{msgfmt} option}
 Like --java, and assume Java2 (JDK 1.2 or higher).
 
 @end table
@@ -37,9 +45,12 @@
 @table @samp
 @item -o @var{file}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Write output to specified file.
 
 @item --strict
address@hidden address@hidden, @code{msgfmt} option}
 Direct the program to work strictly following the Uniforum/Sun
 implementation.  Currently this only affects the naming of the output
 file.  If this option is not given the name of the output file is the
@@ -59,14 +70,19 @@
 @table @samp
 @item -r @var{resource}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Specify the resource name.
 
 @item -l @var{locale}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Specify the locale name, either a language specification of the form @var{ll}
 or a combined language and country specification of the form @var{ll_CC}.
 
 @item -d @var{directory}
address@hidden address@hidden, @code{msgfmt} option}
 Specify the base directory of classes directory hierarchy.
 
 @end table
@@ -80,10 +96,14 @@
 @table @samp
 @item -c
 @itemx --check
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Perform all the checks implied by @code{--check-format}, @code{--check-header},
 @code{--check-domain}.
 
 @item --check-format
address@hidden address@hidden, @code{msgfmt} option}
address@hidden check format strings
 Check language dependent format strings.
 
 If the string represents a format string used in a
@@ -107,19 +127,27 @@
 reversed again as soon as @code{msgmerge} is called the next time.
 
 @item --check-header
address@hidden address@hidden, @code{msgfmt} option}
 Verify presence and contents of the header entry.  @xref{Header Entry},
 for a description of the various fields in the header entry.
 
 @item --check-domain
address@hidden address@hidden, @code{msgfmt} option}
 Check for conflicts between domain directives and the @code{--output-file}
 option
 
 @item -C
 @itemx --check-compatibility
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
address@hidden compatibility with X/Open @code{msgfmt}
 Check that GNU msgfmt behaves like X/Open msgfmt.  This will give an error
 when attempting to use the GNU extensions.
 
 @item address@hidden
address@hidden address@hidden, @code{msgfmt} option}
address@hidden checking keyboard accelerators in menus
address@hidden menu, keyboard accelerator support
 Check presence of keyboard accelerators for menu items.  This is based on
 the convention used in some GUIs that a keyboard accelerator in a menu
 item string is designated by an immediately preceding @samp{&} character.
@@ -132,6 +160,9 @@
 
 @item -f
 @itemx --use-fuzzy
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
address@hidden force use of fuzzy entries
 Use fuzzy entries in output.  Note that using this option is usually wrong,
 because fuzzy messages are exactly those which have not been validated by
 a human translator.
@@ -143,11 +174,14 @@
 @table @samp
 @item -a @var{number}
 @itemx address@hidden
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Align strings to @var{number} bytes (default: 1).
 @c Currently the README mentions that this constant could be changed by
 @c the installer by changing the value in config.h.  Should this go away?
 
 @item --no-hash
address@hidden address@hidden, @code{msgfmt} option}
 Don't include a hash table in the binary file.  Lookup will be more expensive
 at run time (binary search instead of hash table lookup).
 
@@ -158,17 +192,24 @@
 @table @samp
 @item -h
 @itemx --help
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Display this help and exit.
 
 @item -V
 @itemx --version
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Output version information and exit.
 
 @item --statistics
address@hidden address@hidden, @code{msgfmt} option}
 Print statistics about translations.
 
 @item -v
 @itemx --verbose
address@hidden address@hidden, @code{msgfmt} option}
address@hidden address@hidden, @code{msgfmt} option}
 Increase verbosity level.
 
 @end table



reply via email to

[Prev in Thread] Current Thread [Next in Thread]