From: Bruno Haible Date: Sat, 15 Sep 2018 22:45:45 +0000 (+0200) Subject: doc: Assume texinfo 4.0 or newer. X-Git-Tag: v0.20~397 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=edb7fe7f632b22feb2849043a8e92119eb09af92;p=thirdparty%2Fgettext.git doc: Assume texinfo 4.0 or newer. * gettext-tools/doc/gettext.texi: Omit Next, Prev, Up fields from @node lines. * gettext-runtime/libasprintf/autosprintf.texi: Likewise. --- diff --git a/gettext-runtime/libasprintf/autosprintf.texi b/gettext-runtime/libasprintf/autosprintf.texi index 035a279b4..1bc841577 100644 --- a/gettext-runtime/libasprintf/autosprintf.texi +++ b/gettext-runtime/libasprintf/autosprintf.texi @@ -85,7 +85,7 @@ A copy of the license is at @url{https://www.gnu.org/licenses/gpl.html}. @end titlepage @ifset makeinfo -@node Top, Introduction, (dir), (dir) +@node Top @top GNU autosprintf This manual documents the GNU autosprintf class, version @value{VERSION}. @@ -98,7 +98,7 @@ This manual documents the GNU autosprintf class, version @value{VERSION}. @end ifset -@node Introduction, Class autosprintf, Top, Top +@node Introduction @chapter Introduction This package makes the C formatted output routines (@code{fprintf} et al.) @@ -138,7 +138,7 @@ It reduces the risk of programming errors due to forgotten state in the output stream (e.g.@: @code{cout << hex;} not followed by @code{cout << dec;}). @end itemize -@node Class autosprintf, Using autosprintf, Introduction, Top +@node Class autosprintf @chapter The @code{autosprintf} class An instance of class @code{autosprintf} just contains a string with the @@ -160,7 +160,7 @@ The destructor @code{~autosprintf ()} destroys the encapsulated string. An @code{operator <<} is provided that outputs the encapsulated string to the given @code{ostream}. -@node Using autosprintf, , Class autosprintf, Top +@node Using autosprintf @chapter Using @code{autosprintf} in own programs To use the @code{autosprintf} class in your programs, you need to add diff --git a/gettext-tools/doc/gettext.texi b/gettext-tools/doc/gettext.texi index fc8fa879f..49b284bd4 100644 --- a/gettext-tools/doc/gettext.texi +++ b/gettext-tools/doc/gettext.texi @@ -140,7 +140,7 @@ A copy of the license is included in @ref{GNU GPL}. @contents @ifset makeinfo -@node Top, Introduction, (dir), (dir) +@node Top @top GNU @code{gettext} utilities This manual documents the GNU gettext tools and the GNU libintl library, @@ -522,7 +522,7 @@ Licenses @end ifset -@node Introduction, Users, Top, Top +@node Introduction @chapter Introduction This chapter explains the goals sought in the creation @@ -568,7 +568,7 @@ Please include the manual's edition number and update date in your messages. * Overview:: Overview of GNU @code{gettext} @end menu -@node Why, Concepts, Introduction, Introduction +@node Why @section The Purpose of GNU @code{gettext} Usually, programs are written and documented in English, and use @@ -642,7 +642,7 @@ help programmers, and even curious users, in understanding how GNU @code{gettext} is related to the remainder of the Translation Project, and consequently, have a glimpse at the @emph{big picture}. -@node Concepts, Aspects, Why, Introduction +@node Concepts @section I18n, L10n, and Such @cindex i18n @@ -708,7 +708,7 @@ Also, very roughly said, when it comes to multi-lingual messages, internationalization is usually taken care of by programmers, and localization is usually taken care of by translators. -@node Aspects, Files, Concepts, Introduction +@node Aspects @section Aspects in Native Language Support @cindex translation aspects @@ -870,7 +870,7 @@ specification). GNU @code{libc} fully implements this, and most other modern systems provide a more or less reasonable support for at least some of the missing components. -@node Files, Overview, Aspects, Introduction +@node Files @section Files Conveying Translations @cindex files, @file{.po} and @file{.mo} @@ -905,7 +905,7 @@ support all the features of GNU @code{gettext}. Therefore GNU @file{.gmo} are really MO files, when it is known that these files use the GNU format. -@node Overview, , Files, Introduction +@node Overview @section Overview of GNU @code{gettext} @cindex overview of @code{gettext} @@ -1141,7 +1141,7 @@ the program should localize itself automatically, whenever it executes. The remainder of this manual has the purpose of explaining in depth the various steps outlined above. -@node Users, PO Files, Introduction, Top +@node Users @chapter The User's View Nowadays, when users log into a computer, they usually find that all @@ -1160,7 +1160,7 @@ by the programs? This chapter will answer it. * Installing Localizations:: How to Install Additional Translations @end menu -@node System Installation, Setting the GUI Locale, Users, Users +@node System Installation @section Operating System Installation The default language is often already specified during operating system @@ -1190,7 +1190,7 @@ configuration that is different from the one of the other users of the same machine. He can specify it, typically after the first login, as described in the next section. -@node Setting the GUI Locale, Setting the POSIX Locale, System Installation, Users +@node Setting the GUI Locale @section Setting the Locale Used by GUI Programs The immediately available programs in a user's desktop come from a group @@ -1215,7 +1215,7 @@ in the next section (@ref{Setting the POSIX Locale}); for some versions of KDE, however, the locale is specified through a variable @code{KDE_LANG}, rather than @code{LANG} or @code{LC_ALL}. -@node Setting the POSIX Locale, Installing Localizations, Setting the GUI Locale, Users +@node Setting the POSIX Locale @section Setting the Locale through Environment Variables As a user, if your language has been installed for this package, in the @@ -1234,7 +1234,7 @@ prompt, merely execute * The LANGUAGE variable:: How to Specify a Priority List of Languages @end menu -@node Locale Names, Locale Environment Variables, Setting the POSIX Locale, Setting the POSIX Locale +@node Locale Names @subsection Locale Names A locale name usually has the form @samp{@var{ll}_@var{CC}}. Here @@ -1282,7 +1282,7 @@ standardized by POSIX use English messages and an unspecified character encoding (often US-ASCII, but sometimes also ISO-8859-1 or UTF-8, depending on the operating system). -@node Locale Environment Variables, The LANGUAGE variable, Locale Names, Setting the POSIX Locale +@node Locale Environment Variables @subsection Locale Environment Variables @cindex setting up @code{gettext} at run time @cindex selecting message language @@ -1341,7 +1341,7 @@ variable if you want to set @code{LANG} and optionally some of the other The @code{LANGUAGE} variable is described in the next subsection. -@node The LANGUAGE variable, , Locale Environment Variables, Setting the POSIX Locale +@node The LANGUAGE variable @subsection Specifying a Priority List of Languages Not all programs have translations for all languages. By default, an @@ -1375,7 +1375,7 @@ Note: The variable @code{LANGUAGE} is ignored if the locale is set to @code{LANG} (or @code{LC_ALL}) to a value other than @samp{C}, before you can use a language priority list through the @code{LANGUAGE} variable. -@node Installing Localizations, , Setting the POSIX Locale, Users +@node Installing Localizations @section Installing Translations for Particular Programs @cindex Translation Matrix @cindex available translations @@ -1405,7 +1405,7 @@ contains some @file{@var{ll}.po} files; often they are kept together in a directory called @file{po/}. Each @file{@var{ll}.po} file contains the message translations for the language whose abbreviation of @var{ll}. -@node PO Files, Sources, Users, Top +@node PO Files @chapter The Format of PO Files @cindex PO files' format @cindex file format, @file{.po} @@ -1821,7 +1821,7 @@ this comment is most likely generated and managed by specialized GNU tools, and might disappear or be replaced unexpectedly when the PO file is given to @code{msgmerge}. -@node Sources, Template, PO Files, Top +@node Sources @chapter Preparing Program Sources @cindex preparing programs for translation @@ -1848,7 +1848,7 @@ needing translation. * Libraries:: Preparing Library Sources @end menu -@node Importing, Triggering, Sources, Sources +@node Importing @section Importing the @code{gettext} declaration Presuming that your set of programs, or package, has been adjusted @@ -1869,7 +1869,7 @@ the C string comes from a different C module) should contain the line: #include @end example -@node Triggering, Preparing Strings, Importing, Sources +@node Triggering @section Triggering @code{gettext} Operations @cindex initialization @@ -1963,7 +1963,7 @@ because it is tedious to determine the places where a locale switch is needed in a large program's source, and because switching a locale is not multithread-safe. -@node Preparing Strings, Mark Keywords, Triggering, Sources +@node Preparing Strings @section Preparing Translatable Strings @cindex marking strings, preparations @@ -2233,7 +2233,7 @@ HTML markup, however, is common enough that it's probably ok to use in translatable strings. But please bear in mind that the GNU gettext tools don't verify that the translations are well-formed HTML. -@node Mark Keywords, Marking, Preparing Strings, Sources +@node Mark Keywords @section How Marks Appear in Sources @cindex marking strings that require translation @@ -2319,7 +2319,7 @@ is an example of string @emph{not} requiring translation. But @samp{"%s: %d"} @emph{does} require translation, because in French, unlike in English, it's customary to put a space before a colon. -@node Marking, c-format Flag, Mark Keywords, Sources +@node Marking @section Marking Translatable Strings @emindex marking strings for translation @@ -2475,7 +2475,7 @@ it afresh. When a PO file is newly brought up in an Emacs window, only is preferred for the @kbd{M-.} command. In fact, this is not useful to prefer @samp{_}, as this one is already built in the @kbd{M-,} command. -@node c-format Flag, Special cases, Marking, Sources +@node c-format Flag @section Special Comments preceding Keywords @c FIXME document c-format and no-c-format. @@ -2567,7 +2567,7 @@ user can find out who is responsible for the decision. See @ref{xgettext Invocation} to see how the @code{--debug} option can be used for solving this problem. -@node Special cases, Bug Report Address, c-format Flag, Sources +@node Special cases @section Special Cases of Translatable Strings @cindex marking string initializers @@ -2661,7 +2661,7 @@ sure the output is really translated in any case. But this analysis is generally not very difficult. If it should be in any situation you can use this second method in this situation. -@node Bug Report Address, Names, Special cases, Sources +@node Bug Report Address @section Letting Users Report Translation Bugs Code sometimes has bugs, but translations sometimes have bugs too. The @@ -2715,7 +2715,7 @@ msgstr "" @end group @end example -@node Names, Libraries, Bug Report Address, Sources +@node Names @section Marking Proper Names for Translation Should names of persons, cities, locations etc. be marked for translation @@ -2806,7 +2806,7 @@ msgstr "\phi\rho\alpha\sigma\omicron\alpha \pi\iota\nu\alpha\rho" Because translation of names is such a sensitive domain, it is a good idea to test your translation before submitting it. -@node Libraries, , Names, Sources +@node Libraries @section Preparing Library Sources When you are preparing a library, not a program, for the use of @@ -2906,7 +2906,7 @@ Similarly, the @code{dngettext} function should be used in place of the @code{ngettext} function. @end enumerate -@node Template, Creating, Sources, Top +@node Template @chapter Making the PO Template File @cindex PO template file @@ -2926,12 +2926,12 @@ was fuzzy, and the suffix @samp{.pot} wasn't in use at that time.) * xgettext Invocation:: Invoking the @code{xgettext} Program @end menu -@node xgettext Invocation, , Template, Template +@node xgettext Invocation @section Invoking the @code{xgettext} Program @include xgettext.texi -@node Creating, Updating, Template, Top +@node Creating @chapter Creating a New PO File @cindex creating a new PO file @@ -2959,12 +2959,12 @@ the header entry of this file. * Header Entry:: Filling in the Header Entry @end menu -@node msginit Invocation, Header Entry, Creating, Creating +@node msginit Invocation @section Invoking the @code{msginit} Program @include msginit.texi -@node Header Entry, , msginit Invocation, Creating +@node Header Entry @section Filling in the Header Entry @cindex header entry of a PO file @@ -3187,19 +3187,19 @@ format of the plural forms field is described in @ref{Plural forms} and @ref{Translating plural forms}. @end table -@node Updating, Editing, Creating, Top +@node Updating @chapter Updating Existing PO Files @menu * msgmerge Invocation:: Invoking the @code{msgmerge} Program @end menu -@node msgmerge Invocation, , Updating, Updating +@node msgmerge Invocation @section Invoking the @code{msgmerge} Program @include msgmerge.texi -@node Editing, Manipulating, Updating, Top +@node Editing @chapter Editing PO Files @cindex Editing PO Files @@ -3210,15 +3210,15 @@ format of the plural forms field is described in @ref{Plural forms} and * Compendium:: Using Translation Compendia @end menu -@node KBabel, Gtranslator, Editing, Editing +@node KBabel @section KDE's PO File Editor @cindex KDE PO file editor -@node Gtranslator, PO Mode, KBabel, Editing +@node Gtranslator @section GNOME's PO File Editor @cindex GNOME PO file editor -@node PO Mode, Compendium, Gtranslator, Editing +@node PO Mode @section Emacs's PO File Editor @cindex Emacs PO Mode @@ -3255,7 +3255,7 @@ For the beginning, besides main PO mode commands * Auxiliary:: Consulting Auxiliary PO Files @end menu -@node Installation, Main PO Commands, PO Mode, PO Mode +@node Installation @subsection Completing GNU @code{gettext} Installation @cindex installing @code{gettext} @@ -3305,7 +3305,7 @@ to your @file{.emacs} file. If, with this, you still see boxes instead of international characters, try a different font set (via Shift Mouse button 1). -@node Main PO Commands, Entry Positioning, Installation, PO Mode +@node Main PO Commands @subsection Main PO mode Commands @cindex PO mode (Emacs) commands @@ -3440,7 +3440,7 @@ translator to reposition quickly to the offending parts of the PO file. Once the cursor is on the line in error, the translator may decide on any PO mode action which would help correcting the error. -@node Entry Positioning, Normalizing, Main PO Commands, PO Mode +@node Entry Positioning @subsection Entry Positioning @emindex current entry of a PO file @@ -3584,7 +3584,7 @@ For achieving this, the translator will position the cursor on the first entry, use @kbd{m}, then position to the second entry, and merely use @kbd{x} for making the switch. -@node Normalizing, Translated Entries, Entry Positioning, PO Mode +@node Normalizing @subsection Normalizing Strings in Entries @cindex string normalization in entries @@ -3692,7 +3692,7 @@ msgstr "\n\n" There are a few yet undecided little points about string normalization, to be documented in this manual, once these questions settle. -@node Translated Entries, Fuzzy Entries, Normalizing, PO Mode +@node Translated Entries @subsection Translated Entries @cindex translated entries @@ -3733,7 +3733,7 @@ received a new translation first becomes a fuzzy entry, which ought to be later unfuzzied before becoming an official, genuine translated entry. @xref{Fuzzy Entries}. -@node Fuzzy Entries, Untranslated Entries, Translated Entries, PO Mode +@node Fuzzy Entries @subsection Fuzzy Entries @cindex fuzzy entries @@ -3819,7 +3819,7 @@ Also, when time comes to quit working on a PO file buffer with the @kbd{q} command, the translator is asked for confirmation, if fuzzy string still exists. -@node Untranslated Entries, Obsolete Entries, Fuzzy Entries, PO Mode +@node Untranslated Entries @subsection Untranslated Entries @cindex untranslated entries @@ -3876,7 +3876,7 @@ Also, when time comes to quit working on a PO file buffer with the @kbd{q} command, the translator is asked for confirmation, if some untranslated string still exists. -@node Obsolete Entries, Modifying Translations, Untranslated Entries, PO Mode +@node Obsolete Entries @subsection Obsolete Entries @cindex obsolete entries @@ -3957,7 +3957,7 @@ Right now, PO mode completely lets the decision to the translator, when the time comes to find the adequate obsolete translation, it merely tries to provide handy tools for helping her to do so. -@node Modifying Translations, Modifying Comments, Obsolete Entries, PO Mode +@node Modifying Translations @subsection Modifying Translations @cindex editing translations @emindex editing translations @@ -4134,7 +4134,7 @@ translator may find it useful to become better acquainted with the Emacs capability of learning these sequences and playing them back under request. @xref{Keyboard Macros, , , emacs, The Emacs Editor}. -@node Modifying Comments, Subedit, Modifying Translations, PO Mode +@node Modifying Comments @subsection Modifying Comments @cindex editing comments in PO files @emindex editing comments @@ -4240,7 +4240,7 @@ away with @kbd{#}. Once inside the editing window, she can use the regular Emacs commands @kbd{C-y} (@code{yank}) and @kbd{M-y} (@code{yank-pop}) to get the previous translation where she likes. -@node Subedit, C Sources Context, Modifying Comments, PO Mode +@node Subedit @subsection Details of Sub Edition @emindex subedit minor mode @@ -4329,7 +4329,7 @@ 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 are automatically resumed one at a time, so she may decide for each of them. -@node C Sources Context, Auxiliary, Subedit, PO Mode +@node C Sources Context @subsection C Sources Context @emindex consulting program sources @emindex looking at the source to aid translation @@ -4447,7 +4447,7 @@ enter a new directory at the front of the search path, and the command @kbd{M-S} (@code{po-ignore-source-path}) is used to select, with completion, one of the directories she does not want anymore on the search path. -@node Auxiliary, , C Sources Context, PO Mode +@node Auxiliary @subsection Consulting Auxiliary PO Files @emindex consulting translations to other languages @@ -4531,7 +4531,7 @@ files resulting of the @samp{M-x normalize} command. Until these discrepancies between PO mode and other GNU @code{gettext} tools get fully resolved, the translator should stay aware of normalisation issues. -@node Compendium, , PO Mode, Editing +@node Compendium @section Using Translation Compendia @emindex using translation compendia @@ -4547,7 +4547,7 @@ already translated entries, from translations kept in the compendium. * Using Compendia:: Using older translations if they fit @end menu -@node Creating Compendia, Using Compendia, Compendium, Compendium +@node Creating Compendia @subsection Creating Compendia @cindex creating compendia @cindex compendium, creating @@ -4635,7 +4635,7 @@ existing PO file into one compendium file you can use @samp{msggrep}: msggrep --location src/getopt.c -o compendium.po file.po @end example -@node Using Compendia, , Creating Compendia, Compendium +@node Using Compendia @subsection Using Compendia You can use a compendium file to initialize a translation from scratch @@ -4663,7 +4663,7 @@ msgcat --use-first -o update.po compendium1.po compendium2.po file.po msgmerge update.po file.pot | msgattrib --no-obsolete > file.po @end example -@node Manipulating, Binaries, Editing, Top +@node Manipulating @chapter Manipulating PO Files @cindex manipulating PO files @@ -4748,57 +4748,57 @@ write other specialized programs that process PO files. * libgettextpo:: Writing your own programs that process PO files @end menu -@node msgcat Invocation, msgconv Invocation, Manipulating, Manipulating +@node msgcat Invocation @section Invoking the @code{msgcat} Program @include msgcat.texi -@node msgconv Invocation, msggrep Invocation, msgcat Invocation, Manipulating +@node msgconv Invocation @section Invoking the @code{msgconv} Program @include msgconv.texi -@node msggrep Invocation, msgfilter Invocation, msgconv Invocation, Manipulating +@node msggrep Invocation @section Invoking the @code{msggrep} Program @include msggrep.texi -@node msgfilter Invocation, msguniq Invocation, msggrep Invocation, Manipulating +@node msgfilter Invocation @section Invoking the @code{msgfilter} Program @include msgfilter.texi -@node msguniq Invocation, msgcomm Invocation, msgfilter Invocation, Manipulating +@node msguniq Invocation @section Invoking the @code{msguniq} Program @include msguniq.texi -@node msgcomm Invocation, msgcmp Invocation, msguniq Invocation, Manipulating +@node msgcomm Invocation @section Invoking the @code{msgcomm} Program @include msgcomm.texi -@node msgcmp Invocation, msgattrib Invocation, msgcomm Invocation, Manipulating +@node msgcmp Invocation @section Invoking the @code{msgcmp} Program @include msgcmp.texi -@node msgattrib Invocation, msgen Invocation, msgcmp Invocation, Manipulating +@node msgattrib Invocation @section Invoking the @code{msgattrib} Program @include msgattrib.texi -@node msgen Invocation, msgexec Invocation, msgattrib Invocation, Manipulating +@node msgen Invocation @section Invoking the @code{msgen} Program @include msgen.texi -@node msgexec Invocation, Colorizing, msgen Invocation, Manipulating +@node msgexec Invocation @section Invoking the @code{msgexec} Program @include msgexec.texi -@node Colorizing, libgettextpo, msgexec Invocation, Manipulating +@node Colorizing @section Highlighting parts of PO files Translators are usually only interested in seeing the untranslated and @@ -4819,7 +4819,7 @@ Such highlighting is possible through the @code{msgcat} options * Customizing less:: Customizing @code{less} for viewing PO files @end menu -@node The --color option, The TERM variable, Colorizing, Colorizing +@node The --color option @subsection The @code{--color} option @opindex --color@r{, @code{msgcat} option} @@ -4867,7 +4867,7 @@ confronted with such content. Except for the @samp{--color=html} case, you therefore normally don't need to save output produced with the @code{--color} option in a file. -@node The TERM variable, The --style option, The --color option, Colorizing +@node The TERM variable @subsection The environment variable @code{TERM} @vindex TERM@r{, environment variable} @@ -4903,7 +4903,7 @@ After setting @code{TERM}, you can verify it by invoking @samp{msgcat --color=test} and seeing whether the output looks like a reasonable color map. -@node The --style option, Style rules, The TERM variable, Colorizing +@node The --style option @subsection The @code{--style} option @opindex --style@r{, @code{msgcat} option} @@ -4943,7 +4943,7 @@ installation location. You can also design your own styles. This is described in the next section. -@node Style rules, Customizing less, The --style option, Colorizing +@node Style rules @subsection Style rules for PO files The same style file can be used for styling of a PO file, for terminal @@ -5139,7 +5139,7 @@ This property is supported, limited to the values @code{none} and @code{underline}. @end table -@node Customizing less, , Style rules, Colorizing +@node Customizing less @subsection Customizing @code{less} for viewing PO files The @samp{less} program is a popular text file browser for use in a text @@ -5194,7 +5194,7 @@ esac @end smallexample @end enumerate -@node libgettextpo, , Colorizing, Manipulating +@node libgettextpo @section Writing your own programs that process PO files For the tasks for which a combination of @samp{msgattrib}, @samp{msgcat} etc. @@ -5322,7 +5322,7 @@ if (file == NULL) po_file_free (file); @end example -@node Binaries, Programmers, Manipulating, Top +@node Binaries @chapter Producing Binary MO Files @c FIXME: Rewrite. @@ -5333,17 +5333,17 @@ po_file_free (file); * MO Files:: The Format of GNU MO Files @end menu -@node msgfmt Invocation, msgunfmt Invocation, Binaries, Binaries +@node msgfmt Invocation @section Invoking the @code{msgfmt} Program @include msgfmt.texi -@node msgunfmt Invocation, MO Files, msgfmt Invocation, Binaries +@node msgunfmt Invocation @section Invoking the @code{msgunfmt} Program @include msgunfmt.texi -@node MO Files, , msgunfmt Invocation, Binaries +@node MO Files @section The Format of GNU MO Files @cindex MO file's format @cindex file format, @file{.mo} @@ -5501,7 +5501,7 @@ T + ((N-1)*8)| length & offset (N-1)th translation | | | | | @end group @end example -@node Programmers, Translators, Binaries, Top +@node Programmers @chapter The Programmer's View @c FIXME: Reorganize whole chapter. @@ -5526,7 +5526,7 @@ later explain our solution of this dilemma. * Temp Programmers:: Temporary Notes for the Programmers Chapter @end menu -@node catgets, gettext, Programmers, Programmers +@node catgets @section About @code{catgets} @cindex @code{catgets}, X/Open specification @@ -5556,7 +5556,7 @@ therefore part of all Unix implementation (implementations, which are * Problems with catgets:: Problems with the @code{catgets} interface?! @end menu -@node Interface to catgets, Problems with catgets, catgets, catgets +@node Interface to catgets @subsection The Interface @cindex interface to @code{catgets} @@ -5617,7 +5617,7 @@ catclose (catd); After this no @code{catgets} call using the descriptor is legal anymore. -@node Problems with catgets, , Interface to catgets, catgets +@node Problems with catgets @subsection Problems with the @code{catgets} Interface?! @cindex problems with @code{catgets} interface @@ -5633,7 +5633,7 @@ chaos but one as the other fails in one aspect or the other. We don't want to say that the other approach has no problems but they are far more easy to manage. -@node gettext, Comparison, catgets, Programmers +@node gettext @section About @code{gettext} @cindex @code{gettext}, a programmer's view @@ -5664,7 +5664,7 @@ in using this library will be interested in this description. * Optimized gettext:: Optimization of the *gettext functions @end menu -@node Interface to gettext, Ambiguities, gettext, gettext +@node Interface to gettext @subsection The Interface @cindex @code{gettext} interface @@ -5718,7 +5718,7 @@ name. In the following code all strings which have to be translated are filtered through the gettext function. That's all, the package speaks your language. -@node Ambiguities, Locating Catalogs, Interface to gettext, gettext +@node Ambiguities @subsection Solving Ambiguities @cindex several domains @cindex domain ambiguities @@ -5780,7 +5780,7 @@ achieved when the program executes a @code{chdir} command. Relative paths should always be avoided to avoid dependencies and unreliabilities. -@node Locating Catalogs, Charset conversion, Ambiguities, gettext +@node Locating Catalogs @subsection Locating Message Catalog Files @cindex message catalog files location @@ -5817,7 +5817,7 @@ variables.} When using the function @code{dcgettext}, you can specify the locale category through the third argument. -@node Charset conversion, Contexts, Locating Catalogs, gettext +@node Charset conversion @subsection How to specify the output character set @code{gettext} uses @cindex charset conversion at runtime @cindex encoding conversion at runtime @@ -5865,7 +5865,7 @@ user. If the system went out of core during the execution of global variable @var{errno} is set accordingly. @end deftypefun -@node Contexts, Plural forms, Charset conversion, gettext +@node Contexts @subsection Using contexts for solving ambiguities @cindex context @cindex GUI programs @@ -6007,7 +6007,7 @@ These macros are more general. But in the case that both argument expressions are string literals, the macros without the @samp{_expr} suffix are more efficient. -@node Plural forms, Optimized gettext, Contexts, gettext +@node Plural forms @subsection Additional functions for plural forms @cindex plural forms @@ -6561,7 +6561,7 @@ is acceptable in English, and similarly for other languages. The translators' perspective regarding plural forms is explained in @ref{Translating plural forms}. -@node Optimized gettext, , Plural forms, gettext +@node Optimized gettext @subsection Optimization of the *gettext functions @cindex optimization of @code{gettext} functions @@ -6609,7 +6609,7 @@ When the same translation is requested twice, with no new message catalogs being loaded in between, @code{gettext} will, the second time, find the result through a single cache lookup. -@node Comparison, Using libintl.a, gettext, Programmers +@node Comparison @section Comparing the Two Interfaces @cindex @code{gettext} vs @code{catgets} @cindex comparison of interfaces @@ -6727,7 +6727,7 @@ little bit. But it is not impossible to overcome. but @code{gettext} has another, scalable approach for solving ambiguities of this kind: @xref{Ambiguities}. -@node Using libintl.a, gettext grok, Comparison, Programmers +@node Using libintl.a @section Using libintl.a in own programs Starting with version 0.9.4 the library @code{libintl.h} should be @@ -6735,7 +6735,7 @@ self-contained. I.e., you can use it in your own programs without providing additional functions. The @file{Makefile} will put the header and the library in directories selected using the @code{$(prefix)}. -@node gettext grok, Temp Programmers, Using libintl.a, Programmers +@node gettext grok @section Being a @code{gettext} grok @strong{ NOTE: } This documentation section is outdated and needs to be @@ -6813,7 +6813,7 @@ system's native gettext implementation. @end itemize -@node Temp Programmers, , gettext grok, Programmers +@node Temp Programmers @section Temporary Notes for the Programmers Chapter @strong{ NOTE: } This documentation section is outdated and needs to be @@ -6826,7 +6826,7 @@ revised. * Temp Notes:: Temporary - Notes @end menu -@node Temp Implementations, Temp catgets, Temp Programmers, Temp Programmers +@node Temp Implementations @subsection Temporary - Two Possible Implementations There are two competing methods for language independent messages: @@ -6851,7 +6851,7 @@ They were very careful not to say anywhere that you should use one set of interfaces over the other. For more on this topic please see the Programming for Internationalization FAQ. -@node Temp catgets, Temp WSI, Temp Implementations, Temp Programmers +@node Temp catgets @subsection Temporary - About @code{catgets} There have been a few discussions of late on the use of @@ -6885,7 +6885,7 @@ friends are defined in XPG4, I'm led to believe that @code{catgets} is a part of Spec1170 and hence will become a standardized component of all Unix systems. -@node Temp WSI, Temp Notes, Temp catgets, Temp Programmers +@node Temp WSI @subsection Temporary - Why a single implementation Now it seems kind of wasteful to me to have two different systems @@ -6921,7 +6921,7 @@ Like many parts of Unix that can be improved upon, we're stuck with balancing compatibility with the past with useful improvements and innovations for the future. -@node Temp Notes, , Temp WSI, Temp Programmers +@node Temp Notes @subsection Temporary - Notes X/Open agreed very late on the standard form so that many @@ -6932,7 +6932,7 @@ OK. After incorporating the last changes I have to spend some time on making the GNU/Linux @code{libc} @code{gettext} functions. So in future Solaris is not the only system having @code{gettext}. -@node Translators, Maintainers, Programmers, Top +@node Translators @chapter The Translator's View @c FIXME: Reorganize whole chapter. @@ -6947,7 +6947,7 @@ Solaris is not the only system having @code{gettext}. * Prioritizing messages:: How to find which messages to translate first @end menu -@node Trans Intro 0, Trans Intro 1, Translators, Translators +@node Trans Intro 0 @section Introduction 0 @strong{ NOTE: } This documentation section is outdated and needs to be @@ -7011,7 +7011,7 @@ volunteer to work at translating messages, please send mail to @file{coordinator@@translationproject.org} indicating what language(s) you can work on. -@node Trans Intro 1, Discussions, Trans Intro 0, Translators +@node Trans Intro 1 @section Introduction 1 @strong{ NOTE: } This documentation section is outdated and needs to be @@ -7051,7 +7051,7 @@ internationalization of free software is dedicated to succeed. For suggestion clarifications, additions or corrections to this document, please e-mail to @file{coordinator@@translationproject.org}. -@node Discussions, Organization, Trans Intro 1, Translators +@node Discussions @section Discussions @strong{ NOTE: } This documentation section is outdated and needs to be @@ -7128,7 +7128,7 @@ software. @end itemize -@node Organization, Information Flow, Discussions, Translators +@node Organization @section Organization @strong{ NOTE: } This documentation section is outdated and needs to be @@ -7171,7 +7171,7 @@ reaches the Translation Project coordinator. * Mailing Lists:: Mailing Lists @end menu -@node Central Coordination, National Teams, Organization, Organization +@node Central Coordination @subsection Central Coordination I also think GNU will need sooner than it thinks, that someone set up @@ -7191,7 +7191,7 @@ one coordinator per language, or country (regionalized language). If well done, the coordination should be useful without being an overwhelming task, the time to put delegations in place. -@node National Teams, Mailing Lists, Central Coordination, Organization +@node National Teams @subsection National Teams I suggest we look for volunteer coordinators/editors for individual @@ -7243,7 +7243,7 @@ consistent. * Organizational Ideas:: Organizational Ideas @end menu -@node Sub-Cultures, Organizational Ideas, National Teams, National Teams +@node Sub-Cultures @subsubsection Sub-Cultures Taking French for example, there are a few sub-cultures around computers @@ -7260,7 +7260,7 @@ Maybe we should begin to address this problem seriously @emph{before} GNU @code{gettext} become officially published. And I suspect that this means soon! -@node Organizational Ideas, , Sub-Cultures, National Teams +@node Organizational Ideas @subsubsection Organizational Ideas I expect the next big changes after the official release. Please note @@ -7289,7 +7289,7 @@ this also seems to work). @end itemize -@node Mailing Lists, , National Teams, Organization +@node Mailing Lists @subsection Mailing Lists If we get any inquiries about GNU @code{gettext}, send them on to: @@ -7329,7 +7329,7 @@ run, each team should run its own list, from within their country. There also should be some central list to which all teams could subscribe as they see fit, as long as each team is represented in it. -@node Information Flow, Translating plural forms, Organization, Translators +@node Information Flow @section Information Flow @strong{ NOTE: } This documentation section is outdated and needs to be @@ -7370,7 +7370,7 @@ I sent a proposal for a fast and flexible format, but it is not receiving acceptance yet by the GNU deciders. I'll tell you when I have more information about this. -@node Translating plural forms, Prioritizing messages, Information Flow, Translators +@node Translating plural forms @section Translating plural forms @cindex plural forms, translating @@ -7467,7 +7467,7 @@ specialized translation without the number placeholder. In our case, however, @code{msgstr[0]} also applies to the numbers 21, 31, 41, etc., and therefore you cannot omit the placeholder. -@node Prioritizing messages, , Translating plural forms, Translators +@node Prioritizing messages @section Prioritizing messages: How to determine which messages to translate first A translator sometimes has only a limited amount of time per week to @@ -7578,7 +7578,7 @@ $ msgmerge --no-fuzzy-matching $domain.$lang-urgent.po $package/po/$domain.pot \ Then she can submit @file{$domain.$lang.po} and proceed to the next domain. -@node Maintainers, Installers, Translators, Top +@node Maintainers @chapter The Maintainer's View @cindex package maintainer's view of @code{gettext} @@ -7618,7 +7618,7 @@ for changes. * Release Management:: Creating a Distribution Tarball @end menu -@node Flat and Non-Flat, Prerequisites, Maintainers, Maintainers +@node Flat and Non-Flat @section Flat or Non-Flat Directory Structures Some free software packages are distributed as @code{tar} files which unpack @@ -7644,7 +7644,7 @@ we have more experience with this approach, and this is what will be described in the remaining of this chapter. Some maintainers might use this as an opportunity to unflatten their package structure. -@node Prerequisites, gettextize Invocation, Flat and Non-Flat, Maintainers +@node Prerequisites @section Prerequisite Works @cindex converting a package to use @code{gettext} @cindex migration from earlier versions of @code{gettext} @@ -7729,12 +7729,12 @@ Teams ought to settle their problems themselves, if any. If you, as a maintainer, ever think there is a real problem with a team, please never try to @emph{solve} a team's problem on your own. -@node gettextize Invocation, Adjusting Files, Prerequisites, Maintainers +@node gettextize Invocation @section Invoking the @code{gettextize} Program @include gettextize.texi -@node Adjusting Files, autoconf macros, gettextize Invocation, Maintainers +@node Adjusting Files @section Files You Must Create or Alter @cindex @code{gettext} files @@ -7769,7 +7769,7 @@ using GNU gettext functionality. * lib/gettext.h:: @file{gettext.h} in @file{lib/} @end menu -@node po/POTFILES.in, po/LINGUAS, Adjusting Files, Adjusting Files +@node po/POTFILES.in @subsection @file{POTFILES.in} in @file{po/} @cindex @file{POTFILES.in} file @@ -7808,7 +7808,7 @@ it is recommended to list in @file{po/POTFILES.in} the real source file (ending in @file{.l} in the case of @code{flex}, or in @file{.y} in the case of @code{bison}), not the generated C file. -@node po/LINGUAS, po/Makevars, po/POTFILES.in, Adjusting Files +@node po/LINGUAS @subsection @file{LINGUAS} in @file{po/} @cindex @file{LINGUAS} file @@ -7848,7 +7848,7 @@ need the files @file{Rules-quot}, @file{quot.sed}, @file{boldquot.sed}, in the @file{po/} directory. You can copy them from GNU gettext's @file{po/} directory; they are also installed by running @code{gettextize}. -@node po/Makevars, po/Rules-*, po/LINGUAS, Adjusting Files +@node po/Makevars @subsection @file{Makevars} in @file{po/} @cindex @file{Makevars} file @@ -7868,7 +7868,7 @@ As an alternative to the @code{XGETTEXT_OPTIONS} variables, it is also possible to specify @code{xgettext} options through the @code{AM_XGETTEXT_OPTION} autoconf macro. See @ref{AM_XGETTEXT_OPTION}. -@node po/Rules-*, configure.ac, po/Makevars, Adjusting Files +@node po/Rules-* @subsection Extending @file{Makefile} in @file{po/} @cindex @file{Makefile.in.in} extensions @@ -7898,7 +7898,7 @@ Similarly, you can create rules for building message catalogs for the from those for the @file{sr} locale -- Serbian written with Cyrillic letters. See @ref{msgfilter Invocation}. -@node configure.ac, config.guess, po/Rules-*, Adjusting Files +@node configure.ac @subsection @file{configure.ac} at top level @file{configure.ac} or @file{configure.in} - this is the source from which @@ -7995,7 +7995,7 @@ you need to add an explicit invocation of @samp{AC_GNU_SOURCE} in the invocation. This is necessary because of ordering restrictions imposed by GNU autoconf. -@node config.guess, mkinstalldirs, configure.ac, Adjusting Files +@node config.guess @subsection @file{config.guess}, @file{config.sub} at top level If you haven't suppressed the @file{intl/} subdirectory, @@ -8026,7 +8026,7 @@ to your @file{configure.ac}. AC_CONFIG_AUX_DIR([@var{subdir}]) @end example -@node mkinstalldirs, aclocal, config.guess, Adjusting Files +@node mkinstalldirs @subsection @file{mkinstalldirs} at top level @cindex @file{mkinstalldirs} file @@ -8035,7 +8035,7 @@ With earlier versions of GNU gettext, you needed to add the GNU more. You can remove it if you not also using an automake version older than automake 1.9. -@node aclocal, acconfig, mkinstalldirs, Adjusting Files +@node aclocal @subsection @file{aclocal.m4} at top level @cindex @file{aclocal.m4} file @@ -8096,7 +8096,7 @@ might be integrated in the standard Autoconf set, because this piece of @code{m4} code will be the same for all projects using GNU @code{gettext}. -@node acconfig, config.h.in, aclocal, Adjusting Files +@node acconfig @subsection @file{acconfig.h} at top level @cindex @file{acconfig.h} file @@ -8107,7 +8107,7 @@ Earlier GNU @code{gettext} releases required to put definitions for them from your @file{acconfig.h} file unless your package uses them independently from the @file{intl/} directory. -@node config.h.in, Makefile, acconfig, Adjusting Files +@node config.h.in @subsection @file{config.h.in} at top level @cindex @file{config.h.in} file @@ -8142,7 +8142,7 @@ following lines to @file{config.h.in}: #undef ENABLE_NLS @end example -@node Makefile, src/Makefile, config.h.in, Adjusting Files +@node Makefile @subsection @file{Makefile.in} at top level Here are a few modifications you need to make to your main, top-level @@ -8216,7 +8216,7 @@ Note that if you are using GNU @code{automake}, @file{Makefile.in} is automatically generated from @file{Makefile.am}, and all needed changes to @file{Makefile.am} are already made by running @samp{gettextize}. -@node src/Makefile, lib/gettext.h, Makefile, Adjusting Files +@node src/Makefile @subsection @file{Makefile.in} in @file{src/} Some of the modifications made in the main @file{Makefile.in} will @@ -8380,7 +8380,7 @@ AM_CPPFLAGS = -I../intl -I$(top_srcdir)/intl @end enumerate -@node lib/gettext.h, , src/Makefile, Adjusting Files +@node lib/gettext.h @subsection @file{gettext.h} in @file{lib/} @cindex @file{gettext.h} file @cindex turning off NLS support @@ -8441,7 +8441,7 @@ In other packages, it can go into the @file{src} directory. Do not install the @code{gettext.h} file in public locations. Every package that needs it should contain a copy of it on its own. -@node autoconf macros, Version Control Issues, Adjusting Files, Maintainers +@node autoconf macros @section Autoconf macros for use in @file{configure.ac} @cindex autoconf macros for @code{gettext} @@ -8460,7 +8460,7 @@ The primary macro is, of course, @code{AM_GNU_GETTEXT}. * AM_ICONV:: AM_ICONV in @file{iconv.m4} @end menu -@node AM_GNU_GETTEXT, AM_GNU_GETTEXT_VERSION, autoconf macros, autoconf macros +@node AM_GNU_GETTEXT @subsection AM_GNU_GETTEXT in @file{gettext.m4} @amindex AM_GNU_GETTEXT @@ -8551,7 +8551,7 @@ linker options needed to use iconv and appends them to the @code{LIBINTL} and @code{LTLIBINTL} variables. @end itemize -@node AM_GNU_GETTEXT_VERSION, AM_GNU_GETTEXT_NEED, AM_GNU_GETTEXT, autoconf macros +@node AM_GNU_GETTEXT_VERSION @subsection AM_GNU_GETTEXT_VERSION in @file{gettext.m4} @amindex AM_GNU_GETTEXT_VERSION @@ -8561,7 +8561,7 @@ the GNU gettext infrastructure that is used by the package. The use of this macro is optional; only the @code{autopoint} program makes use of it (@pxref{Version Control Issues}). -@node AM_GNU_GETTEXT_NEED, AM_GNU_GETTEXT_INTL_SUBDIR, AM_GNU_GETTEXT_VERSION, autoconf macros +@node AM_GNU_GETTEXT_NEED @subsection AM_GNU_GETTEXT_NEED in @file{gettext.m4} @amindex AM_GNU_GETTEXT_NEED @@ -8584,7 +8584,7 @@ account. The @code{AM_GNU_GETTEXT_NEED} invocations can occur before or after the @code{AM_GNU_GETTEXT} invocation; the order doesn't matter. -@node AM_GNU_GETTEXT_INTL_SUBDIR, AM_PO_SUBDIRS, AM_GNU_GETTEXT_NEED, autoconf macros +@node AM_GNU_GETTEXT_INTL_SUBDIR @subsection AM_GNU_GETTEXT_INTL_SUBDIR in @file{intldir.m4} @amindex AM_GNU_GETTEXT_INTL_SUBDIR @@ -8599,7 +8599,7 @@ the @code{AM_GNU_GETTEXT} invocation; the order doesn't matter. The use of this macro requires GNU automake 1.10 or newer and GNU autoconf 2.61 or newer. -@node AM_PO_SUBDIRS, AM_XGETTEXT_OPTION, AM_GNU_GETTEXT_INTL_SUBDIR, autoconf macros +@node AM_PO_SUBDIRS @subsection AM_PO_SUBDIRS in @file{po.m4} @amindex AM_PO_SUBDIRS @@ -8615,7 +8615,7 @@ should be used. If so, it sets the @code{USE_NLS} variable to @samp{yes}, otherwise to @samp{no}. It also determines the right values for Makefile variables in each @file{po/} directory. -@node AM_XGETTEXT_OPTION, AM_ICONV, AM_PO_SUBDIRS, autoconf macros +@node AM_XGETTEXT_OPTION @subsection AM_XGETTEXT_OPTION in @file{po.m4} @amindex AM_XGETTEXT_OPTION @@ -8638,7 +8638,7 @@ accepts. The use of this macro is an alternative to the use of the @samp{XGETTEXT_OPTIONS} variable in @file{po/Makevars}. -@node AM_ICONV, , AM_XGETTEXT_OPTION, autoconf macros +@node AM_ICONV @subsection AM_ICONV in @file{iconv.m4} @amindex AM_ICONV @@ -8690,7 +8690,7 @@ library support, like SCO. @file{iconv.m4} is distributed with the GNU gettext package because @file{gettext.m4} relies on it. -@node Version Control Issues, Release Management, autoconf macros, Maintainers +@node Version Control Issues @section Integrating with Version Control Systems Many projects use version control systems for distributed development @@ -8705,7 +8705,7 @@ version controlled files. * autopoint Invocation:: Invoking the @code{autopoint} Program @end menu -@node Distributed Development, Files under Version Control, Version Control Issues, Version Control Issues +@node Distributed Development @subsection Avoiding version mismatch in distributed development In a project development with multiple developers, there should be a @@ -8744,7 +8744,7 @@ version. For example, it is possible that a platform specific bug goes undiscovered due to this constellation. @end itemize -@node Files under Version Control, Translations under Version Control, Distributed Development, Version Control Issues +@node Files under Version Control @subsection Files to put under version control There are basically three ways to deal with generated files in the @@ -8824,7 +8824,7 @@ into @code{AM_GNU_GETTEXT_VERSION(0.12.1)}, and all other developers that use the CVS will henceforth need to have GNU @code{gettext} 0.12.1 or newer installed. -@node Translations under Version Control, autopoint Invocation, Files under Version Control, Version Control Issues +@node Translations under Version Control @subsection Put PO Files under Version Control Since translations are valuable assets as well as the source code, it @@ -8873,12 +8873,12 @@ recover the location comments by running @code{msgmerge} again. @end itemize -@node autopoint Invocation, , Translations under Version Control, Version Control Issues +@node autopoint Invocation @subsection Invoking the @code{autopoint} Program @include autopoint.texi -@node Release Management, , Version Control Issues, Maintainers +@node Release Management @section Creating a Distribution Tarball @cindex release @@ -8896,7 +8896,7 @@ $ (cd po; make update-po) $ make distclean @end example -@node Installers, Programming Languages, Maintainers, Top +@node Installers @chapter The Installer's and Distributor's View @cindex package installer's view of @code{gettext} @cindex package distributor's view of @code{gettext} @@ -8925,7 +8925,7 @@ may be set, prior to configuration, to limit the installed set. @code{LINGUAS} should then contain a space separated list of two-letter codes, stating which languages are allowed. -@node Programming Languages, Data Formats, Installers, Top +@node Programming Languages @chapter Other Programming Languages While the presentation of @code{gettext} focuses mostly on C and @@ -8942,7 +8942,7 @@ approach. * List of Programming Languages:: Individual Programming Languages @end menu -@node Language Implementors, Programmers for other Languages, Programming Languages, Programming Languages +@node Language Implementors @section The Language Implementor's View @cindex programming languages @cindex scripting languages @@ -9048,7 +9048,7 @@ variable, the locale aliases database, the automatic charset conversion, and plural handling). @end itemize -@node Programmers for other Languages, Translators for other Languages, Language Implementors, Programming Languages +@node Programmers for other Languages @section The Programmer's View For the programmer, the general procedure is the same as for the C @@ -9058,7 +9058,7 @@ file extension or a command-line option. In some languages, @code{setlocale} is not needed because it is already performed by the underlying language runtime. -@node Translators for other Languages, Maintainers for other Languages, Programmers for other Languages, Programming Languages +@node Translators for other Languages @section The Translator's View The translator works exactly as in the C language case. The only @@ -9095,7 +9095,7 @@ strings. * javascript-format:: JavaScript Format Strings @end menu -@node c-format, objc-format, Translators for other Languages, Translators for other Languages +@node c-format @subsection C Format Strings C format strings are described in POSIX (IEEE P1003.1 2001), section @@ -9140,14 +9140,14 @@ untranslated string. (Putting the @samp{I} format directive flag into an @var{msgid} string would lead to undefined behaviour on platforms without glibc when NLS is disabled.) -@node objc-format, sh-format, c-format, Translators for other Languages +@node objc-format @subsection Objective C Format Strings Objective C format strings are like C format strings. They support an additional format directive: "%@@", which when executed consumes an argument of type @code{Object *}. -@node sh-format, python-format, objc-format, Translators for other Languages +@node sh-format @subsection Shell Format Strings Shell format strings, as supported by GNU gettext and the @samp{envsubst} @@ -9166,7 +9166,7 @@ that would be valid inside shell scripts, are not supported. The ASCII characters, not start with a digit and be nonempty; otherwise such a variable reference is ignored. -@node python-format, lisp-format, sh-format, Translators for other Languages +@node python-format @subsection Python Format Strings There are two kinds of format strings in Python: those acceptable to @@ -9184,14 +9184,14 @@ Python @code{%} format strings are described in Python brace format strings are described in @w{PEP 3101 -- Advanced String Formatting}, @uref{https://www.python.org/dev/peps/pep-3101/}. -@node lisp-format, elisp-format, python-format, Translators for other Languages +@node lisp-format @subsection Lisp Format Strings Lisp format strings are described in the Common Lisp HyperSpec, chapter 22.3 @w{Formatted Output}, @uref{http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_22-3.html}. -@node elisp-format, librep-format, lisp-format, Translators for other Languages +@node elisp-format @subsection Emacs Lisp Format Strings Emacs Lisp format strings are documented in the Emacs Lisp reference, @@ -9200,7 +9200,7 @@ section @w{Formatting Strings}, Note that as of version 21, XEmacs supports numbered argument specifications in format strings while FSF Emacs doesn't. -@node librep-format, scheme-format, elisp-format, Translators for other Languages +@node librep-format @subsection librep Format Strings librep format strings are documented in the librep manual, section @@ -9208,13 +9208,13 @@ librep format strings are documented in the librep manual, section @url{http://librep.sourceforge.net/librep-manual.html#Formatted%20Output}, @url{http://www.gwinnup.org/research/docs/librep.html#SEC122}. -@node scheme-format, smalltalk-format, librep-format, Translators for other Languages +@node scheme-format @subsection Scheme Format Strings Scheme format strings are documented in the SLIB manual, section @w{Format Specification}. -@node smalltalk-format, java-format, scheme-format, Translators for other Languages +@node smalltalk-format @subsection Smalltalk Format Strings Smalltalk format strings are described in the GNU Smalltalk documentation, @@ -9224,7 +9224,7 @@ class @code{CharArray}, methods @samp{bindWith:} and In summary, a directive starts with @samp{%} and is followed by @samp{%} or a nonzero digit (@samp{1} to @samp{9}). -@node java-format, csharp-format, smalltalk-format, Translators for other Languages +@node java-format @subsection Java Format Strings Java format strings are described in the JDK documentation for class @@ -9233,28 +9233,28 @@ Java format strings are described in the JDK documentation for class See also the ICU documentation @uref{http://oss.software.ibm.com/icu/apiref/classMessageFormat.html}. -@node csharp-format, awk-format, java-format, Translators for other Languages +@node csharp-format @subsection C# Format Strings C# format strings are described in the .NET documentation for class @code{System.String} and in @uref{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpConFormattingOverview.asp}. -@node awk-format, object-pascal-format, csharp-format, Translators for other Languages +@node awk-format @subsection awk Format Strings awk format strings are described in the gawk documentation, section @w{Printf}, @uref{https://www.gnu.org/manual/gawk/html_node/Printf.html#Printf}. -@node object-pascal-format, ycp-format, awk-format, Translators for other Languages +@node object-pascal-format @subsection Object Pascal Format Strings Object Pascal format strings are described in the documentation of the Free Pascal runtime library, section Format, @uref{https://www.freepascal.org/docs-html/rtl/sysutils/format.html}. -@node ycp-format, tcl-format, object-pascal-format, Translators for other Languages +@node ycp-format @subsection YCP Format Strings YCP sformat strings are described in the libycp documentation @@ -9262,13 +9262,13 @@ YCP sformat strings are described in the libycp documentation In summary, a directive starts with @samp{%} and is followed by @samp{%} or a nonzero digit (@samp{1} to @samp{9}). -@node tcl-format, perl-format, ycp-format, Translators for other Languages +@node tcl-format @subsection Tcl Format Strings Tcl format strings are described in the @file{format.n} manual page, @uref{http://www.scriptics.com/man/tcl8.3/TclCmd/format.htm}. -@node perl-format, php-format, tcl-format, Translators for other Languages +@node perl-format @subsection Perl Format Strings There are two kinds format strings in Perl: those acceptable to the @@ -9285,14 +9285,14 @@ libintl-perl. In brief, Perl format uses placeholders put between braces (@samp{@{} and @samp{@}}). The placeholder must have the syntax of simple identifiers. -@node php-format, gcc-internal-format, perl-format, Translators for other Languages +@node php-format @subsection PHP Format Strings PHP format strings are described in the documentation of the PHP function @code{sprintf}, in @file{phpdoc/manual/function.sprintf.html} or @uref{http://www.php.net/manual/en/function.sprintf.php}. -@node gcc-internal-format, gfc-internal-format, php-format, Translators for other Languages +@node gcc-internal-format @subsection GCC internal Format Strings These format strings are used inside the GCC sources. In such a format @@ -9310,7 +9310,7 @@ denotes a programming language, @samp{O} denotes a binary operator, @samp{P} denotes a function parameter, @samp{Q} denotes an assignment operator, @samp{V} denotes a const/volatile qualifier. -@node gfc-internal-format, qt-format, gcc-internal-format, Translators for other Languages +@node gfc-internal-format @subsection GFC internal Format Strings These format strings are used inside the GNU Fortran Compiler sources, @@ -9322,7 +9322,7 @@ denotes a character, @samp{s} denotes a string, @samp{i} and @samp{d} denote an integer, @samp{u} denotes an unsigned integer. @samp{i}, @samp{d}, and @samp{u} may be preceded by a size specifier @samp{l}. -@node qt-format, qt-plural-format, gfc-internal-format, Translators for other Languages +@node qt-format @subsection Qt Format Strings Qt format strings are described in the documentation of the QString class @@ -9330,14 +9330,14 @@ Qt format strings are described in the documentation of the QString class In summary, a directive consists of a @samp{%} followed by a digit. The same directive cannot occur more than once in a format string. -@node qt-plural-format, kde-format, qt-format, Translators for other Languages +@node qt-plural-format @subsection Qt Format Strings Qt format strings are described in the documentation of the QObject::tr method @uref{file:/usr/lib/qt-4.3.0/doc/html/qobject.html}. In summary, the only allowed directive is @samp{%n}. -@node kde-format, kde-kuit-format, qt-plural-format, Translators for other Languages +@node kde-format @subsection KDE Format Strings KDE 4 format strings are defined as follows: @@ -9345,7 +9345,7 @@ A directive consists of a @samp{%} followed by a non-zero decimal number. If a @samp{%n} occurs in a format strings, all of @samp{%1}, ..., @samp{%(n-1)} must occur as well, except possibly one of them. -@node kde-kuit-format, boost-format, kde-format, Translators for other Languages +@node kde-kuit-format @subsection KUIT Format Strings KUIT (KDE User Interface Text) is compatible with KDE 4 format strings, @@ -9357,7 +9357,7 @@ with a @samp{filename} tag, like @samp{%1}. KUIT format strings are described in @uref{https://api.kde.org/frameworks/ki18n/html/prg_guide.html#kuit_markup}. -@node boost-format, lua-format, kde-kuit-format, Translators for other Languages +@node boost-format @subsection Boost Format Strings Boost format strings are described in the documentation of the @@ -9368,13 +9368,13 @@ such as @samp{%1$+5d}, or may be surrounded by vertical bars, such as @samp{%|1$+5d|} or @samp{%|1$+5|}, or consists of just an argument number between percent signs, such as @samp{%1%}. -@node lua-format, javascript-format, boost-format, Translators for other Languages +@node lua-format @subsection Lua Format Strings Lua format strings are described in the Lua reference manual, section @w{String Manipulation}, @uref{https://www.lua.org/manual/5.1/manual.html#pdf-string.format}. -@node javascript-format, , lua-format, Translators for other Languages +@node javascript-format @subsection JavaScript Format Strings Although JavaScript specification itself does not define any format @@ -9389,7 +9389,7 @@ sign, @samp{c} denotes a character, @samp{s} denotes a string, object. -@node Maintainers for other Languages, List of Programming Languages, Translators for other Languages, Programming Languages +@node Maintainers for other Languages @section The Maintainer's View For the maintainer, the general procedure differs from the C language @@ -9414,7 +9414,7 @@ invocation per programming language, each with the options appropriate for that language, and to combine the resulting files using @code{msgcat}. @end itemize -@node List of Programming Languages, , Maintainers for other Languages, Programming Languages +@node List of Programming Languages @section Individual Programming Languages @c Here is a list of programming languages, as used for Free Software projects @@ -9497,7 +9497,7 @@ that language, and to combine the resulting files using @code{msgcat}. * Vala:: Vala @end menu -@node C, sh, List of Programming Languages, List of Programming Languages +@node C @subsection C, C++, Objective C @cindex C and C-like languages @@ -9560,7 +9560,7 @@ The following examples are available in the @file{examples} directory: @code{hello-c++-kde}, @code{hello-c++-gnome}, @code{hello-c++-wxwidgets}, @code{hello-objc}, @code{hello-objc-gnustep}, @code{hello-objc-gnome}. -@node sh, bash, C, List of Programming Languages +@node sh @subsection sh - Shell Script @cindex shell scripts @@ -9631,7 +9631,7 @@ An example is available in the @file{examples} directory: @code{hello-sh}. * eval_npgettext Invocation:: Invoking the @code{eval_npgettext} function @end menu -@node Preparing Shell Scripts, gettext.sh, sh, sh +@node Preparing Shell Scripts @subsubsection Preparing Shell Scripts for Internationalization @cindex preparing shell scripts for translation @@ -9750,7 +9750,7 @@ error "`eval_gettext \"file not found: \\\$filename\"`" @end smallexample @end enumerate -@node gettext.sh, gettext Invocation, Preparing Shell Scripts, sh +@node gettext.sh @subsubsection Contents of @code{gettext.sh} @code{gettext.sh}, contained in the run-time package of GNU gettext, provides @@ -9774,7 +9774,7 @@ See @ref{eval_pgettext Invocation}. See @ref{eval_npgettext Invocation}. @end itemize -@node gettext Invocation, ngettext Invocation, gettext.sh, sh +@node gettext Invocation @subsubsection Invoking the @code{gettext} program @include rt-gettext.texi @@ -9783,7 +9783,7 @@ Note: @code{xgettext} supports only the one-argument form of the @code{gettext} invocation, where no options are present and the @var{textdomain} is implicit, from the environment. -@node ngettext Invocation, envsubst Invocation, gettext Invocation, sh +@node ngettext Invocation @subsubsection Invoking the @code{ngettext} program @include rt-ngettext.texi @@ -9792,12 +9792,12 @@ Note: @code{xgettext} supports only the three-arguments form of the @code{ngettext} invocation, where no options are present and the @var{textdomain} is implicit, from the environment. -@node envsubst Invocation, eval_gettext Invocation, ngettext Invocation, sh +@node envsubst Invocation @subsubsection Invoking the @code{envsubst} program @include rt-envsubst.texi -@node eval_gettext Invocation, eval_ngettext Invocation, envsubst Invocation, sh +@node eval_gettext Invocation @subsubsection Invoking the @code{eval_gettext} function @cindex @code{eval_gettext} function, usage @@ -9810,7 +9810,7 @@ This function outputs the native language translation of a textual message, performing dollar-substitution on the result. Note that only shell variables mentioned in @var{msgid} will be dollar-substituted in the result. -@node eval_ngettext Invocation, eval_pgettext Invocation, eval_gettext Invocation, sh +@node eval_ngettext Invocation @subsubsection Invoking the @code{eval_ngettext} function @cindex @code{eval_ngettext} function, usage @@ -9824,7 +9824,7 @@ whose grammatical form depends on a number, performing dollar-substitution on the result. Note that only shell variables mentioned in @var{msgid} or @var{msgid-plural} will be dollar-substituted in the result. -@node eval_pgettext Invocation, eval_npgettext Invocation, eval_ngettext Invocation, sh +@node eval_pgettext Invocation @subsubsection Invoking the @code{eval_pgettext} function @cindex @code{eval_pgettext} function, usage @@ -9838,7 +9838,7 @@ in the given context @var{msgctxt} (see @ref{Contexts}), performing dollar-substitution on the result. Note that only shell variables mentioned in @var{msgid} will be dollar-substituted in the result. -@node eval_npgettext Invocation, , eval_pgettext Invocation, sh +@node eval_npgettext Invocation @subsubsection Invoking the @code{eval_npgettext} function @cindex @code{eval_npgettext} function, usage @@ -9853,7 +9853,7 @@ whose grammatical form depends on a number in the given context @var{msgctxt} that only shell variables mentioned in @var{msgid} or @var{msgid-plural} will be dollar-substituted in the result. -@node bash, Python, sh, List of Programming Languages +@node bash @subsection bash - Bourne-Again Shell Script @cindex bash @@ -9892,7 +9892,7 @@ The portability problem is that @code{bash} must be built with internationalization support; this is normally not the case on systems that don't have the @code{gettext()} function in libc. -@node Python, Common Lisp, bash, List of Programming Languages +@node Python @subsection Python @cindex Python @@ -9982,7 +9982,7 @@ the named argument syntax. (With unnamed arguments, Python -- unlike C -- verifies that the format string uses all supplied arguments.) @end itemize -@node Common Lisp, clisp C, Python, List of Programming Languages +@node Common Lisp @subsection GNU clisp - Common Lisp @cindex Common Lisp @cindex Lisp @@ -10037,7 +10037,7 @@ On platforms without gettext, no translation. An example is available in the @file{examples} directory: @code{hello-clisp}. -@node clisp C, Emacs Lisp, Common Lisp, List of Programming Languages +@node clisp C @subsection GNU clisp C sources @cindex clisp C sources @@ -10090,7 +10090,7 @@ On platforms without gettext, no translation. --- @end table -@node Emacs Lisp, librep, clisp C, List of Programming Languages +@node Emacs Lisp @subsection Emacs Lisp @cindex Emacs Lisp @@ -10141,7 +10141,7 @@ Only XEmacs. Without @code{I18N3} defined at build time, no translation. --- @end table -@node librep, Scheme, Emacs Lisp, List of Programming Languages +@node librep @subsection librep @cindex @code{librep} Lisp @@ -10194,7 +10194,7 @@ On platforms without gettext, no translation. An example is available in the @file{examples} directory: @code{hello-librep}. -@node Scheme, Smalltalk, librep, List of Programming Languages +@node Scheme @subsection GNU guile - Scheme @cindex Scheme @cindex guile @@ -10250,7 +10250,7 @@ On platforms without gettext, no translation. An example is available in the @file{examples} directory: @code{hello-guile}. -@node Smalltalk, Java, Scheme, List of Programming Languages +@node Smalltalk @subsection GNU Smalltalk @cindex Smalltalk @@ -10306,7 +10306,7 @@ fully portable An example is available in the @file{examples} directory: @code{hello-smalltalk}. -@node Java, C#, Smalltalk, List of Programming Languages +@node Java @subsection Java @cindex Java @@ -10505,7 +10505,7 @@ requires portability to Java versions prior to Java 1.5 and, if so, whether copying two lines of codes into every class is more acceptable in your project than a class with a single-letter name. -@node C#, gawk, Java, List of Programming Languages +@node C# @subsection C# @cindex C# @@ -10773,7 +10773,7 @@ Which of the two idioms you choose, will depend on whether copying two lines of codes into every class is more acceptable in your project than a class with a single-letter name. -@node gawk, Pascal, C#, List of Programming Languages +@node gawk @subsection GNU awk @cindex awk @cindex gawk @@ -10831,7 +10831,7 @@ yourself. An example is available in the @file{examples} directory: @code{hello-gawk}. -@node Pascal, wxWidgets, gawk, List of Programming Languages +@node Pascal @subsection Pascal - Free Pascal Compiler @cindex Pascal @cindex Free Pascal @@ -10893,7 +10893,7 @@ can be loaded using the @code{TranslateResourceStrings} function in the An example is available in the @file{examples} directory: @code{hello-pascal}. -@node wxWidgets, YCP, Pascal, List of Programming Languages +@node wxWidgets @subsection wxWidgets library @cindex @code{wxWidgets} library @@ -10946,7 +10946,7 @@ fully portable yes @end table -@node YCP, Tcl, wxWidgets, List of Programming Languages +@node YCP @subsection YCP - YaST2 scripting language @cindex YCP @cindex YaST2 scripting language @@ -11000,7 +11000,7 @@ fully portable An example is available in the @file{examples} directory: @code{hello-ycp}. -@node Tcl, Perl, YCP, List of Programming Languages +@node Tcl @subsection Tcl - Tk's scripting language @cindex Tcl @cindex Tk's scripting language @@ -11067,7 +11067,7 @@ After marking, this example becomes @code{msgcat::mc} function implicitly calls @code{format} when more than one argument is given. -@node Perl, PHP, Tcl, List of Programming Languages +@node Perl @subsection Perl @cindex Perl @@ -11187,7 +11187,7 @@ worst probably being its imperfectness. * Perl Pitfalls:: Bugs, Pitfalls, and Things That Do Not Work @end menu -@node General Problems, Default Keywords, Perl, Perl +@node General Problems @subsubsection General Problems Parsing Perl Code It is often heard that only Perl can parse Perl. This is not true. @@ -11345,7 +11345,7 @@ $y = (somefunc) ? 1 : 0; In fact the Perl parser itself has similar problems and warns you about such constructs. -@node Default Keywords, Special Keywords, General Problems, Perl +@node Default Keywords @subsubsection Which keywords will xgettext look for? @cindex Perl default keywords @@ -11419,7 +11419,7 @@ The keys of lookups into the hash reference @code{$gettext} will be extracted. @end itemize -@node Special Keywords, Quote-like Expressions, Default Keywords, Perl +@node Special Keywords @subsubsection How to Extract Hash Keys @cindex Perl special keywords for hash-lookups @@ -11459,7 +11459,7 @@ underscore or an ASCII letter and is followed by an arbitrary number of underscores, ASCII letters or digits. Other Unicode characters are @emph{not} allowed, regardless of the @code{use utf8} pragma. -@node Quote-like Expressions, Interpolation I, Special Keywords, Perl +@node Quote-like Expressions @subsubsection What are Strings And Quote-like Expressions? @cindex Perl quote-like expressions @@ -11543,7 +11543,7 @@ Delimiters that start with a digit are not supported! @end itemize -@node Interpolation I, Interpolation II, Quote-like Expressions, Perl +@node Interpolation I @subsubsection Invalid Uses Of String Interpolation @cindex Perl invalid string interpolation @@ -11650,7 +11650,7 @@ are generally useless and only obfuscate your sources. If a translation can be safely performed at compile time you can just as well write what you mean. -@node Interpolation II, Parentheses, Interpolation I, Perl +@node Interpolation II @subsubsection Valid Uses Of String Interpolation @cindex Perl valid string interpolation @@ -11717,7 +11717,7 @@ if ($var =~ /$gettext@{"the earth"@}/) @{ s/$gettext@{"U. S. A."@}/$gettext@{"U. S. A."@} $gettext@{"(dial +0)"@}/g; @end example -@node Parentheses, Long Lines, Interpolation II, Perl +@node Parentheses @subsubsection When To Use Parentheses @cindex Perl parentheses @@ -11759,7 +11759,7 @@ print dngettext 'package', ("one cake", "several cakes", $n), $discarded; @end group @end example -@node Long Lines, Perl Pitfalls, Parentheses, Perl +@node Long Lines @subsubsection How To Grok with Long Lines @cindex Perl long lines @@ -11821,7 +11821,7 @@ Please do not forget that the line breaks are real, i.e.@: they translate into newline characters that will consequently show up in the resulting POT file. -@node Perl Pitfalls, , Long Lines, Perl +@node Perl Pitfalls @subsubsection Bugs, Pitfalls, And Things That Do Not Work @cindex Perl pitfalls @@ -11934,7 +11934,7 @@ result in a performance penalty at runtime, when the format directives get executed. Most of the time you will happily get along with @code{printf()} for this special case. -@node PHP, Pike, Perl, List of Programming Languages +@node PHP @subsection PHP Hypertext Preprocessor @cindex PHP @@ -11988,7 +11988,7 @@ On platforms without gettext, the functions are not available. An example is available in the @file{examples} directory: @code{hello-php}. -@node Pike, GCC-source, PHP, List of Programming Languages +@node Pike @subsection Pike @cindex Pike @@ -12039,7 +12039,7 @@ On platforms without gettext, the functions are not available. --- @end table -@node GCC-source, Lua, Pike, List of Programming Languages +@node GCC-source @subsection GNU Compiler Collection sources @cindex GCC-source @@ -12091,7 +12091,7 @@ Uses autoconf macros yes @end table -@node Lua, JavaScript, GCC-source, List of Programming Languages +@node Lua @subsection Lua @table @asis @@ -12162,7 +12162,7 @@ On platforms without gettext, the functions are not available. --- @end table -@node JavaScript, Vala, Lua, List of Programming Languages +@node JavaScript @subsection JavaScript @table @asis @@ -12219,7 +12219,7 @@ On platforms without gettext, the functions are not available. --- @end table -@node Vala, , JavaScript, List of Programming Languages +@node Vala @subsection Vala @table @asis @@ -12316,7 +12316,7 @@ yes @end ignore -@node Data Formats, Conclusion, Programming Languages, Top +@node Data Formats @chapter Other Data Formats While the GNU gettext tools deal mainly with POT and PO files, they can @@ -12327,7 +12327,7 @@ also manipulate a couple of other data formats. * Localized Data:: Localized Data Formats @end menu -@node Internationalizable Data, Localized Data, Data Formats, Data Formats +@node Internationalizable Data @section Internationalizable Data Formats Here is a list of other data formats which can be internationalized @@ -12342,7 +12342,7 @@ using GNU gettext. * Preparing ITS Rules:: Preparing Rules for XML Internationalization @end menu -@node POT, RST, Internationalizable Data, Internationalizable Data +@node POT @subsection POT - Portable Object Template @table @asis @@ -12359,7 +12359,7 @@ gettext @code{xgettext} @end table -@node RST, Glade, POT, Internationalizable Data +@node RST @subsection Resource String Table @cindex RST @cindex RSJ @@ -12382,7 +12382,7 @@ fp-compiler @code{xgettext}, @code{rstconv} @end table -@node Glade, GSettings, RST, Internationalizable Data +@node Glade @subsection Glade - GNOME user interface description @table @asis @@ -12399,7 +12399,7 @@ glade, libglade2-dev, intltool @code{xgettext}, @code{libglade-xgettext}, @code{xml-i18n-extract}, @code{intltool-extract} @end table -@node GSettings, AppData, Glade, Internationalizable Data +@node GSettings @subsection GSettings - GNOME user configuration schema @table @asis @@ -12416,7 +12416,7 @@ libglib2.0-dev @code{xgettext}, @code{intltool-extract} @end table -@node AppData, Preparing ITS Rules, GSettings, Internationalizable Data +@node AppData @subsection AppData - freedesktop.org application description This file format is specified in @@ -12436,7 +12436,7 @@ appdata-tools, appstream, libappstream-glib-dev @code{xgettext}, @code{intltool-extract}, @code{itstool} @end table -@node Preparing ITS Rules, , AppData, Internationalizable Data +@node Preparing ITS Rules @subsection Preparing Rules for XML Internationalization @cindex preparing rules for XML translation @@ -12616,7 +12616,7 @@ strings can have arbitrary XML constructs, such as elements for markup. @end ignore -@node Localized Data, , Internationalizable Data, Data Formats +@node Localized Data @section Localized Data Formats Here is a list of file formats that contain localized data and that the @@ -12629,7 +12629,7 @@ GNU gettext tools can manipulate. * XML:: XML files @end menu -@node Editable Message Catalogs, Compiled Message Catalogs, Localized Data, Localized Data +@node Editable Message Catalogs @subsection Editable Message Catalogs These file formats can be used with all of the @code{msg*} tools and with @@ -12645,7 +12645,7 @@ program. * GNUstep .strings:: NeXTstep/GNUstep .strings @end menu -@node PO, Java .properties, Editable Message Catalogs, Editable Message Catalogs +@node PO @subsubsection PO - Portable Object @table @asis @@ -12653,7 +12653,7 @@ program. @code{po} @end table -@node Java .properties, GNUstep .strings, PO, Editable Message Catalogs +@node Java .properties @subsubsection Java .properties @table @asis @@ -12661,7 +12661,7 @@ program. @code{properties} @end table -@node GNUstep .strings, , Java .properties, Editable Message Catalogs +@node GNUstep .strings @subsubsection NeXTstep/GNUstep .strings @table @asis @@ -12669,7 +12669,7 @@ program. @code{strings} @end table -@node Compiled Message Catalogs, Desktop Entry, Editable Message Catalogs, Localized Data +@node Compiled Message Catalogs @subsection Compiled Message Catalogs These file formats can be created through @code{msgfmt} and converted back @@ -12684,7 +12684,7 @@ to PO format through @code{msgunfmt}. * Qt message catalog:: Qt message catalog @end menu -@node MO, Java ResourceBundle, Compiled Message Catalogs, Compiled Message Catalogs +@node MO @subsubsection MO - Machine Object @table @asis @@ -12694,7 +12694,7 @@ to PO format through @code{msgunfmt}. See section @ref{MO Files} for details. -@node Java ResourceBundle, C# Satellite Assembly, MO, Compiled Message Catalogs +@node Java ResourceBundle @subsubsection Java ResourceBundle @table @asis @@ -12705,7 +12705,7 @@ See section @ref{MO Files} for details. For more information, see the section @ref{Java} and the examples @code{hello-java}, @code{hello-java-awt}, @code{hello-java-swing}. -@node C# Satellite Assembly, C# Resource, Java ResourceBundle, Compiled Message Catalogs +@node C# Satellite Assembly @subsubsection C# Satellite Assembly @table @asis @@ -12715,7 +12715,7 @@ For more information, see the section @ref{Java} and the examples For more information, see the section @ref{C#}. -@node C# Resource, Tcl message catalog, C# Satellite Assembly, Compiled Message Catalogs +@node C# Resource @subsubsection C# Resource @table @asis @@ -12725,7 +12725,7 @@ For more information, see the section @ref{C#}. For more information, see the section @ref{C#}. -@node Tcl message catalog, Qt message catalog, C# Resource, Compiled Message Catalogs +@node Tcl message catalog @subsubsection Tcl message catalog @table @asis @@ -12736,7 +12736,7 @@ For more information, see the section @ref{C#}. For more information, see the section @ref{Tcl} and the examples @code{hello-tcl}, @code{hello-tcl-tk}. -@node Qt message catalog, , Tcl message catalog, Compiled Message Catalogs +@node Qt message catalog @subsubsection Qt message catalog @table @asis @@ -12747,7 +12747,7 @@ For more information, see the section @ref{Tcl} and the examples For more information, see the examples @code{hello-c++-qt} and @code{hello-c++-kde}. -@node Desktop Entry, XML, Compiled Message Catalogs, Localized Data +@node Desktop Entry @subsection Desktop Entry files The programmer produces a desktop entry file template with only the @@ -12759,13 +12759,13 @@ desktop entry file. For more information, see the example @code{hello-c-gnome3}. -@node XML, , Desktop Entry, Localized Data +@node XML @subsection XML files See the section @ref{Preparing ITS Rules} and @ref{msgfmt Invocation}, subsection ``XML mode operations''. -@node Conclusion, Language Codes, Data Formats, Top +@node Conclusion @chapter Concluding Remarks We would like to conclude this GNU @code{gettext} manual by presenting @@ -12778,7 +12778,7 @@ about Native Language Support matters. * References:: Related Readings @end menu -@node History, References, Conclusion, Conclusion +@node History @section History of GNU @code{gettext} @cindex history of GNU @code{gettext} @@ -12857,7 +12857,7 @@ he handed over the GNU @code{gettext} maintenance to Bruno Haible in support for UTF-8 and CJK locales, and wrote a few new tools for manipulating PO files. -@node References, , History, Conclusion +@node References @section Related Readings @cindex related reading @cindex bibliography @@ -12906,7 +12906,7 @@ ftp://ftp.ibp.fr/pub/linux/french/docs/ @noindent together with French translations of many Linux-related documents. -@node Language Codes, Country Codes, Conclusion, Top +@node Language Codes @appendix Language Codes @cindex language codes @cindex ISO 639 @@ -12921,7 +12921,7 @@ come from this standard. * Rare Language Codes:: Three-letter ISO 639 language codes @end menu -@node Usual Language Codes, Rare Language Codes, Language Codes, Language Codes +@node Usual Language Codes @appendixsec Usual Language Codes For the commonly used languages, the @w{ISO 639-1} standard defines two-letter @@ -12931,7 +12931,7 @@ codes. @include iso-639.texi @end table -@node Rare Language Codes, , Usual Language Codes, Language Codes +@node Rare Language Codes @appendixsec Rare Language Codes For rarely used languages, the @w{ISO 639-2} standard defines three-letter @@ -12942,7 +12942,7 @@ one million of speakers. @include iso-639-2.texi @end table -@node Country Codes, Licenses, Language Codes, Top +@node Country Codes @appendix Country Codes @cindex country codes @cindex ISO 3166 @@ -12955,7 +12955,7 @@ Project should come from this standard. @include iso-3166.texi @end table -@node Licenses, Program Index, Country Codes, Top +@node Licenses @appendix Licenses @cindex Licenses @@ -13000,50 +13000,50 @@ A copy of the license is included in @ref{GNU GPL}. @end menu @page -@node GNU GPL, GNU LGPL, Licenses, Licenses +@node GNU GPL @appendixsec GNU GENERAL PUBLIC LICENSE @cindex GPL, GNU General Public License @cindex License, GNU GPL @include gpl.texi @page -@node GNU LGPL, GNU FDL, GNU GPL, Licenses +@node GNU LGPL @appendixsec GNU LESSER GENERAL PUBLIC LICENSE @cindex LGPL, GNU Lesser General Public License @cindex License, GNU LGPL @include lgpl.texi @page -@node GNU FDL, , GNU LGPL, Licenses +@node GNU FDL @appendixsec GNU Free Documentation License @cindex FDL, GNU Free Documentation License @cindex License, GNU FDL @include fdl.texi -@node Program Index, Option Index, Licenses, Top +@node Program Index @unnumbered Program Index @printindex pg -@node Option Index, Variable Index, Program Index, Top +@node Option Index @unnumbered Option Index @printindex op -@node Variable Index, PO Mode Index, Option Index, Top +@node Variable Index @unnumbered Variable Index @printindex vr -@node PO Mode Index, Autoconf Macro Index, Variable Index, Top +@node PO Mode Index @unnumbered PO Mode Index @printindex em -@node Autoconf Macro Index, Index, PO Mode Index, Top +@node Autoconf Macro Index @unnumbered Autoconf Macro Index @printindex am -@node Index, , Autoconf Macro Index, Top +@node Index @unnumbered General Index @printindex cp