<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from autosprintf.texi on 20 April 2006 -->
+ from autosprintf.texi on 22 August 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU autosprintf</TITLE>
</P>
<P><HR><P>
-This document was generated on 20 April 2006 using the
+This document was generated on 22 August 2006 using the
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>
translator version 1.52b.</P>
</BODY>
.\" GNU gettext source code and manual
.\" LI18NUX 2000 Globalization Specification
.\"
-.TH BIND_TEXTDOMAIN_CODESET 3 "May 2001" "GNU gettext 0.15"
+.TH BIND_TEXTDOMAIN_CODESET 3 "May 2001" "GNU gettext 0.16"
.SH NAME
bind_textdomain_codeset \- set encoding of message translations
.SH SYNOPSIS
.\" GNU gettext source code and manual
.\" LI18NUX 2000 Globalization Specification
.\"
-.TH BINDTEXTDOMAIN 3 "May 2001" "GNU gettext 0.15"
+.TH BINDTEXTDOMAIN 3 "May 2001" "GNU gettext 0.16"
.SH NAME
bindtextdomain \- set directory containing message catalogs
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH ENVSUBST "1" "July 2006" "GNU gettext-runtime 0.15" GNU
+.TH ENVSUBST "1" "October 2006" "GNU gettext-runtime 0.16" GNU
.SH NAME
envsubst \- substitutes environment variables in shell format strings
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH GETTEXT "1" "July 2006" "GNU gettext-runtime 0.15" GNU
+.TH GETTEXT "1" "October 2006" "GNU gettext-runtime 0.16" GNU
.SH NAME
gettext \- translate message
.SH SYNOPSIS
.\" GNU gettext source code and manual
.\" LI18NUX 2000 Globalization Specification
.\"
-.TH GETTEXT 3 "May 2001" "GNU gettext 0.15"
+.TH GETTEXT 3 "May 2001" "GNU gettext 0.16"
.SH NAME
gettext, dgettext, dcgettext \- translate message
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH NGETTEXT "1" "July 2006" "GNU gettext-runtime 0.15" GNU
+.TH NGETTEXT "1" "October 2006" "GNU gettext-runtime 0.16" GNU
.SH NAME
ngettext \- translate message and choose plural form
.SH SYNOPSIS
.\" GNU gettext source code and manual
.\" LI18NUX 2000 Globalization Specification
.\"
-.TH NGETTEXT 3 "May 2001" "GNU gettext 0.15"
+.TH NGETTEXT 3 "May 2001" "GNU gettext 0.16"
.SH NAME
ngettext, dngettext, dcngettext \- translate message and choose plural form
.SH SYNOPSIS
.\" GNU gettext source code and manual
.\" LI18NUX 2000 Globalization Specification
.\"
-.TH TEXTDOMAIN 3 "May 2001" "GNU gettext 0.15"
+.TH TEXTDOMAIN 3 "May 2001" "GNU gettext 0.16"
.SH NAME
textdomain \- set domain for future gettext() calls
.SH SYNOPSIS
coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
-the terminology in use. Proven linguistic skill are praised more than
-programming skill, here.
+the terminology in use. Proven linguistic skills are praised more than
+programming skills, here.
1.5 Available Packages
======================
Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of July
+matrix shows the current state of internationalization, as of October
2006. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
ant-phone | () |
anubis | [] |
ap-utils | |
- aspell | [] [] [] [] |
+ aspell | [] [] [] [] [] |
bash | [] [] [] |
batchelor | [] |
bfd | |
bibshelf | [] |
binutils | [] |
bison | [] [] |
- bison-runtime | [] |
+ bison-runtime | |
bluez-pin | [] [] [] [] [] |
cflow | [] |
clisp | [] [] |
console-tools | [] [] |
- coreutils | [] [] [] [] |
+ coreutils | [] [] [] |
cpio | |
cpplib | [] [] [] |
cryptonit | [] |
gnutls | |
gpe-aerial | [] [] |
gpe-beam | [] [] |
- gpe-calendar | [] [] |
+ gpe-calendar | |
gpe-clock | [] [] |
gpe-conf | [] [] |
gpe-contacts | |
gst-plugins-base | [] [] [] |
gst-plugins-good | [] [] [] [] [] [] [] |
gstreamer | [] [] [] [] [] [] [] |
- gtick | [] () |
+ gtick | () |
gtkam | [] [] [] |
gtkorphan | [] [] |
gtkspell | [] [] [] [] |
gutenprint | [] |
- hello | [] [] [] [] [] |
+ hello | [] [] [] [] [] |
id-utils | [] [] |
impost | |
indent | [] [] [] |
iso_3166 | [] [] |
- iso_3166_1 | [] [] [] [] [] |
iso_3166_2 | |
- iso_3166_3 | [] |
iso_4217 | [] |
iso_639 | [] [] |
jpilot | [] |
man-db | [] () [] [] |
minicom | [] [] [] |
mysecretdiary | [] [] |
- nano | [] [] () [] |
+ nano | [] [] [] |
nano_1_0 | [] () [] [] |
opcodes | [] |
parted | |
scrollkeeper | [] [] [] [] [] [] [] [] |
sed | [] [] [] |
sh-utils | [] [] |
- shared-mime-info | [] [] [] |
+ shared-mime-info | [] [] [] [] |
sharutils | [] [] [] [] [] [] |
shishi | |
silky | |
wastesedge | () |
wdiff | [] [] [] [] |
wget | [] [] |
- xchat | [] [] [] [] [] |
+ xchat | [] [] [] [] [] [] |
xkeyboard-config | |
xpad | [] [] |
+----------------------------------------------------+
af am ar az be bg bs ca cs cy da de el en en_GB eo
- 11 0 1 2 8 21 1 42 43 2 62 99 18 1 16 16
+ 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16
es et eu fa fi fr ga gl gu he hi hr hu id is it
+--------------------------------------------------+
bison | [] [] [] [] [] [] |
bison-runtime | [] [] [] [] [] |
bluez-pin | [] [] [] [] [] |
- cflow | |
+ cflow | [] |
clisp | [] [] |
console-tools | |
coreutils | [] [] [] [] [] [] |
gbiff | [] |
gcal | [] [] |
gcc | [] |
- gettext-examples | [] [] [] [] [] |
+ gettext-examples | [] [] [] [] [] [] |
gettext-runtime | [] [] [] [] [] [] |
gettext-tools | [] [] [] |
gimp-print | [] [] |
gnutls | |
gpe-aerial | [] [] |
gpe-beam | [] [] |
- gpe-calendar | [] [] [] [] |
+ gpe-calendar | |
gpe-clock | [] [] [] [] |
gpe-conf | [] |
gpe-contacts | [] [] |
gramadoir | [] [] |
grep | [] [] [] [] [] [] [] [] [] [] [] [] |
gretl | [] [] [] |
- gsasl | [] |
+ gsasl | [] [] |
gss | [] |
gst-plugins | [] [] [] |
gst-plugins-base | [] [] |
gst-plugins-good | [] [] [] |
gstreamer | [] [] [] |
- gtick | [] [] [] [] [] |
+ gtick | [] |
gtkam | [] [] [] [] |
gtkorphan | [] [] |
gtkspell | [] [] [] [] [] [] |
impost | [] [] |
indent | [] [] [] [] [] [] [] [] [] [] |
iso_3166 | [] [] [] |
- iso_3166_1 | [] [] [] [] [] [] [] |
iso_3166_2 | [] |
- iso_3166_3 | [] |
iso_4217 | [] [] [] [] |
iso_639 | [] [] [] [] [] |
jpilot | [] [] |
libgphoto2 | [] [] [] |
libgphoto2_port | [] [] |
libgsasl | [] [] |
- libiconv | [] |
+ libiconv | [] [] |
libidn | [] [] |
lifelines | () |
lilypond | [] |
man-db | () |
minicom | [] [] [] [] |
mysecretdiary | [] [] [] |
- nano | [] () [] [] [] [] |
+ nano | [] [] [] [] [] [] |
nano_1_0 | [] [] [] [] [] |
opcodes | [] [] [] [] |
parted | [] [] [] [] |
psmisc | [] [] [] |
pwdutils | |
python | |
- qof | |
+ qof | [] |
radius | [] [] |
recode | [] [] [] [] [] [] [] [] |
rpm | [] [] |
sp | [] |
stardict | [] |
system-tools-ba... | [] [] [] [] [] [] [] [] |
- tar | [] [] [] [] [] [] |
+ tar | [] [] [] [] [] [] [] |
texinfo | [] [] |
textutils | [] [] [] [] [] |
tin | [] () |
xpad | [] [] [] |
+--------------------------------------------------+
es et eu fa fi fr ga gl gu he hi hr hu id is it
- 89 21 16 2 41 119 61 14 1 8 1 6 61 30 0 53
+ 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52
- ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
- +--------------------------------------------------+
- GNUnet | |
- a2ps | () [] [] () |
- aegis | () |
- ant-phone | [] |
- anubis | [] [] [] |
- ap-utils | [] |
- aspell | [] [] |
- bash | [] |
- batchelor | [] [] |
- bfd | |
- bibshelf | [] |
- binutils | |
- bison | [] [] [] |
- bison-runtime | [] [] [] |
- bluez-pin | [] [] [] |
- cflow | |
- clisp | [] |
- console-tools | |
- coreutils | [] |
- cpio | |
- cpplib | [] |
- cryptonit | [] |
- darkstat | [] [] |
- dialog | [] [] |
- diffutils | [] [] [] |
- doodle | |
- e2fsprogs | [] |
- enscript | [] |
- error | [] |
- fetchmail | [] [] |
- fileutils | [] [] |
- findutils | [] |
- flex | [] [] |
- fslint | [] [] |
- gas | |
- gawk | [] [] |
- gbiff | [] |
- gcal | |
- gcc | |
- gettext-examples | [] [] |
- gettext-runtime | [] [] [] |
- gettext-tools | [] [] |
- gimp-print | [] [] |
- gip | [] [] |
- gliv | [] |
- glunarclock | [] [] |
- gmult | [] [] |
- gnubiff | |
- gnucash | () () |
- gnucash-glossary | [] |
- gnuedu | |
- gnulib | [] [] [] [] |
- gnunet-gtk | |
- gnutls | |
- gpe-aerial | [] |
- gpe-beam | [] |
- gpe-calendar | [] |
- gpe-clock | [] [] |
- gpe-conf | [] [] |
- gpe-contacts | [] |
- gpe-edit | [] [] |
- gpe-filemanager | [] |
- gpe-go | [] [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] |
- gpe-package | [] |
- gpe-sketchbook | [] [] |
- gpe-su | [] [] |
- gpe-taskmanager | [] [] [] |
- gpe-timesheet | [] |
- gpe-today | [] |
- gpe-todo | |
- gphoto2 | [] [] |
- gprof | |
- gpsdrive | () () () |
- gramadoir | () |
- grep | [] [] [] |
- gretl | |
- gsasl | [] |
- gss | |
- gst-plugins | [] |
- gst-plugins-base | |
- gst-plugins-good | [] |
- gstreamer | [] |
- gtick | [] |
- gtkam | [] |
- gtkorphan | [] |
- gtkspell | [] [] |
- gutenprint | |
- hello | [] [] [] [] [] [] [] [] |
- id-utils | [] |
- impost | |
- indent | [] [] |
- iso_3166 | [] |
- iso_3166_1 | [] [] |
- iso_3166_2 | [] |
- iso_3166_3 | [] |
- iso_4217 | [] [] [] |
- iso_639 | [] [] |
- jpilot | () () () |
- jtag | |
- jwhois | [] |
- kbd | [] |
- keytouch | [] |
- keytouch-editor | |
- keytouch-keyboa... | |
- latrine | [] |
- ld | |
- leafpad | [] [] |
- libc | [] [] [] [] [] |
- libexif | |
- libextractor | |
- libgpewidget | [] |
- libgpg-error | |
- libgphoto2 | [] |
- libgphoto2_port | [] |
- libgsasl | [] |
- libiconv | |
- libidn | [] [] |
- lifelines | [] |
- lilypond | |
- lingoteach | [] |
- lynx | [] [] |
- m4 | [] [] |
- mailutils | |
- make | [] [] [] |
- man-db | () |
- minicom | [] |
- mysecretdiary | [] |
- nano | [] [] [] |
- nano_1_0 | [] [] [] |
- opcodes | [] |
- parted | [] [] |
- pilot-qof | |
- psmisc | [] [] [] |
- pwdutils | |
- python | |
- qof | |
- radius | |
- recode | [] |
- rpm | [] [] |
- screem | [] |
- scrollkeeper | [] [] [] [] |
- sed | [] [] |
- sh-utils | [] [] |
- shared-mime-info | [] [] [] [] [] |
- sharutils | [] [] |
- shishi | |
- silky | [] |
- skencil | |
- sketch | |
- solfege | |
- soundtracker | |
- sp | () |
- stardict | [] [] |
- system-tools-ba... | [] [] [] [] |
- tar | [] [] [] |
- texinfo | [] [] [] |
- textutils | [] [] [] |
- tin | |
- tp-robot | [] |
- tuxpaint | [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux | [] [] |
- vorbis-tools | [] |
- wastesedge | [] |
- wdiff | [] [] |
- wget | [] [] |
- xchat | [] [] [] [] |
- xkeyboard-config | [] |
- xpad | [] [] [] |
- +--------------------------------------------------+
- ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
- 40 24 2 1 1 3 1 2 3 21 0 15 1 101 5 3
+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
+ +-------------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] () |
+ aegis | () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | [] |
+ aspell | [] [] |
+ bash | [] |
+ batchelor | [] [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | |
+ bison | [] [] [] |
+ bison-runtime | [] [] [] |
+ bluez-pin | [] [] [] |
+ cflow | |
+ clisp | [] |
+ console-tools | |
+ coreutils | [] |
+ cpio | |
+ cpplib | [] |
+ cryptonit | [] |
+ darkstat | [] [] |
+ dialog | [] [] |
+ diffutils | [] [] [] |
+ doodle | |
+ e2fsprogs | [] |
+ enscript | [] |
+ error | [] |
+ fetchmail | [] [] |
+ fileutils | [] [] |
+ findutils | [] |
+ flex | [] [] |
+ fslint | [] [] |
+ gas | |
+ gawk | [] [] |
+ gbiff | [] |
+ gcal | |
+ gcc | |
+ gettext-examples | [] [] |
+ gettext-runtime | [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] |
+ gip | [] [] |
+ gliv | [] |
+ glunarclock | [] [] |
+ gmult | [] [] |
+ gnubiff | |
+ gnucash | () () |
+ gnucash-glossary | [] |
+ gnuedu | |
+ gnulib | [] [] [] [] |
+ gnunet-gtk | |
+ gnutls | |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-calendar | [] |
+ gpe-clock | [] [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | [] |
+ gpe-edit | [] [] [] |
+ gpe-filemanager | [] [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] |
+ gpe-taskmanager | [] [] [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] |
+ gprof | |
+ gpsdrive | () () () |
+ gramadoir | () |
+ grep | [] [] [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins | [] |
+ gst-plugins-base | |
+ gst-plugins-good | [] |
+ gstreamer | [] |
+ gtick | |
+ gtkam | [] |
+ gtkorphan | [] |
+ gtkspell | [] [] |
+ gutenprint | |
+ hello | [] [] [] [] [] [] |
+ id-utils | [] |
+ impost | |
+ indent | [] [] |
+ iso_3166 | [] |
+ iso_3166_2 | [] |
+ iso_4217 | [] [] [] |
+ iso_639 | [] [] |
+ jpilot | () () () |
+ jtag | |
+ jwhois | [] |
+ kbd | [] |
+ keytouch | [] |
+ keytouch-editor | |
+ keytouch-keyboa... | |
+ latrine | [] |
+ ld | |
+ leafpad | [] [] |
+ libc | [] [] [] [] [] |
+ libexif | |
+ libextractor | |
+ libgpewidget | [] |
+ libgpg-error | |
+ libgphoto2 | [] |
+ libgphoto2_port | [] |
+ libgsasl | [] |
+ libiconv | |
+ libidn | [] [] |
+ lifelines | [] |
+ lilypond | |
+ lingoteach | [] |
+ lynx | [] [] |
+ m4 | [] [] |
+ mailutils | |
+ make | [] [] [] |
+ man-db | () |
+ minicom | [] |
+ mysecretdiary | [] |
+ nano | [] [] [] |
+ nano_1_0 | [] [] [] |
+ opcodes | [] |
+ parted | [] [] |
+ pilot-qof | |
+ psmisc | [] [] [] |
+ pwdutils | |
+ python | |
+ qof | |
+ radius | |
+ recode | [] |
+ rpm | [] [] |
+ screem | [] |
+ scrollkeeper | [] [] [] [] |
+ sed | [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] [] [] [] |
+ sharutils | [] [] |
+ shishi | |
+ silky | [] |
+ skencil | |
+ sketch | |
+ solfege | |
+ soundtracker | |
+ sp | () |
+ stardict | [] [] |
+ system-tools-ba... | [] [] [] [] |
+ tar | [] [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] |
+ vorbis-tools | [] |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] |
+ xchat | [] [] [] [] |
+ xkeyboard-config | [] |
+ xpad | [] [] [] |
+ +-------------------------------------------------+
+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
+ 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1
nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+------------------------------------------------------+
gnutls | [] [] |
gpe-aerial | [] [] [] [] [] [] [] |
gpe-beam | [] [] [] [] [] [] [] |
- gpe-calendar | [] [] [] [] [] [] [] [] |
+ gpe-calendar | [] |
gpe-clock | [] [] [] [] [] [] [] [] |
gpe-conf | [] [] [] [] [] [] [] |
gpe-contacts | [] [] [] [] [] |
gramadoir | [] [] |
grep | [] [] [] [] [] [] [] [] |
gretl | [] |
- gsasl | [] [] |
+ gsasl | [] [] [] |
gss | [] [] [] |
gst-plugins | [] [] [] [] |
gst-plugins-base | [] |
gst-plugins-good | [] [] [] [] |
gstreamer | [] [] [] |
- gtick | [] [] [] |
+ gtick | [] |
gtkam | [] [] [] [] |
gtkorphan | [] |
gtkspell | [] [] [] [] [] [] [] [] |
impost | [] |
indent | [] [] [] [] [] [] |
iso_3166 | [] [] [] [] [] [] |
- iso_3166_1 | [] [] [] [] |
iso_3166_2 | |
- iso_3166_3 | [] [] [] [] |
iso_4217 | [] [] [] [] |
iso_639 | [] [] [] [] |
jpilot | |
libgphoto2 | [] |
libgphoto2_port | [] [] [] |
libgsasl | [] [] [] [] |
- libiconv | |
+ libiconv | [] [] |
libidn | [] [] () |
lifelines | [] [] |
lilypond | |
man-db | [] [] |
minicom | [] [] [] [] [] |
mysecretdiary | [] [] [] [] |
- nano | [] [] |
+ nano | [] [] [] |
nano_1_0 | [] [] [] [] |
opcodes | [] [] |
parted | [] |
psmisc | [] [] |
pwdutils | [] [] |
python | |
- qof | [] |
+ qof | [] [] |
radius | [] [] |
recode | [] [] [] [] [] [] [] |
rpm | [] [] [] [] |
xpad | [] [] [] |
+------------------------------------------------------+
nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
- 0 2 3 58 31 53 5 76 72 5 42 48 12 51 130 2
+ 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2
tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
+---------------------------------------------------+
ant-phone | [] [] | 6
anubis | [] [] [] | 11
ap-utils | () [] | 4
- aspell | [] [] [] | 14
+ aspell | [] [] [] | 15
bash | [] | 11
batchelor | [] [] | 9
bfd | | 1
bibshelf | [] | 7
binutils | [] [] [] | 9
bison | [] [] [] | 19
- bison-runtime | [] [] [] | 16
+ bison-runtime | [] [] [] | 15
bluez-pin | [] [] [] [] [] [] | 28
- cflow | [] [] | 4
+ cflow | [] [] | 5
clisp | | 6
console-tools | [] [] | 5
- coreutils | [] [] | 17
+ coreutils | [] [] | 16
cpio | [] [] [] | 9
cpplib | [] [] [] [] | 11
cryptonit | | 5
gbiff | [] | 5
gcal | [] | 5
gcc | [] [] [] | 6
- gettext-examples | [] [] [] [] [] [] | 26
+ gettext-examples | [] [] [] [] [] [] | 27
gettext-runtime | [] [] [] [] [] [] | 28
gettext-tools | [] [] [] [] [] | 19
gimp-print | [] [] | 12
gnutls | | 2
gpe-aerial | [] [] | 14
gpe-beam | [] [] | 14
- gpe-calendar | [] [] [] [] | 19
- gpe-clock | [] [] [] [] | 20
+ gpe-calendar | [] | 3
+ gpe-clock | [] [] [] [] | 21
gpe-conf | [] [] | 14
gpe-contacts | [] [] | 10
- gpe-edit | [] [] [] [] | 19
- gpe-filemanager | [] | 5
- gpe-go | [] [] | 14
- gpe-login | [] [] [] [] [] | 20
- gpe-ownerinfo | [] [] [] [] | 20
- gpe-package | [] | 5
+ gpe-edit | [] [] [] [] | 20
+ gpe-filemanager | [] | 6
+ gpe-go | [] [] | 15
+ gpe-login | [] [] [] [] [] | 21
+ gpe-ownerinfo | [] [] [] [] | 21
+ gpe-package | [] | 6
gpe-sketchbook | [] [] | 16
- gpe-su | [] [] [] | 19
- gpe-taskmanager | [] [] [] | 19
+ gpe-su | [] [] [] | 20
+ gpe-taskmanager | [] [] [] | 20
gpe-timesheet | [] [] [] [] | 18
- gpe-today | [] [] [] [] [] | 20
- gpe-todo | [] | 6
+ gpe-today | [] [] [] [] [] | 21
+ gpe-todo | [] | 7
gphoto2 | [] [] [] [] | 20
gprof | [] [] | 11
gpsdrive | | 4
gramadoir | [] | 7
- grep | [] [] [] [] | 33
+ grep | [] [] [] [] | 34
gretl | | 4
- gsasl | [] [] | 6
+ gsasl | [] [] | 8
gss | [] | 5
gst-plugins | [] [] [] | 15
gst-plugins-base | [] [] [] | 9
- gst-plugins-good | [] [] [] | 18
+ gst-plugins-good | [] [] [] [] [] | 20
gstreamer | [] [] [] | 17
- gtick | [] | 11
+ gtick | [] | 3
gtkam | [] | 13
gtkorphan | [] | 7
gtkspell | [] [] [] [] [] [] | 26
gutenprint | | 3
- hello | [] [] [] [] [] | 39
+ hello | [] [] [] [] [] | 37
id-utils | [] [] | 14
impost | [] | 4
indent | [] [] [] [] | 25
- iso_3166 | [] [] [] | 15
- iso_3166_1 | [] [] | 20
+ iso_3166 | [] [] [] [] | 16
iso_3166_2 | | 2
- iso_3166_3 | [] [] | 9
iso_4217 | [] [] | 14
iso_639 | [] | 14
jpilot | [] [] [] [] | 7
kbd | [] [] | 12
keytouch | [] | 4
keytouch-editor | | 2
- keytouch-keyboa... | | 2
+ keytouch-keyboa... | [] | 3
latrine | [] [] | 8
ld | [] [] [] [] | 8
leafpad | [] [] [] [] | 23
libgphoto2 | [] | 8
libgphoto2_port | [] [] [] | 11
libgsasl | [] | 8
- libiconv | [] | 4
+ libiconv | [] | 7
libidn | [] [] | 10
lifelines | | 4
lilypond | | 2
man-db | [] | 6
minicom | [] | 14
mysecretdiary | [] [] | 12
- nano | [] [] | 15
+ nano | [] [] | 17
nano_1_0 | [] [] [] | 18
opcodes | [] [] | 10
parted | [] [] [] | 10
psmisc | [] | 10
pwdutils | [] | 3
python | | 0
- qof | [] | 2
+ qof | [] | 4
radius | [] | 6
recode | [] [] [] | 25
rpm | [] [] [] [] | 14
scrollkeeper | [] [] [] [] | 26
sed | [] [] [] | 22
sh-utils | [] | 15
- shared-mime-info | [] [] [] [] | 23
+ shared-mime-info | [] [] [] [] | 24
sharutils | [] [] [] | 23
shishi | | 1
silky | [] | 4
sp | [] | 3
stardict | [] [] [] [] | 11
system-tools-ba... | [] [] [] [] [] [] [] | 37
- tar | [] [] [] [] | 19
+ tar | [] [] [] [] | 20
texinfo | [] [] [] | 15
textutils | [] [] [] | 17
tin | | 1
wastesedge | | 1
wdiff | [] [] | 22
wget | [] [] [] | 19
- xchat | [] [] [] [] | 28
+ xchat | [] [] [] [] | 29
xkeyboard-config | [] [] [] [] | 11
xpad | [] [] [] | 14
+---------------------------------------------------+
77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
- 172 domains 0 1 1 78 39 0 135 13 1 50 3 54 0 2054
+ 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
lag between the mere existence a PO file and its wide availability in a
distribution.
- If July 2006 seems to be old, you may fetch a more recent copy of
+ If October 2006 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
***********************
This manual documents the GNU gettext tools and the GNU libintl library,
-version 0.15.
+version 0.16.
* Menu:
* AM_GNU_GETTEXT:: AM_GNU_GETTEXT in `gettext.m4'
* AM_GNU_GETTEXT_VERSION:: AM_GNU_GETTEXT_VERSION in `gettext.m4'
+* AM_GNU_GETTEXT_NEED:: AM_GNU_GETTEXT_NEED in `gettext.m4'
+* AM_GNU_GETTEXT_INTL_SUBDIR:: AM_GNU_GETTEXT_INTL_SUBDIR in `intldir.m4'
* AM_PO_SUBDIRS:: AM_PO_SUBDIRS in `po.m4'
* AM_ICONV:: AM_ICONV in `iconv.m4'
* History:: History of GNU `gettext'
* References:: Related Readings
+Language Codes
+
+* Usual Language Codes:: Two-letter ISO 639 language codes
+* Rare Language Codes:: Three-letter ISO 639 language codes
+
Licenses
* GNU GPL:: GNU General Public License
#. EXTRACTED-COMMENTS
#: REFERENCE...
#, FLAG...
+ #| msgid PREVIOUS-UNTRANSLATED-STRING
msgid UNTRANSLATED-STRING
msgstr TRANSLATED-STRING
the `xgettext' program extracts them from the program's source code.
Comment lines starting with `#:' contain references to the program's
source code. Comment lines starting with `#,' contain flags; more
-about these below. All comments, of either kind, are optional.
+about these below. Comment lines starting with `#|' contain the
+previous untranslated string for which the translator gave a
+translation.
+
+ All comments, of either kind, are optional.
After white space and comments, entries show two strings, namely
first the untranslated string as it appears in the original program
#. EXTRACTED-COMMENTS
#: REFERENCE...
#, FLAG...
+ #| msgctxt PREVIOUS-CONTEXT
+ #| msgid PREVIOUS-UNTRANSLATED-STRING
msgctxt CONTEXT
msgid UNTRANSLATED-STRING
msgstr TRANSLATED-STRING
#. EXTRACTED-COMMENTS
#: REFERENCE...
#, FLAG...
+ #| msgid PREVIOUS-UNTRANSLATED-STRING-SINGULAR
+ #| msgid_plural PREVIOUS-UNTRANSLATED-STRING-PLURAL
msgid UNTRANSLATED-STRING-SINGULAR
msgid_plural UNTRANSLATED-STRING-PLURAL
msgstr[0] TRANSLATED-STRING-CASE-0
Here also, a `msgctxt' context can be specified before `msgid', like
above.
+ The PREVIOUS-UNTRANSLATED-STRING is optionally inserted by the
+`msgmerge' program, at the same time when it marks a message fuzzy. It
+helps the translator to see which changes were done by the developers
+on the UNTRANSLATED-STRING.
+
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 will be dropped when the PO file is processed by the tools, or may
* Use format strings instead of string concatenation.
+ * Avoid unusual markup and unusual control characters.
+
Let's look at some examples of these guidelines.
Translatable strings should be in good English style. If slang
"No match"
-The ambiguity in this message makes it ununderstandable: Is the program
+The ambiguity in this message makes it unintelligible: Is the program
attempting to set something on fire? Does it mean "The given object does
not match the template"? Does it mean "The template does not fit for any
of the objects"?
hexadecimal.
All this applies to other programming languages as well. For
-example, in Java and C#, string contenation is very frequently used,
+example, in Java and C#, string concatenation is very frequently used,
because it is a compiler built-in operator. Like in C, in Java, you
would change
Console.WriteLine(
String.Format("Replace {0} with {1}?", object1, object2));
+ Unusual markup or control characters should not be used in
+translatable strings. Translators will likely not understand the
+particular meaning of the markup or control characters.
+
+ For example, if you have a convention that `|' delimits the
+left-hand and right-hand part of some GUI elements, translators will
+often not understand it without specific comments. It might be better
+to have the translator translate the left-hand and right-hand part
+separately.
+
+ Another example is the `argp' convention to use a single `\v'
+(vertical tab) control character to delimit two sections inside a
+string. This is flawed. Some translators may convert it to a simple
+newline, some to blank lines. With some PO file editors it may not be
+easy to even enter a vertical tab control character. So, you cannot be
+sure that the translation will contain a `\v' character, at the
+corresponding position. The solution is, again, to let the translator
+translate two separate strings and combine at run-time the two
+translated strings with the `\v' required by the convention.
+
+ 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.
+
\1f
File: gettext.info, Node: Mark Keywords, Next: Marking, Prev: Preparing Strings, Up: Sources
This marking operation has two goals. The first goal of marking is
for triggering the retrieval of the translation, at run time. The
-keyword are possibly resolved into a routine able to dynamically return
+keyword is possibly resolved into a routine able to dynamically return
the proper translation, as far as possible or wanted, for the argument
string. Most localizable strings are found in executable positions,
that is, attached to variables or given as parameters to functions.
instead of merely using `#include <libintl.h>'.
+ The marking keywords `gettext' and `_' take the translatable string
+as sole argument. It is also possible to define marking functions that
+take it at another argument position. It is even possible to make the
+marked argument position depend on the total number of arguments of the
+function call; this is useful in C++. All this is achieved using
+`xgettext''s `--keyword' option.
+
+ Note also that long strings can be split across lines, into multiple
+adjacent string tokens. Automatic string concatenation is performed at
+compile time according to ISO C and ISO C++; `xgettext' also supports
+this syntax.
+
Later on, the maintenance is relatively easy. If, as a programmer,
you add or modify a string, you will have to ask yourself if the new or
altered string requires translation, and include it within `_()' if you
-think it should be translated. `"%s: %d"' is an example of string
-_not_ requiring translation!
+think it should be translated. For example, `"%s"' is an example of
+string _not_ requiring translation. But `"%s: %d"' _does_ require
+translation, because in French, unlike in English, it's customary to
+put a space before a colon.
\1f
File: gettext.info, Node: Marking, Next: c-format Flag, Prev: Mark Keywords, Up: Sources
in the program sources, while simultaneously producing a set of
translation in some language, for the package being internationalized.
- 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 shell window, change the directory to the root of your project,
-then execute a command resembling:
+ The set of program sources, targeted 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
+shell window, change the directory to the root of your project, then
+execute a command resembling:
etags src/*.[hc] lib/*.[hc]
manual, section Names. Note this is actually a non-ASCII
name: The first name is (with Unicode escapes)
"Fran\u00e7ois" or (with HTML entities) "François".
- Pronounciation is like "fraa-swa pee-nar". */
+ Pronunciation is like "fraa-swa pee-nar". */
_("Francois Pinard"));
As a translator, you should use some care when translating names,
#. manual, section Names. Note this is actually a non-ASCII
#. name: The first name is (with Unicode escapes)
#. "Fran\u00e7ois" or (with HTML entities) "François".
- #. Pronounciation is like "fraa-swa pee-nar".
+ #. Pronunciation is like "fraa-swa pee-nar".
msgid "Francois Pinard"
msgstr "\phi\rho\alpha\sigma\omicron\alpha \pi\iota\nu\alpha\rho"
" (Francois Pinard)"
author names, with better facilities for the translator than those
presented here. Namely, there the original name is written directly in
Unicode (rather than with Unicode escapes or HTML entities), and the
-pronounciation is denoted using the International Phonetic Alphabet (see
+pronunciation is denoted using the International Phonetic Alphabet (see
`http://www.wikipedia.org/wiki/International_Phonetic_Alphabet').
However, we don't recommend this approach for all POT files in all
#define _(String) dgettext (PACKAGE, String)
In other words, `dgettext' is used instead of `gettext'.
- Similary, the `dngettext' function should be used in place of the
+ Similarly, the `dngettext' function should be used in place of the
`ngettext' function.
\1f
Additional keyword to be looked for (without KEYWORDSPEC means not
to use default keywords).
- If KEYWORDSPEC is a C identifer ID, `xgettext' looks for strings
+ If KEYWORDSPEC is a C identifier ID, `xgettext' looks for strings
in the first argument of each call to the function or macro ID.
If KEYWORDSPEC is of the form `ID:ARGNUM', `xgettext' looks for
strings in the ARGNUMth argument of the call. If KEYWORDSPEC is
Do not use fuzzy matching when an exact match is not found. This
may speed up the operation considerably.
+`--previous'
+ Keep the previous msgids of translated messages, marked with `#|',
+ when adding the fuzzy marker to such messages.
+
7.1.6 Input file syntax
-----------------------
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 `M-x normalize' command. Until these
-discrepancies between PO mode and other GNU `gettext' tools get fully
-resolved, the translator should stay aware of normalisation issues.
+resulting of the `M-x normalize' command. Until these discrepancies
+between PO mode and other GNU `gettext' tools get fully resolved, the
+translator should stay aware of normalisation issues.
\1f
File: gettext.info, Node: Compendium, Prev: Auxiliary, Up: PO Mode
msgcat -o compendium.po file1.po file2.po
By default, `msgcat' will accumulate divergent translations for the
-same string. Those occurences will be marked as `fuzzy' and highly
+same string. Those occurrences will be marked as `fuzzy' and highly
visible decorated; calling `msgcat' on `file1.po':
#: src/hello.c:200
`--multi-domain'
Apply REF.pot to each of the domains in DEF.po.
+`--use-fuzzy'
+ Consider fuzzy messages in the DEF.po file like translated
+ messages. Note that using this option is usually wrong, because
+ fuzzy messages are exactly those which have not been validated by
+ a human translator.
+
+`--use-untranslated'
+ Consider untranslated messages in the DEF.po file like translated
+ messages. Note that using this option is usually wrong.
+
9.7.3 Input file syntax
-----------------------
Remove `fuzzy' marked messages.
`--only-fuzzy'
- Keep `fuzzy' marked messages, remove all other messsages.
+ Keep `fuzzy' marked messages, remove all other messages.
`--no-obsolete'
Remove obsolete #~ messages.
`--clear-obsolete'
Set all messages non-obsolete.
+`--clear-previous'
+ Remove the "previous msgid" (`#|') comments from all messages.
+
`--only-file=FILE'
Limit the attribute changes to entries that are listed in FILE.
FILE should be a PO or POT file.
not sufficient, a set of C functions is provided in a library, to make
it possible to process PO files in your own programs. When you use
this library, you don't need to write routines to parse the PO file;
-instead, you retreive a pointer in memory to each of messages contained
+instead, you retrieve a pointer in memory to each of messages contained
in the PO file. Functions for writing PO files are not provided at
this time.
strings are <NUL> terminated, so embedded <NUL>s are somewhat useless.
But the MO file format is general enough so other interfaces would be
later possible, if for example, we ever want to implement wide
-characters right in MO files, where <NUL> bytes may accidently appear.
-(No, we don't want to have wide characters in MO files. They would
-make the file unnecessarily large, and the `wchar_t' type being
+characters right in MO files, where <NUL> bytes may accidentally
+appear. (No, we don't want to have wide characters in MO files. They
+would make the file unnecessarily large, and the `wchar_t' type being
platform dependent, MO files would be platform dependent as well.)
This particular issue has been strongly debated in the GNU `gettext'
it (at least I and some others do...)
But we must not forget one point: after all the trouble with
-transfering the rights on Unix(tm) they at last came to X/Open, the
+transferring the rights on Unix(tm) they at last came to X/Open, the
very same who published this specification. This leads me to making
the prediction that this interface will be in future Unix standards
(e.g. Spec1170) and therefore part of all Unix implementation
`printf' function as well. It is not sufficient to pass it only to
`ngettext'.
+ In the English singular case, the number - always 1 - can be
+ replaced with "one":
+
+ printf (ngettext ("One file removed", "%d files removed", n), n);
+
+ This works because the `printf' function discards excess arguments
+ that are not consumed by the format string.
+
+ It is also possible to use this function when the strings don't
+ contain a cardinal number:
+
+ puts (ngettext ("Delete the selected file?",
+ "Delete the selected files?",
+ n));
+
+ In this case the number N is only used to choose the plural form.
+
-- Function: char * dngettext (const char *DOMAIN, const char *MSGID1,
const char *MSGID2, unsigned long int N)
The `dngettext' is similar to the `dgettext' function in the way
Languages with this property include:
- Finno-Ugric family
- Hungarian
-
Asian family
Japanese, Korean, Vietnamese
Artificial
Esperanto
+ Another language using the same header entry is:
+
+ Finno-Ugric family
+ Hungarian
+
+ Hungarian does not appear to have a plural if you look at
+ sentences involving cardinal numbers. For example, "1 apple" is
+ "1 alma", and "123 apples" is "123 alma". But when the number is
+ not explicit, the distinction between singular and plural exists:
+ "the apple" is "az alma", and "the apples" is "az alma'k". Since
+ `ngettext' has to support both types of sentences, it is
+ classified here, under "two forms".
+
Two forms, singular used for zero and one
Exceptional case in the language family. The header entry would
be:
Slavic family
Slovenian
+ You might now ask, `ngettext' handles only numbers N of type
+`unsigned long'. What about larger integer types? What about negative
+numbers? What about floating-point numbers?
+
+ About larger integer types, such as `uintmax_t' or `unsigned long
+long': they can be handled by reducing the value to a range that fits
+in an `unsigned long'. Simply casting the value to `unsigned long'
+would not do the right thing, since it would treat `ULONG_MAX + 1' like
+zero, `ULONG_MAX + 2' like singular, and the like. Here you can
+exploit the fact that all mentioned plural form formulas eventually
+become periodic, with a period that is a divisor of 100 (or 1000 or
+1000000). So, when you reduce a large value to another one in the
+range [1000000, 1999999] that ends in the same 6 decimal digits, you
+can assume that it will lead to the same plural form selection. This
+code does this:
+
+ #include <inttypes.h>
+ uintmax_t nbytes = ...;
+ printf (ngettext ("The file has %"PRIuMAX" byte.",
+ "The file has %"PRIuMAX" bytes.",
+ (nbytes > ULONG_MAX
+ ? (nbytes % 1000000) + 1000000
+ : nbytes)),
+ nbytes);
+
+ Negative and floating-point values usually represent physical
+entities for which singular and plural don't clearly apply. In such
+cases, there is no need to use `ngettext'; a simple `gettext' call with
+a form suitable for all values will do. For example:
+
+ printf (gettext ("Time elapsed: %.3f seconds"),
+ num_milliseconds * 0.001);
+
+Even if NUM_MILLISECONDS happens to be a multiple of 1000, the output
+ Time elapsed: 1.000 seconds
+ is acceptable in English, and similarly for other languages.
+
---------- Footnotes ----------
(1) Additions are welcome. Send appropriate information to
-<bug-glibc-manual@gnu.org>.
+<bug-gnu-gettext@gnu.org> and <bug-glibc-manual@gnu.org>.
\1f
File: gettext.info, Node: Optimized gettext, Prev: Plural forms, Up: gettext
and accepts the following options:
-`-c'
-`--copy'
- Copy the needed files instead of making symbolic links. Using
- links would allow the package to always use the latest `gettext'
- code available on the system, but it might disturb some mechanism
- the maintainer is used to apply to the sources. Because running
- `gettextize' is easy there shouldn't be problems with using copies.
-
`-f'
`--force'
Force replacement of files which already exist.
logs all changes (file additions, modifications and removals) in a
file called `ChangeLog' in each affected directory.
+`--symlink'
+ Make symbolic links instead of copying the needed files. This can
+ be useful to save a few kilobytes of disk space, but it requires
+ extra effort to create self-contained tarballs, it may disturb
+ some mechanism the maintainer applies to the sources, and it is
+ likely to introduce bugs when a newer version of `gettext' is
+ installed on the system.
+
`-n'
`--dry-run'
Print modifications but don't perform them. All actions that
So, here comes a list of files, each one followed by a description of
all alterations it needs. Many examples are taken out from the GNU
-`gettext' 0.15 distribution itself, or from the GNU `hello'
+`gettext' 0.16 distribution itself, or from the GNU `hello'
distribution (`http://www.franken.de/users/gnu/ke/hello' or
`http://www.gnu.franken.de/ke/hello/') You may indeed refer to the
source code of the GNU `gettext' and GNU `hello' packages, as they are
This is done by a set of lines like these:
PACKAGE=gettext
- VERSION=0.15
+ VERSION=0.16
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_SUBST(PACKAGE)
or, if you are using GNU `automake', by a line like this:
- AM_INIT_AUTOMAKE(gettext, 0.15)
+ AM_INIT_AUTOMAKE(gettext, 0.16)
Of course, you replace `gettext' with the name of your package,
- and `0.15' by its version numbers, exactly as they should appear
+ and `0.16' by its version numbers, exactly as they should appear
in the packaged `tar' file name of your distribution
- (`gettext-0.15.tar.gz', here).
+ (`gettext-0.16.tar.gz', here).
2. Check for internationalization support.
If you do not have an `aclocal.m4' file in your distribution, the
simplest is to concatenate the files `codeset.m4', `gettext.m4',
-`glibc2.m4', `glibc21.m4', `iconv.m4', `intdiv0.m4', `intmax.m4',
-`inttypes_h.m4', `inttypes-h.m4', `inttypes-pri.m4', `lcmessage.m4',
-`lib-ld.m4', `lib-link.m4', `lib-prefix.m4', `lock.m4',
-`longdouble.m4', `longlong.m4', `printf-posix.m4', `progtest.m4',
-`signed.m4', `size_max.m4', `stdint_h.m4', `uintmax_t.m4',
+`glibc2.m4', `glibc21.m4', `iconv.m4', `intdiv0.m4', `intl.m4',
+`intldir.m4', `intmax.m4', `inttypes_h.m4', `inttypes-pri.m4',
+`lcmessage.m4', `lib-ld.m4', `lib-link.m4', `lib-prefix.m4', `lock.m4',
+`longdouble.m4', `longlong.m4', `nls.m4', `po.m4', `printf-posix.m4',
+`progtest.m4', `size_max.m4', `stdint_h.m4', `uintmax_t.m4',
`ulonglong.m4', `visibility.m4', `wchar_t.m4', `wint_t.m4', `xsize.m4'
from GNU `gettext''s `m4/' directory into a single file. If you have
suppressed the `intl/' directory, only `gettext.m4', `iconv.m4',
-`lib-ld.m4', `lib-link.m4', `lib-prefix.m4', `progtest.m4' need to be
-concatenated.
+`lib-ld.m4', `lib-link.m4', `lib-prefix.m4', `nls.m4', `po.m4',
+`progtest.m4' need to be concatenated.
+
+ If you are not using GNU `automake' 1.8 or newer, you will need to
+add a file `mkdirp.m4' from a newer automake distribution to the list
+of files above.
If you already have an `aclocal.m4' file, then you will have to
merge the said macro files into your `aclocal.m4'. Note that if you
* When the package does not include the `intl/' subdirectory, and the
libintl.h header (with its associated libintl library, if any) is
- not already installed on the system, it is preferrable that the
+ not already installed on the system, it is preferable that the
package builds without internationalization support, rather than
to give a compilation error.
* AM_GNU_GETTEXT:: AM_GNU_GETTEXT in `gettext.m4'
* AM_GNU_GETTEXT_VERSION:: AM_GNU_GETTEXT_VERSION in `gettext.m4'
+* AM_GNU_GETTEXT_NEED:: AM_GNU_GETTEXT_NEED in `gettext.m4'
+* AM_GNU_GETTEXT_INTL_SUBDIR:: AM_GNU_GETTEXT_INTL_SUBDIR in `intldir.m4'
* AM_PO_SUBDIRS:: AM_PO_SUBDIRS in `po.m4'
* AM_ICONV:: AM_ICONV in `iconv.m4'
INTLSYMBOL can be `external' or `no-libtool'. The default (if it is
not specified or empty) is `no-libtool'. INTLSYMBOL should be
-`external' for packages with no `intl/' directory, and `no-libtool' for
-packages with an `intl/' directory. In the latter case, a static
-library `$(top_builddir)/intl/libintl.a' will be created.
+`external' for packages with no `intl/' directory. For packages with
+an `intl/' directory, you can either use an INTLSYMBOL equal to
+`no-libtool', or you can use `external' and override by using the macro
+`AM_GNU_GETTEXT_INTL_SUBDIR' elsewhere. The two ways to specify the
+existence of an `intl/' directory are equivalent. At build time, a
+static library `$(top_builddir)/intl/libintl.a' will then be created.
If NEEDSYMBOL is specified and is `need-ngettext', then GNU gettext
implementations (in libc or libintl) without the `ngettext()' function
will be ignored. If NEEDSYMBOL is specified and is
`need-formatstring-macros', then GNU gettext implementations that don't
support the ISO C 99 `<inttypes.h>' formatstring macros will be ignored.
-Only one NEEDSYMBOL can be specified. To specify more than one
-requirement, just specify the strongest one among them. The hierarchy
-among the various alternatives is as follows: `need-formatstring-macros'
-implies `need-ngettext'.
+Only one NEEDSYMBOL can be specified. These requirements can also be
+specified by using the macro `AM_GNU_GETTEXT_NEED' elsewhere. To
+specify more than one requirement, just specify the strongest one among
+them, or invoke the `AM_GNU_GETTEXT_NEED' macro several times. The
+hierarchy among the various alternatives is as follows:
+`need-formatstring-macros' implies `need-ngettext'.
INTLDIR is used to find the intl libraries. If empty, the value
`$(top_builddir)/intl/' is used.
`LIBINTL' and `LTLIBINTL' variables.
\1f
-File: gettext.info, Node: AM_GNU_GETTEXT_VERSION, Next: AM_PO_SUBDIRS, Prev: AM_GNU_GETTEXT, Up: autoconf macros
+File: gettext.info, Node: AM_GNU_GETTEXT_VERSION, Next: AM_GNU_GETTEXT_NEED, Prev: AM_GNU_GETTEXT, Up: autoconf macros
13.5.2 AM_GNU_GETTEXT_VERSION in `gettext.m4'
---------------------------------------------
use of it (*note CVS Issues::).
\1f
-File: gettext.info, Node: AM_PO_SUBDIRS, Next: AM_ICONV, Prev: AM_GNU_GETTEXT_VERSION, Up: autoconf macros
+File: gettext.info, Node: AM_GNU_GETTEXT_NEED, Next: AM_GNU_GETTEXT_INTL_SUBDIR, Prev: AM_GNU_GETTEXT_VERSION, Up: autoconf macros
+
+13.5.3 AM_GNU_GETTEXT_NEED in `gettext.m4'
+------------------------------------------
+
+The `AM_GNU_GETTEXT_NEED' macro declares a constraint regarding the GNU
+gettext implementation. The syntax is
+
+ AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+
+ If NEEDSYMBOL is `need-ngettext', then GNU gettext implementations
+(in libc or libintl) without the `ngettext()' function will be ignored.
+If NEEDSYMBOL is `need-formatstring-macros', then GNU gettext
+implementations that don't support the ISO C 99 `<inttypes.h>'
+formatstring macros will be ignored.
+
+ The optional second argument of `AM_GNU_GETTEXT' is also taken into
+account.
+
+ The `AM_GNU_GETTEXT_NEED' invocations can occur before or after the
+`AM_GNU_GETTEXT' invocation; the order doesn't matter.
+
+\1f
+File: gettext.info, Node: AM_GNU_GETTEXT_INTL_SUBDIR, Next: AM_PO_SUBDIRS, Prev: AM_GNU_GETTEXT_NEED, Up: autoconf macros
+
+13.5.4 AM_GNU_GETTEXT_INTL_SUBDIR in `intldir.m4'
+-------------------------------------------------
+
+The `AM_GNU_GETTEXT_INTL_SUBDIR' macro specifies that the
+`AM_GNU_GETTEXT' macro, although invoked with the first argument
+`external', should also prepare for building the `intl/' subdirectory.
+
+ The `AM_GNU_GETTEXT_INTL_SUBDIR' invocation can occur before or after
+the `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.
+
+\1f
+File: gettext.info, Node: AM_PO_SUBDIRS, Next: AM_ICONV, Prev: AM_GNU_GETTEXT_INTL_SUBDIR, Up: autoconf macros
-13.5.3 AM_PO_SUBDIRS in `po.m4'
+13.5.5 AM_PO_SUBDIRS in `po.m4'
-------------------------------
The `AM_PO_SUBDIRS' macro prepares the `po/' directories of the package
\1f
File: gettext.info, Node: AM_ICONV, Prev: AM_PO_SUBDIRS, Up: autoconf macros
-13.5.4 AM_ICONV in `iconv.m4'
+13.5.6 AM_ICONV in `iconv.m4'
-----------------------------
The `AM_ICONV' macro tests for the presence of the POSIX/XSI `iconv'
Instead, he adds to the `configure.in' or `configure.ac' a line of the
form
- AM_GNU_GETTEXT_VERSION(0.15)
+ AM_GNU_GETTEXT_VERSION(0.16)
and adds to the package's pre-build script an invocation of
`autopoint'. For everyone who checks out the CVS, this `autopoint'
`autopoint' supports the GNU `gettext' versions from 0.10.35 to the
-current one, 0.15. In order to apply `autopoint' to a package using a
-`gettext' version newer than 0.15, you need to install this same
+current one, 0.16. In order to apply `autopoint' to a package using a
+`gettext' version newer than 0.16, you need to install this same
version of GNU `gettext' at least.
In packages using GNU `automake', an invocation of `autopoint'
compatibility with the `echo' program or shell built-in. The
escape sequences `\a', `\b', `\c', `\f', `\n', `\r', `\t', `\v',
`\\', and `\' followed by one to three octal digits, are
- interpreted like the SystemV `echo' program does.
+ interpreted like the System V `echo' program did.
`-E'
This option is only for compatibility with the `echo' program or
compatibility with the `gettext' program. The escape sequences
`\a', `\b', `\c', `\f', `\n', `\r', `\t', `\v', `\\', and `\'
followed by one to three octal digits, are interpreted like the
- SystemV `echo' program does.
+ System V `echo' program did.
`-E'
This option is only for compatibility with the `gettext' program.
translator's encoding to the user's locale's encoding, produce the
dangerous `\x60' bytes.
- 2. A translator could - voluntarily or inadvertantly - use backquotes
+ 2. A translator could - voluntarily or inadvertently - use backquotes
`"`...`"' or dollar-parentheses `"$(...)"' in her translations.
The enclosed strings would be executed as command lists by the
shell.
print $gettext{Error};
The exact rule is: You can omit the surrounding quotes, when the hash
-key is a valid C (!) identifier, i. e. when it starts with an
-underscore or an ASCII letter and is followed by an arbitrary number of
+key is a valid C (!) identifier, i.e. when it starts with an underscore
+or an ASCII letter and is followed by an arbitrary number of
underscores, ASCII letters or digits. Other Unicode characters are
_not_ allowed, regardless of the `use utf8' pragma.
In Perl, parentheses around function arguments are mostly optional.
`xgettext' will always assume that all recognized keywords (except for
-hashs and hash references) are names of properly prototyped functions,
+hashes and hash references) are names of properly prototyped functions,
and will (hopefully) only require parentheses where Perl itself
requires them. All constructs in the following example are therefore
ok to use:
space character.</em>
EOF
- Please do not forget, that the line breaks are real, i. e. they
+ 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.
While Jim took some distance and time and became dad for a second
time, Roland wanted to get GNU `libc' internationalized, and got Ulrich
Drepper involved in that project. Instead of starting from `glocale',
-Ulrich rewrote something from scratch, but more conformant to the set
+Ulrich rewrote something from scratch, but more conforming to the set
of guidelines who emerged out of the `glocale' effort. Then, Ulrich
got people from the previous forum to involve themselves into this new
project, and the switch from `glocale' to what was first named
Appendix A Language Codes
*************************
-The ISO 639 standard defines two character codes for many languages.
-All abbreviations for languages used in the Translation Project should
-come from this standard.
+The ISO 639 standard defines two-letter codes for many languages, and
+three-letter codes for more rarely used languages. All abbreviations
+for languages used in the Translation Project should come from this
+standard.
+
+* Menu:
+
+* Usual Language Codes:: Two-letter ISO 639 language codes
+* Rare Language Codes:: Three-letter ISO 639 language codes
+
+\1f
+File: gettext.info, Node: Usual Language Codes, Next: Rare Language Codes, Prev: Language Codes, Up: Language Codes
+
+A.1 Usual Language Codes
+========================
+
+For the commonly used languages, the ISO 639-1 standard defines
+two-letter codes.
`aa'
Afar.
`ab'
Abkhazian.
+`ad'
+ Adangme.
+
`ae'
Avestan.
German.
`dv'
- Divehi.
+ Divehi; Maldivian.
`dz'
Dzongkha; Bhutani.
French.
`fy'
- Frisian.
+ Western Frisian.
`ga'
Irish.
Scots; Gaelic.
`gl'
- Gallegan; Galician.
+ Galician.
`gn'
Guarani.
Manx.
`ha'
- Hausa (?).
+ Hausa.
`he'
Hebrew (formerly iw).
Sichuan Yi.
`ik'
- Inupiak.
+ Inupiak; Inupiaq.
`io'
Ido.
Kongo.
`ki'
- Kikuyu.
+ Kikuyu; Gikuyu.
`kj'
- Kuanyama.
+ Kuanyama; Kwanyama.
`kk'
Kazakh.
Latin.
`lb'
- Letzeburgesch.
+ Letzeburgesch; Luxembourgish.
`lg'
Ganda.
Malagasy.
`mh'
- Marshall.
+ Marshallese.
`mi'
Maori.
Ndebele, South.
`nv'
- Navajo.
+ Navajo; Navaho.
`ny'
Chichewa; Nyanja.
Sango; Sangro.
`si'
- Sinhalese.
+ Sinhala; Sinhalese.
`sk'
Slovak.
Tswana; Setswana.
`to'
- Tonga (?).
+ Tonga.
`tr'
Turkish.
`zu'
Zulu.
+\1f
+File: gettext.info, Node: Rare Language Codes, Prev: Usual Language Codes, Up: Language Codes
+
+A.2 Rare Language Codes
+=======================
+
+For rarely used languages, the ISO 639-2 standard defines three-letter
+codes. Here is the current list, reduced to only living languages with
+at least one million of speakers.
+
+`ace'
+ Achinese.
+
+`awa'
+ Awadhi.
+
+`bad'
+ Banda.
+
+`bal'
+ Baluchi.
+
+`ban'
+ Balinese.
+
+`bem'
+ Bemba.
+
+`bho'
+ Bhojpuri.
+
+`bik'
+ Bikol.
+
+`bin'
+ Bini.
+
+`btk'
+ Batak (Indonesia).
+
+`bug'
+ Buginese.
+
+`ceb'
+ Cebuano.
+
+`din'
+ Dinka.
+
+`doi'
+ Dogri.
+
+`fil'
+ Filipino; Pilipino.
+
+`fon'
+ Fon.
+
+`gon'
+ Gondi.
+
+`gsw'
+ Alemani; Swiss German.
+
+`hil'
+ Hiligaynon.
+
+`hmn'
+ Hmong.
+
+`ilo'
+ Iloko.
+
+`kab'
+ Kabyle.
+
+`kam'
+ Kamba.
+
+`kbd'
+ Kabardian.
+
+`kmb'
+ Kimbundu.
+
+`kok'
+ Konkani.
+
+`kru'
+ Kurukh.
+
+`lua'
+ Luba-Lulua.
+
+`luo'
+ Luo (Kenya and Tanzania).
+
+`mad'
+ Madurese.
+
+`mag'
+ Magahi.
+
+`mai'
+ Maithili.
+
+`mak'
+ Makasar.
+
+`man'
+ Mandingo.
+
+`men'
+ Mende.
+
+`min'
+ Minangkabau.
+
+`mni'
+ Manipuri.
+
+`mos'
+ Mossi.
+
+`mwr'
+ Marwari.
+
+`nap'
+ Neapolitan.
+
+`nso'
+ Pedi; Sepedi; Northern Sotho.
+
+`nym'
+ Nyamwezi.
+
+`nyn'
+ Nyankole.
+
+`pag'
+ Pangasinan.
+
+`pam'
+ Pampanga.
+
+`raj'
+ Rajasthani.
+
+`sas'
+ Sasak.
+
+`sat'
+ Santali.
+
+`scn'
+ Sicilian.
+
+`shn'
+ Shan.
+
+`sid'
+ Sidamo.
+
+`srr'
+ Serer.
+
+`suk'
+ Sukuma.
+
+`sus'
+ Susu.
+
+`tem'
+ Timne.
+
+`tiv'
+ Tiv.
+
+`tum'
+ Tumbuka.
+
+`umb'
+ Umbundu.
+
+`wal'
+ Walamo.
+
+`war'
+ Waray.
+
+`yao'
+ Yao.
+
\1f
File: gettext.info, Node: Country Codes, Next: Licenses, Prev: Language Codes, Up: Top
`AW'
Aruba.
+`AX'
+ Aaland Islands.
+
`AZ'
Azerbaijan.
Congo (Dem. Rep.).
`CF'
- Central African Rep..
+ Central African Republic.
`CG'
Congo (Rep.).
`CR'
Costa Rica.
-`CS'
- Serbia and Montenegro.
-
`CU'
Cuba.
Gabon.
`GB'
- Britain (UK).
+ Britain (United Kingdom).
`GD'
Grenada.
`GF'
French Guiana.
+`GG'
+ Guernsey.
+
`GH'
Ghana.
`IL'
Israel.
+`IM'
+ Isle of Man.
+
`IN'
India.
`IT'
Italy.
+`JE'
+ Jersey.
+
`JM'
Jamaica.
`MD'
Moldova.
+`ME'
+ Montenegro.
+
`MG'
Madagascar.
`RO'
Romania.
+`RS'
+ Serbia.
+
`RU'
Russia.
Vatican City.
`VC'
- St Vincent.
+ St Vincent and the Grenadines.
`VE'
Venezuela.
* --add-comments, xgettext option: xgettext Invocation. (line 97)
* --add-location, msgattrib option: msgattrib Invocation.
- (line 124)
+ (line 127)
* --add-location, msgcat option: msgcat Invocation. (line 105)
* --add-location, msgcomm option: msgcomm Invocation. (line 95)
* --add-location, msgconv option: msgconv Invocation. (line 74)
* --add-location, msgfilter option: msgfilter Invocation.
(line 128)
* --add-location, msggrep option: msggrep Invocation. (line 152)
-* --add-location, msgmerge option: msgmerge Invocation. (line 135)
+* --add-location, msgmerge option: msgmerge Invocation. (line 139)
* --add-location, msguniq option: msguniq Invocation. (line 92)
* --add-location, xgettext option: xgettext Invocation. (line 276)
* --alignment, msgfmt option: msgfmt Invocation. (line 209)
(line 71)
* --clear-obsolete, msgattrib option: msgattrib Invocation.
(line 77)
+* --clear-previous, msgattrib option: msgattrib Invocation.
+ (line 80)
* --comment, msggrep option: msggrep Invocation. (line 93)
* --compendium, msgmerge option: msgmerge Invocation. (line 36)
-* --copy, gettextize option: gettextize Invocation.
- (line 40)
* --copyright-holder, xgettext option: xgettext Invocation. (line 323)
* --csharp, msgfmt option: msgfmt Invocation. (line 36)
* --csharp, msgunfmt option: msgunfmt Invocation. (line 19)
* --force, autopoint option: autopoint Invocation.
(line 20)
* --force, gettextize option: gettextize Invocation.
- (line 48)
+ (line 40)
* --force-po, msgattrib option: msgattrib Invocation.
- (line 113)
+ (line 116)
* --force-po, msgcat option: msgcat Invocation. (line 94)
* --force-po, msgcomm option: msgcomm Invocation. (line 84)
* --force-po, msgconv option: msgconv Invocation. (line 64)
* --force-po, msgfilter option: msgfilter Invocation.
(line 114)
* --force-po, msggrep option: msggrep Invocation. (line 143)
-* --force-po, msgmerge option: msgmerge Invocation. (line 125)
+* --force-po, msgmerge option: msgmerge Invocation. (line 129)
* --force-po, msgunfmt option: msgunfmt Invocation. (line 108)
* --force-po, msguniq option: msguniq Invocation. (line 81)
* --force-po, xgettext option: xgettext Invocation. (line 265)
* --foreign-user, xgettext option: xgettext Invocation. (line 338)
* --from-code, xgettext option: xgettext Invocation. (line 74)
* --fuzzy, msgattrib option: msgattrib Invocation.
- (line 88)
+ (line 91)
* --help, autopoint option: autopoint Invocation.
(line 33)
* --help, envsubst option: envsubst Invocation. (line 22)
* --help, gettextize option: gettextize Invocation.
(line 70)
* --help, msgattrib option: msgattrib Invocation.
- (line 169)
+ (line 172)
* --help, msgcat option: msgcat Invocation. (line 150)
-* --help, msgcmp option: msgcmp Invocation. (line 57)
+* --help, msgcmp option: msgcmp Invocation. (line 67)
* --help, msgcomm option: msgcomm Invocation. (line 143)
* --help, msgconv option: msgconv Invocation. (line 119)
* --help, msgen option: msgen Invocation. (line 115)
* --help, msgfmt option: msgfmt Invocation. (line 222)
* --help, msggrep option: msggrep Invocation. (line 195)
* --help, msginit option: msginit Invocation. (line 90)
-* --help, msgmerge option: msgmerge Invocation. (line 180)
+* --help, msgmerge option: msgmerge Invocation. (line 184)
* --help, msgunfmt option: msgunfmt Invocation. (line 153)
* --help, msguniq option: msguniq Invocation. (line 137)
* --help, ngettext option: ngettext Invocation. (line 31)
* --help, xgettext option: xgettext Invocation. (line 384)
* --ignore-case, msggrep option: msggrep Invocation. (line 117)
* --ignore-file, msgattrib option: msgattrib Invocation.
- (line 84)
+ (line 87)
* --indent, msgattrib option: msgattrib Invocation.
- (line 117)
+ (line 120)
* --indent, msgcat option: msgcat Invocation. (line 98)
* --indent, msgcomm option: msgcomm Invocation. (line 88)
* --indent, msgconv option: msgconv Invocation. (line 68)
* --indent, msgfilter option: msgfilter Invocation.
(line 117)
* --indent, msggrep option: msggrep Invocation. (line 146)
-* --indent, msgmerge option: msgmerge Invocation. (line 129)
+* --indent, msgmerge option: msgmerge Invocation. (line 133)
* --indent, msgunfmt option: msgunfmt Invocation. (line 112)
* --indent, msguniq option: msguniq Invocation. (line 85)
* --indent, xgettext option: xgettext Invocation. (line 269)
(line 16)
* --input, msginit option: msginit Invocation. (line 16)
* --intl, gettextize option: gettextize Invocation.
- (line 51)
+ (line 43)
* --invert-match, msggrep option: msggrep Invocation. (line 121)
* --java, msgfmt option: msgfmt Invocation. (line 30)
* --java, msgunfmt option: msgunfmt Invocation. (line 16)
* --multi-domain, msgcmp option: msgcmp Invocation. (line 36)
* --multi-domain, msgmerge option: msgmerge Invocation. (line 101)
* --no-changelog, gettextize option: gettextize Invocation.
- (line 59)
+ (line 51)
* --no-fuzzy, msgattrib option: msgattrib Invocation.
(line 47)
* --no-fuzzy-matching, msgmerge option: msgmerge Invocation. (line 105)
* --no-hash, msgfmt option: msgfmt Invocation. (line 212)
* --no-location, msgattrib option: msgattrib Invocation.
- (line 120)
+ (line 123)
* --no-location, msgcat option: msgcat Invocation. (line 101)
* --no-location, msgcomm option: msgcomm Invocation. (line 91)
* --no-location, msgconv option: msgconv Invocation. (line 71)
* --no-location, msgfilter option: msgfilter Invocation.
(line 125)
* --no-location, msggrep option: msggrep Invocation. (line 149)
-* --no-location, msgmerge option: msgmerge Invocation. (line 132)
+* --no-location, msgmerge option: msgmerge Invocation. (line 136)
* --no-location, msguniq option: msguniq Invocation. (line 88)
* --no-location, xgettext option: xgettext Invocation. (line 272)
* --no-obsolete, msgattrib option: msgattrib Invocation.
(line 53)
* --no-translator, msginit option: msginit Invocation. (line 58)
* --no-wrap, msgattrib option: msgattrib Invocation.
- (line 149)
+ (line 152)
* --no-wrap, msgcat option: msgcat Invocation. (line 130)
* --no-wrap, msgcomm option: msgcomm Invocation. (line 120)
* --no-wrap, msgconv option: msgconv Invocation. (line 99)
(line 153)
* --no-wrap, msggrep option: msggrep Invocation. (line 177)
* --no-wrap, msginit option: msginit Invocation. (line 79)
-* --no-wrap, msgmerge option: msgmerge Invocation. (line 160)
+* --no-wrap, msgmerge option: msgmerge Invocation. (line 164)
* --no-wrap, msgunfmt option: msgunfmt Invocation. (line 137)
* --no-wrap, msguniq option: msguniq Invocation. (line 117)
* --no-wrap, xgettext option: xgettext Invocation. (line 300)
* --obsolete, msgattrib option: msgattrib Invocation.
- (line 92)
+ (line 95)
* --omit-header, msgcomm option: msgcomm Invocation. (line 135)
* --omit-header, xgettext option: xgettext Invocation. (line 315)
* --only-file, msgattrib option: msgattrib Invocation.
- (line 80)
+ (line 83)
* --only-fuzzy, msgattrib option: msgattrib Invocation.
(line 50)
* --only-obsolete, msgattrib option: msgattrib Invocation.
* --output-file, msgmerge option: msgmerge Invocation. (line 53)
* --output-file, msgunfmt option: msgunfmt Invocation. (line 98)
* --output-file, msguniq option: msguniq Invocation. (line 38)
+* --previous, msgmerge option: msgmerge Invocation. (line 109)
* --properties-input, msgattrib option: msgattrib Invocation.
- (line 101)
+ (line 104)
* --properties-input, msgcat option: msgcat Invocation. (line 74)
-* --properties-input, msgcmp option: msgcmp Invocation. (line 44)
+* --properties-input, msgcmp option: msgcmp Invocation. (line 54)
* --properties-input, msgcomm option: msgcomm Invocation. (line 72)
* --properties-input, msgconv option: msgconv Invocation. (line 52)
* --properties-input, msgen option: msgen Invocation. (line 48)
* --properties-input, msgfmt option: msgfmt Invocation. (line 133)
* --properties-input, msggrep option: msggrep Invocation. (line 131)
* --properties-input, msginit option: msginit Invocation. (line 39)
-* --properties-input, msgmerge option: msgmerge Invocation. (line 113)
+* --properties-input, msgmerge option: msgmerge Invocation. (line 117)
* --properties-input, msguniq option: msguniq Invocation. (line 61)
* --properties-output, msgattrib option: msgattrib Invocation.
- (line 133)
+ (line 136)
* --properties-output, msgcat option: msgcat Invocation. (line 114)
* --properties-output, msgcomm option: msgcomm Invocation. (line 104)
* --properties-output, msgconv option: msgconv Invocation. (line 83)
(line 137)
* --properties-output, msggrep option: msggrep Invocation. (line 161)
* --properties-output, msginit option: msginit Invocation. (line 63)
-* --properties-output, msgmerge option: msgmerge Invocation. (line 144)
+* --properties-output, msgmerge option: msgmerge Invocation. (line 148)
* --properties-output, msgunfmt option: msgunfmt Invocation. (line 121)
* --properties-output, msguniq option: msguniq Invocation. (line 101)
* --properties-output, xgettext option: xgettext Invocation. (line 284)
* --qt, xgettext option: xgettext Invocation. (line 240)
* --quiet, msgfilter option: msgfilter Invocation.
(line 79)
-* --quiet, msgmerge option: msgmerge Invocation. (line 193)
+* --quiet, msgmerge option: msgmerge Invocation. (line 197)
* --regexp=, msggrep option: msggrep Invocation. (line 109)
* --repeated, msguniq option: msguniq Invocation. (line 49)
* --resource, msgfmt option: msgfmt Invocation. (line 75)
(line 74)
* --silent, msgfilter option: msgfilter Invocation.
(line 79)
-* --silent, msgmerge option: msgmerge Invocation. (line 193)
+* --silent, msgmerge option: msgmerge Invocation. (line 197)
* --sort-by-file, msgattrib option: msgattrib Invocation.
- (line 161)
+ (line 164)
* --sort-by-file, msgcat option: msgcat Invocation. (line 142)
* --sort-by-file, msgcomm option: msgcomm Invocation. (line 132)
* --sort-by-file, msgconv option: msgconv Invocation. (line 111)
* --sort-by-file, msgfilter option: msgfilter Invocation.
(line 165)
* --sort-by-file, msggrep option: msggrep Invocation. (line 187)
-* --sort-by-file, msgmerge option: msgmerge Invocation. (line 172)
+* --sort-by-file, msgmerge option: msgmerge Invocation. (line 176)
* --sort-by-file, msguniq option: msguniq Invocation. (line 129)
* --sort-by-file, xgettext option: xgettext Invocation. (line 312)
* --sort-output, msgattrib option: msgattrib Invocation.
- (line 156)
+ (line 159)
* --sort-output, msgcat option: msgcat Invocation. (line 137)
* --sort-output, msgcomm option: msgcomm Invocation. (line 127)
* --sort-output, msgconv option: msgconv Invocation. (line 106)
* --sort-output, msgfilter option: msgfilter Invocation.
(line 160)
* --sort-output, msggrep option: msggrep Invocation. (line 183)
-* --sort-output, msgmerge option: msgmerge Invocation. (line 167)
+* --sort-output, msgmerge option: msgmerge Invocation. (line 171)
* --sort-output, msgunfmt option: msgunfmt Invocation. (line 144)
* --sort-output, msguniq option: msguniq Invocation. (line 124)
* --sort-output, xgettext option: xgettext Invocation. (line 307)
* --statistics, msgfmt option: msgfmt Invocation. (line 229)
* --strict, msgattrib option: msgattrib Invocation.
- (line 127)
+ (line 130)
* --strict, msgcat option: msgcat Invocation. (line 108)
* --strict, msgcomm option: msgcomm Invocation. (line 98)
* --strict, msgconv option: msgconv Invocation. (line 77)
(line 131)
* --strict, msgfmt option: msgfmt Invocation. (line 57)
* --strict, msggrep option: msggrep Invocation. (line 155)
-* --strict, msgmerge option: msgmerge Invocation. (line 138)
+* --strict, msgmerge option: msgmerge Invocation. (line 142)
* --strict, msgunfmt option: msgunfmt Invocation. (line 115)
* --strict, msguniq option: msguniq Invocation. (line 95)
* --strict, xgettext option: xgettext Invocation. (line 279)
* --stringtable-input, msgattrib option: msgattrib Invocation.
- (line 105)
+ (line 108)
* --stringtable-input, msgcat option: msgcat Invocation. (line 78)
-* --stringtable-input, msgcmp option: msgcmp Invocation. (line 48)
+* --stringtable-input, msgcmp option: msgcmp Invocation. (line 58)
* --stringtable-input, msgcomm option: msgcomm Invocation. (line 76)
* --stringtable-input, msgen option: msgen Invocation. (line 52)
* --stringtable-input, msgexec option: msgexec Invocation. (line 60)
* --stringtable-input, msgfmt option: msgfmt Invocation. (line 137)
* --stringtable-input, msggrep option: msggrep Invocation. (line 135)
* --stringtable-input, msginit option: msginit Invocation. (line 43)
-* --stringtable-input, msgmerge option: msgmerge Invocation. (line 117)
+* --stringtable-input, msgmerge option: msgmerge Invocation. (line 121)
* --stringtable-input, msgonv option: msgconv Invocation. (line 56)
* --stringtable-input, msguniq option: msguniq Invocation. (line 65)
* --stringtable-output, msgattrib option: msgattrib Invocation.
- (line 138)
+ (line 141)
* --stringtable-output, msgcat option: msgcat Invocation. (line 119)
* --stringtable-output, msgcomm option: msgcomm Invocation. (line 109)
* --stringtable-output, msgconv option: msgconv Invocation. (line 88)
(line 142)
* --stringtable-output, msggrep option: msggrep Invocation. (line 166)
* --stringtable-output, msginit option: msginit Invocation. (line 68)
-* --stringtable-output, msgmerge option: msgmerge Invocation. (line 149)
+* --stringtable-output, msgmerge option: msgmerge Invocation. (line 153)
* --stringtable-output, msgunfmt option: msgunfmt Invocation. (line 126)
* --stringtable-output, msguniq option: msguniq Invocation. (line 106)
* --stringtable-output, xgettext option: xgettext Invocation. (line 289)
* --suffix, msgmerge option: msgmerge Invocation. (line 68)
+* --symlink, gettextize option: gettextize Invocation.
+ (line 56)
* --tcl, msgfmt option: msgfmt Invocation. (line 43)
* --tcl, msgunfmt option: msgunfmt Invocation. (line 26)
* --to-code, msgcat option: msgcat Invocation. (line 87)
* --update, msgmerge option: msgmerge Invocation. (line 45)
* --use-first, msgcat option: msgcat Invocation. (line 90)
* --use-first, msguniq option: msguniq Invocation. (line 77)
+* --use-fuzzy, msgcmp option: msgcmp Invocation. (line 39)
* --use-fuzzy, msgfmt option: msgfmt Invocation. (line 199)
+* --use-untranslated, msgcmp option: msgcmp Invocation. (line 45)
* --variables, envsubst option: envsubst Invocation. (line 15)
* --verbose, msgfmt option: msgfmt Invocation. (line 233)
-* --verbose, msgmerge option: msgmerge Invocation. (line 188)
+* --verbose, msgmerge option: msgmerge Invocation. (line 192)
* --verbose, msgunfmt option: msgunfmt Invocation. (line 161)
* --version, autopoint option: autopoint Invocation.
(line 36)
* --version, gettextize option: gettextize Invocation.
(line 73)
* --version, msgattrib option: msgattrib Invocation.
- (line 173)
+ (line 176)
* --version, msgcat option: msgcat Invocation. (line 154)
-* --version, msgcmp option: msgcmp Invocation. (line 61)
+* --version, msgcmp option: msgcmp Invocation. (line 71)
* --version, msgcomm option: msgcomm Invocation. (line 147)
* --version, msgconv option: msgconv Invocation. (line 123)
* --version, msgen option: msgen Invocation. (line 119)
* --version, msgfmt option: msgfmt Invocation. (line 226)
* --version, msggrep option: msggrep Invocation. (line 199)
* --version, msginit option: msginit Invocation. (line 94)
-* --version, msgmerge option: msgmerge Invocation. (line 184)
+* --version, msgmerge option: msgmerge Invocation. (line 188)
* --version, msgunfmt option: msgunfmt Invocation. (line 157)
* --version, msguniq option: msguniq Invocation. (line 141)
* --version, ngettext option: ngettext Invocation. (line 35)
* --version, xgettext option: xgettext Invocation. (line 388)
* --width, msgattrib option: msgattrib Invocation.
- (line 143)
+ (line 146)
* --width, msgcat option: msgcat Invocation. (line 124)
* --width, msgcomm option: msgcomm Invocation. (line 114)
* --width, msgconv option: msgconv Invocation. (line 93)
(line 147)
* --width, msggrep option: msggrep Invocation. (line 171)
* --width, msginit option: msginit Invocation. (line 73)
-* --width, msgmerge option: msgmerge Invocation. (line 154)
+* --width, msgmerge option: msgmerge Invocation. (line 158)
* --width, msgunfmt option: msgunfmt Invocation. (line 131)
* --width, msguniq option: msguniq Invocation. (line 111)
* --width, xgettext option: xgettext Invocation. (line 294)
* ->, msgcomm option: msgcomm Invocation. (line 58)
* -a, msgfmt option: msgfmt Invocation. (line 209)
* -a, xgettext option: xgettext Invocation. (line 106)
-* -c, gettextize option: gettextize Invocation.
- (line 40)
* -C, msgfmt option: msgfmt Invocation. (line 183)
* -c, msgfmt option: msgfmt Invocation. (line 146)
* -C, msggrep option: msggrep Invocation. (line 93)
* -f, autopoint option: autopoint Invocation.
(line 20)
* -f, gettextize option: gettextize Invocation.
- (line 48)
+ (line 40)
* -F, msgattrib option: msgattrib Invocation.
- (line 161)
+ (line 164)
* -F, msgcat option: msgcat Invocation. (line 142)
* -f, msgcat option: msgcat Invocation. (line 27)
* -F, msgcomm option: msgcomm Invocation. (line 132)
* -f, msgfmt option: msgfmt Invocation. (line 199)
* -f, msggrep option: msggrep Invocation. (line 113)
* -F, msggrep option: msggrep Invocation. (line 105)
-* -F, msgmerge option: msgmerge Invocation. (line 172)
+* -F, msgmerge option: msgmerge Invocation. (line 176)
* -F, msguniq option: msguniq Invocation. (line 129)
* -F, xgettext option: xgettext Invocation. (line 312)
* -f, xgettext option: xgettext Invocation. (line 19)
* -h, envsubst option: envsubst Invocation. (line 22)
* -h, gettext option: gettext Invocation. (line 32)
* -h, msgattrib option: msgattrib Invocation.
- (line 169)
+ (line 172)
* -h, msgcat option: msgcat Invocation. (line 150)
-* -h, msgcmp option: msgcmp Invocation. (line 57)
+* -h, msgcmp option: msgcmp Invocation. (line 67)
* -h, msgcomm option: msgcomm Invocation. (line 143)
* -h, msgconv option: msgconv Invocation. (line 119)
* -h, msgen option: msgen Invocation. (line 115)
* -h, msgfmt option: msgfmt Invocation. (line 222)
* -h, msggrep option: msggrep Invocation. (line 195)
* -h, msginit option: msginit Invocation. (line 90)
-* -h, msgmerge option: msgmerge Invocation. (line 180)
+* -h, msgmerge option: msgmerge Invocation. (line 184)
* -h, msgunfmt option: msgunfmt Invocation. (line 153)
* -h, msguniq option: msguniq Invocation. (line 137)
* -h, ngettext option: ngettext Invocation. (line 31)
* -h, xgettext option: xgettext Invocation. (line 384)
* -i, msgattrib option: msgattrib Invocation.
- (line 117)
+ (line 120)
* -i, msgcat option: msgcat Invocation. (line 98)
* -i, msgcomm option: msgcomm Invocation. (line 88)
* -i, msgconv option: msgconv Invocation. (line 68)
(line 16)
* -i, msggrep option: msggrep Invocation. (line 117)
* -i, msginit option: msginit Invocation. (line 16)
-* -i, msgmerge option: msgmerge Invocation. (line 129)
+* -i, msgmerge option: msgmerge Invocation. (line 133)
* -i, msgunfmt option: msgunfmt Invocation. (line 112)
* -i, msguniq option: msguniq Invocation. (line 85)
* -i, xgettext option: xgettext Invocation. (line 269)
* -m, xgettext option: xgettext Invocation. (line 372)
* -n, gettext option: gettext Invocation. (line 35)
* -n, msgattrib option: msgattrib Invocation.
- (line 124)
+ (line 127)
* -n, msgcat option: msgcat Invocation. (line 105)
* -n, msgcomm option: msgcomm Invocation. (line 95)
* -n, msgfilter option: msgfilter Invocation.
* -o, msguniq option: msguniq Invocation. (line 38)
* -o, xgettext option: xgettext Invocation. (line 40)
* -p, msgattrib option: msgattrib Invocation.
- (line 133)
+ (line 136)
* -P, msgattrib option: msgattrib Invocation.
- (line 101)
+ (line 104)
* -p, msgcat option: msgcat Invocation. (line 114)
* -P, msgcat option: msgcat Invocation. (line 74)
-* -P, msgcmp option: msgcmp Invocation. (line 44)
+* -P, msgcmp option: msgcmp Invocation. (line 54)
* -p, msgcomm option: msgcomm Invocation. (line 104)
* -P, msgcomm option: msgcomm Invocation. (line 72)
* -p, msgconv option: msgconv Invocation. (line 83)
* -P, msggrep option: msggrep Invocation. (line 131)
* -p, msginit option: msginit Invocation. (line 63)
* -P, msginit option: msginit Invocation. (line 39)
-* -p, msgmerge option: msgmerge Invocation. (line 144)
-* -P, msgmerge option: msgmerge Invocation. (line 113)
+* -p, msgmerge option: msgmerge Invocation. (line 148)
+* -P, msgmerge option: msgmerge Invocation. (line 117)
* -p, msgunfmt option: msgunfmt Invocation. (line 121)
* -p, msguniq option: msguniq Invocation. (line 101)
* -P, msguniq option: msguniq Invocation. (line 61)
* -p, xgettext option: xgettext Invocation. (line 45)
-* -q, msgmerge option: msgmerge Invocation. (line 193)
+* -q, msgmerge option: msgmerge Invocation. (line 197)
* -r, msgfmt option: msgfmt Invocation. (line 75)
* -r, msgunfmt option: msgunfmt Invocation. (line 43)
* -s, msgattrib option: msgattrib Invocation.
- (line 156)
+ (line 159)
* -s, msgcat option: msgcat Invocation. (line 137)
* -s, msgcomm option: msgcomm Invocation. (line 127)
* -s, msgconv option: msgconv Invocation. (line 106)
* -s, msgen option: msgen Invocation. (line 102)
* -s, msgfilter option: msgfilter Invocation.
(line 160)
-* -s, msgmerge option: msgmerge Invocation. (line 167)
+* -s, msgmerge option: msgmerge Invocation. (line 171)
* -s, msgunfmt option: msgunfmt Invocation. (line 144)
* -s, msguniq option: msguniq Invocation. (line 124)
* -s, xgettext option: xgettext Invocation. (line 307)
* -v, envsubst option: envsubst Invocation. (line 15)
* -V, gettext option: gettext Invocation. (line 40)
* -V, msgattrib option: msgattrib Invocation.
- (line 173)
+ (line 176)
* -V, msgcat option: msgcat Invocation. (line 154)
-* -V, msgcmp option: msgcmp Invocation. (line 61)
+* -V, msgcmp option: msgcmp Invocation. (line 71)
* -V, msgcomm option: msgcomm Invocation. (line 147)
* -V, msgconv option: msgconv Invocation. (line 123)
* -V, msgen option: msgen Invocation. (line 119)
* -V, msggrep option: msggrep Invocation. (line 199)
* -v, msggrep option: msggrep Invocation. (line 121)
* -V, msginit option: msginit Invocation. (line 94)
-* -v, msgmerge option: msgmerge Invocation. (line 188)
-* -V, msgmerge option: msgmerge Invocation. (line 184)
+* -v, msgmerge option: msgmerge Invocation. (line 192)
+* -V, msgmerge option: msgmerge Invocation. (line 188)
* -v, msgunfmt option: msgunfmt Invocation. (line 161)
* -V, msgunfmt option: msgunfmt Invocation. (line 157)
* -V, msguniq option: msguniq Invocation. (line 141)
* -V, ngettext option: ngettext Invocation. (line 35)
* -V, xgettext option: xgettext Invocation. (line 388)
* -w, msgattrib option: msgattrib Invocation.
- (line 143)
+ (line 146)
* -w, msgcat option: msgcat Invocation. (line 124)
* -w, msgcomm option: msgcomm Invocation. (line 114)
* -w, msgconv option: msgconv Invocation. (line 93)
(line 147)
* -w, msggrep option: msggrep Invocation. (line 171)
* -w, msginit option: msginit Invocation. (line 73)
-* -w, msgmerge option: msgmerge Invocation. (line 154)
+* -w, msgmerge option: msgmerge Invocation. (line 158)
* -w, msgunfmt option: msgunfmt Invocation. (line 131)
* -w, msguniq option: msguniq Invocation. (line 111)
* -w, xgettext option: xgettext Invocation. (line 294)
* Menu:
* AM_GNU_GETTEXT: AM_GNU_GETTEXT. (line 6)
+* AM_GNU_GETTEXT_INTL_SUBDIR: AM_GNU_GETTEXT_INTL_SUBDIR.
+ (line 6)
+* AM_GNU_GETTEXT_NEED: AM_GNU_GETTEXT_NEED. (line 6)
* AM_GNU_GETTEXT_VERSION: AM_GNU_GETTEXT_VERSION.
(line 6)
* AM_ICONV: AM_ICONV. (line 6)
* accumulating translations: Creating Compendia. (line 14)
* aclocal.m4 file: aclocal. (line 6)
* adding keywords, xgettext: xgettext Invocation. (line 117)
-* ambiguities: Preparing Strings. (line 39)
+* ambiguities: Preparing Strings. (line 41)
* apply a filter to translations: msgfilter Invocation.
(line 8)
* apply command to all translations in a catalog: msgexec Invocation.
* auxiliary PO file: Auxiliary. (line 13)
* available translations: Matrix. (line 6)
* awk: gawk. (line 6)
-* awk-format flag: PO Files. (line 144)
+* awk-format flag: PO Files. (line 149)
* backup old file, and msgmerge program: msgmerge Invocation. (line 65)
* bash: bash. (line 6)
* bibliography: References. (line 6)
* big picture: Overview. (line 6)
* bind_textdomain_codeset: Charset conversion. (line 28)
* Boost format strings: xgettext Invocation. (line 244)
-* boost-format flag: PO Files. (line 180)
+* boost-format flag: PO Files. (line 185)
* bug report address: Introduction. (line 24)
* C and C-like languages: C. (line 6)
* C trigraphs: xgettext Invocation. (line 235)
* C# resources mode, and msgfmt program: msgfmt Invocation. (line 40)
* C# resources mode, and msgunfmt program: msgunfmt Invocation.
(line 23)
-* C#, string concatenation: Preparing Strings. (line 166)
-* c-format flag: PO Files. (line 85)
+* C#, string concatenation: Preparing Strings. (line 168)
+* c-format flag: PO Files. (line 90)
* c-format, and xgettext: c-format Flag. (line 48)
* catalog encoding and msgexec output: msgexec Invocation. (line 25)
* catclose, a catgets function: Interface to catgets.
* clisp: Common Lisp. (line 6)
* clisp C sources: clisp C. (line 6)
* codeset: Aspects. (line 67)
-* comments in PO files: PO Files. (line 270)
-* comments, automatic: PO Files. (line 35)
-* comments, extracted: PO Files. (line 35)
-* comments, translator: PO Files. (line 35)
+* comments in PO files: PO Files. (line 284)
+* comments, automatic: PO Files. (line 36)
+* comments, extracted: PO Files. (line 36)
+* comments, translator: PO Files. (line 36)
* Common Lisp: Common Lisp. (line 6)
* compare PO files: msgcmp Invocation. (line 8)
* comparison of interfaces: Comparison. (line 6)
* concatenate PO files: msgcat Invocation. (line 8)
* concatenating PO files into a compendium: Creating Compendia.
(line 14)
-* concatenation of strings: Preparing Strings. (line 115)
+* concatenation of strings: Preparing Strings. (line 117)
* config.h.in file: config.h.in. (line 6)
* context: Contexts. (line 6)
* context, argument specification in xgettext: xgettext Invocation.
(line 117)
* context, in MO files: MO Files. (line 63)
-* context, in PO files: PO Files. (line 184)
+* context, in PO files: PO Files. (line 189)
+* control characters: Preparing Strings. (line 190)
* convert binary message catalog into PO file: msgunfmt Invocation.
(line 8)
* convert translations to a different encoding: msgconv Invocation.
* create new PO file: msginit Invocation. (line 8)
* creating a new PO file: Creating. (line 6)
* creating compendia: Creating Compendia. (line 6)
-* csharp-format flag: PO Files. (line 140)
+* csharp-format flag: PO Files. (line 145)
* currency symbols: Aspects. (line 79)
* date format: Aspects. (line 84)
-* dcngettext: Plural forms. (line 111)
+* dcngettext: Plural forms. (line 128)
* dcpgettext: Contexts. (line 56)
* dcpgettext_expr: Contexts. (line 112)
* debugging messages marked as format strings: xgettext Invocation.
* dialect: Manipulating. (line 28)
* disabling NLS: lib/gettext.h. (line 6)
* distribution tarball: Release Management. (line 6)
-* dngettext: Plural forms. (line 103)
+* dngettext: Plural forms. (line 120)
* dollar substitution: envsubst Invocation. (line 8)
* domain ambiguities: Ambiguities. (line 6)
* dpgettext: Contexts. (line 56)
* Editing PO Files: Editing. (line 6)
* editing translations: Modifying Translations.
(line 6)
-* elisp-format flag: PO Files. (line 120)
+* elisp-format flag: PO Files. (line 125)
* Emacs Lisp: Emacs Lisp. (line 6)
* Emacs PO Mode: PO Mode. (line 6)
* encoding: Aspects. (line 67)
* function attribute, __format__: xgettext Invocation. (line 199)
* function attribute, __format_arg__: xgettext Invocation. (line 213)
* fuzzy entries: Fuzzy Entries. (line 6)
-* fuzzy flag: PO Files. (line 75)
+* fuzzy flag: PO Files. (line 80)
* gawk: gawk. (line 6)
-* gcc-internal-format flag: PO Files. (line 172)
+* gcc-internal-format flag: PO Files. (line 177)
* GCC-source: GCC-source. (line 6)
* generate binary message catalog from PO file: msgfmt Invocation.
(line 8)
* hash table, inside MO files: MO Files. (line 47)
* he, she, and they: Introduction. (line 15)
* header entry of a PO file: Header Entry. (line 6)
-* help option: Preparing Strings. (line 107)
+* help option: Preparing Strings. (line 109)
* history of GNU gettext: History. (line 6)
* i18n: Concepts. (line 6)
* importing PO files: Normalizing. (line 55)
* interface to catgets: Interface to catgets.
(line 6)
* internationalization: Concepts. (line 16)
-* inttypes.h: Preparing Strings. (line 131)
+* inttypes.h: Preparing Strings. (line 133)
* ISO 3166: Country Codes. (line 6)
* ISO 639: Language Codes. (line 6)
* Java: Java. (line 6)
* Java mode, and msgfmt program: msgfmt Invocation. (line 30)
* Java mode, and msgunfmt program: msgunfmt Invocation. (line 16)
-* Java, string concatenation: Preparing Strings. (line 166)
-* java-format flag: PO Files. (line 136)
+* Java, string concatenation: Preparing Strings. (line 168)
+* java-format flag: PO Files. (line 141)
* KDE PO file editor: KBabel. (line 6)
* keyboard accelerator checking: msgfmt Invocation. (line 187)
* l10n: Concepts. (line 6)
* libiconv library: AM_ICONV. (line 21)
* libintl for C#: C#. (line 161)
* libintl for Java: Java. (line 104)
-* libintl library: AM_GNU_GETTEXT. (line 48)
+* libintl library: AM_GNU_GETTEXT. (line 53)
* librep Lisp: librep. (line 6)
-* librep-format flag: PO Files. (line 124)
+* librep-format flag: PO Files. (line 129)
* License, GNU FDL: GNU FDL. (line 6)
* License, GNU GPL: GNU GPL. (line 6)
* License, GNU LGPL: GNU LGPL. (line 6)
* Linux <2>: Overview. (line 62)
* Linux: Aspects. (line 114)
* Lisp: Common Lisp. (line 6)
-* lisp-format flag: PO Files. (line 116)
+* lisp-format flag: PO Files. (line 121)
* list of translation teams, where to find: Header Entry. (line 58)
* locale facet, LC_ALL: Triggering. (line 23)
* locale facet, LC_COLLATE: Triggering. (line 52)
* marking strings that require translation: Mark Keywords. (line 6)
* marking strings, preparations: Preparing Strings. (line 6)
* marking translatable strings: Overview. (line 34)
+* markup: Preparing Strings. (line 190)
* menu entries: Contexts. (line 6)
* menu, keyboard accelerator support: msgfmt Invocation. (line 187)
* merge PO files: msgcat Invocation. (line 8)
* mkinstalldirs file: mkinstalldirs. (line 6)
* mnemonics of menu entries: msgfmt Invocation. (line 187)
* MO file's format: MO Files. (line 6)
-* modify message attrributes: msgattrib Invocation.
+* modify message attributes: msgattrib Invocation.
(line 62)
* msgattrib program, usage: msgattrib Invocation.
(line 6)
* msgcmp program, usage: msgcmp Invocation. (line 6)
* msgcomm program, usage: msgcomm Invocation. (line 6)
* msgconv program, usage: msgconv Invocation. (line 6)
-* msgctxt: PO Files. (line 184)
+* msgctxt: PO Files. (line 189)
* msgen program, usage: msgen Invocation. (line 6)
* msgexec program, usage: msgexec Invocation. (line 6)
* msgfilter filter and catalog encoding: msgfilter Invocation.
(line 6)
* msgfmt program, usage: msgfmt Invocation. (line 6)
* msggrep program, usage: msggrep Invocation. (line 6)
-* msgid: PO Files. (line 51)
-* msgid_plural: PO Files. (line 202)
+* msgid: PO Files. (line 56)
+* msgid_plural: PO Files. (line 209)
* msginit program, usage: msginit Invocation. (line 6)
* msgmerge program, usage: msgmerge Invocation. (line 6)
-* msgstr: PO Files. (line 51)
+* msgstr: PO Files. (line 56)
* msgunfmt program, usage: msgunfmt Invocation. (line 6)
* msguniq program, usage: msguniq Invocation. (line 6)
* multi-line strings: Normalizing. (line 65)
* N_, a convenience macro: Comparison. (line 41)
* Native Language Support: Concepts. (line 51)
* Natural Language Support: Concepts. (line 51)
-* newlines in PO files: PO Files. (line 265)
+* newlines in PO files: PO Files. (line 279)
* ngettext: Plural forms. (line 84)
* ngettext program, usage: ngettext Invocation. (line 6)
* NLS: Concepts. (line 51)
-* no-awk-format flag: PO Files. (line 145)
-* no-boost-format flag: PO Files. (line 181)
-* no-c-format flag: PO Files. (line 86)
+* no-awk-format flag: PO Files. (line 150)
+* no-boost-format flag: PO Files. (line 186)
+* no-c-format flag: PO Files. (line 91)
* no-c-format, and xgettext: c-format Flag. (line 48)
-* no-csharp-format flag: PO Files. (line 141)
-* no-elisp-format flag: PO Files. (line 121)
-* no-gcc-internal-format flag: PO Files. (line 173)
-* no-java-format flag: PO Files. (line 137)
-* no-librep-format flag: PO Files. (line 125)
-* no-lisp-format flag: PO Files. (line 117)
-* no-objc-format flag: PO Files. (line 105)
-* no-object-pascal-format flag: PO Files. (line 149)
-* no-perl-brace-format flag: PO Files. (line 165)
-* no-perl-format flag: PO Files. (line 161)
-* no-php-format flag: PO Files. (line 169)
-* no-python-format flag: PO Files. (line 113)
-* no-qt-format flag: PO Files. (line 177)
-* no-scheme-format flag: PO Files. (line 129)
-* no-sh-format flag: PO Files. (line 109)
-* no-smalltalk-format flag: PO Files. (line 133)
-* no-tcl-format flag: PO Files. (line 157)
-* no-ycp-format flag: PO Files. (line 153)
-* nplurals, in a PO file header: Plural forms. (line 128)
+* no-csharp-format flag: PO Files. (line 146)
+* no-elisp-format flag: PO Files. (line 126)
+* no-gcc-internal-format flag: PO Files. (line 178)
+* no-java-format flag: PO Files. (line 142)
+* no-librep-format flag: PO Files. (line 130)
+* no-lisp-format flag: PO Files. (line 122)
+* no-objc-format flag: PO Files. (line 110)
+* no-object-pascal-format flag: PO Files. (line 154)
+* no-perl-brace-format flag: PO Files. (line 170)
+* no-perl-format flag: PO Files. (line 166)
+* no-php-format flag: PO Files. (line 174)
+* no-python-format flag: PO Files. (line 118)
+* no-qt-format flag: PO Files. (line 182)
+* no-scheme-format flag: PO Files. (line 134)
+* no-sh-format flag: PO Files. (line 114)
+* no-smalltalk-format flag: PO Files. (line 138)
+* no-tcl-format flag: PO Files. (line 162)
+* no-ycp-format flag: PO Files. (line 158)
+* nplurals, in a PO file header: Plural forms. (line 145)
* number format: Aspects. (line 94)
-* objc-format flag: PO Files. (line 104)
+* objc-format flag: PO Files. (line 109)
* Object Pascal: Pascal. (line 6)
-* object-pascal-format flag: PO Files. (line 148)
+* object-pascal-format flag: PO Files. (line 153)
* obsolete entries: Obsolete Entries. (line 6)
* optimization of gettext functions: Optimized gettext. (line 6)
* orthography: Manipulating. (line 28)
* package distributor's view of gettext: Installers. (line 6)
* package installer's view of gettext: Installers. (line 6)
* package maintainer's view of gettext: Maintainers. (line 6)
-* paragraphs: Preparing Strings. (line 99)
+* paragraphs: Preparing Strings. (line 101)
* Pascal: Pascal. (line 6)
* Perl: Perl. (line 6)
* Perl default keywords: Default Keywords. (line 6)
(line 6)
* Perl special keywords for hash-lookups: Special Keywords. (line 6)
* Perl valid string interpolation: Interpolation II. (line 6)
-* perl-brace-format flag: PO Files. (line 164)
-* perl-format flag: PO Files. (line 160)
+* perl-brace-format flag: PO Files. (line 169)
+* perl-format flag: PO Files. (line 165)
* pgettext: Contexts. (line 33)
* pgettext_expr: Contexts. (line 112)
* PHP: PHP. (line 6)
-* php-format flag: PO Files. (line 168)
+* php-format flag: PO Files. (line 173)
* Pike: Pike. (line 6)
-* plural form formulas: Plural forms. (line 148)
+* plural form formulas: Plural forms. (line 165)
* plural forms: Plural forms. (line 6)
* plural forms, in MO files: MO Files. (line 66)
-* plural forms, in PO files: PO Files. (line 202)
-* plural, in a PO file header: Plural forms. (line 128)
+* plural forms, in PO files: PO Files. (line 209)
+* plural, in a PO file header: Plural forms. (line 145)
* PO files' format: PO Files. (line 6)
* PO mode (Emacs) commands: Main PO Commands. (line 6)
* PO template file: Template. (line 6)
* programming languages: Language Implementors.
(line 6)
* Python: Python. (line 6)
-* python-format flag: PO Files. (line 112)
+* python-format flag: PO Files. (line 117)
* Qt format strings: xgettext Invocation. (line 240)
* Qt mode, and msgfmt program: msgfmt Invocation. (line 46)
-* qt-format flag: PO Files. (line 176)
+* qt-format flag: PO Files. (line 181)
* quotation marks <1>: po/Rules-*. (line 11)
* quotation marks: Header Entry. (line 145)
* quote characters, use in PO files: Header Entry. (line 145)
* release: Release Management. (line 6)
* RST: RST. (line 6)
* Scheme: Scheme. (line 6)
-* scheme-format flag: PO Files. (line 128)
+* scheme-format flag: PO Files. (line 133)
* scripting languages: Language Implementors.
(line 6)
* search messages in a catalog: msggrep Invocation. (line 8)
* selecting message language: End Users. (line 6)
-* sentences: Preparing Strings. (line 42)
+* sentences: Preparing Strings. (line 44)
* setting up gettext at build time: Installers. (line 6)
* setting up gettext at run time: End Users. (line 6)
* several domains: Ambiguities. (line 6)
* sex: Introduction. (line 15)
-* sh-format flag: PO Files. (line 108)
+* sh-format flag: PO Files. (line 113)
* she, he, and they: Introduction. (line 15)
* shell format string: envsubst Invocation. (line 8)
* shell scripts: sh. (line 6)
* Smalltalk: Smalltalk. (line 6)
-* smalltalk-format flag: PO Files. (line 132)
+* smalltalk-format flag: PO Files. (line 137)
* sorting msgcat output: msgcat Invocation. (line 137)
-* sorting msgmerge output: msgmerge Invocation. (line 167)
+* sorting msgmerge output: msgmerge Invocation. (line 171)
* sorting msgunfmt output: msgunfmt Invocation. (line 144)
* sorting output of xgettext: xgettext Invocation. (line 307)
-* specifying plural form in a PO file: Plural forms. (line 128)
+* specifying plural form in a PO file: Plural forms. (line 145)
* standard output, and msgcat: msgcat Invocation. (line 47)
* standard output, and msgmerge program: msgmerge Invocation. (line 56)
-* string concatenation: Preparing Strings. (line 115)
+* string concatenation: Preparing Strings. (line 117)
* string normalization in entries: Normalizing. (line 6)
-* style: Preparing Strings. (line 22)
+* style: Preparing Strings. (line 24)
* supported languages, xgettext: xgettext Invocation. (line 56)
* Tcl: Tcl. (line 6)
* Tcl mode, and msgfmt program: msgfmt Invocation. (line 43)
* Tcl mode, and msgunfmt program: msgunfmt Invocation. (line 26)
-* tcl-format flag: PO Files. (line 156)
+* tcl-format flag: PO Files. (line 161)
* template PO file: Overview. (line 67)
* testing .po files for equivalence: xgettext Invocation. (line 317)
* Tk's scripting language: Tcl. (line 6)
* xmodmap program, and typing quotation marks: Header Entry. (line 157)
* YaST2 scripting language: YCP. (line 6)
* YCP: YCP. (line 6)
-* ycp-format flag: PO Files. (line 152)
+* ycp-format flag: PO Files. (line 157)
\1f
Tag Table:
Node: Top\7f2955
-Node: Introduction\7f15951
-Node: Why\7f17571
-Ref: Why-Footnote-1\7f20781
-Node: Concepts\7f20937
-Node: Aspects\7f24355
-Node: Files\7f30213
-Node: Overview\7f32119
-Node: Users\7f42037
-Node: Matrix\7f43469
-Node: End Users\7f44677
-Node: PO Files\7f45326
-Ref: PO Files-Footnote-1\7f56086
-Node: Sources\7f56213
-Node: Importing\7f57366
-Node: Triggering\7f58046
-Node: Preparing Strings\7f61083
-Node: Mark Keywords\7f68786
-Node: Marking\7f72346
-Node: c-format Flag\7f80073
-Node: Special cases\7f83989
-Node: Names\7f86715
-Node: Libraries\7f90316
-Node: Template\7f93347
-Node: xgettext Invocation\7f94068
-Node: Creating\7f108383
-Node: msginit Invocation\7f109265
-Node: Header Entry\7f111891
-Node: Updating\7f118897
-Node: msgmerge Invocation\7f119112
-Node: Editing\7f124126
-Node: KBabel\7f124424
-Node: Gtranslator\7f124562
-Node: PO Mode\7f124704
-Node: Installation\7f126396
-Node: Main PO Commands\7f128357
-Node: Entry Positioning\7f133442
-Node: Normalizing\7f138908
-Node: Translated Entries\7f143399
-Node: Fuzzy Entries\7f144754
-Node: Untranslated Entries\7f147931
-Node: Obsolete Entries\7f149860
-Node: Modifying Translations\7f153082
-Node: Modifying Comments\7f161048
-Node: Subedit\7f165472
-Node: C Sources Context\7f169365
-Node: Auxiliary\7f174486
-Node: Compendium\7f177722
-Node: Creating Compendia\7f178342
-Node: Using Compendia\7f180826
-Node: Manipulating\7f181759
-Node: msgcat Invocation\7f185521
-Node: msgconv Invocation\7f189771
-Node: msggrep Invocation\7f192950
-Node: msgfilter Invocation\7f198131
-Node: msguniq Invocation\7f203755
-Node: msgcomm Invocation\7f207644
-Node: msgcmp Invocation\7f211689
-Node: msgattrib Invocation\7f213301
-Node: msgen Invocation\7f217896
-Node: msgexec Invocation\7f221231
-Node: libgettextpo\7f223812
-Node: Binaries\7f228934
-Node: msgfmt Invocation\7f229278
-Node: msgunfmt Invocation\7f236283
-Node: MO Files\7f240445
-Node: Programmers\7f248683
-Node: catgets\7f249862
-Node: Interface to catgets\7f251272
-Node: Problems with catgets\7f253278
-Node: gettext\7f254190
-Node: Interface to gettext\7f255690
-Node: Ambiguities\7f258047
-Node: Locating Catalogs\7f260751
-Ref: Locating Catalogs-Footnote-1\7f261909
-Ref: Locating Catalogs-Footnote-2\7f262134
-Node: Charset conversion\7f262283
-Node: Contexts\7f264734
-Node: Plural forms\7f270234
-Ref: Plural forms-Footnote-1\7f281582
-Node: Optimized gettext\7f281674
-Node: Comparison\7f283010
-Node: Using libintl.a\7f287277
-Node: gettext grok\7f287717
-Node: Temp Programmers\7f290346
-Node: Temp Implementations\7f290871
-Node: Temp catgets\7f292248
-Node: Temp WSI\7f293946
-Node: Temp Notes\7f295945
-Node: Translators\7f296445
-Node: Trans Intro 0\7f296908
-Node: Trans Intro 1\7f299642
-Node: Discussions\7f301591
-Node: Organization\7f305246
-Node: Central Coordination\7f307312
-Node: National Teams\7f308451
-Node: Sub-Cultures\7f310975
-Node: Organizational Ideas\7f311909
-Node: Mailing Lists\7f312927
-Node: Information Flow\7f314741
-Node: Prioritizing messages\7f316989
-Node: Maintainers\7f321285
-Node: Flat and Non-Flat\7f323238
-Node: Prerequisites\7f324728
-Node: gettextize Invocation\7f328875
-Node: Adjusting Files\7f335817
-Node: po/POTFILES.in\7f337601
-Node: po/LINGUAS\7f338847
-Node: po/Makevars\7f340536
-Node: po/Rules-*\7f341284
-Node: configure.in\7f342752
-Node: config.guess\7f345763
-Node: mkinstalldirs\7f347116
-Node: aclocal\7f347518
-Node: acconfig\7f349325
-Node: config.h.in\7f349822
-Node: Makefile\7f351287
-Node: src/Makefile\7f353881
-Node: lib/gettext.h\7f358268
-Node: autoconf macros\7f360514
-Node: AM_GNU_GETTEXT\7f361148
-Node: AM_GNU_GETTEXT_VERSION\7f364742
-Node: AM_PO_SUBDIRS\7f365188
-Node: AM_ICONV\7f365966
-Node: CVS Issues\7f368173
-Node: Distributed CVS\7f368761
-Node: Files under CVS\7f370686
-Node: autopoint Invocation\7f373957
-Node: Release Management\7f375797
-Node: Installers\7f376307
-Node: Programming Languages\7f377531
-Node: Language Implementors\7f378354
-Node: Programmers for other Languages\7f383168
-Node: Translators for other Languages\7f383749
-Node: c-format\7f385275
-Node: objc-format\7f386988
-Node: sh-format\7f387340
-Node: python-format\7f388142
-Node: lisp-format\7f388580
-Node: elisp-format\7f388906
-Node: librep-format\7f389396
-Node: scheme-format\7f389796
-Node: smalltalk-format\7f390072
-Node: java-format\7f390572
-Node: csharp-format\7f391020
-Node: awk-format\7f391395
-Node: object-pascal-format\7f391720
-Node: ycp-format\7f391949
-Node: tcl-format\7f392348
-Node: perl-format\7f392643
-Node: php-format\7f393388
-Node: gcc-internal-format\7f393753
-Node: qt-format\7f394795
-Node: boost-format\7f395229
-Node: Maintainers for other Languages\7f395773
-Node: List of Programming Languages\7f397008
-Node: C\7f398291
-Node: sh\7f399591
-Node: Preparing Shell Scripts\7f400865
-Node: gettext.sh\7f404254
-Node: gettext Invocation\7f404801
-Node: ngettext Invocation\7f406556
-Node: envsubst Invocation\7f408144
-Node: eval_gettext Invocation\7f409565
-Node: eval_ngettext Invocation\7f410026
-Node: bash\7f410540
-Node: Python\7f412516
-Node: Common Lisp\7f413666
-Node: clisp C\7f414466
-Node: Emacs Lisp\7f415181
-Node: librep\7f415907
-Node: Scheme\7f416642
-Node: Smalltalk\7f417426
-Node: Java\7f418460
-Node: C#\7f424168
-Node: gawk\7f432585
-Node: Pascal\7f433497
-Node: wxWidgets\7f434805
-Node: YCP\7f435712
-Node: Tcl\7f436451
-Node: Perl\7f437861
-Node: General Problems\7f440869
-Node: Default Keywords\7f444527
-Node: Special Keywords\7f445479
-Node: Quote-like Expressions\7f446993
-Node: Interpolation I\7f449268
-Node: Interpolation II\7f453058
-Node: Parentheses\7f455423
-Node: Long Lines\7f456940
-Node: Perl Pitfalls\7f458787
-Node: PHP\7f463029
-Node: Pike\7f463960
-Node: GCC-source\7f464621
-Node: List of Data Formats\7f465368
-Node: POT\7f465834
-Node: RST\7f466092
-Node: Glade\7f466318
-Node: Conclusion\7f466678
-Node: History\7f467181
-Node: References\7f471447
-Node: Language Codes\7f473091
-Node: Country Codes\7f477437
-Node: Licenses\7f483189
-Node: GNU GPL\7f485031
-Node: GNU LGPL\7f504208
-Node: GNU FDL\7f532341
-Node: Program Index\7f554727
-Node: Option Index\7f556613
-Node: Variable Index\7f602625
-Node: PO Mode Index\7f604163
-Node: Autoconf Macro Index\7f617999
-Node: Index\7f618518
+Node: Introduction\7f16245
+Node: Why\7f17865
+Ref: Why-Footnote-1\7f21075
+Node: Concepts\7f21231
+Node: Aspects\7f24649
+Node: Files\7f30507
+Node: Overview\7f32413
+Node: Users\7f42331
+Node: Matrix\7f43763
+Node: End Users\7f44971
+Node: PO Files\7f45620
+Ref: PO Files-Footnote-1\7f56968
+Node: Sources\7f57095
+Node: Importing\7f58248
+Node: Triggering\7f58928
+Node: Preparing Strings\7f61965
+Node: Mark Keywords\7f71005
+Node: Marking\7f75315
+Node: c-format Flag\7f83042
+Node: Special cases\7f86958
+Node: Names\7f89684
+Node: Libraries\7f93282
+Node: Template\7f96314
+Node: xgettext Invocation\7f97035
+Node: Creating\7f111351
+Node: msginit Invocation\7f112233
+Node: Header Entry\7f114859
+Node: Updating\7f121865
+Node: msgmerge Invocation\7f122080
+Node: Editing\7f127232
+Node: KBabel\7f127530
+Node: Gtranslator\7f127668
+Node: PO Mode\7f127810
+Node: Installation\7f129502
+Node: Main PO Commands\7f131463
+Node: Entry Positioning\7f136548
+Node: Normalizing\7f142014
+Node: Translated Entries\7f146505
+Node: Fuzzy Entries\7f147860
+Node: Untranslated Entries\7f151037
+Node: Obsolete Entries\7f152966
+Node: Modifying Translations\7f156188
+Node: Modifying Comments\7f164154
+Node: Subedit\7f168578
+Node: C Sources Context\7f172471
+Node: Auxiliary\7f177592
+Node: Compendium\7f180824
+Node: Creating Compendia\7f181444
+Node: Using Compendia\7f183929
+Node: Manipulating\7f184862
+Node: msgcat Invocation\7f188624
+Node: msgconv Invocation\7f192874
+Node: msggrep Invocation\7f196053
+Node: msgfilter Invocation\7f201234
+Node: msguniq Invocation\7f206858
+Node: msgcomm Invocation\7f210747
+Node: msgcmp Invocation\7f214792
+Node: msgattrib Invocation\7f216804
+Node: msgen Invocation\7f221486
+Node: msgexec Invocation\7f224821
+Node: libgettextpo\7f227402
+Node: Binaries\7f232524
+Node: msgfmt Invocation\7f232868
+Node: msgunfmt Invocation\7f239873
+Node: MO Files\7f244035
+Node: Programmers\7f252276
+Node: catgets\7f253455
+Node: Interface to catgets\7f254866
+Node: Problems with catgets\7f256872
+Node: gettext\7f257784
+Node: Interface to gettext\7f259284
+Node: Ambiguities\7f261641
+Node: Locating Catalogs\7f264345
+Ref: Locating Catalogs-Footnote-1\7f265503
+Ref: Locating Catalogs-Footnote-2\7f265728
+Node: Charset conversion\7f265877
+Node: Contexts\7f268328
+Node: Plural forms\7f273828
+Ref: Plural forms-Footnote-1\7f288024
+Node: Optimized gettext\7f288146
+Node: Comparison\7f289482
+Node: Using libintl.a\7f293749
+Node: gettext grok\7f294189
+Node: Temp Programmers\7f296818
+Node: Temp Implementations\7f297343
+Node: Temp catgets\7f298720
+Node: Temp WSI\7f300418
+Node: Temp Notes\7f302417
+Node: Translators\7f302917
+Node: Trans Intro 0\7f303380
+Node: Trans Intro 1\7f306114
+Node: Discussions\7f308063
+Node: Organization\7f311718
+Node: Central Coordination\7f313784
+Node: National Teams\7f314923
+Node: Sub-Cultures\7f317447
+Node: Organizational Ideas\7f318381
+Node: Mailing Lists\7f319399
+Node: Information Flow\7f321213
+Node: Prioritizing messages\7f323461
+Node: Maintainers\7f327757
+Node: Flat and Non-Flat\7f329710
+Node: Prerequisites\7f331200
+Node: gettextize Invocation\7f335347
+Node: Adjusting Files\7f342311
+Node: po/POTFILES.in\7f344095
+Node: po/LINGUAS\7f345341
+Node: po/Makevars\7f347030
+Node: po/Rules-*\7f347778
+Node: configure.in\7f349246
+Node: config.guess\7f352257
+Node: mkinstalldirs\7f353610
+Node: aclocal\7f354012
+Node: acconfig\7f356009
+Node: config.h.in\7f356506
+Node: Makefile\7f357971
+Node: src/Makefile\7f360565
+Node: lib/gettext.h\7f364952
+Node: autoconf macros\7f367197
+Node: AM_GNU_GETTEXT\7f367974
+Node: AM_GNU_GETTEXT_VERSION\7f371936
+Node: AM_GNU_GETTEXT_NEED\7f372388
+Node: AM_GNU_GETTEXT_INTL_SUBDIR\7f373278
+Node: AM_PO_SUBDIRS\7f373930
+Node: AM_ICONV\7f374712
+Node: CVS Issues\7f376919
+Node: Distributed CVS\7f377507
+Node: Files under CVS\7f379432
+Node: autopoint Invocation\7f382703
+Node: Release Management\7f384543
+Node: Installers\7f385053
+Node: Programming Languages\7f386277
+Node: Language Implementors\7f387100
+Node: Programmers for other Languages\7f391914
+Node: Translators for other Languages\7f392495
+Node: c-format\7f394021
+Node: objc-format\7f395734
+Node: sh-format\7f396086
+Node: python-format\7f396888
+Node: lisp-format\7f397326
+Node: elisp-format\7f397652
+Node: librep-format\7f398142
+Node: scheme-format\7f398542
+Node: smalltalk-format\7f398818
+Node: java-format\7f399318
+Node: csharp-format\7f399766
+Node: awk-format\7f400141
+Node: object-pascal-format\7f400466
+Node: ycp-format\7f400695
+Node: tcl-format\7f401094
+Node: perl-format\7f401389
+Node: php-format\7f402134
+Node: gcc-internal-format\7f402499
+Node: qt-format\7f403541
+Node: boost-format\7f403975
+Node: Maintainers for other Languages\7f404519
+Node: List of Programming Languages\7f405754
+Node: C\7f407037
+Node: sh\7f408337
+Node: Preparing Shell Scripts\7f409611
+Node: gettext.sh\7f413000
+Node: gettext Invocation\7f413547
+Node: ngettext Invocation\7f415302
+Node: envsubst Invocation\7f416890
+Node: eval_gettext Invocation\7f418311
+Node: eval_ngettext Invocation\7f418772
+Node: bash\7f419286
+Node: Python\7f421262
+Node: Common Lisp\7f422412
+Node: clisp C\7f423212
+Node: Emacs Lisp\7f423927
+Node: librep\7f424653
+Node: Scheme\7f425388
+Node: Smalltalk\7f426172
+Node: Java\7f427206
+Node: C#\7f432914
+Node: gawk\7f441331
+Node: Pascal\7f442243
+Node: wxWidgets\7f443551
+Node: YCP\7f444458
+Node: Tcl\7f445197
+Node: Perl\7f446607
+Node: General Problems\7f449615
+Node: Default Keywords\7f453273
+Node: Special Keywords\7f454225
+Node: Quote-like Expressions\7f455738
+Node: Interpolation I\7f458013
+Node: Interpolation II\7f461803
+Node: Parentheses\7f464168
+Node: Long Lines\7f465686
+Node: Perl Pitfalls\7f467531
+Node: PHP\7f471773
+Node: Pike\7f472704
+Node: GCC-source\7f473365
+Node: List of Data Formats\7f474112
+Node: POT\7f474578
+Node: RST\7f474836
+Node: Glade\7f475062
+Node: Conclusion\7f475422
+Node: History\7f475925
+Node: References\7f480191
+Node: Language Codes\7f481835
+Node: Usual Language Codes\7f482347
+Node: Rare Language Codes\7f486718
+Node: Country Codes\7f488375
+Node: Licenses\7f494261
+Node: GNU GPL\7f496103
+Node: GNU LGPL\7f515280
+Node: GNU FDL\7f543413
+Node: Program Index\7f565799
+Node: Option Index\7f567685
+Node: Variable Index\7f613915
+Node: PO Mode Index\7f615453
+Node: Autoconf Macro Index\7f629289
+Node: Index\7f630023
\1f
End Tag Table
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 1 Introduction</TITLE>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 10 Producing Binary MO Files</TITLE>
<H2><A NAME="SEC143" HREF="gettext_toc.html#TOC143">10.1 Invoking the <CODE>msgfmt</CODE> Program</A></H2>
<P>
-<A NAME="IDX887"></A>
-<A NAME="IDX888"></A>
+<A NAME="IDX893"></A>
+<A NAME="IDX894"></A>
<PRE>
msgfmt [<VAR>option</VAR>] <VAR>filename</VAR>.po ...
</PRE>
<P>
-<A NAME="IDX889"></A>
+<A NAME="IDX895"></A>
The <CODE>msgfmt</CODE> programs generates a binary message catalog from a textual
translation description.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX890"></A>
-<A NAME="IDX891"></A>
+<A NAME="IDX896"></A>
+<A NAME="IDX897"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--java’</SAMP>
<DD>
-<A NAME="IDX892"></A>
-<A NAME="IDX893"></A>
-<A NAME="IDX894"></A>
+<A NAME="IDX898"></A>
+<A NAME="IDX899"></A>
+<A NAME="IDX900"></A>
Java mode: generate a Java <CODE>ResourceBundle</CODE> class.
<DT><SAMP>‘--java2’</SAMP>
<DD>
-<A NAME="IDX895"></A>
+<A NAME="IDX901"></A>
Like --java, and assume Java2 (JDK 1.2 or higher).
<DT><SAMP>‘--csharp’</SAMP>
<DD>
-<A NAME="IDX896"></A>
-<A NAME="IDX897"></A>
+<A NAME="IDX902"></A>
+<A NAME="IDX903"></A>
C# mode: generate a .NET .dll file containing a subclass of
<CODE>GettextResourceSet</CODE>.
<DT><SAMP>‘--csharp-resources’</SAMP>
<DD>
-<A NAME="IDX898"></A>
-<A NAME="IDX899"></A>
+<A NAME="IDX904"></A>
+<A NAME="IDX905"></A>
C# resources mode: generate a .NET <TT>‘.resources’</TT> file.
<DT><SAMP>‘--tcl’</SAMP>
<DD>
-<A NAME="IDX900"></A>
-<A NAME="IDX901"></A>
+<A NAME="IDX906"></A>
+<A NAME="IDX907"></A>
Tcl mode: generate a tcl/msgcat <TT>‘.msg’</TT> file.
<DT><SAMP>‘--qt’</SAMP>
<DD>
-<A NAME="IDX902"></A>
-<A NAME="IDX903"></A>
+<A NAME="IDX908"></A>
+<A NAME="IDX909"></A>
Qt mode: generate a Qt <TT>‘.qm’</TT> file.
</DL>
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX904"></A>
-<A NAME="IDX905"></A>
+<A NAME="IDX910"></A>
+<A NAME="IDX911"></A>
Write output to specified file.
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX906"></A>
+<A NAME="IDX912"></A>
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
<DD>
<DT><SAMP>‘--resource=<VAR>resource</VAR>’</SAMP>
<DD>
-<A NAME="IDX907"></A>
-<A NAME="IDX908"></A>
+<A NAME="IDX913"></A>
+<A NAME="IDX914"></A>
Specify the resource name.
<DT><SAMP>‘-l <VAR>locale</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--locale=<VAR>locale</VAR>’</SAMP>
<DD>
-<A NAME="IDX909"></A>
-<A NAME="IDX910"></A>
+<A NAME="IDX915"></A>
+<A NAME="IDX916"></A>
Specify the locale name, either a language specification of the form <VAR>ll</VAR>
or a combined language and country specification of the form <VAR>ll_CC</VAR>.
<DT><SAMP>‘-d <VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX911"></A>
+<A NAME="IDX917"></A>
Specify the base directory of classes directory hierarchy.
</DL>
<DD>
<DT><SAMP>‘--resource=<VAR>resource</VAR>’</SAMP>
<DD>
-<A NAME="IDX912"></A>
-<A NAME="IDX913"></A>
+<A NAME="IDX918"></A>
+<A NAME="IDX919"></A>
Specify the resource name.
<DT><SAMP>‘-l <VAR>locale</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--locale=<VAR>locale</VAR>’</SAMP>
<DD>
-<A NAME="IDX914"></A>
-<A NAME="IDX915"></A>
+<A NAME="IDX920"></A>
+<A NAME="IDX921"></A>
Specify the locale name, either a language specification of the form <VAR>ll</VAR>
or a combined language and country specification of the form <VAR>ll_CC</VAR>.
<DT><SAMP>‘-d <VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX916"></A>
+<A NAME="IDX922"></A>
Specify the base directory for locale dependent <TT>‘.dll’</TT> files.
</DL>
<DD>
<DT><SAMP>‘--locale=<VAR>locale</VAR>’</SAMP>
<DD>
-<A NAME="IDX917"></A>
-<A NAME="IDX918"></A>
+<A NAME="IDX923"></A>
+<A NAME="IDX924"></A>
Specify the locale name, either a language specification of the form <VAR>ll</VAR>
or a combined language and country specification of the form <VAR>ll_CC</VAR>.
<DT><SAMP>‘-d <VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX919"></A>
+<A NAME="IDX925"></A>
Specify the base directory of <TT>‘.msg’</TT> message catalogs.
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX920"></A>
-<A NAME="IDX921"></A>
+<A NAME="IDX926"></A>
+<A NAME="IDX927"></A>
Assume the input files are Java ResourceBundles in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX922"></A>
+<A NAME="IDX928"></A>
Assume the input files are NeXTstep/GNUstep localized resource files in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DD>
<DT><SAMP>‘--check’</SAMP>
<DD>
-<A NAME="IDX923"></A>
-<A NAME="IDX924"></A>
+<A NAME="IDX929"></A>
+<A NAME="IDX930"></A>
Perform all the checks implied by <CODE>--check-format</CODE>, <CODE>--check-header</CODE>,
<CODE>--check-domain</CODE>.
<DT><SAMP>‘--check-format’</SAMP>
<DD>
-<A NAME="IDX925"></A>
-<A NAME="IDX926"></A>
+<A NAME="IDX931"></A>
+<A NAME="IDX932"></A>
Check language dependent format strings.
If the string represents a format string used in a
errors where there are none.
To solve this problem the programmer can dictate the decision to the
-<CODE>xgettext</CODE> program (see section <A HREF="gettext_15.html#SEC231">15.3.1 C Format Strings</A>). The translator should not
+<CODE>xgettext</CODE> program (see section <A HREF="gettext_15.html#SEC233">15.3.1 C Format Strings</A>). The translator should not
consider removing the flag from the <KBD>#,</KBD> line. This "fix" would be
reversed again as soon as <CODE>msgmerge</CODE> is called the next time.
<DT><SAMP>‘--check-header’</SAMP>
<DD>
-<A NAME="IDX927"></A>
+<A NAME="IDX933"></A>
Verify presence and contents of the header entry. See section <A HREF="gettext_6.html#SEC38">6.2 Filling in the Header Entry</A>,
for a description of the various fields in the header entry.
<DT><SAMP>‘--check-domain’</SAMP>
<DD>
-<A NAME="IDX928"></A>
+<A NAME="IDX934"></A>
Check for conflicts between domain directives and the <CODE>--output-file</CODE>
option
<DD>
<DT><SAMP>‘--check-compatibility’</SAMP>
<DD>
-<A NAME="IDX929"></A>
-<A NAME="IDX930"></A>
-<A NAME="IDX931"></A>
+<A NAME="IDX935"></A>
+<A NAME="IDX936"></A>
+<A NAME="IDX937"></A>
Check that GNU msgfmt behaves like X/Open msgfmt. This will give an error
when attempting to use the GNU extensions.
<DT><SAMP>‘--check-accelerators[=<VAR>char</VAR>]’</SAMP>
<DD>
-<A NAME="IDX932"></A>
-<A NAME="IDX933"></A>
-<A NAME="IDX934"></A>
-<A NAME="IDX935"></A>
+<A NAME="IDX938"></A>
+<A NAME="IDX939"></A>
+<A NAME="IDX940"></A>
+<A NAME="IDX941"></A>
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>‘&’</SAMP> character.
<DD>
<DT><SAMP>‘--use-fuzzy’</SAMP>
<DD>
-<A NAME="IDX936"></A>
-<A NAME="IDX937"></A>
-<A NAME="IDX938"></A>
+<A NAME="IDX942"></A>
+<A NAME="IDX943"></A>
+<A NAME="IDX944"></A>
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.
<DD>
<DT><SAMP>‘--alignment=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX939"></A>
-<A NAME="IDX940"></A>
+<A NAME="IDX945"></A>
+<A NAME="IDX946"></A>
Align strings to <VAR>number</VAR> bytes (default: 1).
<DT><SAMP>‘--no-hash’</SAMP>
<DD>
-<A NAME="IDX941"></A>
+<A NAME="IDX947"></A>
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).
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX942"></A>
-<A NAME="IDX943"></A>
+<A NAME="IDX948"></A>
+<A NAME="IDX949"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX944"></A>
-<A NAME="IDX945"></A>
+<A NAME="IDX950"></A>
+<A NAME="IDX951"></A>
Output version information and exit.
<DT><SAMP>‘--statistics’</SAMP>
<DD>
-<A NAME="IDX946"></A>
+<A NAME="IDX952"></A>
Print statistics about translations.
<DT><SAMP>‘-v’</SAMP>
<DD>
<DT><SAMP>‘--verbose’</SAMP>
<DD>
-<A NAME="IDX947"></A>
-<A NAME="IDX948"></A>
+<A NAME="IDX953"></A>
+<A NAME="IDX954"></A>
Increase verbosity level.
</DL>
<H2><A NAME="SEC154" HREF="gettext_toc.html#TOC154">10.2 Invoking the <CODE>msgunfmt</CODE> Program</A></H2>
<P>
-<A NAME="IDX949"></A>
-<A NAME="IDX950"></A>
+<A NAME="IDX955"></A>
+<A NAME="IDX956"></A>
<PRE>
msgunfmt [<VAR>option</VAR>] [<VAR>file</VAR>]...
</PRE>
<P>
-<A NAME="IDX951"></A>
+<A NAME="IDX957"></A>
The <CODE>msgunfmt</CODE> program converts a binary message catalog to a
Uniforum style .po file.
<DD>
<DT><SAMP>‘--java’</SAMP>
<DD>
-<A NAME="IDX952"></A>
-<A NAME="IDX953"></A>
-<A NAME="IDX954"></A>
+<A NAME="IDX958"></A>
+<A NAME="IDX959"></A>
+<A NAME="IDX960"></A>
Java mode: input is a Java <CODE>ResourceBundle</CODE> class.
<DT><SAMP>‘--csharp’</SAMP>
<DD>
-<A NAME="IDX955"></A>
-<A NAME="IDX956"></A>
+<A NAME="IDX961"></A>
+<A NAME="IDX962"></A>
C# mode: input is a .NET .dll file containing a subclass of
<CODE>GettextResourceSet</CODE>.
<DT><SAMP>‘--csharp-resources’</SAMP>
<DD>
-<A NAME="IDX957"></A>
-<A NAME="IDX958"></A>
+<A NAME="IDX963"></A>
+<A NAME="IDX964"></A>
C# resources mode: input is a .NET <TT>‘.resources’</TT> file.
<DT><SAMP>‘--tcl’</SAMP>
<DD>
-<A NAME="IDX959"></A>
-<A NAME="IDX960"></A>
+<A NAME="IDX965"></A>
+<A NAME="IDX966"></A>
Tcl mode: input is a tcl/msgcat <TT>‘.msg’</TT> file.
</DL>
<DD>
<DT><SAMP>‘--resource=<VAR>resource</VAR>’</SAMP>
<DD>
-<A NAME="IDX961"></A>
-<A NAME="IDX962"></A>
+<A NAME="IDX967"></A>
+<A NAME="IDX968"></A>
Specify the resource name.
<DT><SAMP>‘-l <VAR>locale</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--locale=<VAR>locale</VAR>’</SAMP>
<DD>
-<A NAME="IDX963"></A>
-<A NAME="IDX964"></A>
+<A NAME="IDX969"></A>
+<A NAME="IDX970"></A>
Specify the locale name, either a language specification of the form <VAR>ll</VAR>
or a combined language and country specification of the form <VAR>ll_CC</VAR>.
<DD>
<DT><SAMP>‘--resource=<VAR>resource</VAR>’</SAMP>
<DD>
-<A NAME="IDX965"></A>
-<A NAME="IDX966"></A>
+<A NAME="IDX971"></A>
+<A NAME="IDX972"></A>
Specify the resource name.
<DT><SAMP>‘-l <VAR>locale</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--locale=<VAR>locale</VAR>’</SAMP>
<DD>
-<A NAME="IDX967"></A>
-<A NAME="IDX968"></A>
+<A NAME="IDX973"></A>
+<A NAME="IDX974"></A>
Specify the locale name, either a language specification of the form <VAR>ll</VAR>
or a combined language and country specification of the form <VAR>ll_CC</VAR>.
<DT><SAMP>‘-d <VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX969"></A>
+<A NAME="IDX975"></A>
Specify the base directory for locale dependent <TT>‘.dll’</TT> files.
</DL>
<DD>
<DT><SAMP>‘--locale=<VAR>locale</VAR>’</SAMP>
<DD>
-<A NAME="IDX970"></A>
-<A NAME="IDX971"></A>
+<A NAME="IDX976"></A>
+<A NAME="IDX977"></A>
Specify the locale name, either a language specification of the form <VAR>ll</VAR>
or a combined language and country specification of the form <VAR>ll_CC</VAR>.
<DT><SAMP>‘-d <VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX972"></A>
+<A NAME="IDX978"></A>
Specify the base directory of <TT>‘.msg’</TT> message catalogs.
</DL>
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX973"></A>
-<A NAME="IDX974"></A>
+<A NAME="IDX979"></A>
+<A NAME="IDX980"></A>
Write output to specified file.
</DL>
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX975"></A>
+<A NAME="IDX981"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX976"></A>
-<A NAME="IDX977"></A>
+<A NAME="IDX982"></A>
+<A NAME="IDX983"></A>
Write the .po file using indented style.
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX978"></A>
+<A NAME="IDX984"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX979"></A>
-<A NAME="IDX980"></A>
+<A NAME="IDX985"></A>
+<A NAME="IDX986"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX981"></A>
+<A NAME="IDX987"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX982"></A>
-<A NAME="IDX983"></A>
+<A NAME="IDX988"></A>
+<A NAME="IDX989"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX984"></A>
+<A NAME="IDX990"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX985"></A>
-<A NAME="IDX986"></A>
-<A NAME="IDX987"></A>
+<A NAME="IDX991"></A>
+<A NAME="IDX992"></A>
+<A NAME="IDX993"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX988"></A>
-<A NAME="IDX989"></A>
+<A NAME="IDX994"></A>
+<A NAME="IDX995"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX990"></A>
-<A NAME="IDX991"></A>
+<A NAME="IDX996"></A>
+<A NAME="IDX997"></A>
Output version information and exit.
<DT><SAMP>‘-v’</SAMP>
<DD>
<DT><SAMP>‘--verbose’</SAMP>
<DD>
-<A NAME="IDX992"></A>
-<A NAME="IDX993"></A>
+<A NAME="IDX998"></A>
+<A NAME="IDX999"></A>
Increase verbosity level.
</DL>
<H2><A NAME="SEC163" HREF="gettext_toc.html#TOC163">10.3 The Format of GNU MO Files</A></H2>
<P>
-<A NAME="IDX994"></A>
-<A NAME="IDX995"></A>
+<A NAME="IDX1000"></A>
+<A NAME="IDX1001"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX996"></A>
+<A NAME="IDX1002"></A>
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
</P>
<P>
-<A NAME="IDX997"></A>
+<A NAME="IDX1003"></A>
The size <VAR>S</VAR> of the hash table can be zero. In this case, the
hash table itself is not contained in the MO file. Some people might
prefer this because a precomputed hashing table takes disk space, and
</P>
<P>
-<A NAME="IDX998"></A>
+<A NAME="IDX1004"></A>
Contexts are stored by storing the concatenation of the context, a
<KBD>EOT</KBD> byte, and the original string, instead of the original string.
</P>
<P>
-<A NAME="IDX999"></A>
+<A NAME="IDX1005"></A>
Plural forms are stored by letting the plural of the original string
follow the singular of the original string, separated through a
<KBD>NUL</KBD> byte. The length which appears in the string descriptor
somewhat useless. But the MO file format is general enough so other
interfaces would be later possible, if for example, we ever want to
implement wide characters right in MO files, where <KBD>NUL</KBD> bytes may
-accidently appear. (No, we don't want to have wide characters in MO
+accidentally appear. (No, we don't want to have wide characters in MO
files. They would make the file unnecessarily large, and the
<SAMP>‘wchar_t’</SAMP> type being platform dependent, MO files would be
platform dependent as well.)
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 11 The Programmer's View</TITLE>
<H2><A NAME="SEC165" HREF="gettext_toc.html#TOC165">11.1 About <CODE>catgets</CODE></A></H2>
<P>
-<A NAME="IDX1000"></A>
+<A NAME="IDX1006"></A>
</P>
<P>
</P>
<P>
-But we must not forget one point: after all the trouble with transfering
+But we must not forget one point: after all the trouble with transferring
the rights on Unix(tm) they at last came to X/Open, the very same who
published this specification. This leads me to making the prediction
that this interface will be in future Unix standards (e.g. Spec1170) and
<H3><A NAME="SEC166" HREF="gettext_toc.html#TOC166">11.1.1 The Interface</A></H3>
<P>
-<A NAME="IDX1001"></A>
+<A NAME="IDX1007"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX1002"></A>
+<A NAME="IDX1008"></A>
<CODE>catopen</CODE> is used like in this:
</P>
</P>
<P>
-<A NAME="IDX1003"></A>
+<A NAME="IDX1009"></A>
This handle is of course used in the <CODE>catgets</CODE> function which can
be used like this:
</P>
<P>
-<A NAME="IDX1004"></A>
+<A NAME="IDX1010"></A>
The last of these functions is used and behaves as expected:
</P>
<H3><A NAME="SEC167" HREF="gettext_toc.html#TOC167">11.1.2 Problems with the <CODE>catgets</CODE> Interface?!</A></H3>
<P>
-<A NAME="IDX1005"></A>
+<A NAME="IDX1011"></A>
</P>
<P>
<H2><A NAME="SEC168" HREF="gettext_toc.html#TOC168">11.2 About <CODE>gettext</CODE></A></H2>
<P>
-<A NAME="IDX1006"></A>
+<A NAME="IDX1012"></A>
</P>
<P>
<H3><A NAME="SEC169" HREF="gettext_toc.html#TOC169">11.2.1 The Interface</A></H3>
<P>
-<A NAME="IDX1007"></A>
+<A NAME="IDX1013"></A>
</P>
<P>
<H3><A NAME="SEC170" HREF="gettext_toc.html#TOC170">11.2.2 Solving Ambiguities</A></H3>
<P>
-<A NAME="IDX1008"></A>
-<A NAME="IDX1009"></A>
-<A NAME="IDX1010"></A>
+<A NAME="IDX1014"></A>
+<A NAME="IDX1015"></A>
+<A NAME="IDX1016"></A>
</P>
<P>
<H3><A NAME="SEC171" HREF="gettext_toc.html#TOC171">11.2.3 Locating Message Catalog Files</A></H3>
<P>
-<A NAME="IDX1011"></A>
+<A NAME="IDX1017"></A>
</P>
<P>
<H3><A NAME="SEC172" HREF="gettext_toc.html#TOC172">11.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A></H3>
<P>
-<A NAME="IDX1012"></A>
-<A NAME="IDX1013"></A>
+<A NAME="IDX1018"></A>
+<A NAME="IDX1019"></A>
</P>
<P>
<P>
<DL>
<DT><U>Function:</U> char * <B>bind_textdomain_codeset</B> <I>(const char *<VAR>domainname</VAR>, const char *<VAR>codeset</VAR>)</I>
-<DD><A NAME="IDX1014"></A>
+<DD><A NAME="IDX1020"></A>
The <CODE>bind_textdomain_codeset</CODE> function can be used to specify the
output character set for message catalogs for domain <VAR>domainname</VAR>.
The <VAR>codeset</VAR> argument must be a valid codeset name which can be used
<H3><A NAME="SEC173" HREF="gettext_toc.html#TOC173">11.2.5 Using contexts for solving ambiguities</A></H3>
<P>
-<A NAME="IDX1015"></A>
-<A NAME="IDX1016"></A>
-<A NAME="IDX1017"></A>
-<A NAME="IDX1018"></A>
+<A NAME="IDX1021"></A>
+<A NAME="IDX1022"></A>
+<A NAME="IDX1023"></A>
+<A NAME="IDX1024"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX1019"></A>
+<A NAME="IDX1025"></A>
<PRE>
const char *pgettext (const char *msgctxt, const char *msgid);
</P>
<P>
-<A NAME="IDX1020"></A>
-<A NAME="IDX1021"></A>
+<A NAME="IDX1026"></A>
+<A NAME="IDX1027"></A>
<PRE>
const char *dpgettext (const char *domain_name,
</P>
<P>
-<A NAME="IDX1022"></A>
-<A NAME="IDX1023"></A>
-<A NAME="IDX1024"></A>
+<A NAME="IDX1028"></A>
+<A NAME="IDX1029"></A>
+<A NAME="IDX1030"></A>
<PRE>
const char *pgettext_expr (const char *msgctxt, const char *msgid);
<H3><A NAME="SEC174" HREF="gettext_toc.html#TOC174">11.2.6 Additional functions for plural forms</A></H3>
<P>
-<A NAME="IDX1025"></A>
+<A NAME="IDX1031"></A>
</P>
<P>
<P>
<DL>
<DT><U>Function:</U> char * <B>ngettext</B> <I>(const char *<VAR>msgid1</VAR>, const char *<VAR>msgid2</VAR>, unsigned long int <VAR>n</VAR>)</I>
-<DD><A NAME="IDX1026"></A>
+<DD><A NAME="IDX1032"></A>
The <CODE>ngettext</CODE> function is similar to the <CODE>gettext</CODE> function
as it finds the message catalogs in the same way. But it takes two
extra arguments. The <VAR>msgid1</VAR> parameter must contain the singular
Please note that the numeric value <VAR>n</VAR> has to be passed to the
<CODE>printf</CODE> function as well. It is not sufficient to pass it only to
<CODE>ngettext</CODE>.
+
+</P>
+<P>
+In the English singular case, the number -- always 1 -- can be replaced with
+"one":
+
+</P>
+
+<PRE>
+printf (ngettext ("One file removed", "%d files removed", n), n);
+</PRE>
+
+<P>
+This works because the <SAMP>‘printf’</SAMP> function discards excess arguments that
+are not consumed by the format string.
+
+</P>
+<P>
+It is also possible to use this function when the strings don't contain a
+cardinal number:
+
+</P>
+
+<PRE>
+puts (ngettext ("Delete the selected file?",
+ "Delete the selected files?",
+ n));
+</PRE>
+
+<P>
+In this case the number <VAR>n</VAR> is only used to choose the plural form.
</DL>
</P>
<P>
<DL>
<DT><U>Function:</U> char * <B>dngettext</B> <I>(const char *<VAR>domain</VAR>, const char *<VAR>msgid1</VAR>, const char *<VAR>msgid2</VAR>, unsigned long int <VAR>n</VAR>)</I>
-<DD><A NAME="IDX1027"></A>
+<DD><A NAME="IDX1033"></A>
The <CODE>dngettext</CODE> is similar to the <CODE>dgettext</CODE> function in the
way the message catalog is selected. The difference is that it takes
two extra parameter to provide the correct plural form. These two
<P>
<DL>
<DT><U>Function:</U> char * <B>dcngettext</B> <I>(const char *<VAR>domain</VAR>, const char *<VAR>msgid1</VAR>, const char *<VAR>msgid2</VAR>, unsigned long int <VAR>n</VAR>, int <VAR>category</VAR>)</I>
-<DD><A NAME="IDX1028"></A>
+<DD><A NAME="IDX1034"></A>
The <CODE>dcngettext</CODE> is similar to the <CODE>dcgettext</CODE> function in the
way the message catalog is selected. The difference is that it takes
two extra parameter to provide the correct plural form. These two
</P>
<P>
-<A NAME="IDX1029"></A>
-<A NAME="IDX1030"></A>
-<A NAME="IDX1031"></A>
+<A NAME="IDX1035"></A>
+<A NAME="IDX1036"></A>
+<A NAME="IDX1037"></A>
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</CODE> string).
The plural form information looks like this:
</P>
<P>
-<A NAME="IDX1032"></A>
+<A NAME="IDX1038"></A>
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
<DL COMPACT>
-<DT>Finno-Ugric family
-<DD>
-Hungarian
<DT>Asian family
<DD>
Japanese, Korean, Vietnamese
Esperanto
</DL>
+Another language using the same header entry is:
+
+<DL COMPACT>
+
+<DT>Finno-Ugric family
+<DD>
+Hungarian
+</DL>
+
+Hungarian does not appear to have a plural if you look at sentences involving
+cardinal numbers. For example, “1 apple” is “1 alma”, and “123 apples” is
+“123 alma”. But when the number is not explicit, the distinction between
+singular and plural exists: “the apple” is “az alma”, and “the apples” is
+“az alm'{a}k”. Since <CODE>ngettext</CODE> has to support both types of sentences,
+it is classified here, under “two forms”.
+
<DT>Two forms, singular used for zero and one
<DD>
Exceptional case in the language family. The header entry would be:
</DL>
</DL>
+<P>
+You might now ask, <CODE>ngettext</CODE> handles only numbers <VAR>n</VAR> of type
+<SAMP>‘unsigned long’</SAMP>. What about larger integer types? What about negative
+numbers? What about floating-point numbers?
+
+</P>
+<P>
+About larger integer types, such as <SAMP>‘uintmax_t’</SAMP> or
+<SAMP>‘unsigned long long’</SAMP>: they can be handled by reducing the value to a
+range that fits in an <SAMP>‘unsigned long’</SAMP>. Simply casting the value to
+<SAMP>‘unsigned long’</SAMP> would not do the right thing, since it would treat
+<CODE>ULONG_MAX + 1</CODE> like zero, <CODE>ULONG_MAX + 2</CODE> like singular, and
+the like. Here you can exploit the fact that all mentioned plural form
+formulas eventually become periodic, with a period that is a divisor of 100
+(or 1000 or 1000000). So, when you reduce a large value to another one in
+the range [1000000, 1999999] that ends in the same 6 decimal digits, you
+can assume that it will lead to the same plural form selection. This code
+does this:
+
+</P>
+
+<PRE>
+#include <inttypes.h>
+uintmax_t nbytes = ...;
+printf (ngettext ("The file has %"PRIuMAX" byte.",
+ "The file has %"PRIuMAX" bytes.",
+ (nbytes > ULONG_MAX
+ ? (nbytes % 1000000) + 1000000
+ : nbytes)),
+ nbytes);
+</PRE>
+
+<P>
+Negative and floating-point values usually represent physical entities for
+which singular and plural don't clearly apply. In such cases, there is no
+need to use <CODE>ngettext</CODE>; a simple <CODE>gettext</CODE> call with a form suitable
+for all values will do. For example:
+
+</P>
+
+<PRE>
+printf (gettext ("Time elapsed: %.3f seconds"),
+ num_milliseconds * 0.001);
+</PRE>
+
+<P>
+Even if <VAR>num_milliseconds</VAR> happens to be a multiple of 1000, the output
+
+<PRE>
+Time elapsed: 1.000 seconds
+</PRE>
+
+<P>
+is acceptable in English, and similarly for other languages.
+
+</P>
<H3><A NAME="SEC175" HREF="gettext_toc.html#TOC175">11.2.7 Optimization of the *gettext functions</A></H3>
<P>
-<A NAME="IDX1033"></A>
+<A NAME="IDX1039"></A>
</P>
<P>
<H2><A NAME="SEC176" HREF="gettext_toc.html#TOC176">11.3 Comparing the Two Interfaces</A></H2>
<P>
-<A NAME="IDX1034"></A>
-<A NAME="IDX1035"></A>
+<A NAME="IDX1040"></A>
+<A NAME="IDX1041"></A>
</P>
</P>
<P>
-<A NAME="IDX1036"></A>
+<A NAME="IDX1042"></A>
<PRE>
#include <libintl.h>
</P>
<P>
-<A NAME="IDX1037"></A>
+<A NAME="IDX1043"></A>
The same procedure can be done for the <CODE>gettext_noop</CODE> invocations
(see section <A HREF="gettext_4.html#SEC18">4.7 Special Cases of Translatable Strings</A>). One usually defines <CODE>gettext_noop</CODE> as a
no-op macro. So you should consider the following code for your project:
<UL>
<LI>Changing the language at runtime
-<A NAME="IDX1038"></A>
+<A NAME="IDX1044"></A>
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
<OL>
<LI><CODE>LANGUAGE</CODE>
-<A NAME="IDX1039"></A>
+<A NAME="IDX1045"></A>
-<A NAME="IDX1040"></A>
+<A NAME="IDX1046"></A>
<LI><CODE>LC_ALL</CODE>
-<A NAME="IDX1041"></A>
-<A NAME="IDX1042"></A>
-<A NAME="IDX1043"></A>
-<A NAME="IDX1044"></A>
-<A NAME="IDX1045"></A>
-<A NAME="IDX1046"></A>
+<A NAME="IDX1047"></A>
+<A NAME="IDX1048"></A>
+<A NAME="IDX1049"></A>
+<A NAME="IDX1050"></A>
+<A NAME="IDX1051"></A>
+<A NAME="IDX1052"></A>
<LI><CODE>LC_xxx</CODE>, according to selected locale
-<A NAME="IDX1047"></A>
+<A NAME="IDX1053"></A>
<LI><CODE>LANG</CODE>
</OL>
}
</PRE>
-<A NAME="IDX1048"></A>
+<A NAME="IDX1054"></A>
The variable <CODE>_nl_msg_cat_cntr</CODE> is defined in <TT>‘loadmsgcat.c’</TT>.
You don't need to know what this is for. But it can be used to detect
whether a <CODE>gettext</CODE> implementation is GNU gettext and not non-GNU
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 12 The Translator's View</TITLE>
</P>
<P>
-<A NAME="IDX1049"></A>
+<A NAME="IDX1055"></A>
Here a more details. The GNU <CODE>libintl</CODE> library (but not the
corresponding functions in GNU <CODE>libc</CODE>) supports an environment variable
<CODE>GETTEXT_LOG_UNTRANSLATED</CODE>. The GNU <CODE>libintl</CODE> library will
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 13 The Maintainer's View</TITLE>
<H1><A NAME="SEC196" HREF="gettext_toc.html#TOC196">13 The Maintainer's View</A></H1>
<P>
-<A NAME="IDX1050"></A>
+<A NAME="IDX1056"></A>
</P>
<P>
<H2><A NAME="SEC198" HREF="gettext_toc.html#TOC198">13.2 Prerequisite Works</A></H2>
<P>
-<A NAME="IDX1051"></A>
-<A NAME="IDX1052"></A>
-<A NAME="IDX1053"></A>
+<A NAME="IDX1057"></A>
+<A NAME="IDX1058"></A>
+<A NAME="IDX1059"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX1054"></A>
-<A NAME="IDX1055"></A>
+<A NAME="IDX1060"></A>
+<A NAME="IDX1061"></A>
<PRE>
gettextize [ <VAR>option</VAR>... ] [ <VAR>directory</VAR> ]
</P>
<DL COMPACT>
-<DT><SAMP>‘-c’</SAMP>
-<DD>
-<DT><SAMP>‘--copy’</SAMP>
-<DD>
-<A NAME="IDX1056"></A>
-<A NAME="IDX1057"></A>
-Copy the needed files instead of making symbolic links. Using links
-would allow the package to always use the latest <CODE>gettext</CODE> code
-available on the system, but it might disturb some mechanism the
-maintainer is used to apply to the sources. Because running
-<CODE>gettextize</CODE> is easy there shouldn't be problems with using copies.
-
<DT><SAMP>‘-f’</SAMP>
<DD>
<DT><SAMP>‘--force’</SAMP>
<DD>
-<A NAME="IDX1058"></A>
-<A NAME="IDX1059"></A>
+<A NAME="IDX1062"></A>
+<A NAME="IDX1063"></A>
Force replacement of files which already exist.
<DT><SAMP>‘--intl’</SAMP>
<DD>
-<A NAME="IDX1060"></A>
+<A NAME="IDX1064"></A>
Install the libintl sources in a subdirectory named <TT>‘intl/’</TT>.
This libintl will be used to provide internationalization on systems
that don't have GNU libintl installed. If this option is omitted,
<DT><SAMP>‘--no-changelog’</SAMP>
<DD>
-<A NAME="IDX1061"></A>
+<A NAME="IDX1065"></A>
Don't update or create ChangeLog files. By default, <CODE>gettextize</CODE>
logs all changes (file additions, modifications and removals) in a
file called <SAMP>‘ChangeLog’</SAMP> in each affected directory.
+<DT><SAMP>‘--symlink’</SAMP>
+<DD>
+<A NAME="IDX1066"></A>
+Make symbolic links instead of copying the needed files. This can be
+useful to save a few kilobytes of disk space, but it requires extra
+effort to create self-contained tarballs, it may disturb some mechanism
+the maintainer applies to the sources, and it is likely to introduce
+bugs when a newer version of <CODE>gettext</CODE> is installed on the system.
+
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--dry-run’</SAMP>
<DD>
-<A NAME="IDX1062"></A>
-<A NAME="IDX1063"></A>
+<A NAME="IDX1067"></A>
+<A NAME="IDX1068"></A>
Print modifications but don't perform them. All actions that
<CODE>gettextize</CODE> would normally execute are inhibited and instead only
listed on standard output.
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX1064"></A>
+<A NAME="IDX1069"></A>
Display this help and exit.
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX1065"></A>
+<A NAME="IDX1070"></A>
Output version information and exit.
</DL>
of the GNU build system, in the sense that it should not be invoked
automatically, and not be invoked by someone who doesn't assume the
responsibilities of a package maintainer. For the latter purpose, a
-separate tool is provided, see section <A HREF="gettext_13.html#SEC222">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A>.
+separate tool is provided, see section <A HREF="gettext_13.html#SEC224">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A>.
</P>
<H2><A NAME="SEC200" HREF="gettext_toc.html#TOC200">13.4 Files You Must Create or Alter</A></H2>
<P>
-<A NAME="IDX1066"></A>
+<A NAME="IDX1071"></A>
</P>
<P>
<P>
So, here comes a list of files, each one followed by a description of
all alterations it needs. Many examples are taken out from the GNU
-<CODE>gettext</CODE> 0.15 distribution itself, or from the GNU
+<CODE>gettext</CODE> 0.16 distribution itself, or from the GNU
<CODE>hello</CODE> distribution (<A HREF="http://www.franken.de/users/gnu/ke/hello">http://www.franken.de/users/gnu/ke/hello</A>
or <A HREF="http://www.gnu.franken.de/ke/hello/">http://www.gnu.franken.de/ke/hello/</A>) You may indeed
refer to the source code of the GNU <CODE>gettext</CODE> and GNU <CODE>hello</CODE>
<H3><A NAME="SEC201" HREF="gettext_toc.html#TOC201">13.4.1 <TT>‘POTFILES.in’</TT> in <TT>‘po/’</TT></A></H3>
<P>
-<A NAME="IDX1067"></A>
+<A NAME="IDX1072"></A>
</P>
<P>
<H3><A NAME="SEC202" HREF="gettext_toc.html#TOC202">13.4.2 <TT>‘LINGUAS’</TT> in <TT>‘po/’</TT></A></H3>
<P>
-<A NAME="IDX1068"></A>
+<A NAME="IDX1073"></A>
</P>
<P>
want to further restrict, at installation time, the set of installed
languages, this should not be done by modifying the <TT>‘LINGUAS’</TT> file,
but rather by using the <CODE>LINGUAS</CODE> environment variable
-(see section <A HREF="gettext_14.html#SEC226">14 The Installer's and Distributor's View</A>).
+(see section <A HREF="gettext_14.html#SEC228">14 The Installer's and Distributor's View</A>).
</P>
<P>
<H3><A NAME="SEC203" HREF="gettext_toc.html#TOC203">13.4.3 <TT>‘Makevars’</TT> in <TT>‘po/’</TT></A></H3>
<P>
-<A NAME="IDX1069"></A>
+<A NAME="IDX1074"></A>
</P>
<P>
<H3><A NAME="SEC204" HREF="gettext_toc.html#TOC204">13.4.4 Extending <TT>‘Makefile’</TT> in <TT>‘po/’</TT></A></H3>
<P>
-<A NAME="IDX1070"></A>
+<A NAME="IDX1075"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX1071"></A>
-<A NAME="IDX1072"></A>
+<A NAME="IDX1076"></A>
+<A NAME="IDX1077"></A>
GNU gettext comes with a <TT>‘Rules-quot’</TT> file, containing rules for
building catalogs <TT>‘en@quot.po’</TT> and <TT>‘en@boldquot.po’</TT>. The
effect of <TT>‘en@quot.po’</TT> is that people who set their <CODE>LANGUAGE</CODE>
<OL>
<LI>Declare the package and version.
-<A NAME="IDX1073"></A>
+<A NAME="IDX1078"></A>
This is done by a set of lines like these:
<PRE>
PACKAGE=gettext
-VERSION=0.15
+VERSION=0.16
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_SUBST(PACKAGE)
<PRE>
-AM_INIT_AUTOMAKE(gettext, 0.15)
+AM_INIT_AUTOMAKE(gettext, 0.16)
</PRE>
Of course, you replace <SAMP>‘gettext’</SAMP> with the name of your package,
-and <SAMP>‘0.15’</SAMP> by its version numbers, exactly as they
+and <SAMP>‘0.16’</SAMP> by its version numbers, exactly as they
should appear in the packaged <CODE>tar</CODE> file name of your distribution
-(<TT>‘gettext-0.15.tar.gz’</TT>, here).
+(<TT>‘gettext-0.16.tar.gz’</TT>, here).
<LI>Check for internationalization support.
<H3><A NAME="SEC207" HREF="gettext_toc.html#TOC207">13.4.7 <TT>‘mkinstalldirs’</TT> at top level</A></H3>
<P>
-<A NAME="IDX1074"></A>
+<A NAME="IDX1079"></A>
</P>
<P>
<H3><A NAME="SEC208" HREF="gettext_toc.html#TOC208">13.4.8 <TT>‘aclocal.m4’</TT> at top level</A></H3>
<P>
-<A NAME="IDX1075"></A>
+<A NAME="IDX1080"></A>
</P>
<P>
If you do not have an <TT>‘aclocal.m4’</TT> file in your distribution,
the simplest is to concatenate the files <TT>‘codeset.m4’</TT>,
<TT>‘gettext.m4’</TT>, <TT>‘glibc2.m4’</TT>, <TT>‘glibc21.m4’</TT>, <TT>‘iconv.m4’</TT>,
-<TT>‘intdiv0.m4’</TT>, <TT>‘intmax.m4’</TT>, <TT>‘inttypes_h.m4’</TT>, <TT>‘inttypes-h.m4’</TT>,
-<TT>‘inttypes-pri.m4’</TT>, <TT>‘lcmessage.m4’</TT>,
+<TT>‘intdiv0.m4’</TT>, <TT>‘intl.m4’</TT>, <TT>‘intldir.m4’</TT>, <TT>‘intmax.m4’</TT>,
+<TT>‘inttypes_h.m4’</TT>, <TT>‘inttypes-pri.m4’</TT>, <TT>‘lcmessage.m4’</TT>,
<TT>‘lib-ld.m4’</TT>, <TT>‘lib-link.m4’</TT>, <TT>‘lib-prefix.m4’</TT>, <TT>‘lock.m4’</TT>,
-<TT>‘longdouble.m4’</TT>, <TT>‘longlong.m4’</TT>, <TT>‘printf-posix.m4’</TT>,
-<TT>‘progtest.m4’</TT>, <TT>‘signed.m4’</TT>, <TT>‘size_max.m4’</TT>,
+<TT>‘longdouble.m4’</TT>, <TT>‘longlong.m4’</TT>, <TT>‘nls.m4’</TT>, <TT>‘po.m4’</TT>,
+<TT>‘printf-posix.m4’</TT>, <TT>‘progtest.m4’</TT>, <TT>‘size_max.m4’</TT>,
<TT>‘stdint_h.m4’</TT>, <TT>‘uintmax_t.m4’</TT>, <TT>‘ulonglong.m4’</TT>,
<TT>‘visibility.m4’</TT>, <TT>‘wchar_t.m4’</TT>, <TT>‘wint_t.m4’</TT>, <TT>‘xsize.m4’</TT>
from GNU <CODE>gettext</CODE>'s
<TT>‘m4/’</TT> directory into a single file. If you have suppressed the
<TT>‘intl/’</TT> directory, only <TT>‘gettext.m4’</TT>, <TT>‘iconv.m4’</TT>,
<TT>‘lib-ld.m4’</TT>, <TT>‘lib-link.m4’</TT>, <TT>‘lib-prefix.m4’</TT>,
-<TT>‘progtest.m4’</TT> need to be concatenated.
+<TT>‘nls.m4’</TT>, <TT>‘po.m4’</TT>, <TT>‘progtest.m4’</TT> need to be concatenated.
+
+</P>
+<P>
+If you are not using GNU <CODE>automake</CODE> 1.8 or newer, you will need to
+add a file <TT>‘mkdirp.m4’</TT> from a newer automake distribution to the
+list of files above.
</P>
<P>
<H3><A NAME="SEC209" HREF="gettext_toc.html#TOC209">13.4.9 <TT>‘acconfig.h’</TT> at top level</A></H3>
<P>
-<A NAME="IDX1076"></A>
+<A NAME="IDX1081"></A>
</P>
<P>
<H3><A NAME="SEC210" HREF="gettext_toc.html#TOC210">13.4.10 <TT>‘config.h.in’</TT> at top level</A></H3>
<P>
-<A NAME="IDX1077"></A>
+<A NAME="IDX1082"></A>
</P>
<P>
<H3><A NAME="SEC213" HREF="gettext_toc.html#TOC213">13.4.13 <TT>‘gettext.h’</TT> in <TT>‘lib/’</TT></A></H3>
<P>
-<A NAME="IDX1078"></A>
-<A NAME="IDX1079"></A>
-<A NAME="IDX1080"></A>
+<A NAME="IDX1083"></A>
+<A NAME="IDX1084"></A>
+<A NAME="IDX1085"></A>
</P>
<P>
When the package does not include the <CODE>intl/</CODE> subdirectory, and the
libintl.h header (with its associated libintl library, if any) is not
-already installed on the system, it is preferrable that the package builds
+already installed on the system, it is preferable that the package builds
without internationalization support, rather than to give a compilation
error.
</UL>
</P>
<P>
-<A NAME="IDX1081"></A>
+<A NAME="IDX1086"></A>
<TT>‘gettext.h’</TT> is a convenience header file for conditional use of
<TT>‘<libintl.h>’</TT>, depending on the <CODE>ENABLE_NLS</CODE> macro. If
<CODE>ENABLE_NLS</CODE> is set, it includes <TT>‘<libintl.h>’</TT>; otherwise it
<H2><A NAME="SEC214" HREF="gettext_toc.html#TOC214">13.5 Autoconf macros for use in <TT>‘configure.in’</TT></A></H2>
<P>
-<A NAME="IDX1082"></A>
+<A NAME="IDX1087"></A>
</P>
<P>
<H3><A NAME="SEC215" HREF="gettext_toc.html#TOC215">13.5.1 AM_GNU_GETTEXT in <TT>‘gettext.m4’</TT></A></H3>
<P>
-<A NAME="IDX1083"></A>
+<A NAME="IDX1088"></A>
The <CODE>AM_GNU_GETTEXT</CODE> macro tests for the presence of the GNU gettext
function family in either the C library or a separate <CODE>libintl</CODE>
library (shared or static libraries are both supported) or in the package's
<P>
<VAR>intlsymbol</VAR> can be <SAMP>‘external’</SAMP> or <SAMP>‘no-libtool’</SAMP>. The default
(if it is not specified or empty) is <SAMP>‘no-libtool’</SAMP>. <VAR>intlsymbol</VAR>
-should be <SAMP>‘external’</SAMP> for packages with no <TT>‘intl/’</TT> directory,
-and <SAMP>‘no-libtool’</SAMP> for packages with an <TT>‘intl/’</TT> directory. In
-the latter case, a static library <CODE>$(top_builddir)/intl/libintl.a</CODE>
-will be created.
+should be <SAMP>‘external’</SAMP> for packages with no <TT>‘intl/’</TT> directory.
+For packages with an <TT>‘intl/’</TT> directory, you can either use an
+<VAR>intlsymbol</VAR> equal to <SAMP>‘no-libtool’</SAMP>, or you can use <SAMP>‘external’</SAMP>
+and override by using the macro <CODE>AM_GNU_GETTEXT_INTL_SUBDIR</CODE> elsewhere.
+The two ways to specify the existence of an <TT>‘intl/’</TT> directory are
+equivalent. At build time, a static library
+<CODE>$(top_builddir)/intl/libintl.a</CODE> will then be created.
</P>
<P>
function will be ignored. If <VAR>needsymbol</VAR> is specified and is
<SAMP>‘need-formatstring-macros’</SAMP>, then GNU gettext implementations that don't
support the ISO C 99 <TT>‘<inttypes.h>’</TT> formatstring macros will be ignored.
-Only one <VAR>needsymbol</VAR> can be specified. To specify more than one
-requirement, just specify the strongest one among them. The hierarchy among
-the various alternatives is as follows: <SAMP>‘need-formatstring-macros’</SAMP>
+Only one <VAR>needsymbol</VAR> can be specified. These requirements can also be
+specified by using the macro <CODE>AM_GNU_GETTEXT_NEED</CODE> elsewhere. To specify
+more than one requirement, just specify the strongest one among them, or
+invoke the <CODE>AM_GNU_GETTEXT_NEED</CODE> macro several times. The hierarchy
+among the various alternatives is as follows: <SAMP>‘need-formatstring-macros’</SAMP>
implies <SAMP>‘need-ngettext’</SAMP>.
</P>
<UL>
<LI>
-<A NAME="IDX1084"></A>
+<A NAME="IDX1089"></A>
Some operating systems have <CODE>gettext</CODE> in the C library, for example
glibc. Some have it in a separate library <CODE>libintl</CODE>. GNU <CODE>libintl</CODE>
might have been installed as part of the GNU <CODE>gettext</CODE> package.
<H3><A NAME="SEC216" HREF="gettext_toc.html#TOC216">13.5.2 AM_GNU_GETTEXT_VERSION in <TT>‘gettext.m4’</TT></A></H3>
<P>
-<A NAME="IDX1085"></A>
+<A NAME="IDX1090"></A>
The <CODE>AM_GNU_GETTEXT_VERSION</CODE> macro declares the version number of
the GNU gettext infrastructure that is used by the package.
</P>
<P>
The use of this macro is optional; only the <CODE>autopoint</CODE> program makes
-use of it (see section <A HREF="gettext_13.html#SEC219">13.6 Integrating with CVS</A>).
+use of it (see section <A HREF="gettext_13.html#SEC221">13.6 Integrating with CVS</A>).
</P>
-<H3><A NAME="SEC217" HREF="gettext_toc.html#TOC217">13.5.3 AM_PO_SUBDIRS in <TT>‘po.m4’</TT></A></H3>
+
+<H3><A NAME="SEC217" HREF="gettext_toc.html#TOC217">13.5.3 AM_GNU_GETTEXT_NEED in <TT>‘gettext.m4’</TT></A></H3>
<P>
-<A NAME="IDX1086"></A>
+<A NAME="IDX1091"></A>
+The <CODE>AM_GNU_GETTEXT_NEED</CODE> macro declares a constraint regarding the
+GNU gettext implementation. The syntax is
+
+</P>
+
+<PRE>
+AM_GNU_GETTEXT_NEED([<VAR>needsymbol</VAR>])
+</PRE>
+
+<P>
+If <VAR>needsymbol</VAR> is <SAMP>‘need-ngettext’</SAMP>, then GNU gettext implementations
+(in libc or libintl) without the <CODE>ngettext()</CODE> function will be ignored.
+If <VAR>needsymbol</VAR> is <SAMP>‘need-formatstring-macros’</SAMP>, then GNU gettext
+implementations that don't support the ISO C 99 <TT>‘<inttypes.h>’</TT>
+formatstring macros will be ignored.
+
+</P>
+<P>
+The optional second argument of <CODE>AM_GNU_GETTEXT</CODE> is also taken into
+account.
+
+</P>
+<P>
+The <CODE>AM_GNU_GETTEXT_NEED</CODE> invocations can occur before or after
+the <CODE>AM_GNU_GETTEXT</CODE> invocation; the order doesn't matter.
+
+</P>
+
+
+<H3><A NAME="SEC218" HREF="gettext_toc.html#TOC218">13.5.4 AM_GNU_GETTEXT_INTL_SUBDIR in <TT>‘intldir.m4’</TT></A></H3>
+
+<P>
+<A NAME="IDX1092"></A>
+The <CODE>AM_GNU_GETTEXT_INTL_SUBDIR</CODE> macro specifies that the
+<CODE>AM_GNU_GETTEXT</CODE> macro, although invoked with the first argument
+<SAMP>‘external’</SAMP>, should also prepare for building the <TT>‘intl/’</TT>
+subdirectory.
+
+</P>
+<P>
+The <CODE>AM_GNU_GETTEXT_INTL_SUBDIR</CODE> invocation can occur before or after
+the <CODE>AM_GNU_GETTEXT</CODE> invocation; the order doesn't matter.
+
+</P>
+<P>
+The use of this macro requires GNU automake 1.10 or newer and
+GNU autoconf 2.61 or newer.
+
+</P>
+
+
+<H3><A NAME="SEC219" HREF="gettext_toc.html#TOC219">13.5.5 AM_PO_SUBDIRS in <TT>‘po.m4’</TT></A></H3>
+
+<P>
+<A NAME="IDX1093"></A>
The <CODE>AM_PO_SUBDIRS</CODE> macro prepares the <TT>‘po/’</TT> directories of the
package for building. This macro should be used in internationalized
programs written in other programming languages than C, C++, Objective C,
-for example <CODE>sh</CODE>, <CODE>Python</CODE>, <CODE>Lisp</CODE>. See section <A HREF="gettext_15.html#SEC227">15 Other Programming Languages</A> for a list of programming languages that support localization
+for example <CODE>sh</CODE>, <CODE>Python</CODE>, <CODE>Lisp</CODE>. See section <A HREF="gettext_15.html#SEC229">15 Other Programming Languages</A> for a list of programming languages that support localization
through PO files.
</P>
</P>
-<H3><A NAME="SEC218" HREF="gettext_toc.html#TOC218">13.5.4 AM_ICONV in <TT>‘iconv.m4’</TT></A></H3>
+<H3><A NAME="SEC220" HREF="gettext_toc.html#TOC220">13.5.6 AM_ICONV in <TT>‘iconv.m4’</TT></A></H3>
<P>
-<A NAME="IDX1087"></A>
+<A NAME="IDX1094"></A>
The <CODE>AM_ICONV</CODE> macro tests for the presence of the POSIX/XSI
<CODE>iconv</CODE> function family in either the C library or a separate
<CODE>libiconv</CODE> library. If found, it sets the <CODE>am_cv_func_iconv</CODE>
<UL>
<LI>
-<A NAME="IDX1088"></A>
+<A NAME="IDX1095"></A>
Some operating systems have <CODE>iconv</CODE> in the C library, for example
glibc. Some have it in a separate library <CODE>libiconv</CODE>, for example
OSF/1 or FreeBSD. Regardless of the operating system, GNU <CODE>libiconv</CODE>
</P>
-<H2><A NAME="SEC219" HREF="gettext_toc.html#TOC219">13.6 Integrating with CVS</A></H2>
+<H2><A NAME="SEC221" HREF="gettext_toc.html#TOC221">13.6 Integrating with CVS</A></H2>
<P>
Many projects use CVS for distributed development, version control and
-<H3><A NAME="SEC220" HREF="gettext_toc.html#TOC220">13.6.1 Avoiding version mismatch in distributed development</A></H3>
+<H3><A NAME="SEC222" HREF="gettext_toc.html#TOC222">13.6.1 Avoiding version mismatch in distributed development</A></H3>
<P>
In a project development with multiple developers, using CVS, there
-<H3><A NAME="SEC221" HREF="gettext_toc.html#TOC221">13.6.2 Files to put under CVS version control</A></H3>
+<H3><A NAME="SEC223" HREF="gettext_toc.html#TOC223">13.6.2 Files to put under CVS version control</A></H3>
<P>
There are basically three ways to deal with generated files in the
</P>
<PRE>
-AM_GNU_GETTEXT_VERSION(0.15)
+AM_GNU_GETTEXT_VERSION(0.16)
</PRE>
<P>
</P>
-<H3><A NAME="SEC222" HREF="gettext_toc.html#TOC222">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A></H3>
+<H3><A NAME="SEC224" HREF="gettext_toc.html#TOC224">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A></H3>
<P>
-<A NAME="IDX1089"></A>
-<A NAME="IDX1090"></A>
+<A NAME="IDX1096"></A>
+<A NAME="IDX1097"></A>
<PRE>
autopoint [<VAR>option</VAR>]...
</P>
-<H4><A NAME="SEC223" HREF="gettext_toc.html#TOC223">13.6.3.1 Options</A></H4>
+<H4><A NAME="SEC225" HREF="gettext_toc.html#TOC225">13.6.3.1 Options</A></H4>
<DL COMPACT>
<DD>
<DT><SAMP>‘--force’</SAMP>
<DD>
-<A NAME="IDX1091"></A>
-<A NAME="IDX1092"></A>
+<A NAME="IDX1098"></A>
+<A NAME="IDX1099"></A>
Force overwriting of files that already exist.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--dry-run’</SAMP>
<DD>
-<A NAME="IDX1093"></A>
-<A NAME="IDX1094"></A>
+<A NAME="IDX1100"></A>
+<A NAME="IDX1101"></A>
Print modifications but don't perform them. All file copying actions that
<CODE>autopoint</CODE> would normally execute are inhibited and instead only
listed on standard output.
-<H4><A NAME="SEC224" HREF="gettext_toc.html#TOC224">13.6.3.2 Informative output</A></H4>
+<H4><A NAME="SEC226" HREF="gettext_toc.html#TOC226">13.6.3.2 Informative output</A></H4>
<DL COMPACT>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX1095"></A>
+<A NAME="IDX1102"></A>
Display this help and exit.
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX1096"></A>
+<A NAME="IDX1103"></A>
Output version information and exit.
</DL>
<P>
<CODE>autopoint</CODE> supports the GNU <CODE>gettext</CODE> versions from 0.10.35 to
-the current one, 0.15. In order to apply <CODE>autopoint</CODE> to
-a package using a <CODE>gettext</CODE> version newer than 0.15, you
+the current one, 0.16. In order to apply <CODE>autopoint</CODE> to
+a package using a <CODE>gettext</CODE> version newer than 0.16, you
need to install this same version of GNU <CODE>gettext</CODE> at least.
</P>
</P>
-<H2><A NAME="SEC225" HREF="gettext_toc.html#TOC225">13.7 Creating a Distribution Tarball</A></H2>
+<H2><A NAME="SEC227" HREF="gettext_toc.html#TOC227">13.7 Creating a Distribution Tarball</A></H2>
<P>
-<A NAME="IDX1097"></A>
-<A NAME="IDX1098"></A>
+<A NAME="IDX1104"></A>
+<A NAME="IDX1105"></A>
In projects that use GNU <CODE>automake</CODE>, the usual commands for creating
a distribution tarball, <SAMP>‘make dist’</SAMP> or <SAMP>‘make distcheck’</SAMP>,
automatically update the PO files as needed.
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 14 The Installer's and Distributor's View</TITLE>
<P><HR><P>
-<H1><A NAME="SEC226" HREF="gettext_toc.html#TOC226">14 The Installer's and Distributor's View</A></H1>
+<H1><A NAME="SEC228" HREF="gettext_toc.html#TOC228">14 The Installer's and Distributor's View</A></H1>
<P>
-<A NAME="IDX1099"></A>
-<A NAME="IDX1100"></A>
-<A NAME="IDX1101"></A>
-<A NAME="IDX1102"></A>
+<A NAME="IDX1106"></A>
+<A NAME="IDX1107"></A>
+<A NAME="IDX1108"></A>
+<A NAME="IDX1109"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX1103"></A>
+<A NAME="IDX1110"></A>
Internationalized packages have usually many <TT>‘<VAR>ll</VAR>.po’</TT>
files. Unless
translations are disabled, all those available are installed together
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 15 Other Programming Languages</TITLE>
<P><HR><P>
-<H1><A NAME="SEC227" HREF="gettext_toc.html#TOC227">15 Other Programming Languages</A></H1>
+<H1><A NAME="SEC229" HREF="gettext_toc.html#TOC229">15 Other Programming Languages</A></H1>
<P>
While the presentation of <CODE>gettext</CODE> focuses mostly on C and
-<H2><A NAME="SEC228" HREF="gettext_toc.html#TOC228">15.1 The Language Implementor's View</A></H2>
+<H2><A NAME="SEC230" HREF="gettext_toc.html#TOC230">15.1 The Language Implementor's View</A></H2>
<P>
-<A NAME="IDX1104"></A>
-<A NAME="IDX1105"></A>
+<A NAME="IDX1111"></A>
+<A NAME="IDX1112"></A>
</P>
<P>
-<H2><A NAME="SEC229" HREF="gettext_toc.html#TOC229">15.2 The Programmer's View</A></H2>
+<H2><A NAME="SEC231" HREF="gettext_toc.html#TOC231">15.2 The Programmer's View</A></H2>
<P>
For the programmer, the general procedure is the same as for the C
</P>
-<H2><A NAME="SEC230" HREF="gettext_toc.html#TOC230">15.3 The Translator's View</A></H2>
+<H2><A NAME="SEC232" HREF="gettext_toc.html#TOC232">15.3 The Translator's View</A></H2>
<P>
The translator works exactly as in the C language case. The only
-<H3><A NAME="SEC231" HREF="gettext_toc.html#TOC231">15.3.1 C Format Strings</A></H3>
+<H3><A NAME="SEC233" HREF="gettext_toc.html#TOC233">15.3.1 C Format Strings</A></H3>
<P>
C format strings are described in POSIX (IEEE P1003.1 2001), section
</P>
<P>
-<A NAME="IDX1106"></A>
-<A NAME="IDX1107"></A>
+<A NAME="IDX1113"></A>
+<A NAME="IDX1114"></A>
As a special feature for Farsi (Persian) and maybe Arabic, translators can
insert an <SAMP>‘I’</SAMP> flag into numeric format directives. For example, the
translation of <CODE>"%d"</CODE> can be <CODE>"%Id"</CODE>. The effect of this flag,
</P>
-<H3><A NAME="SEC232" HREF="gettext_toc.html#TOC232">15.3.2 Objective C Format Strings</A></H3>
+<H3><A NAME="SEC234" HREF="gettext_toc.html#TOC234">15.3.2 Objective C Format Strings</A></H3>
<P>
Objective C format strings are like C format strings. They support an
</P>
-<H3><A NAME="SEC233" HREF="gettext_toc.html#TOC233">15.3.3 Shell Format Strings</A></H3>
+<H3><A NAME="SEC235" HREF="gettext_toc.html#TOC235">15.3.3 Shell Format Strings</A></H3>
<P>
Shell format strings, as supported by GNU gettext and the <SAMP>‘envsubst’</SAMP>
</P>
-<H3><A NAME="SEC234" HREF="gettext_toc.html#TOC234">15.3.4 Python Format Strings</A></H3>
+<H3><A NAME="SEC236" HREF="gettext_toc.html#TOC236">15.3.4 Python Format Strings</A></H3>
<P>
Python format strings are described in
</P>
-<H3><A NAME="SEC235" HREF="gettext_toc.html#TOC235">15.3.5 Lisp Format Strings</A></H3>
+<H3><A NAME="SEC237" HREF="gettext_toc.html#TOC237">15.3.5 Lisp Format Strings</A></H3>
<P>
Lisp format strings are described in the Common Lisp HyperSpec,
</P>
-<H3><A NAME="SEC236" HREF="gettext_toc.html#TOC236">15.3.6 Emacs Lisp Format Strings</A></H3>
+<H3><A NAME="SEC238" HREF="gettext_toc.html#TOC238">15.3.6 Emacs Lisp Format Strings</A></H3>
<P>
Emacs Lisp format strings are documented in the Emacs Lisp reference,
</P>
-<H3><A NAME="SEC237" HREF="gettext_toc.html#TOC237">15.3.7 librep Format Strings</A></H3>
+<H3><A NAME="SEC239" HREF="gettext_toc.html#TOC239">15.3.7 librep Format Strings</A></H3>
<P>
librep format strings are documented in the librep manual, section
</P>
-<H3><A NAME="SEC238" HREF="gettext_toc.html#TOC238">15.3.8 Scheme Format Strings</A></H3>
+<H3><A NAME="SEC240" HREF="gettext_toc.html#TOC240">15.3.8 Scheme Format Strings</A></H3>
<P>
Scheme format strings are documented in the SLIB manual, section
</P>
-<H3><A NAME="SEC239" HREF="gettext_toc.html#TOC239">15.3.9 Smalltalk Format Strings</A></H3>
+<H3><A NAME="SEC241" HREF="gettext_toc.html#TOC241">15.3.9 Smalltalk Format Strings</A></H3>
<P>
Smalltalk format strings are described in the GNU Smalltalk documentation,
</P>
-<H3><A NAME="SEC240" HREF="gettext_toc.html#TOC240">15.3.10 Java Format Strings</A></H3>
+<H3><A NAME="SEC242" HREF="gettext_toc.html#TOC242">15.3.10 Java Format Strings</A></H3>
<P>
Java format strings are described in the JDK documentation for class
</P>
-<H3><A NAME="SEC241" HREF="gettext_toc.html#TOC241">15.3.11 C# Format Strings</A></H3>
+<H3><A NAME="SEC243" HREF="gettext_toc.html#TOC243">15.3.11 C# Format Strings</A></H3>
<P>
C# format strings are described in the .NET documentation for class
</P>
-<H3><A NAME="SEC242" HREF="gettext_toc.html#TOC242">15.3.12 awk Format Strings</A></H3>
+<H3><A NAME="SEC244" HREF="gettext_toc.html#TOC244">15.3.12 awk Format Strings</A></H3>
<P>
awk format strings are described in the gawk documentation, section
</P>
-<H3><A NAME="SEC243" HREF="gettext_toc.html#TOC243">15.3.13 Object Pascal Format Strings</A></H3>
+<H3><A NAME="SEC245" HREF="gettext_toc.html#TOC245">15.3.13 Object Pascal Format Strings</A></H3>
<P>
Where is this documented?
</P>
-<H3><A NAME="SEC244" HREF="gettext_toc.html#TOC244">15.3.14 YCP Format Strings</A></H3>
+<H3><A NAME="SEC246" HREF="gettext_toc.html#TOC246">15.3.14 YCP Format Strings</A></H3>
<P>
YCP sformat strings are described in the libycp documentation
</P>
-<H3><A NAME="SEC245" HREF="gettext_toc.html#TOC245">15.3.15 Tcl Format Strings</A></H3>
+<H3><A NAME="SEC247" HREF="gettext_toc.html#TOC247">15.3.15 Tcl Format Strings</A></H3>
<P>
Tcl format strings are described in the <TT>‘format.n’</TT> manual page,
</P>
-<H3><A NAME="SEC246" HREF="gettext_toc.html#TOC246">15.3.16 Perl Format Strings</A></H3>
+<H3><A NAME="SEC248" HREF="gettext_toc.html#TOC248">15.3.16 Perl Format Strings</A></H3>
<P>
There are two kinds format strings in Perl: those acceptable to the
</P>
-<H3><A NAME="SEC247" HREF="gettext_toc.html#TOC247">15.3.17 PHP Format Strings</A></H3>
+<H3><A NAME="SEC249" HREF="gettext_toc.html#TOC249">15.3.17 PHP Format Strings</A></H3>
<P>
PHP format strings are described in the documentation of the PHP function
</P>
-<H3><A NAME="SEC248" HREF="gettext_toc.html#TOC248">15.3.18 GCC internal Format Strings</A></H3>
+<H3><A NAME="SEC250" HREF="gettext_toc.html#TOC250">15.3.18 GCC internal Format Strings</A></H3>
<P>
These format strings are used inside the GCC sources. In such a format
</P>
-<H3><A NAME="SEC249" HREF="gettext_toc.html#TOC249">15.3.19 Qt Format Strings</A></H3>
+<H3><A NAME="SEC251" HREF="gettext_toc.html#TOC251">15.3.19 Qt Format Strings</A></H3>
<P>
Qt format strings are described in the documentation of the QString class
</P>
-<H3><A NAME="SEC250" HREF="gettext_toc.html#TOC250">15.3.20 Boost Format Strings</A></H3>
+<H3><A NAME="SEC252" HREF="gettext_toc.html#TOC252">15.3.20 Boost Format Strings</A></H3>
<P>
Boost format strings are described in the documentation of the
</P>
-<H2><A NAME="SEC251" HREF="gettext_toc.html#TOC251">15.4 The Maintainer's View</A></H2>
+<H2><A NAME="SEC253" HREF="gettext_toc.html#TOC253">15.4 The Maintainer's View</A></H2>
<P>
For the maintainer, the general procedure differs from the C language
-<H2><A NAME="SEC252" HREF="gettext_toc.html#TOC252">15.5 Individual Programming Languages</A></H2>
+<H2><A NAME="SEC254" HREF="gettext_toc.html#TOC254">15.5 Individual Programming Languages</A></H2>
-<H3><A NAME="SEC253" HREF="gettext_toc.html#TOC253">15.5.1 C, C++, Objective C</A></H3>
+<H3><A NAME="SEC255" HREF="gettext_toc.html#TOC255">15.5.1 C, C++, Objective C</A></H3>
<P>
-<A NAME="IDX1108"></A>
+<A NAME="IDX1115"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC254" HREF="gettext_toc.html#TOC254">15.5.2 sh - Shell Script</A></H3>
+<H3><A NAME="SEC256" HREF="gettext_toc.html#TOC256">15.5.2 sh - Shell Script</A></H3>
<P>
-<A NAME="IDX1109"></A>
+<A NAME="IDX1116"></A>
</P>
<DL COMPACT>
<DT>gettext/ngettext functions
<DD>
-<A NAME="IDX1110"></A>
-<A NAME="IDX1111"></A>
+<A NAME="IDX1117"></A>
+<A NAME="IDX1118"></A>
<CODE>gettext</CODE>, <CODE>ngettext</CODE> programs
<BR><CODE>eval_gettext</CODE>, <CODE>eval_ngettext</CODE> shell functions
<DT>textdomain
<DD>
-<A NAME="IDX1112"></A>
+<A NAME="IDX1119"></A>
environment variable <CODE>TEXTDOMAIN</CODE>
<DT>bindtextdomain
<DD>
-<A NAME="IDX1113"></A>
+<A NAME="IDX1120"></A>
environment variable <CODE>TEXTDOMAINDIR</CODE>
<DT>setlocale
-<H4><A NAME="SEC255" HREF="gettext_toc.html#TOC255">15.5.2.1 Preparing Shell Scripts for Internationalization</A></H4>
+<H4><A NAME="SEC257" HREF="gettext_toc.html#TOC257">15.5.2.1 Preparing Shell Scripts for Internationalization</A></H4>
<P>
-<A NAME="IDX1114"></A>
+<A NAME="IDX1121"></A>
</P>
<P>
near the top of the script. <CODE>gettext.sh</CODE> is a shell function library
that provides the functions
-<CODE>eval_gettext</CODE> (see section <A HREF="gettext_15.html#SEC260">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A>) and
-<CODE>eval_ngettext</CODE> (see section <A HREF="gettext_15.html#SEC261">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A>).
+<CODE>eval_gettext</CODE> (see section <A HREF="gettext_15.html#SEC262">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A>) and
+<CODE>eval_ngettext</CODE> (see section <A HREF="gettext_15.html#SEC263">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A>).
You have to ensure that <CODE>gettext.sh</CODE> can be found in the <CODE>PATH</CODE>.
<LI>
-<H4><A NAME="SEC256" HREF="gettext_toc.html#TOC256">15.5.2.2 Contents of <CODE>gettext.sh</CODE></A></H4>
+<H4><A NAME="SEC258" HREF="gettext_toc.html#TOC258">15.5.2.2 Contents of <CODE>gettext.sh</CODE></A></H4>
<P>
<CODE>gettext.sh</CODE>, contained in the run-time package of GNU gettext, provides
<LI>eval_gettext
-See section <A HREF="gettext_15.html#SEC260">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A>.
+See section <A HREF="gettext_15.html#SEC262">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A>.
<LI>eval_ngettext
-See section <A HREF="gettext_15.html#SEC261">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A>.
+See section <A HREF="gettext_15.html#SEC263">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A>.
</UL>
-<H4><A NAME="SEC257" HREF="gettext_toc.html#TOC257">15.5.2.3 Invoking the <CODE>gettext</CODE> program</A></H4>
+<H4><A NAME="SEC259" HREF="gettext_toc.html#TOC259">15.5.2.3 Invoking the <CODE>gettext</CODE> program</A></H4>
<P>
-<A NAME="IDX1115"></A>
-<A NAME="IDX1116"></A>
+<A NAME="IDX1122"></A>
+<A NAME="IDX1123"></A>
<PRE>
gettext [<VAR>option</VAR>] [[<VAR>textdomain</VAR>] <VAR>msgid</VAR>]
</PRE>
<P>
-<A NAME="IDX1117"></A>
+<A NAME="IDX1124"></A>
The <CODE>gettext</CODE> program displays the native language translation of a
textual message.
<DD>
<DT><SAMP>‘--domain=<VAR>textdomain</VAR>’</SAMP>
<DD>
-<A NAME="IDX1118"></A>
-<A NAME="IDX1119"></A>
+<A NAME="IDX1125"></A>
+<A NAME="IDX1126"></A>
Retrieve translated messages from <VAR>textdomain</VAR>. Usually a <VAR>textdomain</VAR>
corresponds to a package, a program, or a module of a program.
<DT><SAMP>‘-e’</SAMP>
<DD>
-<A NAME="IDX1120"></A>
+<A NAME="IDX1127"></A>
Enable expansion of some escape sequences. This option is for compatibility
with the <SAMP>‘echo’</SAMP> program or shell built-in. The escape sequences
<SAMP>‘\a’</SAMP>, <SAMP>‘\b’</SAMP>, <SAMP>‘\c’</SAMP>, <SAMP>‘\f’</SAMP>, <SAMP>‘\n’</SAMP>, <SAMP>‘\r’</SAMP>, <SAMP>‘\t’</SAMP>,
<SAMP>‘\v’</SAMP>, <SAMP>‘\\’</SAMP>, and <SAMP>‘\’</SAMP> followed by one to three octal digits, are
-interpreted like the SystemV <SAMP>‘echo’</SAMP> program does.
+interpreted like the System V <SAMP>‘echo’</SAMP> program did.
<DT><SAMP>‘-E’</SAMP>
<DD>
-<A NAME="IDX1121"></A>
+<A NAME="IDX1128"></A>
This option is only for compatibility with the <SAMP>‘echo’</SAMP> program or shell
built-in. It has no effect.
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX1122"></A>
-<A NAME="IDX1123"></A>
+<A NAME="IDX1129"></A>
+<A NAME="IDX1130"></A>
Display this help and exit.
<DT><SAMP>‘-n’</SAMP>
<DD>
-<A NAME="IDX1124"></A>
+<A NAME="IDX1131"></A>
Suppress trailing newline. By default, <CODE>gettext</CODE> adds a newline to
the output.
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX1125"></A>
-<A NAME="IDX1126"></A>
+<A NAME="IDX1132"></A>
+<A NAME="IDX1133"></A>
Output version information and exit.
<DT><SAMP>‘[<VAR>textdomain</VAR>] <VAR>msgid</VAR>’</SAMP>
</P>
-<H4><A NAME="SEC258" HREF="gettext_toc.html#TOC258">15.5.2.4 Invoking the <CODE>ngettext</CODE> program</A></H4>
+<H4><A NAME="SEC260" HREF="gettext_toc.html#TOC260">15.5.2.4 Invoking the <CODE>ngettext</CODE> program</A></H4>
<P>
-<A NAME="IDX1127"></A>
-<A NAME="IDX1128"></A>
+<A NAME="IDX1134"></A>
+<A NAME="IDX1135"></A>
<PRE>
ngettext [<VAR>option</VAR>] [<VAR>textdomain</VAR>] <VAR>msgid</VAR> <VAR>msgid-plural</VAR> <VAR>count</VAR>
</PRE>
<P>
-<A NAME="IDX1129"></A>
+<A NAME="IDX1136"></A>
The <CODE>ngettext</CODE> program displays the native language translation of a
textual message whose grammatical form depends on a number.
<DD>
<DT><SAMP>‘--domain=<VAR>textdomain</VAR>’</SAMP>
<DD>
-<A NAME="IDX1130"></A>
-<A NAME="IDX1131"></A>
+<A NAME="IDX1137"></A>
+<A NAME="IDX1138"></A>
Retrieve translated messages from <VAR>textdomain</VAR>. Usually a <VAR>textdomain</VAR>
corresponds to a package, a program, or a module of a program.
<DT><SAMP>‘-e’</SAMP>
<DD>
-<A NAME="IDX1132"></A>
+<A NAME="IDX1139"></A>
Enable expansion of some escape sequences. This option is for compatibility
with the <SAMP>‘gettext’</SAMP> program. The escape sequences
<SAMP>‘\a’</SAMP>, <SAMP>‘\b’</SAMP>, <SAMP>‘\c’</SAMP>, <SAMP>‘\f’</SAMP>, <SAMP>‘\n’</SAMP>, <SAMP>‘\r’</SAMP>, <SAMP>‘\t’</SAMP>,
<SAMP>‘\v’</SAMP>, <SAMP>‘\\’</SAMP>, and <SAMP>‘\’</SAMP> followed by one to three octal digits, are
-interpreted like the SystemV <SAMP>‘echo’</SAMP> program does.
+interpreted like the System V <SAMP>‘echo’</SAMP> program did.
<DT><SAMP>‘-E’</SAMP>
<DD>
-<A NAME="IDX1133"></A>
+<A NAME="IDX1140"></A>
This option is only for compatibility with the <SAMP>‘gettext’</SAMP> program. It has
no effect.
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX1134"></A>
-<A NAME="IDX1135"></A>
+<A NAME="IDX1141"></A>
+<A NAME="IDX1142"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX1136"></A>
-<A NAME="IDX1137"></A>
+<A NAME="IDX1143"></A>
+<A NAME="IDX1144"></A>
Output version information and exit.
<DT><SAMP>‘<VAR>textdomain</VAR>’</SAMP>
</P>
-<H4><A NAME="SEC259" HREF="gettext_toc.html#TOC259">15.5.2.5 Invoking the <CODE>envsubst</CODE> program</A></H4>
+<H4><A NAME="SEC261" HREF="gettext_toc.html#TOC261">15.5.2.5 Invoking the <CODE>envsubst</CODE> program</A></H4>
<P>
-<A NAME="IDX1138"></A>
-<A NAME="IDX1139"></A>
+<A NAME="IDX1145"></A>
+<A NAME="IDX1146"></A>
<PRE>
envsubst [<VAR>option</VAR>] [<VAR>shell-format</VAR>]
</PRE>
<P>
-<A NAME="IDX1140"></A>
-<A NAME="IDX1141"></A>
-<A NAME="IDX1142"></A>
+<A NAME="IDX1147"></A>
+<A NAME="IDX1148"></A>
+<A NAME="IDX1149"></A>
The <CODE>envsubst</CODE> program substitutes the values of environment variables.
</P>
<DD>
<DT><SAMP>‘--variables’</SAMP>
<DD>
-<A NAME="IDX1143"></A>
-<A NAME="IDX1144"></A>
+<A NAME="IDX1150"></A>
+<A NAME="IDX1151"></A>
Output the variables occurring in <VAR>shell-format</VAR>.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX1145"></A>
-<A NAME="IDX1146"></A>
+<A NAME="IDX1152"></A>
+<A NAME="IDX1153"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX1147"></A>
-<A NAME="IDX1148"></A>
+<A NAME="IDX1154"></A>
+<A NAME="IDX1155"></A>
Output version information and exit.
</DL>
</P>
-<H4><A NAME="SEC260" HREF="gettext_toc.html#TOC260">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A></H4>
+<H4><A NAME="SEC262" HREF="gettext_toc.html#TOC262">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A></H4>
<P>
-<A NAME="IDX1149"></A>
+<A NAME="IDX1156"></A>
<PRE>
eval_gettext <VAR>msgid</VAR>
</PRE>
<P>
-<A NAME="IDX1150"></A>
+<A NAME="IDX1157"></A>
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</VAR> will be dollar-substituted in the result.
</P>
-<H4><A NAME="SEC261" HREF="gettext_toc.html#TOC261">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A></H4>
+<H4><A NAME="SEC263" HREF="gettext_toc.html#TOC263">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A></H4>
<P>
-<A NAME="IDX1151"></A>
+<A NAME="IDX1158"></A>
<PRE>
eval_ngettext <VAR>msgid</VAR> <VAR>msgid-plural</VAR> <VAR>count</VAR>
</PRE>
<P>
-<A NAME="IDX1152"></A>
+<A NAME="IDX1159"></A>
This function outputs the native language translation of a textual message
whose grammatical form depends on a number, performing dollar-substitution
on the result. Note that only shell variables mentioned in <VAR>msgid</VAR> or
</P>
-<H3><A NAME="SEC262" HREF="gettext_toc.html#TOC262">15.5.3 bash - Bourne-Again Shell Script</A></H3>
+<H3><A NAME="SEC264" HREF="gettext_toc.html#TOC264">15.5.3 bash - Bourne-Again Shell Script</A></H3>
<P>
-<A NAME="IDX1153"></A>
+<A NAME="IDX1160"></A>
</P>
<P>
<LI>
-A translator could - voluntarily or inadvertantly - use backquotes
+A translator could - voluntarily or inadvertently - use backquotes
<CODE>"`...`"</CODE> or dollar-parentheses <CODE>"$(...)"</CODE> in her translations.
The enclosed strings would be executed as command lists by the shell.
</OL>
</P>
-<H3><A NAME="SEC263" HREF="gettext_toc.html#TOC263">15.5.4 Python</A></H3>
+<H3><A NAME="SEC265" HREF="gettext_toc.html#TOC265">15.5.4 Python</A></H3>
<P>
-<A NAME="IDX1154"></A>
+<A NAME="IDX1161"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC264" HREF="gettext_toc.html#TOC264">15.5.5 GNU clisp - Common Lisp</A></H3>
+<H3><A NAME="SEC266" HREF="gettext_toc.html#TOC266">15.5.5 GNU clisp - Common Lisp</A></H3>
<P>
-<A NAME="IDX1155"></A>
-<A NAME="IDX1156"></A>
-<A NAME="IDX1157"></A>
+<A NAME="IDX1162"></A>
+<A NAME="IDX1163"></A>
+<A NAME="IDX1164"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC265" HREF="gettext_toc.html#TOC265">15.5.6 GNU clisp C sources</A></H3>
+<H3><A NAME="SEC267" HREF="gettext_toc.html#TOC267">15.5.6 GNU clisp C sources</A></H3>
<P>
-<A NAME="IDX1158"></A>
+<A NAME="IDX1165"></A>
</P>
<DL COMPACT>
-<H3><A NAME="SEC266" HREF="gettext_toc.html#TOC266">15.5.7 Emacs Lisp</A></H3>
+<H3><A NAME="SEC268" HREF="gettext_toc.html#TOC268">15.5.7 Emacs Lisp</A></H3>
<P>
-<A NAME="IDX1159"></A>
+<A NAME="IDX1166"></A>
</P>
<DL COMPACT>
-<H3><A NAME="SEC267" HREF="gettext_toc.html#TOC267">15.5.8 librep</A></H3>
+<H3><A NAME="SEC269" HREF="gettext_toc.html#TOC269">15.5.8 librep</A></H3>
<P>
-<A NAME="IDX1160"></A>
+<A NAME="IDX1167"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC268" HREF="gettext_toc.html#TOC268">15.5.9 GNU guile - Scheme</A></H3>
+<H3><A NAME="SEC270" HREF="gettext_toc.html#TOC270">15.5.9 GNU guile - Scheme</A></H3>
<P>
-<A NAME="IDX1161"></A>
-<A NAME="IDX1162"></A>
+<A NAME="IDX1168"></A>
+<A NAME="IDX1169"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC269" HREF="gettext_toc.html#TOC269">15.5.10 GNU Smalltalk</A></H3>
+<H3><A NAME="SEC271" HREF="gettext_toc.html#TOC271">15.5.10 GNU Smalltalk</A></H3>
<P>
-<A NAME="IDX1163"></A>
+<A NAME="IDX1170"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC270" HREF="gettext_toc.html#TOC270">15.5.11 Java</A></H3>
+<H3><A NAME="SEC272" HREF="gettext_toc.html#TOC272">15.5.11 Java</A></H3>
<P>
-<A NAME="IDX1164"></A>
+<A NAME="IDX1171"></A>
</P>
<DL COMPACT>
This has the advantage of having the <CODE>ngettext</CODE> function for plural
handling.
-<A NAME="IDX1165"></A>
+<A NAME="IDX1172"></A>
To use this API, one needs the <CODE>libintl.jar</CODE> file which is part of
the GNU gettext package and distributed under the LGPL.
</OL>
</P>
-<H3><A NAME="SEC271" HREF="gettext_toc.html#TOC271">15.5.12 C#</A></H3>
+<H3><A NAME="SEC273" HREF="gettext_toc.html#TOC273">15.5.12 C#</A></H3>
<P>
-<A NAME="IDX1166"></A>
+<A NAME="IDX1173"></A>
</P>
<DL COMPACT>
The <CODE>GetPluralString</CODE> function returns a string translation with plural
handling, like the <CODE>ngettext</CODE> function in C.
-<A NAME="IDX1167"></A>
+<A NAME="IDX1174"></A>
To use this API, one needs the <CODE>GNU.Gettext.dll</CODE> file which is part of
the GNU gettext package and distributed under the LGPL.
</OL>
</P>
-<H3><A NAME="SEC272" HREF="gettext_toc.html#TOC272">15.5.13 GNU awk</A></H3>
+<H3><A NAME="SEC274" HREF="gettext_toc.html#TOC274">15.5.13 GNU awk</A></H3>
<P>
-<A NAME="IDX1168"></A>
-<A NAME="IDX1169"></A>
+<A NAME="IDX1175"></A>
+<A NAME="IDX1176"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC273" HREF="gettext_toc.html#TOC273">15.5.14 Pascal - Free Pascal Compiler</A></H3>
+<H3><A NAME="SEC275" HREF="gettext_toc.html#TOC275">15.5.14 Pascal - Free Pascal Compiler</A></H3>
<P>
-<A NAME="IDX1170"></A>
-<A NAME="IDX1171"></A>
-<A NAME="IDX1172"></A>
+<A NAME="IDX1177"></A>
+<A NAME="IDX1178"></A>
+<A NAME="IDX1179"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC274" HREF="gettext_toc.html#TOC274">15.5.15 wxWidgets library</A></H3>
+<H3><A NAME="SEC276" HREF="gettext_toc.html#TOC276">15.5.15 wxWidgets library</A></H3>
<P>
-<A NAME="IDX1173"></A>
+<A NAME="IDX1180"></A>
</P>
<DL COMPACT>
-<H3><A NAME="SEC275" HREF="gettext_toc.html#TOC275">15.5.16 YCP - YaST2 scripting language</A></H3>
+<H3><A NAME="SEC277" HREF="gettext_toc.html#TOC277">15.5.16 YCP - YaST2 scripting language</A></H3>
<P>
-<A NAME="IDX1174"></A>
-<A NAME="IDX1175"></A>
+<A NAME="IDX1181"></A>
+<A NAME="IDX1182"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC276" HREF="gettext_toc.html#TOC276">15.5.17 Tcl - Tk's scripting language</A></H3>
+<H3><A NAME="SEC278" HREF="gettext_toc.html#TOC278">15.5.17 Tcl - Tk's scripting language</A></H3>
<P>
-<A NAME="IDX1176"></A>
-<A NAME="IDX1177"></A>
+<A NAME="IDX1183"></A>
+<A NAME="IDX1184"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC277" HREF="gettext_toc.html#TOC277">15.5.18 Perl</A></H3>
+<H3><A NAME="SEC279" HREF="gettext_toc.html#TOC279">15.5.18 Perl</A></H3>
<P>
-<A NAME="IDX1178"></A>
+<A NAME="IDX1185"></A>
</P>
<DL COMPACT>
</P>
<P>
-<A NAME="IDX1179"></A>
+<A NAME="IDX1186"></A>
</P>
<P>
-<H4><A NAME="SEC278" HREF="gettext_toc.html#TOC278">15.5.18.1 General Problems Parsing Perl Code</A></H4>
+<H4><A NAME="SEC280" HREF="gettext_toc.html#TOC280">15.5.18.1 General Problems Parsing Perl Code</A></H4>
<P>
It is often heard that only Perl can parse Perl. This is not true.
</P>
-<H4><A NAME="SEC279" HREF="gettext_toc.html#TOC279">15.5.18.2 Which keywords will xgettext look for?</A></H4>
+<H4><A NAME="SEC281" HREF="gettext_toc.html#TOC281">15.5.18.2 Which keywords will xgettext look for?</A></H4>
<P>
-<A NAME="IDX1180"></A>
+<A NAME="IDX1187"></A>
</P>
<P>
-<H4><A NAME="SEC280" HREF="gettext_toc.html#TOC280">15.5.18.3 How to Extract Hash Keys</A></H4>
+<H4><A NAME="SEC282" HREF="gettext_toc.html#TOC282">15.5.18.3 How to Extract Hash Keys</A></H4>
<P>
-<A NAME="IDX1181"></A>
+<A NAME="IDX1188"></A>
</P>
<P>
<P>
The exact rule is: You can omit the surrounding quotes, when the hash
-key is a valid C (!) identifier, i. e. when it starts with an
+key is a valid C (!) identifier, i.e. when it starts with an
underscore or an ASCII letter and is followed by an arbitrary number
of underscores, ASCII letters or digits. Other Unicode characters
are <EM>not</EM> allowed, regardless of the <CODE>use utf8</CODE> pragma.
</P>
-<H4><A NAME="SEC281" HREF="gettext_toc.html#TOC281">15.5.18.4 What are Strings And Quote-like Expressions?</A></H4>
+<H4><A NAME="SEC283" HREF="gettext_toc.html#TOC283">15.5.18.4 What are Strings And Quote-like Expressions?</A></H4>
<P>
-<A NAME="IDX1182"></A>
+<A NAME="IDX1189"></A>
</P>
<P>
-<H4><A NAME="SEC282" HREF="gettext_toc.html#TOC282">15.5.18.5 Invalid Uses Of String Interpolation</A></H4>
+<H4><A NAME="SEC284" HREF="gettext_toc.html#TOC284">15.5.18.5 Invalid Uses Of String Interpolation</A></H4>
<P>
-<A NAME="IDX1183"></A>
+<A NAME="IDX1190"></A>
</P>
<P>
</P>
-<H4><A NAME="SEC283" HREF="gettext_toc.html#TOC283">15.5.18.6 Valid Uses Of String Interpolation</A></H4>
+<H4><A NAME="SEC285" HREF="gettext_toc.html#TOC285">15.5.18.6 Valid Uses Of String Interpolation</A></H4>
<P>
-<A NAME="IDX1184"></A>
+<A NAME="IDX1191"></A>
</P>
<P>
-<H4><A NAME="SEC284" HREF="gettext_toc.html#TOC284">15.5.18.7 When To Use Parentheses</A></H4>
+<H4><A NAME="SEC286" HREF="gettext_toc.html#TOC286">15.5.18.7 When To Use Parentheses</A></H4>
<P>
-<A NAME="IDX1185"></A>
+<A NAME="IDX1192"></A>
</P>
<P>
In Perl, parentheses around function arguments are mostly optional.
<CODE>xgettext</CODE> will always assume that all
-recognized keywords (except for hashs and hash references) are names
+recognized keywords (except for hashes and hash references) are names
of properly prototyped functions, and will (hopefully) only require
parentheses where Perl itself requires them. All constructs in the
following example are therefore ok to use:
-<H4><A NAME="SEC285" HREF="gettext_toc.html#TOC285">15.5.18.8 How To Grok with Long Lines</A></H4>
+<H4><A NAME="SEC287" HREF="gettext_toc.html#TOC287">15.5.18.8 How To Grok with Long Lines</A></H4>
<P>
-<A NAME="IDX1186"></A>
+<A NAME="IDX1193"></A>
</P>
<P>
</PRE>
<P>
-Please do not forget, that the line breaks are real, i. e. they
+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.
</P>
-<H4><A NAME="SEC286" HREF="gettext_toc.html#TOC286">15.5.18.9 Bugs, Pitfalls, And Things That Do Not Work</A></H4>
+<H4><A NAME="SEC288" HREF="gettext_toc.html#TOC288">15.5.18.9 Bugs, Pitfalls, And Things That Do Not Work</A></H4>
<P>
-<A NAME="IDX1187"></A>
+<A NAME="IDX1194"></A>
</P>
<P>
</P>
-<H3><A NAME="SEC287" HREF="gettext_toc.html#TOC287">15.5.19 PHP Hypertext Preprocessor</A></H3>
+<H3><A NAME="SEC289" HREF="gettext_toc.html#TOC289">15.5.19 PHP Hypertext Preprocessor</A></H3>
<P>
-<A NAME="IDX1188"></A>
+<A NAME="IDX1195"></A>
</P>
<DL COMPACT>
</P>
-<H3><A NAME="SEC288" HREF="gettext_toc.html#TOC288">15.5.20 Pike</A></H3>
+<H3><A NAME="SEC290" HREF="gettext_toc.html#TOC290">15.5.20 Pike</A></H3>
<P>
-<A NAME="IDX1189"></A>
+<A NAME="IDX1196"></A>
</P>
<DL COMPACT>
-<H3><A NAME="SEC289" HREF="gettext_toc.html#TOC289">15.5.21 GNU Compiler Collection sources</A></H3>
+<H3><A NAME="SEC291" HREF="gettext_toc.html#TOC291">15.5.21 GNU Compiler Collection sources</A></H3>
<P>
-<A NAME="IDX1190"></A>
+<A NAME="IDX1197"></A>
</P>
<DL COMPACT>
-<H2><A NAME="SEC290" HREF="gettext_toc.html#TOC290">15.6 Internationalizable Data</A></H2>
+<H2><A NAME="SEC292" HREF="gettext_toc.html#TOC292">15.6 Internationalizable Data</A></H2>
<P>
Here is a list of other data formats which can be internationalized
-<H3><A NAME="SEC291" HREF="gettext_toc.html#TOC291">15.6.1 POT - Portable Object Template</A></H3>
+<H3><A NAME="SEC293" HREF="gettext_toc.html#TOC293">15.6.1 POT - Portable Object Template</A></H3>
<DL COMPACT>
-<H3><A NAME="SEC292" HREF="gettext_toc.html#TOC292">15.6.2 Resource String Table</A></H3>
+<H3><A NAME="SEC294" HREF="gettext_toc.html#TOC294">15.6.2 Resource String Table</A></H3>
<P>
-<A NAME="IDX1191"></A>
+<A NAME="IDX1198"></A>
</P>
<DL COMPACT>
-<H3><A NAME="SEC293" HREF="gettext_toc.html#TOC293">15.6.3 Glade - GNOME user interface description</A></H3>
+<H3><A NAME="SEC295" HREF="gettext_toc.html#TOC295">15.6.3 Glade - GNOME user interface description</A></H3>
<DL COMPACT>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 16 Concluding Remarks</TITLE>
<P><HR><P>
-<H1><A NAME="SEC294" HREF="gettext_toc.html#TOC294">16 Concluding Remarks</A></H1>
+<H1><A NAME="SEC296" HREF="gettext_toc.html#TOC296">16 Concluding Remarks</A></H1>
<P>
We would like to conclude this GNU <CODE>gettext</CODE> manual by presenting
-<H2><A NAME="SEC295" HREF="gettext_toc.html#TOC295">16.1 History of GNU <CODE>gettext</CODE></A></H2>
+<H2><A NAME="SEC297" HREF="gettext_toc.html#TOC297">16.1 History of GNU <CODE>gettext</CODE></A></H2>
<P>
-<A NAME="IDX1192"></A>
+<A NAME="IDX1199"></A>
</P>
<P>
time, Roland wanted to get GNU <CODE>libc</CODE> internationalized, and
got Ulrich Drepper involved in that project. Instead of starting
from <CODE>glocale</CODE>, Ulrich rewrote something from scratch, but
-more conformant to the set of guidelines who emerged out of the
+more conforming to the set of guidelines who emerged out of the
<CODE>glocale</CODE> effort. Then, Ulrich got people from the previous
forum to involve themselves into this new project, and the switch
from <CODE>glocale</CODE> to what was first named <CODE>msgutils</CODE>, renamed
</P>
-<H2><A NAME="SEC296" HREF="gettext_toc.html#TOC296">16.2 Related Readings</A></H2>
+<H2><A NAME="SEC298" HREF="gettext_toc.html#TOC298">16.2 Related Readings</A></H2>
<P>
-<A NAME="IDX1193"></A>
-<A NAME="IDX1194"></A>
+<A NAME="IDX1200"></A>
+<A NAME="IDX1201"></A>
</P>
<P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - A Language Codes</TITLE>
<P><HR><P>
-<H1><A NAME="SEC297" HREF="gettext_toc.html#TOC297">A Language Codes</A></H1>
+<H1><A NAME="SEC299" HREF="gettext_toc.html#TOC299">A Language Codes</A></H1>
<P>
-<A NAME="IDX1195"></A>
-<A NAME="IDX1196"></A>
+<A NAME="IDX1202"></A>
+<A NAME="IDX1203"></A>
</P>
<P>
-The ISO 639 standard defines two character codes for many languages.
+The ISO 639 standard defines two-letter codes for many languages, and
+three-letter codes for more rarely used languages.
All abbreviations for languages used in the Translation Project should
come from this standard.
</P>
+
+
+
+<H2><A NAME="SEC300" HREF="gettext_toc.html#TOC300">A.1 Usual Language Codes</A></H2>
+
+<P>
+For the commonly used languages, the ISO 639-1 standard defines two-letter
+codes.
+
+</P>
<DL COMPACT>
<DT><SAMP>‘aa’</SAMP>
<DT><SAMP>‘ab’</SAMP>
<DD>
Abkhazian.
+<DT><SAMP>‘ad’</SAMP>
+<DD>
+Adangme.
<DT><SAMP>‘ae’</SAMP>
<DD>
Avestan.
German.
<DT><SAMP>‘dv’</SAMP>
<DD>
-Divehi.
+Divehi; Maldivian.
<DT><SAMP>‘dz’</SAMP>
<DD>
Dzongkha; Bhutani.
French.
<DT><SAMP>‘fy’</SAMP>
<DD>
-Frisian.
+Western Frisian.
<DT><SAMP>‘ga’</SAMP>
<DD>
Irish.
Scots; Gaelic.
<DT><SAMP>‘gl’</SAMP>
<DD>
-Gallegan; Galician.
+Galician.
<DT><SAMP>‘gn’</SAMP>
<DD>
Guarani.
Manx.
<DT><SAMP>‘ha’</SAMP>
<DD>
-Hausa (?).
+Hausa.
<DT><SAMP>‘he’</SAMP>
<DD>
Hebrew (formerly iw).
Sichuan Yi.
<DT><SAMP>‘ik’</SAMP>
<DD>
-Inupiak.
+Inupiak; Inupiaq.
<DT><SAMP>‘io’</SAMP>
<DD>
Ido.
Kongo.
<DT><SAMP>‘ki’</SAMP>
<DD>
-Kikuyu.
+Kikuyu; Gikuyu.
<DT><SAMP>‘kj’</SAMP>
<DD>
-Kuanyama.
+Kuanyama; Kwanyama.
<DT><SAMP>‘kk’</SAMP>
<DD>
Kazakh.
Latin.
<DT><SAMP>‘lb’</SAMP>
<DD>
-Letzeburgesch.
+Letzeburgesch; Luxembourgish.
<DT><SAMP>‘lg’</SAMP>
<DD>
Ganda.
Malagasy.
<DT><SAMP>‘mh’</SAMP>
<DD>
-Marshall.
+Marshallese.
<DT><SAMP>‘mi’</SAMP>
<DD>
Maori.
Ndebele, South.
<DT><SAMP>‘nv’</SAMP>
<DD>
-Navajo.
+Navajo; Navaho.
<DT><SAMP>‘ny’</SAMP>
<DD>
Chichewa; Nyanja.
Sango; Sangro.
<DT><SAMP>‘si’</SAMP>
<DD>
-Sinhalese.
+Sinhala; Sinhalese.
<DT><SAMP>‘sk’</SAMP>
<DD>
Slovak.
Tswana; Setswana.
<DT><SAMP>‘to’</SAMP>
<DD>
-Tonga (?).
+Tonga.
<DT><SAMP>‘tr’</SAMP>
<DD>
Turkish.
Zulu.
</DL>
+
+
+<H2><A NAME="SEC301" HREF="gettext_toc.html#TOC301">A.2 Rare Language Codes</A></H2>
+
+<P>
+For rarely used languages, the ISO 639-2 standard defines three-letter
+codes. Here is the current list, reduced to only living languages with at least
+one million of speakers.
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>‘ace’</SAMP>
+<DD>
+Achinese.
+<DT><SAMP>‘awa’</SAMP>
+<DD>
+Awadhi.
+<DT><SAMP>‘bad’</SAMP>
+<DD>
+Banda.
+<DT><SAMP>‘bal’</SAMP>
+<DD>
+Baluchi.
+<DT><SAMP>‘ban’</SAMP>
+<DD>
+Balinese.
+<DT><SAMP>‘bem’</SAMP>
+<DD>
+Bemba.
+<DT><SAMP>‘bho’</SAMP>
+<DD>
+Bhojpuri.
+<DT><SAMP>‘bik’</SAMP>
+<DD>
+Bikol.
+<DT><SAMP>‘bin’</SAMP>
+<DD>
+Bini.
+<DT><SAMP>‘btk’</SAMP>
+<DD>
+Batak (Indonesia).
+<DT><SAMP>‘bug’</SAMP>
+<DD>
+Buginese.
+<DT><SAMP>‘ceb’</SAMP>
+<DD>
+Cebuano.
+<DT><SAMP>‘din’</SAMP>
+<DD>
+Dinka.
+<DT><SAMP>‘doi’</SAMP>
+<DD>
+Dogri.
+<DT><SAMP>‘fil’</SAMP>
+<DD>
+Filipino; Pilipino.
+<DT><SAMP>‘fon’</SAMP>
+<DD>
+Fon.
+<DT><SAMP>‘gon’</SAMP>
+<DD>
+Gondi.
+<DT><SAMP>‘gsw’</SAMP>
+<DD>
+Alemani; Swiss German.
+<DT><SAMP>‘hil’</SAMP>
+<DD>
+Hiligaynon.
+<DT><SAMP>‘hmn’</SAMP>
+<DD>
+Hmong.
+<DT><SAMP>‘ilo’</SAMP>
+<DD>
+Iloko.
+<DT><SAMP>‘kab’</SAMP>
+<DD>
+Kabyle.
+<DT><SAMP>‘kam’</SAMP>
+<DD>
+Kamba.
+<DT><SAMP>‘kbd’</SAMP>
+<DD>
+Kabardian.
+<DT><SAMP>‘kmb’</SAMP>
+<DD>
+Kimbundu.
+<DT><SAMP>‘kok’</SAMP>
+<DD>
+Konkani.
+<DT><SAMP>‘kru’</SAMP>
+<DD>
+Kurukh.
+<DT><SAMP>‘lua’</SAMP>
+<DD>
+Luba-Lulua.
+<DT><SAMP>‘luo’</SAMP>
+<DD>
+Luo (Kenya and Tanzania).
+<DT><SAMP>‘mad’</SAMP>
+<DD>
+Madurese.
+<DT><SAMP>‘mag’</SAMP>
+<DD>
+Magahi.
+<DT><SAMP>‘mai’</SAMP>
+<DD>
+Maithili.
+<DT><SAMP>‘mak’</SAMP>
+<DD>
+Makasar.
+<DT><SAMP>‘man’</SAMP>
+<DD>
+Mandingo.
+<DT><SAMP>‘men’</SAMP>
+<DD>
+Mende.
+<DT><SAMP>‘min’</SAMP>
+<DD>
+Minangkabau.
+<DT><SAMP>‘mni’</SAMP>
+<DD>
+Manipuri.
+<DT><SAMP>‘mos’</SAMP>
+<DD>
+Mossi.
+<DT><SAMP>‘mwr’</SAMP>
+<DD>
+Marwari.
+<DT><SAMP>‘nap’</SAMP>
+<DD>
+Neapolitan.
+<DT><SAMP>‘nso’</SAMP>
+<DD>
+Pedi; Sepedi; Northern Sotho.
+<DT><SAMP>‘nym’</SAMP>
+<DD>
+Nyamwezi.
+<DT><SAMP>‘nyn’</SAMP>
+<DD>
+Nyankole.
+<DT><SAMP>‘pag’</SAMP>
+<DD>
+Pangasinan.
+<DT><SAMP>‘pam’</SAMP>
+<DD>
+Pampanga.
+<DT><SAMP>‘raj’</SAMP>
+<DD>
+Rajasthani.
+<DT><SAMP>‘sas’</SAMP>
+<DD>
+Sasak.
+<DT><SAMP>‘sat’</SAMP>
+<DD>
+Santali.
+<DT><SAMP>‘scn’</SAMP>
+<DD>
+Sicilian.
+<DT><SAMP>‘shn’</SAMP>
+<DD>
+Shan.
+<DT><SAMP>‘sid’</SAMP>
+<DD>
+Sidamo.
+<DT><SAMP>‘srr’</SAMP>
+<DD>
+Serer.
+<DT><SAMP>‘suk’</SAMP>
+<DD>
+Sukuma.
+<DT><SAMP>‘sus’</SAMP>
+<DD>
+Susu.
+<DT><SAMP>‘tem’</SAMP>
+<DD>
+Timne.
+<DT><SAMP>‘tiv’</SAMP>
+<DD>
+Tiv.
+<DT><SAMP>‘tum’</SAMP>
+<DD>
+Tumbuka.
+<DT><SAMP>‘umb’</SAMP>
+<DD>
+Umbundu.
+<DT><SAMP>‘wal’</SAMP>
+<DD>
+Walamo.
+<DT><SAMP>‘war’</SAMP>
+<DD>
+Waray.
+<DT><SAMP>‘yao’</SAMP>
+<DD>
+Yao.
+</DL>
+
<P><HR><P>
Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_16.html">previous</A>, <A HREF="gettext_18.html">next</A>, <A HREF="gettext_25.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>.
</BODY>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - B Country Codes</TITLE>
<P><HR><P>
-<H1><A NAME="SEC298" HREF="gettext_toc.html#TOC298">B Country Codes</A></H1>
+<H1><A NAME="SEC302" HREF="gettext_toc.html#TOC302">B Country Codes</A></H1>
<P>
-<A NAME="IDX1197"></A>
-<A NAME="IDX1198"></A>
+<A NAME="IDX1204"></A>
+<A NAME="IDX1205"></A>
</P>
<P>
<DT><SAMP>‘AW’</SAMP>
<DD>
Aruba.
+<DT><SAMP>‘AX’</SAMP>
+<DD>
+Aaland Islands.
<DT><SAMP>‘AZ’</SAMP>
<DD>
Azerbaijan.
Congo (Dem. Rep.).
<DT><SAMP>‘CF’</SAMP>
<DD>
-Central African Rep..
+Central African Republic.
<DT><SAMP>‘CG’</SAMP>
<DD>
Congo (Rep.).
<DT><SAMP>‘CR’</SAMP>
<DD>
Costa Rica.
-<DT><SAMP>‘CS’</SAMP>
-<DD>
-Serbia and Montenegro.
<DT><SAMP>‘CU’</SAMP>
<DD>
Cuba.
Gabon.
<DT><SAMP>‘GB’</SAMP>
<DD>
-Britain (UK).
+Britain (United Kingdom).
<DT><SAMP>‘GD’</SAMP>
<DD>
Grenada.
<DT><SAMP>‘GF’</SAMP>
<DD>
French Guiana.
+<DT><SAMP>‘GG’</SAMP>
+<DD>
+Guernsey.
<DT><SAMP>‘GH’</SAMP>
<DD>
Ghana.
<DT><SAMP>‘IL’</SAMP>
<DD>
Israel.
+<DT><SAMP>‘IM’</SAMP>
+<DD>
+Isle of Man.
<DT><SAMP>‘IN’</SAMP>
<DD>
India.
<DT><SAMP>‘IT’</SAMP>
<DD>
Italy.
+<DT><SAMP>‘JE’</SAMP>
+<DD>
+Jersey.
<DT><SAMP>‘JM’</SAMP>
<DD>
Jamaica.
<DT><SAMP>‘MD’</SAMP>
<DD>
Moldova.
+<DT><SAMP>‘ME’</SAMP>
+<DD>
+Montenegro.
<DT><SAMP>‘MG’</SAMP>
<DD>
Madagascar.
<DT><SAMP>‘RO’</SAMP>
<DD>
Romania.
+<DT><SAMP>‘RS’</SAMP>
+<DD>
+Serbia.
<DT><SAMP>‘RU’</SAMP>
<DD>
Russia.
Vatican City.
<DT><SAMP>‘VC’</SAMP>
<DD>
-St Vincent.
+St Vincent and the Grenadines.
<DT><SAMP>‘VE’</SAMP>
<DD>
Venezuela.
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - C Licenses</TITLE>
<P><HR><P>
-<H1><A NAME="SEC299" HREF="gettext_toc.html#TOC299">C Licenses</A></H1>
+<H1><A NAME="SEC303" HREF="gettext_toc.html#TOC303">C Licenses</A></H1>
<P>
-<A NAME="IDX1199"></A>
+<A NAME="IDX1206"></A>
</P>
<P>
The <CODE>libintl</CODE> and <CODE>libasprintf</CODE> libraries are covered by the
GNU Library General Public License (LGPL).
-A copy of the license is included in section <A HREF="gettext_19.html#SEC303">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A>.
+A copy of the license is included in section <A HREF="gettext_19.html#SEC307">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A>.
<LI>
The executable programs of this package and the <CODE>libgettextpo</CODE> library
are covered by the GNU General Public License (GPL).
-A copy of the license is included in section <A HREF="gettext_19.html#SEC300">C.1 GNU GENERAL PUBLIC LICENSE</A>.
+A copy of the license is included in section <A HREF="gettext_19.html#SEC304">C.1 GNU GENERAL PUBLIC LICENSE</A>.
<LI>
License, or (at your option) any later version published by the
Free Software Foundation (FSF); with no Invariant Sections, with no
Front-Cover Text, and with no Back-Cover Texts.
-A copy of the license is included in section <A HREF="gettext_19.html#SEC306">C.3 GNU Free Documentation License</A>.
+A copy of the license is included in section <A HREF="gettext_19.html#SEC310">C.3 GNU Free Documentation License</A>.
<BR>
This manual is covered by the GNU GPL. You can redistribute it and/or
modify it under the terms of the GNU General Public License (GPL), either
version 2 of the License, or (at your option) any later version published
by the Free Software Foundation (FSF).
-A copy of the license is included in section <A HREF="gettext_19.html#SEC300">C.1 GNU GENERAL PUBLIC LICENSE</A>.
+A copy of the license is included in section <A HREF="gettext_19.html#SEC304">C.1 GNU GENERAL PUBLIC LICENSE</A>.
</UL>
-<H2><A NAME="SEC300" HREF="gettext_toc.html#TOC300">C.1 GNU GENERAL PUBLIC LICENSE</A></H2>
+<H2><A NAME="SEC304" HREF="gettext_toc.html#TOC304">C.1 GNU GENERAL PUBLIC LICENSE</A></H2>
<P>
-<A NAME="IDX1200"></A>
-<A NAME="IDX1201"></A>
+<A NAME="IDX1207"></A>
+<A NAME="IDX1208"></A>
Version 2, June 1991
</P>
-<H3><A NAME="SEC301" HREF="gettext_toc.html#TOC301">Preamble</A></H3>
+<H3><A NAME="SEC305" HREF="gettext_toc.html#TOC305">Preamble</A></H3>
<P>
The licenses for most software are designed to take away your
-<H3><A NAME="SEC302" HREF="gettext_toc.html#TOC302">Appendix: How to Apply These Terms to Your New Programs</A></H3>
+<H3><A NAME="SEC306" HREF="gettext_toc.html#TOC306">Appendix: How to Apply These Terms to Your New Programs</A></H3>
<P>
If you develop a new program, and you want it to be of the greatest
Public License instead of this License.
-<H2><A NAME="SEC303" HREF="gettext_toc.html#TOC303">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A></H2>
+<H2><A NAME="SEC307" HREF="gettext_toc.html#TOC307">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A></H2>
<P>
-<A NAME="IDX1202"></A>
-<A NAME="IDX1203"></A>
+<A NAME="IDX1209"></A>
+<A NAME="IDX1210"></A>
Version 2.1, February 1999
</P>
-<H3><A NAME="SEC304" HREF="gettext_toc.html#TOC304">Preamble</A></H3>
+<H3><A NAME="SEC308" HREF="gettext_toc.html#TOC308">Preamble</A></H3>
<P>
The licenses for most software are designed to take away your
-<H3><A NAME="SEC305" HREF="gettext_toc.html#TOC305">How to Apply These Terms to Your New Libraries</A></H3>
+<H3><A NAME="SEC309" HREF="gettext_toc.html#TOC309">How to Apply These Terms to Your New Libraries</A></H3>
<P>
If you develop a new library, and you want it to be of the greatest
That's all there is to it!
-<H2><A NAME="SEC306" HREF="gettext_toc.html#TOC306">C.3 GNU Free Documentation License</A></H2>
+<H2><A NAME="SEC310" HREF="gettext_toc.html#TOC310">C.3 GNU Free Documentation License</A></H2>
<P>
-<A NAME="IDX1204"></A>
-<A NAME="IDX1205"></A>
+<A NAME="IDX1211"></A>
+<A NAME="IDX1212"></A>
Version 1.2, November 2002
</P>
-<H3><A NAME="SEC307" HREF="gettext_toc.html#TOC307">ADDENDUM: How to use this License for your documents</A></H3>
+<H3><A NAME="SEC311" HREF="gettext_toc.html#TOC311">ADDENDUM: How to use this License for your documents</A></H3>
<P>
To use this License in a document you have written, include a copy of
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 2 The User's View</TITLE>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - Program Index</TITLE>
<P><HR><P>
-<H1><A NAME="SEC308" HREF="gettext_toc.html#TOC308">Program Index</A></H1>
+<H1><A NAME="SEC312" HREF="gettext_toc.html#TOC312">Program Index</A></H1>
<P>
Jump to:
<P>
<H2><A NAME="pindex_a">a</A></H2>
<DIR>
-<LI><A HREF="gettext_13.html#IDX1089">autopoint</A>
+<LI><A HREF="gettext_13.html#IDX1096">autopoint</A>
</DIR>
<H2><A NAME="pindex_e">e</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1138">envsubst</A>
+<LI><A HREF="gettext_15.html#IDX1145">envsubst</A>
</DIR>
<H2><A NAME="pindex_g">g</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1110">gettext</A>, <A HREF="gettext_15.html#IDX1115">gettext</A>
-<LI><A HREF="gettext_13.html#IDX1054">gettextize</A>
+<LI><A HREF="gettext_15.html#IDX1117">gettext</A>, <A HREF="gettext_15.html#IDX1122">gettext</A>
+<LI><A HREF="gettext_13.html#IDX1060">gettextize</A>
</DIR>
<H2><A NAME="pindex_m">m</A></H2>
<DIR>
-<LI><A HREF="gettext_9.html#IDX778">msgattrib</A>
-<LI><A HREF="gettext_9.html#IDX512">msgcat</A>
-<LI><A HREF="gettext_9.html#IDX764">msgcmp</A>
-<LI><A HREF="gettext_9.html#IDX724">msgcomm</A>
-<LI><A HREF="gettext_9.html#IDX557">msgconv</A>
-<LI><A HREF="gettext_9.html#IDX825">msgen</A>
-<LI><A HREF="gettext_9.html#IDX855">msgexec</A>
-<LI><A HREF="gettext_9.html#IDX642">msgfilter</A>
-<LI><A HREF="gettext_10.html#IDX887">msgfmt</A>
-<LI><A HREF="gettext_9.html#IDX589">msggrep</A>
-<LI><A HREF="gettext_6.html#IDX215">msginit</A>
-<LI><A HREF="gettext_7.html#IDX250">msgmerge</A>
-<LI><A HREF="gettext_10.html#IDX949">msgunfmt</A>
-<LI><A HREF="gettext_9.html#IDX685">msguniq</A>
+<LI><A HREF="gettext_9.html#IDX783">msgattrib</A>
+<LI><A HREF="gettext_9.html#IDX515">msgcat</A>
+<LI><A HREF="gettext_9.html#IDX767">msgcmp</A>
+<LI><A HREF="gettext_9.html#IDX727">msgcomm</A>
+<LI><A HREF="gettext_9.html#IDX560">msgconv</A>
+<LI><A HREF="gettext_9.html#IDX831">msgen</A>
+<LI><A HREF="gettext_9.html#IDX861">msgexec</A>
+<LI><A HREF="gettext_9.html#IDX645">msgfilter</A>
+<LI><A HREF="gettext_10.html#IDX893">msgfmt</A>
+<LI><A HREF="gettext_9.html#IDX592">msggrep</A>
+<LI><A HREF="gettext_6.html#IDX217">msginit</A>
+<LI><A HREF="gettext_7.html#IDX252">msgmerge</A>
+<LI><A HREF="gettext_10.html#IDX955">msgunfmt</A>
+<LI><A HREF="gettext_9.html#IDX688">msguniq</A>
</DIR>
<H2><A NAME="pindex_n">n</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1111">ngettext</A>, <A HREF="gettext_15.html#IDX1127">ngettext</A>
+<LI><A HREF="gettext_15.html#IDX1118">ngettext</A>, <A HREF="gettext_15.html#IDX1134">ngettext</A>
</DIR>
<H2><A NAME="pindex_r">r</A></H2>
<DIR>
-<LI><A HREF="gettext_9.html#IDX660">recode-sr-latin</A>
+<LI><A HREF="gettext_9.html#IDX663">recode-sr-latin</A>
</DIR>
<H2><A NAME="pindex_x">x</A></H2>
<DIR>
-<LI><A HREF="gettext_5.html#IDX141">xgettext</A>
+<LI><A HREF="gettext_5.html#IDX143">xgettext</A>
</DIR>
</P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - Option Index</TITLE>
<P><HR><P>
-<H1><A NAME="SEC309" HREF="gettext_toc.html#TOC309">Option Index</A></H1>
+<H1><A NAME="SEC313" HREF="gettext_toc.html#TOC313">Option Index</A></H1>
<P>
Jump to:
<P>
<H2><A NAME="opindex_-">-</A></H2>
<DIR>
-<LI><A HREF="gettext_5.html#IDX165">--add-comments, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX809">--add-location, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX540">--add-location, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX747">--add-location, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX573">--add-location, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX839">--add-location, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX669">--add-location, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX628">--add-location, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX276">--add-location, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX708">--add-location, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX189">--add-location, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX940">--alignment, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX261">--backup, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX180">--boost, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX158">--c++, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX924">--check, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX932">--check-accelerators, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX930">--check-compatibility, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX928">--check-domain, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX925">--check-format, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX927">--check-header, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX794">--clear-fuzzy, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX796">--clear-obsolete, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX607">--comment, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX255">--compendium, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1057">--copy, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX203">--copyright-holder, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX896">--csharp, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX955">--csharp, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX898">--csharp-resources, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX957">--csharp-resources, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX182">--debug, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX148">--default-domain, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX783">--directory, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX519">--directory, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX768">--directory, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX730">--directory, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX561">--directory, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX829">--directory, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX866">--directory, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX648">--directory, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX891">--directory, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX593">--directory, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX253">--directory, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX690">--directory, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX146">--directory, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1119">--domain, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX599">--domain, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1131">--domain, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1094">--dry-run, <CODE>autopoint</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1063">--dry-run, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX163">--exclude-file, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX654">--expression, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX611">--extended-regexp, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX167">--extract-all, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX609">--extracted-comment, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX656">--file, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX617">--file, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX517">--files-from, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX728">--files-from, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX144">--files-from, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX613">--fixed-strings, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX172">--flag, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1092">--force, <CODE>autopoint</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1059">--force, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX804">--force-po, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX535">--force-po, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX742">--force-po, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX569">--force-po, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX835">--force-po, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX665">--force-po, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX625">--force-po, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX272">--force-po, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX975">--force-po, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX703">--force-po, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX184">--force-po, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX204">--foreign-user, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX159">--from-code, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX799">--fuzzy, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1095">--help, <CODE>autopoint</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1146">--help, <CODE>envsubst</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1123">--help, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1064">--help, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX822">--help, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX554">--help, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX775">--help, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX761">--help, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX586">--help, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX852">--help, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX871">--help, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX682">--help, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX943">--help, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX639">--help, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX236">--help, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX290">--help, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX989">--help, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX721">--help, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1135">--help, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX211">--help, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX619">--ignore-case, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX798">--ignore-file, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX806">--indent, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX537">--indent, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX744">--indent, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX571">--indent, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX837">--indent, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX666">--indent, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX626">--indent, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX274">--indent, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX977">--indent, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX705">--indent, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX186">--indent, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX864">--input, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX646">--input, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX220">--input, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1060">--intl, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX621">--invert-match, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX893">--java, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX953">--java, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX895">--java2, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX161">--join-existing, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX667">--keep-header, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX169">--keyword, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX155">--language, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX524">--less-than, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX734">--less-than, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX910">--locale, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX915">--locale, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX918">--locale, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX227">--locale, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX964">--locale, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX968">--locale, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX971">--locale, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX597">--location, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX526">--more-than, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX736">--more-than, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX601">--msgctxt, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX603">--msgid, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX205">--msgid-bugs-address, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX605">--msgstr, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX207">--msgstr-prefix, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX209">--msgstr-suffix, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX770">--multi-domain, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX266">--multi-domain, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1061">--no-changelog, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX788">--no-fuzzy, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX268">--no-fuzzy-matching, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX941">--no-hash, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX807">--no-location, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX538">--no-location, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX745">--no-location, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX572">--no-location, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX838">--no-location, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX668">--no-location, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX627">--no-location, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX275">--no-location, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX706">--no-location, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX187">--no-location, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX790">--no-obsolete, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX228">--no-translator, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX816">--no-wrap, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX547">--no-wrap, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX754">--no-wrap, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX580">--no-wrap, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX846">--no-wrap, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX676">--no-wrap, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX635">--no-wrap, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX234">--no-wrap, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX283">--no-wrap, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX984">--no-wrap, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX715">--no-wrap, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX195">--no-wrap, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX800">--obsolete, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX759">--omit-header, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX201">--omit-header, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX797">--only-file, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX789">--only-fuzzy, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX791">--only-obsolete, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX150">--output, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX152">--output-dir, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX785">--output-file, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX521">--output-file, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX732">--output-file, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX563">--output-file, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX831">--output-file, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX650">--output-file, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX905">--output-file, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX595">--output-file, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX222">--output-file, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX259">--output-file, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX974">--output-file, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX692">--output-file, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX802">--properties-input, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX530">--properties-input, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX772">--properties-input, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX740">--properties-input, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX567">--properties-input, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX833">--properties-input, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX868">--properties-input, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX663">--properties-input, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX921">--properties-input, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX623">--properties-input, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX224">--properties-input, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX270">--properties-input, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX698">--properties-input, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX812">--properties-output, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX543">--properties-output, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX750">--properties-output, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX576">--properties-output, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX842">--properties-output, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX672">--properties-output, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX631">--properties-output, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX230">--properties-output, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX279">--properties-output, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX980">--properties-output, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX711">--properties-output, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX191">--properties-output, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX902">--qt, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX178">--qt, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX658">--quiet, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX296">--quiet, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX615">--regexp=, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX694">--repeated, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX908">--resource, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX913">--resource, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX962">--resource, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX966">--resource, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX793">--set-fuzzy, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX795">--set-obsolete, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX659">--silent, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX297">--silent, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX820">--sort-by-file, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX552">--sort-by-file, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX758">--sort-by-file, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX584">--sort-by-file, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX850">--sort-by-file, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX680">--sort-by-file, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX637">--sort-by-file, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX288">--sort-by-file, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX719">--sort-by-file, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX200">--sort-by-file, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX818">--sort-output, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX549">--sort-output, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX756">--sort-output, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX582">--sort-output, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX848">--sort-output, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX678">--sort-output, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX636">--sort-output, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX285">--sort-output, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX986">--sort-output, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX717">--sort-output, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX197">--sort-output, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX946">--statistics, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX810">--strict, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX541">--strict, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX748">--strict, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX574">--strict, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX840">--strict, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX670">--strict, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX906">--strict, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX629">--strict, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX277">--strict, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX978">--strict, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX709">--strict, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX190">--strict, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX803">--stringtable-input, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX531">--stringtable-input, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX773">--stringtable-input, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX741">--stringtable-input, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX834">--stringtable-input, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX869">--stringtable-input, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX664">--stringtable-input, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX922">--stringtable-input, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX624">--stringtable-input, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX225">--stringtable-input, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX271">--stringtable-input, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX568">--stringtable-input, <CODE>msgonv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX699">--stringtable-input, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX813">--stringtable-output, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX544">--stringtable-output, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX751">--stringtable-output, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX577">--stringtable-output, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX843">--stringtable-output, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX673">--stringtable-output, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX632">--stringtable-output, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX231">--stringtable-output, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX280">--stringtable-output, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX981">--stringtable-output, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX712">--stringtable-output, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX192">--stringtable-output, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX263">--suffix, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX900">--tcl, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX959">--tcl, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX533">--to-code, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX565">--to-code, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX701">--to-code, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX786">--translated, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX176">--trigraphs, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX528">--unique, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX738">--unique, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX696">--unique, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX787">--untranslated, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX257">--update, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX534">--use-first, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX702">--use-first, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX937">--use-fuzzy, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1144">--variables, <CODE>envsubst</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX948">--verbose, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX294">--verbose, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX993">--verbose, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1096">--version, <CODE>autopoint</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1148">--version, <CODE>envsubst</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1126">--version, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1065">--version, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX824">--version, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX556">--version, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX777">--version, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX763">--version, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX588">--version, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX854">--version, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX873">--version, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX684">--version, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX945">--version, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX641">--version, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX238">--version, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX292">--version, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX991">--version, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX723">--version, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1137">--version, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX213">--version, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX815">--width, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX546">--width, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX753">--width, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX579">--width, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX845">--width, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX675">--width, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX634">--width, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX233">--width, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX282">--width, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX983">--width, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX714">--width, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX194">--width, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX523">-<, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX733">-<, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX525">->, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX735">->, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX939">-a, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX166">-a, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1056">-c, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX929">-C, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX923">-c, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX606">-C, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX254">-C, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX157">-C, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX164">-c, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1093">-d, <CODE>autopoint</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1118">-d, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1062">-d, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX782">-D, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX518">-D, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX767">-D, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX729">-D, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX560">-D, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX828">-D, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX865">-D, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX647">-D, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX911">-d, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX916">-d, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX919">-d, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX890">-D, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX592">-D, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX252">-D, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX969">-d, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX972">-d, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX689">-D, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX693">-d, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1130">-d, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX145">-D, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX147">-d, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1120">-e, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1121">-E, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX653">-e, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX610">-E, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX614">-e, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1132">-e, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1133">-E, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1091">-f, <CODE>autopoint</CODE> option</A>
-<LI><A HREF="gettext_13.html#IDX1058">-f, <CODE>gettextize</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX819">-F, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX516">-f, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX551">-F, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX757">-F, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX727">-f, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX583">-F, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX849">-F, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX679">-F, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX655">-f, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX936">-f, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX616">-f, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX612">-F, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX287">-F, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX718">-F, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX199">-F, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX143">-f, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1145">-h, <CODE>envsubst</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1122">-h, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX821">-h, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX553">-h, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX774">-h, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX760">-h, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX585">-h, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX851">-h, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX870">-h, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX681">-h, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX942">-h, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX638">-h, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX235">-h, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX289">-h, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX988">-h, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX720">-h, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1134">-h, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX210">-h, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX805">-i, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX536">-i, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX743">-i, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX570">-i, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX836">-i, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX863">-i, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX645">-i, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX618">-i, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX219">-i, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX273">-i, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX976">-i, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX704">-i, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX185">-i, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX892">-j, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX600">-J, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX952">-j, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX160">-j, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX602">-K, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX168">-k, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX909">-l, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX914">-l, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX917">-l, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX226">-l, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX963">-l, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX967">-l, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX970">-l, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX154">-L, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX769">-m, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX598">-M, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX265">-m, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX208">-M, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX206">-m, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1124">-n, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX808">-n, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX539">-n, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX746">-n, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX657">-n, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX596">-N, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX267">-N, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX707">-n, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX188">-n, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX784">-o, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX520">-o, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX731">-o, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX562">-o, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX830">-o, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX649">-o, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX904">-o, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX594">-o, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX221">-o, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX258">-o, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX973">-o, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX691">-o, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX149">-o, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX801">-P, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX811">-p, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX529">-P, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX542">-p, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX771">-P, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX739">-P, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX749">-p, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX566">-P, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX575">-p, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX832">-P, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX841">-p, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX867">-P, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX662">-P, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX671">-p, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX920">-P, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX630">-p, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX622">-P, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX223">-P, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX229">-p, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX278">-p, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX269">-P, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX979">-p, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX710">-p, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX697">-P, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX151">-p, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX295">-q, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX907">-r, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX912">-r, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX961">-r, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX965">-r, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX817">-s, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX548">-s, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX755">-s, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX581">-s, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX847">-s, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX677">-s, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX284">-s, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX985">-s, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX716">-s, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX196">-s, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX532">-t, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX564">-t, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX604">-T, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX700">-t, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX175">-T, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX527">-u, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX737">-u, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX256">-U, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX695">-u, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1143">-v, <CODE>envsubst</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1147">-V, <CODE>envsubst</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1125">-V, <CODE>gettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX823">-V, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX555">-V, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX776">-V, <CODE>msgcmp</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX762">-V, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX587">-V, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX853">-V, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX872">-V, <CODE>msgexec</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX683">-V, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX944">-V, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX947">-v, <CODE>msgfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX640">-V, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX620">-v, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX237">-V, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX293">-v, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX291">-V, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX992">-v, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX990">-V, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX722">-V, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_15.html#IDX1136">-V, <CODE>ngettext</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX212">-V, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX814">-w, <CODE>msgattrib</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX545">-w, <CODE>msgcat</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX752">-w, <CODE>msgcomm</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX578">-w, <CODE>msgconv</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX844">-w, <CODE>msgen</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX674">-w, <CODE>msgfilter</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX633">-w, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_6.html#IDX232">-w, <CODE>msginit</CODE> option</A>
-<LI><A HREF="gettext_7.html#IDX281">-w, <CODE>msgmerge</CODE> option</A>
-<LI><A HREF="gettext_10.html#IDX982">-w, <CODE>msgunfmt</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX713">-w, <CODE>msguniq</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX193">-w, <CODE>xgettext</CODE> option</A>
-<LI><A HREF="gettext_9.html#IDX608">-X, <CODE>msggrep</CODE> option</A>
-<LI><A HREF="gettext_5.html#IDX162">-x, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX167">--add-comments, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX815">--add-location, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX543">--add-location, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX750">--add-location, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX576">--add-location, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX845">--add-location, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX672">--add-location, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX631">--add-location, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX279">--add-location, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX711">--add-location, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX191">--add-location, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX946">--alignment, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX263">--backup, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX182">--boost, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX160">--c++, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX930">--check, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX938">--check-accelerators, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX936">--check-compatibility, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX934">--check-domain, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX931">--check-format, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX933">--check-header, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX799">--clear-fuzzy, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX801">--clear-obsolete, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX802">--clear-previous, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX610">--comment, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX257">--compendium, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX205">--copyright-holder, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX902">--csharp, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX961">--csharp, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX904">--csharp-resources, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX963">--csharp-resources, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX184">--debug, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX150">--default-domain, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX788">--directory, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX522">--directory, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX771">--directory, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX733">--directory, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX564">--directory, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX835">--directory, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX872">--directory, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX651">--directory, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX897">--directory, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX596">--directory, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX255">--directory, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX693">--directory, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX148">--directory, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1126">--domain, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX602">--domain, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1138">--domain, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1101">--dry-run, <CODE>autopoint</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1068">--dry-run, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX165">--exclude-file, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX657">--expression, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX614">--extended-regexp, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX169">--extract-all, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX612">--extracted-comment, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX659">--file, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX620">--file, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX520">--files-from, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX731">--files-from, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX146">--files-from, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX616">--fixed-strings, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX174">--flag, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1099">--force, <CODE>autopoint</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1063">--force, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX810">--force-po, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX538">--force-po, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX745">--force-po, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX572">--force-po, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX841">--force-po, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX668">--force-po, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX628">--force-po, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX275">--force-po, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX981">--force-po, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX706">--force-po, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX186">--force-po, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX206">--foreign-user, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX161">--from-code, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX805">--fuzzy, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1102">--help, <CODE>autopoint</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1153">--help, <CODE>envsubst</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1130">--help, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1069">--help, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX828">--help, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX557">--help, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX780">--help, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX764">--help, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX589">--help, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX858">--help, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX877">--help, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX685">--help, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX949">--help, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX642">--help, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX238">--help, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX293">--help, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX995">--help, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX724">--help, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1142">--help, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX213">--help, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX622">--ignore-case, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX804">--ignore-file, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX812">--indent, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX540">--indent, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX747">--indent, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX574">--indent, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX843">--indent, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX669">--indent, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX629">--indent, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX277">--indent, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX983">--indent, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX708">--indent, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX188">--indent, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX870">--input, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX649">--input, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX222">--input, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1064">--intl, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX624">--invert-match, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX899">--java, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX959">--java, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX901">--java2, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX163">--join-existing, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX670">--keep-header, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX171">--keyword, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX157">--language, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX527">--less-than, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX737">--less-than, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX916">--locale, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX921">--locale, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX924">--locale, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX229">--locale, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX970">--locale, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX974">--locale, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX977">--locale, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX600">--location, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX529">--more-than, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX739">--more-than, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX604">--msgctxt, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX606">--msgid, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX207">--msgid-bugs-address, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX608">--msgstr, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX209">--msgstr-prefix, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX211">--msgstr-suffix, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX773">--multi-domain, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX268">--multi-domain, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1065">--no-changelog, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX793">--no-fuzzy, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX270">--no-fuzzy-matching, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX947">--no-hash, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX813">--no-location, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX541">--no-location, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX748">--no-location, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX575">--no-location, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX844">--no-location, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX671">--no-location, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX630">--no-location, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX278">--no-location, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX709">--no-location, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX189">--no-location, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX795">--no-obsolete, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX230">--no-translator, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX822">--no-wrap, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX550">--no-wrap, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX757">--no-wrap, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX583">--no-wrap, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX852">--no-wrap, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX679">--no-wrap, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX638">--no-wrap, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX236">--no-wrap, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX286">--no-wrap, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX990">--no-wrap, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX718">--no-wrap, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX197">--no-wrap, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX806">--obsolete, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX762">--omit-header, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX203">--omit-header, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX803">--only-file, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX794">--only-fuzzy, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX796">--only-obsolete, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX152">--output, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX154">--output-dir, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX790">--output-file, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX524">--output-file, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX735">--output-file, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX566">--output-file, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX837">--output-file, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX653">--output-file, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX911">--output-file, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX598">--output-file, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX224">--output-file, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX261">--output-file, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX980">--output-file, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX695">--output-file, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX271">--previous, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX808">--properties-input, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX533">--properties-input, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX777">--properties-input, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX743">--properties-input, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX570">--properties-input, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX839">--properties-input, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX874">--properties-input, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX666">--properties-input, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX927">--properties-input, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX626">--properties-input, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX226">--properties-input, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX273">--properties-input, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX701">--properties-input, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX818">--properties-output, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX546">--properties-output, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX753">--properties-output, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX579">--properties-output, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX848">--properties-output, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX675">--properties-output, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX634">--properties-output, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX232">--properties-output, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX282">--properties-output, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX986">--properties-output, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX714">--properties-output, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX193">--properties-output, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX908">--qt, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX180">--qt, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX661">--quiet, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX299">--quiet, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX618">--regexp=, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX697">--repeated, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX914">--resource, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX919">--resource, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX968">--resource, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX972">--resource, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX798">--set-fuzzy, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX800">--set-obsolete, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX662">--silent, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX300">--silent, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX826">--sort-by-file, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX555">--sort-by-file, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX761">--sort-by-file, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX587">--sort-by-file, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX856">--sort-by-file, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX683">--sort-by-file, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX640">--sort-by-file, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX291">--sort-by-file, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX722">--sort-by-file, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX202">--sort-by-file, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX824">--sort-output, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX552">--sort-output, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX759">--sort-output, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX585">--sort-output, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX854">--sort-output, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX681">--sort-output, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX639">--sort-output, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX288">--sort-output, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX992">--sort-output, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX720">--sort-output, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX199">--sort-output, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX952">--statistics, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX816">--strict, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX544">--strict, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX751">--strict, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX577">--strict, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX846">--strict, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX673">--strict, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX912">--strict, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX632">--strict, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX280">--strict, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX984">--strict, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX712">--strict, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX192">--strict, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX809">--stringtable-input, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX534">--stringtable-input, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX778">--stringtable-input, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX744">--stringtable-input, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX840">--stringtable-input, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX875">--stringtable-input, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX667">--stringtable-input, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX928">--stringtable-input, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX627">--stringtable-input, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX227">--stringtable-input, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX274">--stringtable-input, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX571">--stringtable-input, <CODE>msgonv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX702">--stringtable-input, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX819">--stringtable-output, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX547">--stringtable-output, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX754">--stringtable-output, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX580">--stringtable-output, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX849">--stringtable-output, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX676">--stringtable-output, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX635">--stringtable-output, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX233">--stringtable-output, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX283">--stringtable-output, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX987">--stringtable-output, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX715">--stringtable-output, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX194">--stringtable-output, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX265">--suffix, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1066">--symlink, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX906">--tcl, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX965">--tcl, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX536">--to-code, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX568">--to-code, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX704">--to-code, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX791">--translated, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX178">--trigraphs, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX531">--unique, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX741">--unique, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX699">--unique, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX792">--untranslated, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX259">--update, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX537">--use-first, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX705">--use-first, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX774">--use-fuzzy, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX943">--use-fuzzy, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX775">--use-untranslated, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1151">--variables, <CODE>envsubst</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX954">--verbose, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX297">--verbose, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX999">--verbose, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1103">--version, <CODE>autopoint</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1155">--version, <CODE>envsubst</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1133">--version, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1070">--version, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX830">--version, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX559">--version, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX782">--version, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX766">--version, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX591">--version, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX860">--version, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX879">--version, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX687">--version, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX951">--version, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX644">--version, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX240">--version, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX295">--version, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX997">--version, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX726">--version, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1144">--version, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX215">--version, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX821">--width, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX549">--width, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX756">--width, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX582">--width, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX851">--width, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX678">--width, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX637">--width, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX235">--width, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX285">--width, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX989">--width, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX717">--width, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX196">--width, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX526">-<, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX736">-<, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX528">->, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX738">->, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX945">-a, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX168">-a, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX935">-C, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX929">-c, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX609">-C, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX256">-C, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX159">-C, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX166">-c, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1100">-d, <CODE>autopoint</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1125">-d, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1067">-d, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX787">-D, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX521">-D, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX770">-D, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX732">-D, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX563">-D, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX834">-D, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX871">-D, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX650">-D, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX917">-d, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX922">-d, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX925">-d, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX896">-D, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX595">-D, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX254">-D, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX975">-d, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX978">-d, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX692">-D, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX696">-d, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1137">-d, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX147">-D, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX149">-d, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1127">-e, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1128">-E, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX656">-e, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX613">-E, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX617">-e, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1139">-e, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1140">-E, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1098">-f, <CODE>autopoint</CODE> option</A>
+<LI><A HREF="gettext_13.html#IDX1062">-f, <CODE>gettextize</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX825">-F, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX519">-f, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX554">-F, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX760">-F, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX730">-f, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX586">-F, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX855">-F, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX682">-F, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX658">-f, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX942">-f, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX619">-f, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX615">-F, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX290">-F, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX721">-F, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX201">-F, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX145">-f, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1152">-h, <CODE>envsubst</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1129">-h, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX827">-h, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX556">-h, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX779">-h, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX763">-h, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX588">-h, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX857">-h, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX876">-h, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX684">-h, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX948">-h, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX641">-h, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX237">-h, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX292">-h, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX994">-h, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX723">-h, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1141">-h, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX212">-h, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX811">-i, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX539">-i, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX746">-i, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX573">-i, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX842">-i, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX869">-i, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX648">-i, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX621">-i, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX221">-i, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX276">-i, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX982">-i, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX707">-i, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX187">-i, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX898">-j, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX603">-J, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX958">-j, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX162">-j, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX605">-K, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX170">-k, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX915">-l, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX920">-l, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX923">-l, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX228">-l, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX969">-l, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX973">-l, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX976">-l, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX156">-L, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX772">-m, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX601">-M, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX267">-m, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX210">-M, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX208">-m, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1131">-n, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX814">-n, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX542">-n, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX749">-n, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX660">-n, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX599">-N, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX269">-N, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX710">-n, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX190">-n, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX789">-o, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX523">-o, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX734">-o, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX565">-o, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX836">-o, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX652">-o, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX910">-o, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX597">-o, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX223">-o, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX260">-o, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX979">-o, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX694">-o, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX151">-o, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX807">-P, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX817">-p, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX532">-P, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX545">-p, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX776">-P, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX742">-P, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX752">-p, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX569">-P, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX578">-p, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX838">-P, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX847">-p, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX873">-P, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX665">-P, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX674">-p, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX926">-P, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX633">-p, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX625">-P, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX225">-P, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX231">-p, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX281">-p, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX272">-P, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX985">-p, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX713">-p, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX700">-P, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX153">-p, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX298">-q, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX913">-r, <CODE>msgfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX918">-r, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX967">-r, <CODE>msgunfmt</CODE> option</A>, <A HREF="gettext_10.html#IDX971">-r, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX823">-s, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX551">-s, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX758">-s, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX584">-s, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX853">-s, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX680">-s, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX287">-s, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX991">-s, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX719">-s, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX198">-s, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX535">-t, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX567">-t, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX607">-T, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX703">-t, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX177">-T, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX530">-u, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX740">-u, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX258">-U, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX698">-u, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1150">-v, <CODE>envsubst</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1154">-V, <CODE>envsubst</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1132">-V, <CODE>gettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX829">-V, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX558">-V, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX781">-V, <CODE>msgcmp</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX765">-V, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX590">-V, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX859">-V, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX878">-V, <CODE>msgexec</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX686">-V, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX950">-V, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX953">-v, <CODE>msgfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX643">-V, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX623">-v, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX239">-V, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX296">-v, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX294">-V, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX998">-v, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX996">-V, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX725">-V, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_15.html#IDX1143">-V, <CODE>ngettext</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX214">-V, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX820">-w, <CODE>msgattrib</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX548">-w, <CODE>msgcat</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX755">-w, <CODE>msgcomm</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX581">-w, <CODE>msgconv</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX850">-w, <CODE>msgen</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX677">-w, <CODE>msgfilter</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX636">-w, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_6.html#IDX234">-w, <CODE>msginit</CODE> option</A>
+<LI><A HREF="gettext_7.html#IDX284">-w, <CODE>msgmerge</CODE> option</A>
+<LI><A HREF="gettext_10.html#IDX988">-w, <CODE>msgunfmt</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX716">-w, <CODE>msguniq</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX195">-w, <CODE>xgettext</CODE> option</A>
+<LI><A HREF="gettext_9.html#IDX611">-X, <CODE>msggrep</CODE> option</A>
+<LI><A HREF="gettext_5.html#IDX164">-x, <CODE>xgettext</CODE> option</A>
</DIR>
</P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - Variable Index</TITLE>
<P><HR><P>
-<H1><A NAME="SEC310" HREF="gettext_toc.html#TOC310">Variable Index</A></H1>
+<H1><A NAME="SEC314" HREF="gettext_toc.html#TOC314">Variable Index</A></H1>
<P>
Jump to:
<P>
<H2><A NAME="vindex_g">g</A></H2>
<DIR>
-<LI><A HREF="gettext_12.html#IDX1049">GETTEXT_LOG_UNTRANSLATED, environment variable</A>
+<LI><A HREF="gettext_12.html#IDX1055">GETTEXT_LOG_UNTRANSLATED, environment variable</A>
</DIR>
<H2><A NAME="vindex_l">l</A></H2>
<DIR>
-<LI><A HREF="gettext_2.html#IDX45">LANG, environment variable</A>, <A HREF="gettext_11.html#IDX1047">LANG, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1039">LANGUAGE, environment variable</A>, <A HREF="gettext_13.html#IDX1072">LANGUAGE, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1040">LC_ALL, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1044">LC_COLLATE, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1041">LC_CTYPE, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1046">LC_MESSAGES, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1045">LC_MONETARY, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1042">LC_NUMERIC, environment variable</A>
-<LI><A HREF="gettext_11.html#IDX1043">LC_TIME, environment variable</A>
-<LI><A HREF="gettext_14.html#IDX1103">LINGUAS, environment variable</A>
+<LI><A HREF="gettext_2.html#IDX45">LANG, environment variable</A>, <A HREF="gettext_11.html#IDX1053">LANG, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1045">LANGUAGE, environment variable</A>, <A HREF="gettext_13.html#IDX1077">LANGUAGE, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1046">LC_ALL, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1050">LC_COLLATE, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1047">LC_CTYPE, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1052">LC_MESSAGES, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1051">LC_MONETARY, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1048">LC_NUMERIC, environment variable</A>
+<LI><A HREF="gettext_11.html#IDX1049">LC_TIME, environment variable</A>
+<LI><A HREF="gettext_14.html#IDX1110">LINGUAS, environment variable</A>
</DIR>
<H2><A NAME="vindex_m">m</A></H2>
<DIR>
-<LI><A HREF="gettext_9.html#IDX861">MSGEXEC_LOCATION, environment variable</A>
-<LI><A HREF="gettext_9.html#IDX859">MSGEXEC_MSGCTXT, environment variable</A>
-<LI><A HREF="gettext_9.html#IDX860">MSGEXEC_MSGID, environment variable</A>
+<LI><A HREF="gettext_9.html#IDX867">MSGEXEC_LOCATION, environment variable</A>
+<LI><A HREF="gettext_9.html#IDX865">MSGEXEC_MSGCTXT, environment variable</A>
+<LI><A HREF="gettext_9.html#IDX866">MSGEXEC_MSGID, environment variable</A>
</DIR>
<H2><A NAME="vindex_t">t</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1112">TEXTDOMAIN, environment variable</A>
-<LI><A HREF="gettext_15.html#IDX1113">TEXTDOMAINDIR, environment variable</A>
+<LI><A HREF="gettext_15.html#IDX1119">TEXTDOMAIN, environment variable</A>
+<LI><A HREF="gettext_15.html#IDX1120">TEXTDOMAINDIR, environment variable</A>
</DIR>
</P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - PO Mode Index</TITLE>
<P><HR><P>
-<H1><A NAME="SEC311" HREF="gettext_toc.html#TOC311">PO Mode Index</A></H1>
+<H1><A NAME="SEC315" HREF="gettext_toc.html#TOC315">PO Mode Index</A></H1>
<P>
Jump to:
<P>
<H2><A NAME="emindex_&">&</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX304"><TT>‘.emacs’</TT> customizations</A>
-<LI><A HREF="gettext_4.html#IDX129"><TT>‘TAGS’</TT>, and marking translatable strings</A>
+<LI><A HREF="gettext_8.html#IDX307"><TT>‘.emacs’</TT> customizations</A>
+<LI><A HREF="gettext_4.html#IDX131"><TT>‘TAGS’</TT>, and marking translatable strings</A>
</DIR>
<H2><A NAME="emindex_a">a</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX481">auxiliary PO file</A>
+<LI><A HREF="gettext_8.html#IDX484">auxiliary PO file</A>
</DIR>
<H2><A NAME="emindex_c">c</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX307">commands</A>
-<LI><A HREF="gettext_8.html#IDX411">comment out PO file entry</A>
-<LI><A HREF="gettext_8.html#IDX463">consulting program sources</A>
-<LI><A HREF="gettext_8.html#IDX479">consulting translations to other languages</A>
-<LI><A HREF="gettext_8.html#IDX332">current entry of a PO file</A>
-<LI><A HREF="gettext_8.html#IDX427">cut and paste for translated strings</A>
+<LI><A HREF="gettext_8.html#IDX310">commands</A>
+<LI><A HREF="gettext_8.html#IDX414">comment out PO file entry</A>
+<LI><A HREF="gettext_8.html#IDX466">consulting program sources</A>
+<LI><A HREF="gettext_8.html#IDX482">consulting translations to other languages</A>
+<LI><A HREF="gettext_8.html#IDX335">current entry of a PO file</A>
+<LI><A HREF="gettext_8.html#IDX430">cut and paste for translated strings</A>
</DIR>
<H2><A NAME="emindex_e">e</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX436">editing comments</A>
-<LI><A HREF="gettext_8.html#IDX461">editing multiple entries</A>
-<LI><A HREF="gettext_8.html#IDX413">editing translations</A>
-<LI><A HREF="gettext_4.html#IDX128"><CODE>etags</CODE>, using for marking strings</A>
-<LI><A HREF="gettext_8.html#IDX454">exiting PO subedit</A>
+<LI><A HREF="gettext_8.html#IDX439">editing comments</A>
+<LI><A HREF="gettext_8.html#IDX464">editing multiple entries</A>
+<LI><A HREF="gettext_8.html#IDX416">editing translations</A>
+<LI><A HREF="gettext_4.html#IDX130"><CODE>etags</CODE>, using for marking strings</A>
+<LI><A HREF="gettext_8.html#IDX457">exiting PO subedit</A>
</DIR>
<H2><A NAME="emindex_f">f</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX466">find source fragment for a PO file entry</A>
+<LI><A HREF="gettext_8.html#IDX469">find source fragment for a PO file entry</A>
</DIR>
<H2><A NAME="emindex_i">i</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX305">installing PO mode</A>
+<LI><A HREF="gettext_8.html#IDX308">installing PO mode</A>
</DIR>
<H2><A NAME="emindex_l">l</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX464">looking at the source to aid translation</A>
+<LI><A HREF="gettext_8.html#IDX467">looking at the source to aid translation</A>
</DIR>
<H2><A NAME="emindex_m">m</A></H2>
<DIR>
-<LI><A HREF="gettext_4.html#IDX127">marking strings for translation</A>
-<LI><A HREF="gettext_8.html#IDX375">moving by fuzzy entries</A>
-<LI><A HREF="gettext_8.html#IDX400">moving by obsolete entries</A>
-<LI><A HREF="gettext_8.html#IDX364">moving by translated entries</A>
-<LI><A HREF="gettext_8.html#IDX389">moving by untranslated entries</A>
-<LI><A HREF="gettext_8.html#IDX333">moving through a PO file</A>
+<LI><A HREF="gettext_4.html#IDX129">marking strings for translation</A>
+<LI><A HREF="gettext_8.html#IDX378">moving by fuzzy entries</A>
+<LI><A HREF="gettext_8.html#IDX403">moving by obsolete entries</A>
+<LI><A HREF="gettext_8.html#IDX367">moving by translated entries</A>
+<LI><A HREF="gettext_8.html#IDX392">moving by untranslated entries</A>
+<LI><A HREF="gettext_8.html#IDX336">moving through a PO file</A>
</DIR>
<H2><A NAME="emindex_o">o</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX410">obsolete active entry</A>
+<LI><A HREF="gettext_8.html#IDX413">obsolete active entry</A>
</DIR>
<H2><A NAME="emindex_p">p</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX462">pending subedits</A>
+<LI><A HREF="gettext_8.html#IDX465">pending subedits</A>
</DIR>
<H2><A NAME="emindex_s">s</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX426">starting a string translation</A>
-<LI><A HREF="gettext_8.html#IDX359">string normalization in entries</A>
-<LI><A HREF="gettext_8.html#IDX450">subedit minor mode</A>
+<LI><A HREF="gettext_8.html#IDX429">starting a string translation</A>
+<LI><A HREF="gettext_8.html#IDX362">string normalization in entries</A>
+<LI><A HREF="gettext_8.html#IDX453">subedit minor mode</A>
</DIR>
<H2><A NAME="emindex_u">u</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX465">use the source, Luke</A>
-<LI><A HREF="gettext_8.html#IDX434">using obsolete translations to make new entries</A>
-<LI><A HREF="gettext_8.html#IDX495">using translation compendia</A>
+<LI><A HREF="gettext_8.html#IDX468">use the source, Luke</A>
+<LI><A HREF="gettext_8.html#IDX437">using obsolete translations to make new entries</A>
+<LI><A HREF="gettext_8.html#IDX498">using translation compendia</A>
</DIR>
</P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - Autoconf Macro Index</TITLE>
<P><HR><P>
-<H1><A NAME="SEC312" HREF="gettext_toc.html#TOC312">Autoconf Macro Index</A></H1>
+<H1><A NAME="SEC316" HREF="gettext_toc.html#TOC316">Autoconf Macro Index</A></H1>
<P>
Jump to:
<P>
<H2><A NAME="amindex_a">a</A></H2>
<DIR>
-<LI><A HREF="gettext_13.html#IDX1083">AM_GNU_GETTEXT</A>
-<LI><A HREF="gettext_13.html#IDX1085">AM_GNU_GETTEXT_VERSION</A>
-<LI><A HREF="gettext_13.html#IDX1087">AM_ICONV</A>
-<LI><A HREF="gettext_13.html#IDX1086">AM_PO_SUBDIRS</A>
+<LI><A HREF="gettext_13.html#IDX1088">AM_GNU_GETTEXT</A>
+<LI><A HREF="gettext_13.html#IDX1092">AM_GNU_GETTEXT_INTL_SUBDIR</A>
+<LI><A HREF="gettext_13.html#IDX1091">AM_GNU_GETTEXT_NEED</A>
+<LI><A HREF="gettext_13.html#IDX1090">AM_GNU_GETTEXT_VERSION</A>
+<LI><A HREF="gettext_13.html#IDX1094">AM_ICONV</A>
+<LI><A HREF="gettext_13.html#IDX1093">AM_PO_SUBDIRS</A>
</DIR>
</P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - General Index</TITLE>
<P><HR><P>
-<H1><A NAME="SEC313" HREF="gettext_toc.html#TOC313">General Index</A></H1>
+<H1><A NAME="SEC317" HREF="gettext_toc.html#TOC317">General Index</A></H1>
<P>
Jump to:
<H2><A NAME="cindex_&">&</A></H2>
<DIR>
<LI><A HREF="gettext_2.html#IDX41"><TT>‘ABOUT-NLS’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1076"><TT>‘acconfig.h’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1075"><TT>‘aclocal.m4’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1077"><TT>‘config.h.in’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1078"><TT>‘gettext.h’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1068"><TT>‘LINGUAS’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1070"><TT>‘Makefile.in.in’</TT> extensions</A>
-<LI><A HREF="gettext_13.html#IDX1069"><TT>‘Makevars’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1074"><TT>‘mkinstalldirs’</TT> file</A>
-<LI><A HREF="gettext_13.html#IDX1067"><TT>‘POTFILES.in’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1081"><TT>‘acconfig.h’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1080"><TT>‘aclocal.m4’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1082"><TT>‘config.h.in’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1083"><TT>‘gettext.h’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1073"><TT>‘LINGUAS’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1075"><TT>‘Makefile.in.in’</TT> extensions</A>
+<LI><A HREF="gettext_13.html#IDX1074"><TT>‘Makevars’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1079"><TT>‘mkinstalldirs’</TT> file</A>
+<LI><A HREF="gettext_13.html#IDX1072"><TT>‘POTFILES.in’</TT> file</A>
</DIR>
<H2><A NAME="cindex__">_</A></H2>
<DIR>
-<LI><A HREF="gettext_4.html#IDX126"><CODE>_</CODE>, a macro to mark strings for translation</A>
-<LI><A HREF="gettext_11.html#IDX1048"><CODE>_nl_msg_cat_cntr</CODE></A>
+<LI><A HREF="gettext_4.html#IDX128"><CODE>_</CODE>, a macro to mark strings for translation</A>
+<LI><A HREF="gettext_11.html#IDX1054"><CODE>_nl_msg_cat_cntr</CODE></A>
</DIR>
<H2><A NAME="cindex_a">a</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX500">accumulating translations</A>
-<LI><A HREF="gettext_5.html#IDX170">adding keywords, <CODE>xgettext</CODE></A>
+<LI><A HREF="gettext_8.html#IDX503">accumulating translations</A>
+<LI><A HREF="gettext_5.html#IDX172">adding keywords, <CODE>xgettext</CODE></A>
<LI><A HREF="gettext_4.html#IDX116">ambiguities</A>
-<LI><A HREF="gettext_9.html#IDX644">apply a filter to translations</A>
-<LI><A HREF="gettext_9.html#IDX857">apply command to all translations in a catalog</A>
-<LI><A HREF="gettext_15.html#IDX1107">Arabic digits</A>
-<LI><A HREF="gettext_9.html#IDX781">attribute manipulation</A>
-<LI><A HREF="gettext_8.html#IDX374">attribute, fuzzy</A>
-<LI><A HREF="gettext_8.html#IDX373">attributes of a PO file entry</A>
-<LI><A HREF="gettext_9.html#IDX511">attributes, manipulating</A>
-<LI><A HREF="gettext_13.html#IDX1082">autoconf macros for <CODE>gettext</CODE></A>
-<LI><A HREF="gettext_13.html#IDX1090"><CODE>autopoint</CODE> program, usage</A>
-<LI><A HREF="gettext_8.html#IDX480">auxiliary PO file</A>
+<LI><A HREF="gettext_9.html#IDX647">apply a filter to translations</A>
+<LI><A HREF="gettext_9.html#IDX863">apply command to all translations in a catalog</A>
+<LI><A HREF="gettext_15.html#IDX1114">Arabic digits</A>
+<LI><A HREF="gettext_9.html#IDX786">attribute manipulation</A>
+<LI><A HREF="gettext_8.html#IDX377">attribute, fuzzy</A>
+<LI><A HREF="gettext_8.html#IDX376">attributes of a PO file entry</A>
+<LI><A HREF="gettext_9.html#IDX514">attributes, manipulating</A>
+<LI><A HREF="gettext_13.html#IDX1087">autoconf macros for <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_13.html#IDX1097"><CODE>autopoint</CODE> program, usage</A>
+<LI><A HREF="gettext_8.html#IDX483">auxiliary PO file</A>
<LI><A HREF="gettext_2.html#IDX40">available translations</A>
-<LI><A HREF="gettext_15.html#IDX1168">awk</A>
+<LI><A HREF="gettext_15.html#IDX1175">awk</A>
</DIR>
<H2><A NAME="cindex_b">b</A></H2>
<DIR>
-<LI><A HREF="gettext_7.html#IDX262">backup old file, and <CODE>msgmerge</CODE> program</A>
-<LI><A HREF="gettext_15.html#IDX1153">bash</A>
-<LI><A HREF="gettext_16.html#IDX1194">bibliography</A>
+<LI><A HREF="gettext_7.html#IDX264">backup old file, and <CODE>msgmerge</CODE> program</A>
+<LI><A HREF="gettext_15.html#IDX1160">bash</A>
+<LI><A HREF="gettext_16.html#IDX1201">bibliography</A>
<LI><A HREF="gettext_1.html#IDX30">big picture</A>
-<LI><A HREF="gettext_11.html#IDX1014">bind_textdomain_codeset</A>
-<LI><A HREF="gettext_5.html#IDX181">Boost format strings</A>
+<LI><A HREF="gettext_11.html#IDX1020">bind_textdomain_codeset</A>
+<LI><A HREF="gettext_5.html#IDX183">Boost format strings</A>
<LI><A HREF="gettext_1.html#IDX4">bug report address</A>
</DIR>
<H2><A NAME="cindex_c">c</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1108">C and C-like languages</A>
-<LI><A HREF="gettext_5.html#IDX177">C trigraphs</A>
-<LI><A HREF="gettext_15.html#IDX1166">C#</A>
-<LI><A HREF="gettext_10.html#IDX897">C# mode, and <CODE>msgfmt</CODE> program</A>
-<LI><A HREF="gettext_10.html#IDX956">C# mode, and <CODE>msgunfmt</CODE> program</A>
-<LI><A HREF="gettext_10.html#IDX899">C# resources mode, and <CODE>msgfmt</CODE> program</A>
-<LI><A HREF="gettext_10.html#IDX958">C# resources mode, and <CODE>msgunfmt</CODE> program</A>
+<LI><A HREF="gettext_15.html#IDX1115">C and C-like languages</A>
+<LI><A HREF="gettext_5.html#IDX179">C trigraphs</A>
+<LI><A HREF="gettext_15.html#IDX1173">C#</A>
+<LI><A HREF="gettext_10.html#IDX903">C# mode, and <CODE>msgfmt</CODE> program</A>
+<LI><A HREF="gettext_10.html#IDX962">C# mode, and <CODE>msgunfmt</CODE> program</A>
+<LI><A HREF="gettext_10.html#IDX905">C# resources mode, and <CODE>msgfmt</CODE> program</A>
+<LI><A HREF="gettext_10.html#IDX964">C# resources mode, and <CODE>msgunfmt</CODE> program</A>
<LI><A HREF="gettext_4.html#IDX124">C#, string concatenation</A>
-<LI><A HREF="gettext_9.html#IDX862">catalog encoding and <CODE>msgexec</CODE> output</A>
-<LI><A HREF="gettext_11.html#IDX1004"><CODE>catclose</CODE>, a <CODE>catgets</CODE> function</A>
-<LI><A HREF="gettext_11.html#IDX1000"><CODE>catgets</CODE>, X/Open specification</A>
-<LI><A HREF="gettext_11.html#IDX1003"><CODE>catgets</CODE>, a <CODE>catgets</CODE> function</A>
-<LI><A HREF="gettext_11.html#IDX1002"><CODE>catopen</CODE>, a <CODE>catgets</CODE> function</A>
+<LI><A HREF="gettext_9.html#IDX868">catalog encoding and <CODE>msgexec</CODE> output</A>
+<LI><A HREF="gettext_11.html#IDX1010"><CODE>catclose</CODE>, a <CODE>catgets</CODE> function</A>
+<LI><A HREF="gettext_11.html#IDX1006"><CODE>catgets</CODE>, X/Open specification</A>
+<LI><A HREF="gettext_11.html#IDX1009"><CODE>catgets</CODE>, a <CODE>catgets</CODE> function</A>
+<LI><A HREF="gettext_11.html#IDX1008"><CODE>catopen</CODE>, a <CODE>catgets</CODE> function</A>
<LI><A HREF="gettext_1.html#IDX17">character encoding</A>
-<LI><A HREF="gettext_11.html#IDX1012">charset conversion at runtime</A>
-<LI><A HREF="gettext_6.html#IDX242">charset of PO files</A>
-<LI><A HREF="gettext_10.html#IDX926">check format strings</A>
-<LI><A HREF="gettext_9.html#IDX509">checking of translations</A>
-<LI><A HREF="gettext_15.html#IDX1157">clisp</A>
-<LI><A HREF="gettext_15.html#IDX1158">clisp C sources</A>
+<LI><A HREF="gettext_11.html#IDX1018">charset conversion at runtime</A>
+<LI><A HREF="gettext_6.html#IDX244">charset of PO files</A>
+<LI><A HREF="gettext_10.html#IDX932">check format strings</A>
+<LI><A HREF="gettext_9.html#IDX512">checking of translations</A>
+<LI><A HREF="gettext_15.html#IDX1164">clisp</A>
+<LI><A HREF="gettext_15.html#IDX1165">clisp C sources</A>
<LI><A HREF="gettext_1.html#IDX15">codeset</A>
<LI><A HREF="gettext_3.html#IDX101">comments in PO files</A>
<LI><A HREF="gettext_3.html#IDX49">comments, automatic</A>
<LI><A HREF="gettext_3.html#IDX50">comments, extracted</A>
<LI><A HREF="gettext_3.html#IDX48">comments, translator</A>
-<LI><A HREF="gettext_15.html#IDX1155">Common Lisp</A>
-<LI><A HREF="gettext_9.html#IDX766">compare PO files</A>
-<LI><A HREF="gettext_11.html#IDX1035">comparison of interfaces</A>
-<LI><A HREF="gettext_10.html#IDX931">compatibility with X/Open <CODE>msgfmt</CODE></A>
-<LI><A HREF="gettext_8.html#IDX496">compendium</A>
-<LI><A HREF="gettext_8.html#IDX498">compendium, creating</A>
-<LI><A HREF="gettext_9.html#IDX514">concatenate PO files</A>
-<LI><A HREF="gettext_8.html#IDX499">concatenating PO files into a compendium</A>
+<LI><A HREF="gettext_15.html#IDX1162">Common Lisp</A>
+<LI><A HREF="gettext_9.html#IDX769">compare PO files</A>
+<LI><A HREF="gettext_11.html#IDX1041">comparison of interfaces</A>
+<LI><A HREF="gettext_10.html#IDX937">compatibility with X/Open <CODE>msgfmt</CODE></A>
+<LI><A HREF="gettext_8.html#IDX499">compendium</A>
+<LI><A HREF="gettext_8.html#IDX501">compendium, creating</A>
+<LI><A HREF="gettext_9.html#IDX517">concatenate PO files</A>
+<LI><A HREF="gettext_8.html#IDX502">concatenating PO files into a compendium</A>
<LI><A HREF="gettext_4.html#IDX121">concatenation of strings</A>
-<LI><A HREF="gettext_11.html#IDX1015">context</A>
-<LI><A HREF="gettext_5.html#IDX171">context, argument specification in <CODE>xgettext</CODE></A>
-<LI><A HREF="gettext_10.html#IDX998">context, in MO files</A>
+<LI><A HREF="gettext_11.html#IDX1021">context</A>
+<LI><A HREF="gettext_5.html#IDX173">context, argument specification in <CODE>xgettext</CODE></A>
+<LI><A HREF="gettext_10.html#IDX1004">context, in MO files</A>
<LI><A HREF="gettext_3.html#IDX97">context, in PO files</A>
-<LI><A HREF="gettext_10.html#IDX951">convert binary message catalog into PO file</A>
-<LI><A HREF="gettext_9.html#IDX559">convert translations to a different encoding</A>
-<LI><A HREF="gettext_13.html#IDX1051">converting a package to use <CODE>gettext</CODE></A>
-<LI><A HREF="gettext_18.html#IDX1197">country codes</A>
-<LI><A HREF="gettext_6.html#IDX217">create new PO file</A>
-<LI><A HREF="gettext_6.html#IDX214">creating a new PO file</A>
-<LI><A HREF="gettext_8.html#IDX497">creating compendia</A>
+<LI><A HREF="gettext_4.html#IDX126">control characters</A>
+<LI><A HREF="gettext_10.html#IDX957">convert binary message catalog into PO file</A>
+<LI><A HREF="gettext_9.html#IDX562">convert translations to a different encoding</A>
+<LI><A HREF="gettext_13.html#IDX1057">converting a package to use <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_18.html#IDX1204">country codes</A>
+<LI><A HREF="gettext_6.html#IDX219">create new PO file</A>
+<LI><A HREF="gettext_6.html#IDX216">creating a new PO file</A>
+<LI><A HREF="gettext_8.html#IDX500">creating compendia</A>
<LI><A HREF="gettext_1.html#IDX19">currency symbols</A>
</DIR>
<H2><A NAME="cindex_d">d</A></H2>
<DIR>
<LI><A HREF="gettext_1.html#IDX21">date format</A>
-<LI><A HREF="gettext_11.html#IDX1028">dcngettext</A>
-<LI><A HREF="gettext_11.html#IDX1021">dcpgettext</A>
-<LI><A HREF="gettext_11.html#IDX1024">dcpgettext_expr</A>
-<LI><A HREF="gettext_5.html#IDX183">debugging messages marked as format strings</A>
-<LI><A HREF="gettext_9.html#IDX507">dialect</A>
-<LI><A HREF="gettext_13.html#IDX1080">disabling NLS</A>
-<LI><A HREF="gettext_13.html#IDX1098">distribution tarball</A>
-<LI><A HREF="gettext_11.html#IDX1027">dngettext</A>
-<LI><A HREF="gettext_15.html#IDX1141">dollar substitution</A>
-<LI><A HREF="gettext_11.html#IDX1009">domain ambiguities</A>
-<LI><A HREF="gettext_11.html#IDX1020">dpgettext</A>
-<LI><A HREF="gettext_11.html#IDX1023">dpgettext_expr</A>
-<LI><A HREF="gettext_9.html#IDX510">duplicate elimination</A>
-<LI><A HREF="gettext_9.html#IDX688">duplicate removal</A>
+<LI><A HREF="gettext_11.html#IDX1034">dcngettext</A>
+<LI><A HREF="gettext_11.html#IDX1027">dcpgettext</A>
+<LI><A HREF="gettext_11.html#IDX1030">dcpgettext_expr</A>
+<LI><A HREF="gettext_5.html#IDX185">debugging messages marked as format strings</A>
+<LI><A HREF="gettext_9.html#IDX510">dialect</A>
+<LI><A HREF="gettext_13.html#IDX1085">disabling NLS</A>
+<LI><A HREF="gettext_13.html#IDX1105">distribution tarball</A>
+<LI><A HREF="gettext_11.html#IDX1033">dngettext</A>
+<LI><A HREF="gettext_15.html#IDX1148">dollar substitution</A>
+<LI><A HREF="gettext_11.html#IDX1015">domain ambiguities</A>
+<LI><A HREF="gettext_11.html#IDX1026">dpgettext</A>
+<LI><A HREF="gettext_11.html#IDX1029">dpgettext_expr</A>
+<LI><A HREF="gettext_9.html#IDX513">duplicate elimination</A>
+<LI><A HREF="gettext_9.html#IDX691">duplicate removal</A>
</DIR>
<H2><A NAME="cindex_e">e</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX435">editing comments in PO files</A>
-<LI><A HREF="gettext_8.html#IDX298">Editing PO Files</A>
-<LI><A HREF="gettext_8.html#IDX412">editing translations</A>
-<LI><A HREF="gettext_15.html#IDX1159">Emacs Lisp</A>
-<LI><A HREF="gettext_8.html#IDX301">Emacs PO Mode</A>
+<LI><A HREF="gettext_8.html#IDX438">editing comments in PO files</A>
+<LI><A HREF="gettext_8.html#IDX301">Editing PO Files</A>
+<LI><A HREF="gettext_8.html#IDX415">editing translations</A>
+<LI><A HREF="gettext_15.html#IDX1166">Emacs Lisp</A>
+<LI><A HREF="gettext_8.html#IDX304">Emacs PO Mode</A>
<LI><A HREF="gettext_1.html#IDX16">encoding</A>
-<LI><A HREF="gettext_9.html#IDX506">encoding conversion</A>
-<LI><A HREF="gettext_11.html#IDX1013">encoding conversion at runtime</A>
-<LI><A HREF="gettext_6.html#IDX246">encoding for your language</A>
-<LI><A HREF="gettext_6.html#IDX244">encoding list</A>
-<LI><A HREF="gettext_6.html#IDX241">encoding of PO files</A>
-<LI><A HREF="gettext_15.html#IDX1142">environment variables</A>
-<LI><A HREF="gettext_15.html#IDX1139"><CODE>envsubst</CODE> program, usage</A>
-<LI><A HREF="gettext_15.html#IDX1149"><CODE>eval_gettext</CODE> function, usage</A>
-<LI><A HREF="gettext_15.html#IDX1151"><CODE>eval_ngettext</CODE> function, usage</A>
+<LI><A HREF="gettext_9.html#IDX509">encoding conversion</A>
+<LI><A HREF="gettext_11.html#IDX1019">encoding conversion at runtime</A>
+<LI><A HREF="gettext_6.html#IDX248">encoding for your language</A>
+<LI><A HREF="gettext_6.html#IDX246">encoding list</A>
+<LI><A HREF="gettext_6.html#IDX243">encoding of PO files</A>
+<LI><A HREF="gettext_15.html#IDX1149">environment variables</A>
+<LI><A HREF="gettext_15.html#IDX1146"><CODE>envsubst</CODE> program, usage</A>
+<LI><A HREF="gettext_15.html#IDX1156"><CODE>eval_gettext</CODE> function, usage</A>
+<LI><A HREF="gettext_15.html#IDX1158"><CODE>eval_ngettext</CODE> function, usage</A>
<LI><A HREF="gettext_1.html#IDX38">evolution of packages</A>
-<LI><A HREF="gettext_8.html#IDX501">extracting parts of a PO file into a compendium</A>
+<LI><A HREF="gettext_8.html#IDX504">extracting parts of a PO file into a compendium</A>
</DIR>
<H2><A NAME="cindex_f">f</A></H2>
<DIR>
-<LI><A HREF="gettext_19.html#IDX1204">FDL, GNU Free Documentation License</A>
-<LI><A HREF="gettext_10.html#IDX995">file format, <TT>‘.mo’</TT></A>
+<LI><A HREF="gettext_19.html#IDX1211">FDL, GNU Free Documentation License</A>
+<LI><A HREF="gettext_10.html#IDX1001">file format, <TT>‘.mo’</TT></A>
<LI><A HREF="gettext_3.html#IDX47">file format, <TT>‘.po’</TT></A>
<LI><A HREF="gettext_1.html#IDX28">files, <TT>‘.po’</TT> and <TT>‘.mo’</TT></A>
<LI><A HREF="gettext_1.html#IDX37">files, <TT>‘.pot’</TT></A>
-<LI><A HREF="gettext_9.html#IDX780">filter messages according to attributes</A>
-<LI><A HREF="gettext_9.html#IDX726">find common messages</A>
-<LI><A HREF="gettext_10.html#IDX938">force use of fuzzy entries</A>
-<LI><A HREF="gettext_4.html#IDX136">format strings</A>
-<LI><A HREF="gettext_15.html#IDX1171">Free Pascal</A>
-<LI><A HREF="gettext_5.html#IDX173">function attribute, __format__</A>
-<LI><A HREF="gettext_5.html#IDX174">function attribute, __format_arg__</A>
-<LI><A HREF="gettext_8.html#IDX372">fuzzy entries</A>
+<LI><A HREF="gettext_9.html#IDX785">filter messages according to attributes</A>
+<LI><A HREF="gettext_9.html#IDX729">find common messages</A>
+<LI><A HREF="gettext_10.html#IDX944">force use of fuzzy entries</A>
+<LI><A HREF="gettext_4.html#IDX138">format strings</A>
+<LI><A HREF="gettext_15.html#IDX1178">Free Pascal</A>
+<LI><A HREF="gettext_5.html#IDX175">function attribute, __format__</A>
+<LI><A HREF="gettext_5.html#IDX176">function attribute, __format_arg__</A>
+<LI><A HREF="gettext_8.html#IDX375">fuzzy entries</A>
</DIR>
<H2><A NAME="cindex_g">g</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1169">gawk</A>
-<LI><A HREF="gettext_15.html#IDX1190">GCC-source</A>
-<LI><A HREF="gettext_10.html#IDX889">generate binary message catalog from PO file</A>
-<LI><A HREF="gettext_9.html#IDX827">generate translation catalog in English</A>
-<LI><A HREF="gettext_13.html#IDX1066"><CODE>gettext</CODE> files</A>
-<LI><A HREF="gettext_8.html#IDX303"><CODE>gettext</CODE> installation</A>
-<LI><A HREF="gettext_11.html#IDX1007"><CODE>gettext</CODE> interface</A>
-<LI><A HREF="gettext_15.html#IDX1116"><CODE>gettext</CODE> program, usage</A>
-<LI><A HREF="gettext_11.html#IDX1006"><CODE>gettext</CODE>, a programmer's view</A>
-<LI><A HREF="gettext_11.html#IDX1034"><CODE>gettext</CODE> vs <CODE>catgets</CODE></A>
-<LI><A HREF="gettext_13.html#IDX1055"><CODE>gettextize</CODE> program, usage</A>
-<LI><A HREF="gettext_8.html#IDX300">GNOME PO file editor</A>
-<LI><A HREF="gettext_19.html#IDX1200">GPL, GNU General Public License</A>
-<LI><A HREF="gettext_11.html#IDX1016">GUI programs</A>
-<LI><A HREF="gettext_15.html#IDX1162">guile</A>
+<LI><A HREF="gettext_15.html#IDX1176">gawk</A>
+<LI><A HREF="gettext_15.html#IDX1197">GCC-source</A>
+<LI><A HREF="gettext_10.html#IDX895">generate binary message catalog from PO file</A>
+<LI><A HREF="gettext_9.html#IDX833">generate translation catalog in English</A>
+<LI><A HREF="gettext_13.html#IDX1071"><CODE>gettext</CODE> files</A>
+<LI><A HREF="gettext_8.html#IDX306"><CODE>gettext</CODE> installation</A>
+<LI><A HREF="gettext_11.html#IDX1013"><CODE>gettext</CODE> interface</A>
+<LI><A HREF="gettext_15.html#IDX1123"><CODE>gettext</CODE> program, usage</A>
+<LI><A HREF="gettext_11.html#IDX1012"><CODE>gettext</CODE>, a programmer's view</A>
+<LI><A HREF="gettext_11.html#IDX1040"><CODE>gettext</CODE> vs <CODE>catgets</CODE></A>
+<LI><A HREF="gettext_13.html#IDX1061"><CODE>gettextize</CODE> program, usage</A>
+<LI><A HREF="gettext_8.html#IDX303">GNOME PO file editor</A>
+<LI><A HREF="gettext_19.html#IDX1207">GPL, GNU General Public License</A>
+<LI><A HREF="gettext_11.html#IDX1022">GUI programs</A>
+<LI><A HREF="gettext_15.html#IDX1169">guile</A>
</DIR>
<H2><A NAME="cindex_h">h</A></H2>
<DIR>
-<LI><A HREF="gettext_10.html#IDX997">hash table, inside MO files</A>
+<LI><A HREF="gettext_10.html#IDX1003">hash table, inside MO files</A>
<LI><A HREF="gettext_1.html#IDX2">he, she, and they</A>
-<LI><A HREF="gettext_6.html#IDX239">header entry of a PO file</A>
+<LI><A HREF="gettext_6.html#IDX241">header entry of a PO file</A>
<LI><A HREF="gettext_4.html#IDX119">help option</A>
-<LI><A HREF="gettext_16.html#IDX1192">history of GNU <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_16.html#IDX1199">history of GNU <CODE>gettext</CODE></A>
</DIR>
<H2><A NAME="cindex_i">i</A></H2>
<DIR>
<LI><A HREF="gettext_1.html#IDX6">i18n</A>
-<LI><A HREF="gettext_8.html#IDX361">importing PO files</A>
-<LI><A HREF="gettext_1.html#IDX33">include file <TT>‘libintl.h’</TT></A>, <A HREF="gettext_4.html#IDX103">include file <TT>‘libintl.h’</TT></A>, <A HREF="gettext_11.html#IDX1036">include file <TT>‘libintl.h’</TT></A>, <A HREF="gettext_13.html#IDX1081">include file <TT>‘libintl.h’</TT></A>
+<LI><A HREF="gettext_8.html#IDX364">importing PO files</A>
+<LI><A HREF="gettext_1.html#IDX33">include file <TT>‘libintl.h’</TT></A>, <A HREF="gettext_4.html#IDX103">include file <TT>‘libintl.h’</TT></A>, <A HREF="gettext_11.html#IDX1042">include file <TT>‘libintl.h’</TT></A>, <A HREF="gettext_13.html#IDX1086">include file <TT>‘libintl.h’</TT></A>
<LI><A HREF="gettext_4.html#IDX104">initialization</A>
-<LI><A HREF="gettext_6.html#IDX218">initialize new PO file</A>
-<LI><A HREF="gettext_8.html#IDX502">initialize translations from a compendium</A>
-<LI><A HREF="gettext_8.html#IDX302">installing <CODE>gettext</CODE></A>
-<LI><A HREF="gettext_11.html#IDX1001">interface to <CODE>catgets</CODE></A>
+<LI><A HREF="gettext_6.html#IDX220">initialize new PO file</A>
+<LI><A HREF="gettext_8.html#IDX505">initialize translations from a compendium</A>
+<LI><A HREF="gettext_8.html#IDX305">installing <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_11.html#IDX1007">interface to <CODE>catgets</CODE></A>
<LI><A HREF="gettext_1.html#IDX8">internationalization</A>
<LI><A HREF="gettext_4.html#IDX122"><CODE>inttypes.h</CODE></A>
-<LI><A HREF="gettext_18.html#IDX1198">ISO 3166</A>
-<LI><A HREF="gettext_17.html#IDX1196">ISO 639</A>
+<LI><A HREF="gettext_18.html#IDX1205">ISO 3166</A>
+<LI><A HREF="gettext_17.html#IDX1203">ISO 639</A>
</DIR>
<H2><A NAME="cindex_j">j</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1164">Java</A>
-<LI><A HREF="gettext_10.html#IDX894">Java mode, and <CODE>msgfmt</CODE> program</A>
-<LI><A HREF="gettext_10.html#IDX954">Java mode, and <CODE>msgunfmt</CODE> program</A>
+<LI><A HREF="gettext_15.html#IDX1171">Java</A>
+<LI><A HREF="gettext_10.html#IDX900">Java mode, and <CODE>msgfmt</CODE> program</A>
+<LI><A HREF="gettext_10.html#IDX960">Java mode, and <CODE>msgunfmt</CODE> program</A>
<LI><A HREF="gettext_4.html#IDX123">Java, string concatenation</A>
</DIR>
<H2><A NAME="cindex_k">k</A></H2>
<DIR>
-<LI><A HREF="gettext_8.html#IDX299">KDE PO file editor</A>
-<LI><A HREF="gettext_10.html#IDX933">keyboard accelerator checking</A>
+<LI><A HREF="gettext_8.html#IDX302">KDE PO file editor</A>
+<LI><A HREF="gettext_10.html#IDX939">keyboard accelerator checking</A>
</DIR>
<H2><A NAME="cindex_l">l</A></H2>
<DIR>
<LI><A HREF="gettext_1.html#IDX7">l10n</A>
-<LI><A HREF="gettext_17.html#IDX1195">language codes</A>
+<LI><A HREF="gettext_17.html#IDX1202">language codes</A>
<LI><A HREF="gettext_2.html#IDX44">language selection</A>
-<LI><A HREF="gettext_11.html#IDX1038">language selection at runtime</A>
-<LI><A HREF="gettext_11.html#IDX1010">large package</A>
-<LI><A HREF="gettext_19.html#IDX1202">LGPL, GNU Lesser General Public License</A>
-<LI><A HREF="gettext_13.html#IDX1088"><CODE>libiconv</CODE> library</A>
-<LI><A HREF="gettext_15.html#IDX1167"><CODE>libintl</CODE> for C#</A>
-<LI><A HREF="gettext_15.html#IDX1165"><CODE>libintl</CODE> for Java</A>
-<LI><A HREF="gettext_13.html#IDX1084"><CODE>libintl</CODE> library</A>
-<LI><A HREF="gettext_15.html#IDX1160"><CODE>librep</CODE> Lisp</A>
-<LI><A HREF="gettext_19.html#IDX1205">License, GNU FDL</A>
-<LI><A HREF="gettext_19.html#IDX1201">License, GNU GPL</A>
-<LI><A HREF="gettext_19.html#IDX1203">License, GNU LGPL</A>
-<LI><A HREF="gettext_19.html#IDX1199">Licenses</A>
+<LI><A HREF="gettext_11.html#IDX1044">language selection at runtime</A>
+<LI><A HREF="gettext_11.html#IDX1016">large package</A>
+<LI><A HREF="gettext_19.html#IDX1209">LGPL, GNU Lesser General Public License</A>
+<LI><A HREF="gettext_13.html#IDX1095"><CODE>libiconv</CODE> library</A>
+<LI><A HREF="gettext_15.html#IDX1174"><CODE>libintl</CODE> for C#</A>
+<LI><A HREF="gettext_15.html#IDX1172"><CODE>libintl</CODE> for Java</A>
+<LI><A HREF="gettext_13.html#IDX1089"><CODE>libintl</CODE> library</A>
+<LI><A HREF="gettext_15.html#IDX1167"><CODE>librep</CODE> Lisp</A>
+<LI><A HREF="gettext_19.html#IDX1212">License, GNU FDL</A>
+<LI><A HREF="gettext_19.html#IDX1208">License, GNU GPL</A>
+<LI><A HREF="gettext_19.html#IDX1210">License, GNU LGPL</A>
+<LI><A HREF="gettext_19.html#IDX1206">Licenses</A>
<LI><A HREF="gettext_1.html#IDX34">link with <TT>‘libintl’</TT></A>
-<LI><A HREF="gettext_1.html#IDX27">Linux</A>, <A HREF="gettext_1.html#IDX35">Linux</A>, <A HREF="gettext_6.html#IDX245">Linux</A>
-<LI><A HREF="gettext_15.html#IDX1156">Lisp</A>
-<LI><A HREF="gettext_6.html#IDX240">list of translation teams, where to find</A>
+<LI><A HREF="gettext_1.html#IDX27">Linux</A>, <A HREF="gettext_1.html#IDX35">Linux</A>, <A HREF="gettext_6.html#IDX247">Linux</A>
+<LI><A HREF="gettext_15.html#IDX1163">Lisp</A>
+<LI><A HREF="gettext_6.html#IDX242">list of translation teams, where to find</A>
<LI><A HREF="gettext_4.html#IDX105">locale facet, LC_ALL</A>
<LI><A HREF="gettext_4.html#IDX108">locale facet, LC_COLLATE</A>
<LI><A HREF="gettext_1.html#IDX18">locale facet, LC_CTYPE</A>, <A HREF="gettext_4.html#IDX106">locale facet, LC_CTYPE</A>, <A HREF="gettext_4.html#IDX107">locale facet, LC_CTYPE</A>
<LI><A HREF="gettext_4.html#IDX113">locale facet, LC_RESPONSES</A>
<LI><A HREF="gettext_1.html#IDX22">locale facet, LC_TIME</A>, <A HREF="gettext_4.html#IDX111">locale facet, LC_TIME</A>
<LI><A HREF="gettext_1.html#IDX14">locale facets</A>
-<LI><A HREF="gettext_6.html#IDX243"><CODE>locale</CODE> program</A>
+<LI><A HREF="gettext_6.html#IDX245"><CODE>locale</CODE> program</A>
<LI><A HREF="gettext_1.html#IDX9">localization</A>
-<LI><A HREF="gettext_15.html#IDX1117">lookup message translation</A>, <A HREF="gettext_15.html#IDX1150">lookup message translation</A>
-<LI><A HREF="gettext_15.html#IDX1129">lookup plural message translation</A>, <A HREF="gettext_15.html#IDX1152">lookup plural message translation</A>
+<LI><A HREF="gettext_15.html#IDX1124">lookup message translation</A>, <A HREF="gettext_15.html#IDX1157">lookup message translation</A>
+<LI><A HREF="gettext_15.html#IDX1136">lookup plural message translation</A>, <A HREF="gettext_15.html#IDX1159">lookup plural message translation</A>
</DIR>
<H2><A NAME="cindex_m">m</A></H2>
<DIR>
-<LI><A HREF="gettext_10.html#IDX996">magic signature of MO files</A>
-<LI><A HREF="gettext_9.html#IDX504">manipulating PO files</A>
-<LI><A HREF="gettext_15.html#IDX1179">marking Perl sources</A>
-<LI><A HREF="gettext_4.html#IDX139">marking string initializers</A>
-<LI><A HREF="gettext_4.html#IDX125">marking strings that require translation</A>
+<LI><A HREF="gettext_10.html#IDX1002">magic signature of MO files</A>
+<LI><A HREF="gettext_9.html#IDX507">manipulating PO files</A>
+<LI><A HREF="gettext_15.html#IDX1186">marking Perl sources</A>
+<LI><A HREF="gettext_4.html#IDX141">marking string initializers</A>
+<LI><A HREF="gettext_4.html#IDX127">marking strings that require translation</A>
<LI><A HREF="gettext_4.html#IDX114">marking strings, preparations</A>
<LI><A HREF="gettext_1.html#IDX32">marking translatable strings</A>
-<LI><A HREF="gettext_11.html#IDX1018">menu entries</A>
-<LI><A HREF="gettext_10.html#IDX934">menu, keyboard accelerator support</A>
-<LI><A HREF="gettext_9.html#IDX515">merge PO files</A>
-<LI><A HREF="gettext_9.html#IDX505">merging two PO files</A>
-<LI><A HREF="gettext_11.html#IDX1011">message catalog files location</A>
+<LI><A HREF="gettext_4.html#IDX125">markup</A>
+<LI><A HREF="gettext_11.html#IDX1024">menu entries</A>
+<LI><A HREF="gettext_10.html#IDX940">menu, keyboard accelerator support</A>
+<LI><A HREF="gettext_9.html#IDX518">merge PO files</A>
+<LI><A HREF="gettext_9.html#IDX508">merging two PO files</A>
+<LI><A HREF="gettext_11.html#IDX1017">message catalog files location</A>
<LI><A HREF="gettext_1.html#IDX25">messages</A>
-<LI><A HREF="gettext_13.html#IDX1052">migration from earlier versions of <CODE>gettext</CODE></A>
-<LI><A HREF="gettext_10.html#IDX935">mnemonics of menu entries</A>
-<LI><A HREF="gettext_10.html#IDX994">MO file's format</A>
-<LI><A HREF="gettext_9.html#IDX792">modify message attrributes</A>
-<LI><A HREF="gettext_9.html#IDX779"><CODE>msgattrib</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX513"><CODE>msgcat</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX765"><CODE>msgcmp</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX725"><CODE>msgcomm</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX558"><CODE>msgconv</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX826"><CODE>msgen</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX856"><CODE>msgexec</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX651"><CODE>msgfilter</CODE> filter and catalog encoding</A>
-<LI><A HREF="gettext_9.html#IDX643"><CODE>msgfilter</CODE> program, usage</A>
-<LI><A HREF="gettext_10.html#IDX888"><CODE>msgfmt</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX590"><CODE>msggrep</CODE> program, usage</A>
-<LI><A HREF="gettext_6.html#IDX216"><CODE>msginit</CODE> program, usage</A>
-<LI><A HREF="gettext_7.html#IDX251"><CODE>msgmerge</CODE> program, usage</A>
-<LI><A HREF="gettext_10.html#IDX950"><CODE>msgunfmt</CODE> program, usage</A>
-<LI><A HREF="gettext_9.html#IDX686"><CODE>msguniq</CODE> program, usage</A>
-<LI><A HREF="gettext_8.html#IDX362">multi-line strings</A>
+<LI><A HREF="gettext_13.html#IDX1058">migration from earlier versions of <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_10.html#IDX941">mnemonics of menu entries</A>
+<LI><A HREF="gettext_10.html#IDX1000">MO file's format</A>
+<LI><A HREF="gettext_9.html#IDX797">modify message attributes</A>
+<LI><A HREF="gettext_9.html#IDX784"><CODE>msgattrib</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX516"><CODE>msgcat</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX768"><CODE>msgcmp</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX728"><CODE>msgcomm</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX561"><CODE>msgconv</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX832"><CODE>msgen</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX862"><CODE>msgexec</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX654"><CODE>msgfilter</CODE> filter and catalog encoding</A>
+<LI><A HREF="gettext_9.html#IDX646"><CODE>msgfilter</CODE> program, usage</A>
+<LI><A HREF="gettext_10.html#IDX894"><CODE>msgfmt</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX593"><CODE>msggrep</CODE> program, usage</A>
+<LI><A HREF="gettext_6.html#IDX218"><CODE>msginit</CODE> program, usage</A>
+<LI><A HREF="gettext_7.html#IDX253"><CODE>msgmerge</CODE> program, usage</A>
+<LI><A HREF="gettext_10.html#IDX956"><CODE>msgunfmt</CODE> program, usage</A>
+<LI><A HREF="gettext_9.html#IDX689"><CODE>msguniq</CODE> program, usage</A>
+<LI><A HREF="gettext_8.html#IDX365">multi-line strings</A>
</DIR>
<H2><A NAME="cindex_n">n</A></H2>
<DIR>
-<LI><A HREF="gettext_11.html#IDX1037"><CODE>N_</CODE>, a convenience macro</A>
+<LI><A HREF="gettext_11.html#IDX1043"><CODE>N_</CODE>, a convenience macro</A>
<LI><A HREF="gettext_1.html#IDX11">Native Language Support</A>
<LI><A HREF="gettext_1.html#IDX12">Natural Language Support</A>
<LI><A HREF="gettext_3.html#IDX100">newlines in PO files</A>
-<LI><A HREF="gettext_11.html#IDX1026">ngettext</A>
-<LI><A HREF="gettext_15.html#IDX1128"><CODE>ngettext</CODE> program, usage</A>
+<LI><A HREF="gettext_11.html#IDX1032">ngettext</A>
+<LI><A HREF="gettext_15.html#IDX1135"><CODE>ngettext</CODE> program, usage</A>
<LI><A HREF="gettext_1.html#IDX10">NLS</A>
<LI><A HREF="gettext_1.html#IDX23">number format</A>
</DIR>
<H2><A NAME="cindex_o">o</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1172">Object Pascal</A>
-<LI><A HREF="gettext_8.html#IDX399">obsolete entries</A>
-<LI><A HREF="gettext_11.html#IDX1033">optimization of <CODE>gettext</CODE> functions</A>
-<LI><A HREF="gettext_9.html#IDX508">orthography</A>
-<LI><A HREF="gettext_15.html#IDX1106">outdigits</A>
-<LI><A HREF="gettext_5.html#IDX153">output to stdout, <CODE>xgettext</CODE></A>
+<LI><A HREF="gettext_15.html#IDX1179">Object Pascal</A>
+<LI><A HREF="gettext_8.html#IDX402">obsolete entries</A>
+<LI><A HREF="gettext_11.html#IDX1039">optimization of <CODE>gettext</CODE> functions</A>
+<LI><A HREF="gettext_9.html#IDX511">orthography</A>
+<LI><A HREF="gettext_15.html#IDX1113">outdigits</A>
+<LI><A HREF="gettext_5.html#IDX155">output to stdout, <CODE>xgettext</CODE></A>
<LI><A HREF="gettext_1.html#IDX29">overview of <CODE>gettext</CODE></A>
</DIR>
<H2><A NAME="cindex_p">p</A></H2>
<DIR>
-<LI><A HREF="gettext_13.html#IDX1073">package and version declaration in <TT>‘configure.in’</TT></A>
-<LI><A HREF="gettext_14.html#IDX1101">package build and installation options</A>
-<LI><A HREF="gettext_14.html#IDX1100">package distributor's view of <CODE>gettext</CODE></A>
-<LI><A HREF="gettext_14.html#IDX1099">package installer's view of <CODE>gettext</CODE></A>
-<LI><A HREF="gettext_13.html#IDX1050">package maintainer's view of <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_13.html#IDX1078">package and version declaration in <TT>‘configure.in’</TT></A>
+<LI><A HREF="gettext_14.html#IDX1108">package build and installation options</A>
+<LI><A HREF="gettext_14.html#IDX1107">package distributor's view of <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_14.html#IDX1106">package installer's view of <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_13.html#IDX1056">package maintainer's view of <CODE>gettext</CODE></A>
<LI><A HREF="gettext_4.html#IDX118">paragraphs</A>
-<LI><A HREF="gettext_15.html#IDX1170">Pascal</A>
-<LI><A HREF="gettext_15.html#IDX1178">Perl</A>
-<LI><A HREF="gettext_15.html#IDX1180">Perl default keywords</A>
-<LI><A HREF="gettext_15.html#IDX1183">Perl invalid string interpolation</A>
-<LI><A HREF="gettext_15.html#IDX1186">Perl long lines</A>
-<LI><A HREF="gettext_15.html#IDX1185">Perl parentheses</A>
-<LI><A HREF="gettext_15.html#IDX1187">Perl pitfalls</A>
-<LI><A HREF="gettext_15.html#IDX1182">Perl quote-like expressions</A>
-<LI><A HREF="gettext_15.html#IDX1181">Perl special keywords for hash-lookups</A>
-<LI><A HREF="gettext_15.html#IDX1184">Perl valid string interpolation</A>
-<LI><A HREF="gettext_11.html#IDX1019">pgettext</A>
-<LI><A HREF="gettext_11.html#IDX1022">pgettext_expr</A>
-<LI><A HREF="gettext_15.html#IDX1188">PHP</A>
-<LI><A HREF="gettext_15.html#IDX1189">Pike</A>
-<LI><A HREF="gettext_11.html#IDX1032">plural form formulas</A>
-<LI><A HREF="gettext_11.html#IDX1025">plural forms</A>
-<LI><A HREF="gettext_10.html#IDX999">plural forms, in MO files</A>
+<LI><A HREF="gettext_15.html#IDX1177">Pascal</A>
+<LI><A HREF="gettext_15.html#IDX1185">Perl</A>
+<LI><A HREF="gettext_15.html#IDX1187">Perl default keywords</A>
+<LI><A HREF="gettext_15.html#IDX1190">Perl invalid string interpolation</A>
+<LI><A HREF="gettext_15.html#IDX1193">Perl long lines</A>
+<LI><A HREF="gettext_15.html#IDX1192">Perl parentheses</A>
+<LI><A HREF="gettext_15.html#IDX1194">Perl pitfalls</A>
+<LI><A HREF="gettext_15.html#IDX1189">Perl quote-like expressions</A>
+<LI><A HREF="gettext_15.html#IDX1188">Perl special keywords for hash-lookups</A>
+<LI><A HREF="gettext_15.html#IDX1191">Perl valid string interpolation</A>
+<LI><A HREF="gettext_11.html#IDX1025">pgettext</A>
+<LI><A HREF="gettext_11.html#IDX1028">pgettext_expr</A>
+<LI><A HREF="gettext_15.html#IDX1195">PHP</A>
+<LI><A HREF="gettext_15.html#IDX1196">Pike</A>
+<LI><A HREF="gettext_11.html#IDX1038">plural form formulas</A>
+<LI><A HREF="gettext_11.html#IDX1031">plural forms</A>
+<LI><A HREF="gettext_10.html#IDX1005">plural forms, in MO files</A>
<LI><A HREF="gettext_3.html#IDX99">plural forms, in PO files</A>
<LI><A HREF="gettext_3.html#IDX46">PO files' format</A>
-<LI><A HREF="gettext_8.html#IDX306">PO mode (Emacs) commands</A>
-<LI><A HREF="gettext_5.html#IDX140">PO template file</A>
-<LI><A HREF="gettext_9.html#IDX879">po_file_domains</A>
-<LI><A HREF="gettext_9.html#IDX878">po_file_free</A>
-<LI><A HREF="gettext_9.html#IDX877">po_file_read</A>
-<LI><A HREF="gettext_9.html#IDX880">po_message_iterator</A>
-<LI><A HREF="gettext_9.html#IDX881">po_message_iterator_free</A>
-<LI><A HREF="gettext_9.html#IDX883">po_message_msgid</A>
-<LI><A HREF="gettext_9.html#IDX884">po_message_msgid_plural</A>
-<LI><A HREF="gettext_9.html#IDX885">po_message_msgstr</A>
-<LI><A HREF="gettext_9.html#IDX886">po_message_msgstr_plural</A>
-<LI><A HREF="gettext_9.html#IDX882">po_next_message</A>
-<LI><A HREF="gettext_9.html#IDX652">portability problems with <CODE>sed</CODE></A>
+<LI><A HREF="gettext_8.html#IDX309">PO mode (Emacs) commands</A>
+<LI><A HREF="gettext_5.html#IDX142">PO template file</A>
+<LI><A HREF="gettext_9.html#IDX885">po_file_domains</A>
+<LI><A HREF="gettext_9.html#IDX884">po_file_free</A>
+<LI><A HREF="gettext_9.html#IDX883">po_file_read</A>
+<LI><A HREF="gettext_9.html#IDX886">po_message_iterator</A>
+<LI><A HREF="gettext_9.html#IDX887">po_message_iterator_free</A>
+<LI><A HREF="gettext_9.html#IDX889">po_message_msgid</A>
+<LI><A HREF="gettext_9.html#IDX890">po_message_msgid_plural</A>
+<LI><A HREF="gettext_9.html#IDX891">po_message_msgstr</A>
+<LI><A HREF="gettext_9.html#IDX892">po_message_msgstr_plural</A>
+<LI><A HREF="gettext_9.html#IDX888">po_next_message</A>
+<LI><A HREF="gettext_9.html#IDX655">portability problems with <CODE>sed</CODE></A>
<LI><A HREF="gettext_4.html#IDX102">preparing programs for translation</A>
-<LI><A HREF="gettext_15.html#IDX1114">preparing shell scripts for translation</A>
-<LI><A HREF="gettext_11.html#IDX1005">problems with <CODE>catgets</CODE> interface</A>
-<LI><A HREF="gettext_15.html#IDX1104">programming languages</A>
-<LI><A HREF="gettext_15.html#IDX1154">Python</A>
+<LI><A HREF="gettext_15.html#IDX1121">preparing shell scripts for translation</A>
+<LI><A HREF="gettext_11.html#IDX1011">problems with <CODE>catgets</CODE> interface</A>
+<LI><A HREF="gettext_15.html#IDX1111">programming languages</A>
+<LI><A HREF="gettext_15.html#IDX1161">Python</A>
</DIR>
<H2><A NAME="cindex_q">q</A></H2>
<DIR>
-<LI><A HREF="gettext_5.html#IDX179">Qt format strings</A>
-<LI><A HREF="gettext_10.html#IDX903">Qt mode, and <CODE>msgfmt</CODE> program</A>
-<LI><A HREF="gettext_6.html#IDX248">quotation marks</A>, <A HREF="gettext_13.html#IDX1071">quotation marks</A>
-<LI><A HREF="gettext_6.html#IDX247">quote characters, use in PO files</A>
+<LI><A HREF="gettext_5.html#IDX181">Qt format strings</A>
+<LI><A HREF="gettext_10.html#IDX909">Qt mode, and <CODE>msgfmt</CODE> program</A>
+<LI><A HREF="gettext_6.html#IDX250">quotation marks</A>, <A HREF="gettext_13.html#IDX1076">quotation marks</A>
+<LI><A HREF="gettext_6.html#IDX249">quote characters, use in PO files</A>
</DIR>
<H2><A NAME="cindex_r">r</A></H2>
<DIR>
-<LI><A HREF="gettext_9.html#IDX661"><CODE>recode-sr-latin</CODE> program</A>
-<LI><A HREF="gettext_16.html#IDX1193">related reading</A>
-<LI><A HREF="gettext_13.html#IDX1097">release</A>
-<LI><A HREF="gettext_15.html#IDX1191">RST</A>
+<LI><A HREF="gettext_9.html#IDX664"><CODE>recode-sr-latin</CODE> program</A>
+<LI><A HREF="gettext_16.html#IDX1200">related reading</A>
+<LI><A HREF="gettext_13.html#IDX1104">release</A>
+<LI><A HREF="gettext_15.html#IDX1198">RST</A>
</DIR>
<H2><A NAME="cindex_s">s</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1161">Scheme</A>
-<LI><A HREF="gettext_15.html#IDX1105">scripting languages</A>
-<LI><A HREF="gettext_9.html#IDX591">search messages in a catalog</A>
+<LI><A HREF="gettext_15.html#IDX1168">Scheme</A>
+<LI><A HREF="gettext_15.html#IDX1112">scripting languages</A>
+<LI><A HREF="gettext_9.html#IDX594">search messages in a catalog</A>
<LI><A HREF="gettext_2.html#IDX43">selecting message language</A>
<LI><A HREF="gettext_4.html#IDX117">sentences</A>
-<LI><A HREF="gettext_14.html#IDX1102">setting up <CODE>gettext</CODE> at build time</A>
+<LI><A HREF="gettext_14.html#IDX1109">setting up <CODE>gettext</CODE> at build time</A>
<LI><A HREF="gettext_2.html#IDX42">setting up <CODE>gettext</CODE> at run time</A>
-<LI><A HREF="gettext_11.html#IDX1008">several domains</A>
+<LI><A HREF="gettext_11.html#IDX1014">several domains</A>
<LI><A HREF="gettext_1.html#IDX1">sex</A>
<LI><A HREF="gettext_1.html#IDX3">she, he, and they</A>
-<LI><A HREF="gettext_15.html#IDX1140">shell format string</A>
-<LI><A HREF="gettext_15.html#IDX1109">shell scripts</A>
-<LI><A HREF="gettext_15.html#IDX1163">Smalltalk</A>
-<LI><A HREF="gettext_9.html#IDX550">sorting <CODE>msgcat</CODE> output</A>
-<LI><A HREF="gettext_7.html#IDX286">sorting <CODE>msgmerge</CODE> output</A>
-<LI><A HREF="gettext_10.html#IDX987">sorting <CODE>msgunfmt</CODE> output</A>
-<LI><A HREF="gettext_5.html#IDX198">sorting output of <CODE>xgettext</CODE></A>
-<LI><A HREF="gettext_11.html#IDX1029">specifying plural form in a PO file</A>
-<LI><A HREF="gettext_9.html#IDX522">standard output, and <CODE>msgcat</CODE></A>
-<LI><A HREF="gettext_7.html#IDX260">standard output, and <CODE>msgmerge</CODE> program</A>
+<LI><A HREF="gettext_15.html#IDX1147">shell format string</A>
+<LI><A HREF="gettext_15.html#IDX1116">shell scripts</A>
+<LI><A HREF="gettext_15.html#IDX1170">Smalltalk</A>
+<LI><A HREF="gettext_9.html#IDX553">sorting <CODE>msgcat</CODE> output</A>
+<LI><A HREF="gettext_7.html#IDX289">sorting <CODE>msgmerge</CODE> output</A>
+<LI><A HREF="gettext_10.html#IDX993">sorting <CODE>msgunfmt</CODE> output</A>
+<LI><A HREF="gettext_5.html#IDX200">sorting output of <CODE>xgettext</CODE></A>
+<LI><A HREF="gettext_11.html#IDX1035">specifying plural form in a PO file</A>
+<LI><A HREF="gettext_9.html#IDX525">standard output, and <CODE>msgcat</CODE></A>
+<LI><A HREF="gettext_7.html#IDX262">standard output, and <CODE>msgmerge</CODE> program</A>
<LI><A HREF="gettext_4.html#IDX120">string concatenation</A>
-<LI><A HREF="gettext_8.html#IDX358">string normalization in entries</A>
+<LI><A HREF="gettext_8.html#IDX361">string normalization in entries</A>
<LI><A HREF="gettext_4.html#IDX115">style</A>
-<LI><A HREF="gettext_5.html#IDX156">supported languages, <CODE>xgettext</CODE></A>
+<LI><A HREF="gettext_5.html#IDX158">supported languages, <CODE>xgettext</CODE></A>
</DIR>
<H2><A NAME="cindex_t">t</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1176">Tcl</A>
-<LI><A HREF="gettext_10.html#IDX901">Tcl mode, and <CODE>msgfmt</CODE> program</A>
-<LI><A HREF="gettext_10.html#IDX960">Tcl mode, and <CODE>msgunfmt</CODE> program</A>
+<LI><A HREF="gettext_15.html#IDX1183">Tcl</A>
+<LI><A HREF="gettext_10.html#IDX907">Tcl mode, and <CODE>msgfmt</CODE> program</A>
+<LI><A HREF="gettext_10.html#IDX966">Tcl mode, and <CODE>msgunfmt</CODE> program</A>
<LI><A HREF="gettext_1.html#IDX36">template PO file</A>
-<LI><A HREF="gettext_5.html#IDX202">testing <TT>‘.po’</TT> files for equivalence</A>
-<LI><A HREF="gettext_15.html#IDX1177">Tk's scripting language</A>
-<LI><A HREF="gettext_8.html#IDX363">translated entries</A>
-<LI><A HREF="gettext_11.html#IDX1017">translating menu entries</A>
+<LI><A HREF="gettext_5.html#IDX204">testing <TT>‘.po’</TT> files for equivalence</A>
+<LI><A HREF="gettext_15.html#IDX1184">Tk's scripting language</A>
+<LI><A HREF="gettext_8.html#IDX366">translated entries</A>
+<LI><A HREF="gettext_11.html#IDX1023">translating menu entries</A>
<LI><A HREF="gettext_1.html#IDX13">translation aspects</A>
<LI><A HREF="gettext_2.html#IDX39">Translation Matrix</A>
<LI><A HREF="gettext_1.html#IDX5">Translation Project</A>
-<LI><A HREF="gettext_13.html#IDX1079">turning off NLS support</A>
+<LI><A HREF="gettext_13.html#IDX1084">turning off NLS support</A>
<LI><A HREF="gettext_1.html#IDX31">tutorial of <CODE>gettext</CODE> usage</A>
</DIR>
<H2><A NAME="cindex_u">u</A></H2>
<DIR>
-<LI><A HREF="gettext_9.html#IDX687">unify duplicate translations</A>
-<LI><A HREF="gettext_8.html#IDX388">untranslated entries</A>
-<LI><A HREF="gettext_8.html#IDX503">update translations from a compendium</A>
-<LI><A HREF="gettext_13.html#IDX1053">upgrading to new versions of <CODE>gettext</CODE></A>
+<LI><A HREF="gettext_9.html#IDX690">unify duplicate translations</A>
+<LI><A HREF="gettext_8.html#IDX391">untranslated entries</A>
+<LI><A HREF="gettext_8.html#IDX506">update translations from a compendium</A>
+<LI><A HREF="gettext_13.html#IDX1059">upgrading to new versions of <CODE>gettext</CODE></A>
</DIR>
<H2><A NAME="cindex_v">v</A></H2>
<DIR>
-<LI><A HREF="gettext_7.html#IDX264">version control for backup files, <CODE>msgmerge</CODE></A>
+<LI><A HREF="gettext_7.html#IDX266">version control for backup files, <CODE>msgmerge</CODE></A>
</DIR>
<H2><A NAME="cindex_w">w</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1173"><CODE>wxWidgets</CODE> library</A>
+<LI><A HREF="gettext_15.html#IDX1180"><CODE>wxWidgets</CODE> library</A>
</DIR>
<H2><A NAME="cindex_x">x</A></H2>
<DIR>
-<LI><A HREF="gettext_9.html#IDX858"><CODE>xargs</CODE>, and output from <CODE>msgexec</CODE></A>
-<LI><A HREF="gettext_5.html#IDX142"><CODE>xgettext</CODE> program, usage</A>
-<LI><A HREF="gettext_6.html#IDX249"><CODE>xmodmap</CODE> program, and typing quotation marks</A>
+<LI><A HREF="gettext_9.html#IDX864"><CODE>xargs</CODE>, and output from <CODE>msgexec</CODE></A>
+<LI><A HREF="gettext_5.html#IDX144"><CODE>xgettext</CODE> program, usage</A>
+<LI><A HREF="gettext_6.html#IDX251"><CODE>xmodmap</CODE> program, and typing quotation marks</A>
</DIR>
<H2><A NAME="cindex_y">y</A></H2>
<DIR>
-<LI><A HREF="gettext_15.html#IDX1175">YaST2 scripting language</A>
-<LI><A HREF="gettext_15.html#IDX1174">YCP</A>
+<LI><A HREF="gettext_15.html#IDX1182">YaST2 scripting language</A>
+<LI><A HREF="gettext_15.html#IDX1181">YCP</A>
</DIR>
</P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 3 The Format of PO Files</TITLE>
#. <VAR>extracted-comments</VAR>
#: <VAR>reference</VAR>...
#, <VAR>flag</VAR>...
+#| msgid <VAR>previous-untranslated-string</VAR>
msgid <VAR>untranslated-string</VAR>
msgstr <VAR>translated-string</VAR>
</PRE>
because the <CODE>xgettext</CODE> program extracts them from the program's
source code. Comment lines starting with <CODE>#:</CODE> contain references to
the program's source code. Comment lines starting with <CODE>#,</CODE> contain
-flags; more about these below.
+flags; more about these below. Comment lines starting with <CODE>#|</CODE>
+contain the previous untranslated string for which the translator gave
+a translation.
+
+</P>
+<P>
All comments, of either kind, are optional.
</P>
In case the <CODE>c-format</CODE> flag is given for a string the <CODE>msgfmt</CODE>
does some more tests to check to validity of the translation.
-See section <A HREF="gettext_10.html#SEC143">10.1 Invoking the <CODE>msgfmt</CODE> Program</A>, section <A HREF="gettext_4.html#SEC17">4.6 Special Comments preceding Keywords</A> and section <A HREF="gettext_15.html#SEC231">15.3.1 C Format Strings</A>.
+See section <A HREF="gettext_10.html#SEC143">10.1 Invoking the <CODE>msgfmt</CODE> Program</A>, section <A HREF="gettext_4.html#SEC17">4.6 Special Comments preceding Keywords</A> and section <A HREF="gettext_15.html#SEC233">15.3.1 C Format Strings</A>.
<DT><CODE>objc-format</CODE>
<DD>
<DT><CODE>no-objc-format</CODE>
<DD>
<A NAME="IDX57"></A>
-Likewise for Objective C, see section <A HREF="gettext_15.html#SEC232">15.3.2 Objective C Format Strings</A>.
+Likewise for Objective C, see section <A HREF="gettext_15.html#SEC234">15.3.2 Objective C Format Strings</A>.
<DT><CODE>sh-format</CODE>
<DD>
<DT><CODE>no-sh-format</CODE>
<DD>
<A NAME="IDX59"></A>
-Likewise for Shell, see section <A HREF="gettext_15.html#SEC233">15.3.3 Shell Format Strings</A>.
+Likewise for Shell, see section <A HREF="gettext_15.html#SEC235">15.3.3 Shell Format Strings</A>.
<DT><CODE>python-format</CODE>
<DD>
<DT><CODE>no-python-format</CODE>
<DD>
<A NAME="IDX61"></A>
-Likewise for Python, see section <A HREF="gettext_15.html#SEC234">15.3.4 Python Format Strings</A>.
+Likewise for Python, see section <A HREF="gettext_15.html#SEC236">15.3.4 Python Format Strings</A>.
<DT><CODE>lisp-format</CODE>
<DD>
<DT><CODE>no-lisp-format</CODE>
<DD>
<A NAME="IDX63"></A>
-Likewise for Lisp, see section <A HREF="gettext_15.html#SEC235">15.3.5 Lisp Format Strings</A>.
+Likewise for Lisp, see section <A HREF="gettext_15.html#SEC237">15.3.5 Lisp Format Strings</A>.
<DT><CODE>elisp-format</CODE>
<DD>
<DT><CODE>no-elisp-format</CODE>
<DD>
<A NAME="IDX65"></A>
-Likewise for Emacs Lisp, see section <A HREF="gettext_15.html#SEC236">15.3.6 Emacs Lisp Format Strings</A>.
+Likewise for Emacs Lisp, see section <A HREF="gettext_15.html#SEC238">15.3.6 Emacs Lisp Format Strings</A>.
<DT><CODE>librep-format</CODE>
<DD>
<DT><CODE>no-librep-format</CODE>
<DD>
<A NAME="IDX67"></A>
-Likewise for librep, see section <A HREF="gettext_15.html#SEC237">15.3.7 librep Format Strings</A>.
+Likewise for librep, see section <A HREF="gettext_15.html#SEC239">15.3.7 librep Format Strings</A>.
<DT><CODE>scheme-format</CODE>
<DD>
<DT><CODE>no-scheme-format</CODE>
<DD>
<A NAME="IDX69"></A>
-Likewise for Scheme, see section <A HREF="gettext_15.html#SEC238">15.3.8 Scheme Format Strings</A>.
+Likewise for Scheme, see section <A HREF="gettext_15.html#SEC240">15.3.8 Scheme Format Strings</A>.
<DT><CODE>smalltalk-format</CODE>
<DD>
<DT><CODE>no-smalltalk-format</CODE>
<DD>
<A NAME="IDX71"></A>
-Likewise for Smalltalk, see section <A HREF="gettext_15.html#SEC239">15.3.9 Smalltalk Format Strings</A>.
+Likewise for Smalltalk, see section <A HREF="gettext_15.html#SEC241">15.3.9 Smalltalk Format Strings</A>.
<DT><CODE>java-format</CODE>
<DD>
<DT><CODE>no-java-format</CODE>
<DD>
<A NAME="IDX73"></A>
-Likewise for Java, see section <A HREF="gettext_15.html#SEC240">15.3.10 Java Format Strings</A>.
+Likewise for Java, see section <A HREF="gettext_15.html#SEC242">15.3.10 Java Format Strings</A>.
<DT><CODE>csharp-format</CODE>
<DD>
<DT><CODE>no-csharp-format</CODE>
<DD>
<A NAME="IDX75"></A>
-Likewise for C#, see section <A HREF="gettext_15.html#SEC241">15.3.11 C# Format Strings</A>.
+Likewise for C#, see section <A HREF="gettext_15.html#SEC243">15.3.11 C# Format Strings</A>.
<DT><CODE>awk-format</CODE>
<DD>
<DT><CODE>no-awk-format</CODE>
<DD>
<A NAME="IDX77"></A>
-Likewise for awk, see section <A HREF="gettext_15.html#SEC242">15.3.12 awk Format Strings</A>.
+Likewise for awk, see section <A HREF="gettext_15.html#SEC244">15.3.12 awk Format Strings</A>.
<DT><CODE>object-pascal-format</CODE>
<DD>
<DT><CODE>no-object-pascal-format</CODE>
<DD>
<A NAME="IDX79"></A>
-Likewise for Object Pascal, see section <A HREF="gettext_15.html#SEC243">15.3.13 Object Pascal Format Strings</A>.
+Likewise for Object Pascal, see section <A HREF="gettext_15.html#SEC245">15.3.13 Object Pascal Format Strings</A>.
<DT><CODE>ycp-format</CODE>
<DD>
<DT><CODE>no-ycp-format</CODE>
<DD>
<A NAME="IDX81"></A>
-Likewise for YCP, see section <A HREF="gettext_15.html#SEC244">15.3.14 YCP Format Strings</A>.
+Likewise for YCP, see section <A HREF="gettext_15.html#SEC246">15.3.14 YCP Format Strings</A>.
<DT><CODE>tcl-format</CODE>
<DD>
<DT><CODE>no-tcl-format</CODE>
<DD>
<A NAME="IDX83"></A>
-Likewise for Tcl, see section <A HREF="gettext_15.html#SEC245">15.3.15 Tcl Format Strings</A>.
+Likewise for Tcl, see section <A HREF="gettext_15.html#SEC247">15.3.15 Tcl Format Strings</A>.
<DT><CODE>perl-format</CODE>
<DD>
<DT><CODE>no-perl-format</CODE>
<DD>
<A NAME="IDX85"></A>
-Likewise for Perl, see section <A HREF="gettext_15.html#SEC246">15.3.16 Perl Format Strings</A>.
+Likewise for Perl, see section <A HREF="gettext_15.html#SEC248">15.3.16 Perl Format Strings</A>.
<DT><CODE>perl-brace-format</CODE>
<DD>
<DT><CODE>no-perl-brace-format</CODE>
<DD>
<A NAME="IDX87"></A>
-Likewise for Perl brace, see section <A HREF="gettext_15.html#SEC246">15.3.16 Perl Format Strings</A>.
+Likewise for Perl brace, see section <A HREF="gettext_15.html#SEC248">15.3.16 Perl Format Strings</A>.
<DT><CODE>php-format</CODE>
<DD>
<DT><CODE>no-php-format</CODE>
<DD>
<A NAME="IDX89"></A>
-Likewise for PHP, see section <A HREF="gettext_15.html#SEC247">15.3.17 PHP Format Strings</A>.
+Likewise for PHP, see section <A HREF="gettext_15.html#SEC249">15.3.17 PHP Format Strings</A>.
<DT><CODE>gcc-internal-format</CODE>
<DD>
<DT><CODE>no-gcc-internal-format</CODE>
<DD>
<A NAME="IDX91"></A>
-Likewise for the GCC sources, see section <A HREF="gettext_15.html#SEC248">15.3.18 GCC internal Format Strings</A>.
+Likewise for the GCC sources, see section <A HREF="gettext_15.html#SEC250">15.3.18 GCC internal Format Strings</A>.
<DT><CODE>qt-format</CODE>
<DD>
<DT><CODE>no-qt-format</CODE>
<DD>
<A NAME="IDX93"></A>
-Likewise for Qt, see section <A HREF="gettext_15.html#SEC249">15.3.19 Qt Format Strings</A>.
+Likewise for Qt, see section <A HREF="gettext_15.html#SEC251">15.3.19 Qt Format Strings</A>.
<DT><CODE>boost-format</CODE>
<DD>
<DT><CODE>no-boost-format</CODE>
<DD>
<A NAME="IDX95"></A>
-Likewise for Boost, see section <A HREF="gettext_15.html#SEC250">15.3.20 Boost Format Strings</A>.
+Likewise for Boost, see section <A HREF="gettext_15.html#SEC252">15.3.20 Boost Format Strings</A>.
</DL>
#. <VAR>extracted-comments</VAR>
#: <VAR>reference</VAR>...
#, <VAR>flag</VAR>...
+#| msgctxt <VAR>previous-context</VAR>
+#| msgid <VAR>previous-untranslated-string</VAR>
msgctxt <VAR>context</VAR>
msgid <VAR>untranslated-string</VAR>
msgstr <VAR>translated-string</VAR>
#. <VAR>extracted-comments</VAR>
#: <VAR>reference</VAR>...
#, <VAR>flag</VAR>...
+#| msgid <VAR>previous-untranslated-string-singular</VAR>
+#| msgid_plural <VAR>previous-untranslated-string-plural</VAR>
msgid <VAR>untranslated-string-singular</VAR>
msgid_plural <VAR>untranslated-string-plural</VAR>
msgstr[0] <VAR>translated-string-case-0</VAR>
Here also, a <CODE>msgctxt</CODE> context can be specified before <CODE>msgid</CODE>,
like above.
+</P>
+<P>
+The <VAR>previous-untranslated-string</VAR> is optionally inserted by the
+<CODE>msgmerge</CODE> program, at the same time when it marks a message fuzzy.
+It helps the translator to see which changes were done by the developers
+on the <VAR>untranslated-string</VAR>.
+
</P>
<P>
It happens that some lines, usually whitespace or comments, follow the
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 4 Preparing Program Sources</TITLE>
<LI>
Use format strings instead of string concatenation.
+
+<LI>
+
+Avoid unusual markup and unusual control characters.
</UL>
<P>
</PRE>
<P>
-The ambiguity in this message makes it ununderstandable: Is the program
+The ambiguity in this message makes it unintelligible: Is the program
attempting to set something on fire? Does it mean "The given object does
not match the template"? Does it mean "The template does not fit for any
of the objects"?
<A NAME="IDX123"></A>
<A NAME="IDX124"></A>
All this applies to other programming languages as well. For example, in
-Java and C#, string contenation is very frequently used, because it is a
+Java and C#, string concatenation is very frequently used, because it is a
compiler built-in operator. Like in C, in Java, you would change
</P>
String.Format("Replace {0} with {1}?", object1, object2));
</PRE>
+<P>
+<A NAME="IDX125"></A>
+<A NAME="IDX126"></A>
+Unusual markup or control characters should not be used in translatable
+strings. Translators will likely not understand the particular meaning
+of the markup or control characters.
+
+</P>
+<P>
+For example, if you have a convention that <SAMP>‘|’</SAMP> delimits the
+left-hand and right-hand part of some GUI elements, translators will
+often not understand it without specific comments. It might be
+better to have the translator translate the left-hand and right-hand
+part separately.
+
+</P>
+<P>
+Another example is the <SAMP>‘argp’</SAMP> convention to use a single <SAMP>‘\v’</SAMP>
+(vertical tab) control character to delimit two sections inside a
+string. This is flawed. Some translators may convert it to a simple
+newline, some to blank lines. With some PO file editors it may not be
+easy to even enter a vertical tab control character. So, you cannot
+be sure that the translation will contain a <SAMP>‘\v’</SAMP> character, at the
+corresponding position. The solution is, again, to let the translator
+translate two separate strings and combine at run-time the two translated
+strings with the <SAMP>‘\v’</SAMP> required by the convention.
+
+</P>
+<P>
+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.
+
+</P>
<H2><A NAME="SEC15" HREF="gettext_toc.html#TOC15">4.4 How Marks Appear in Sources</A></H2>
<P>
-<A NAME="IDX125"></A>
+<A NAME="IDX127"></A>
</P>
<P>
<P>
This marking operation has two goals. The first goal of marking
is for triggering the retrieval of the translation, at run time.
-The keyword are possibly resolved into a routine able to dynamically
+The keyword is possibly resolved into a routine able to dynamically
return the proper translation, as far as possible or wanted, for the
argument string. Most localizable strings are found in executable
positions, that is, attached to variables or given as parameters to
</P>
<P>
-<A NAME="IDX126"></A>
+<A NAME="IDX128"></A>
Many packages use <SAMP>‘_’</SAMP> (a simple underline) as a keyword,
and write <SAMP>‘_("Translatable string")’</SAMP> instead of <SAMP>‘gettext
("Translatable string")’</SAMP>. Further, the coding rule, from GNU standards,
<P>
instead of merely using <SAMP>‘#include <libintl.h>’</SAMP>.
+</P>
+<P>
+The marking keywords <SAMP>‘gettext’</SAMP> and <SAMP>‘_’</SAMP> take the translatable
+string as sole argument. It is also possible to define marking functions
+that take it at another argument position. It is even possible to make
+the marked argument position depend on the total number of arguments of
+the function call; this is useful in C++. All this is achieved using
+<CODE>xgettext</CODE>'s <SAMP>‘--keyword’</SAMP> option.
+
+</P>
+<P>
+Note also that long strings can be split across lines, into multiple
+adjacent string tokens. Automatic string concatenation is performed
+at compile time according to ISO C and ISO C++; <CODE>xgettext</CODE> also
+supports this syntax.
+
</P>
<P>
Later on, the maintenance is relatively easy. If, as a programmer,
you add or modify a string, you will have to ask yourself if the
new or altered string requires translation, and include it within
-<SAMP>‘_()’</SAMP> if you think it should be translated. <SAMP>‘"%s: %d"’</SAMP> is
-an example of string <EM>not</EM> requiring translation!
+<SAMP>‘_()’</SAMP> if you think it should be translated. For example, <SAMP>‘"%s"’</SAMP>
+is an example of string <EM>not</EM> requiring translation. But
+<SAMP>‘"%s: %d"’</SAMP> <EM>does</EM> require translation, because in French, unlike
+in English, it's customary to put a space before a colon.
</P>
<H2><A NAME="SEC16" HREF="gettext_toc.html#TOC16">4.5 Marking Translatable Strings</A></H2>
<P>
-<A NAME="IDX127"></A>
+<A NAME="IDX129"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX128"></A>
-The set of program sources, targetted by the PO mode commands describe
+<A NAME="IDX130"></A>
+The set of program sources, targeted 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
shell window, change the directory to the root of your project, then
</P>
<P>
-<A NAME="IDX129"></A>
+<A NAME="IDX131"></A>
For packages following the GNU coding standards, there is
a make goal <CODE>tags</CODE> or <CODE>TAGS</CODE> which constructs the tag files in
all directories and for all files containing source code.
<DT><KBD>,</KBD>
<DD>
-<A NAME="IDX130"></A>
+<A NAME="IDX132"></A>
Search through program sources for a string which looks like a
candidate for translation (<CODE>po-tags-search</CODE>).
<DT><KBD>M-,</KBD>
<DD>
-<A NAME="IDX131"></A>
+<A NAME="IDX133"></A>
Mark the last string found with <SAMP>‘_()’</SAMP> (<CODE>po-mark-translatable</CODE>).
<DT><KBD>M-.</KBD>
<DD>
-<A NAME="IDX132"></A>
+<A NAME="IDX134"></A>
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</CODE>).
</DL>
<P>
-<A NAME="IDX133"></A>
+<A NAME="IDX135"></A>
The <KBD>,</KBD> (<CODE>po-tags-search</CODE>) 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,
</P>
<P>
-<A NAME="IDX134"></A>
-<A NAME="IDX135"></A>
+<A NAME="IDX136"></A>
+<A NAME="IDX137"></A>
The <KBD>M-,</KBD> (<CODE>po-mark-translatable</CODE>) command will mark the
recently found string with the <SAMP>‘_’</SAMP> keyword. The <KBD>M-.</KBD>
(<CODE>po-select-mark-and-mark</CODE>) command will request that you type
<H2><A NAME="SEC17" HREF="gettext_toc.html#TOC17">4.6 Special Comments preceding Keywords</A></H2>
<P>
-<A NAME="IDX136"></A>
+<A NAME="IDX138"></A>
In C programs strings are often used within calls of functions from the
<CODE>printf</CODE> family. The special thing about these format strings is
that they can contain format specifiers introduced with <KBD>%</KBD>. Assume
</P>
<P>
-<A NAME="IDX137"></A>
-<A NAME="IDX138"></A>
+<A NAME="IDX139"></A>
+<A NAME="IDX140"></A>
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</CODE> knows about a special kind of comment which lets
<H2><A NAME="SEC18" HREF="gettext_toc.html#TOC18">4.7 Special Cases of Translatable Strings</A></H2>
<P>
-<A NAME="IDX139"></A>
+<A NAME="IDX141"></A>
The attentive reader might now point out that it is not always possible
to mark translatable string with <CODE>gettext</CODE> or something like this.
Consider the following case:
manual, section Names. Note this is actually a non-ASCII
name: The first name is (with Unicode escapes)
"Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
- Pronounciation is like "fraa-swa pee-nar". */
+ Pronunciation is like "fraa-swa pee-nar". */
_("Francois Pinard"));
</PRE>
#. manual, section Names. Note this is actually a non-ASCII
#. name: The first name is (with Unicode escapes)
#. "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
-#. Pronounciation is like "fraa-swa pee-nar".
+#. Pronunciation is like "fraa-swa pee-nar".
msgid "Francois Pinard"
msgstr "\phi\rho\alpha\sigma\omicron\alpha \pi\iota\nu\alpha\rho"
" (Francois Pinard)"
has set up a POT file and translation domain consisting of program author
names, with better facilities for the translator than those presented here.
Namely, there the original name is written directly in Unicode (rather
-than with Unicode escapes or HTML entities), and the pronounciation is
+than with Unicode escapes or HTML entities), and the pronunciation is
denoted using the International Phonetic Alphabet (see
<A HREF="http://www.wikipedia.org/wiki/International_Phonetic_Alphabet">http://www.wikipedia.org/wiki/International_Phonetic_Alphabet</A>).
</PRE>
In other words, <CODE>dgettext</CODE> is used instead of <CODE>gettext</CODE>.
-Similary, the <CODE>dngettext</CODE> function should be used in place of the
+Similarly, the <CODE>dngettext</CODE> function should be used in place of the
<CODE>ngettext</CODE> function.
</OL>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 5 Making the PO Template File</TITLE>
<H1><A NAME="SEC21" HREF="gettext_toc.html#TOC21">5 Making the PO Template File</A></H1>
<P>
-<A NAME="IDX140"></A>
+<A NAME="IDX142"></A>
</P>
<P>
<H2><A NAME="SEC22" HREF="gettext_toc.html#TOC22">5.1 Invoking the <CODE>xgettext</CODE> Program</A></H2>
<P>
-<A NAME="IDX141"></A>
-<A NAME="IDX142"></A>
+<A NAME="IDX143"></A>
+<A NAME="IDX144"></A>
<PRE>
xgettext [<VAR>option</VAR>] [<VAR>inputfile</VAR>] ...
<DD>
<DT><SAMP>‘--files-from=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX143"></A>
-<A NAME="IDX144"></A>
+<A NAME="IDX145"></A>
+<A NAME="IDX146"></A>
Read the names of the input files from <VAR>file</VAR> instead of getting
them from the command line.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX145"></A>
-<A NAME="IDX146"></A>
+<A NAME="IDX147"></A>
+<A NAME="IDX148"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--default-domain=<VAR>name</VAR>’</SAMP>
<DD>
-<A NAME="IDX147"></A>
-<A NAME="IDX148"></A>
+<A NAME="IDX149"></A>
+<A NAME="IDX150"></A>
Use <TT>‘<VAR>name</VAR>.po’</TT> for output (instead of <TT>‘messages.po’</TT>).
<DT><SAMP>‘-o <VAR>file</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--output=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX149"></A>
-<A NAME="IDX150"></A>
+<A NAME="IDX151"></A>
+<A NAME="IDX152"></A>
Write output to specified file (instead of <TT>‘<VAR>name</VAR>.po’</TT> or
<TT>‘messages.po’</TT>).
<DD>
<DT><SAMP>‘--output-dir=<VAR>dir</VAR>’</SAMP>
<DD>
-<A NAME="IDX151"></A>
-<A NAME="IDX152"></A>
+<A NAME="IDX153"></A>
+<A NAME="IDX154"></A>
Output files will be placed in directory <VAR>dir</VAR>.
</DL>
<P>
-<A NAME="IDX153"></A>
+<A NAME="IDX155"></A>
If the output <VAR>file</VAR> is <SAMP>‘-’</SAMP> or <SAMP>‘/dev/stdout’</SAMP>, the output
is written to standard output.
<DD>
<DT><SAMP>‘--language=<VAR>name</VAR>’</SAMP>
<DD>
-<A NAME="IDX154"></A>
-<A NAME="IDX155"></A>
<A NAME="IDX156"></A>
+<A NAME="IDX157"></A>
+<A NAME="IDX158"></A>
Specifies the language of the input files. The supported languages
are <CODE>C</CODE>, <CODE>C++</CODE>, <CODE>ObjectiveC</CODE>, <CODE>PO</CODE>, <CODE>Python</CODE>,
<CODE>Lisp</CODE>, <CODE>EmacsLisp</CODE>, <CODE>librep</CODE>, <CODE>Scheme</CODE>, <CODE>Smalltalk</CODE>,
<DD>
<DT><SAMP>‘--c++’</SAMP>
<DD>
-<A NAME="IDX157"></A>
-<A NAME="IDX158"></A>
+<A NAME="IDX159"></A>
+<A NAME="IDX160"></A>
This is a shorthand for <CODE>--language=C++</CODE>.
</DL>
<DT><SAMP>‘--from-code=<VAR>name</VAR>’</SAMP>
<DD>
-<A NAME="IDX159"></A>
+<A NAME="IDX161"></A>
Specifies the encoding of the input files. This option is needed only
if some untranslated message strings or their corresponding comments
contain non-ASCII characters. Note that Tcl and Glade input files are
<DD>
<DT><SAMP>‘--join-existing’</SAMP>
<DD>
-<A NAME="IDX160"></A>
-<A NAME="IDX161"></A>
+<A NAME="IDX162"></A>
+<A NAME="IDX163"></A>
Join messages with existing file.
<DT><SAMP>‘-x <VAR>file</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--exclude-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX162"></A>
-<A NAME="IDX163"></A>
+<A NAME="IDX164"></A>
+<A NAME="IDX165"></A>
Entries from <VAR>file</VAR> are not extracted. <VAR>file</VAR> should be a PO or
POT file.
<DD>
<DT><SAMP>‘--add-comments[=<VAR>tag</VAR>]’</SAMP>
<DD>
-<A NAME="IDX164"></A>
-<A NAME="IDX165"></A>
+<A NAME="IDX166"></A>
+<A NAME="IDX167"></A>
Place comment block with <VAR>tag</VAR> (or those preceding keyword lines)
in output file.
<DD>
<DT><SAMP>‘--extract-all’</SAMP>
<DD>
-<A NAME="IDX166"></A>
-<A NAME="IDX167"></A>
+<A NAME="IDX168"></A>
+<A NAME="IDX169"></A>
Extract all strings.
This option has an effect with most languages, namely C, C++, ObjectiveC,
<DD>
<DT><SAMP>‘--keyword[=<VAR>keywordspec</VAR>]’</SAMP>
<DD>
-<A NAME="IDX168"></A>
-<A NAME="IDX169"></A>
+<A NAME="IDX170"></A>
+<A NAME="IDX171"></A>
Additional keyword to be looked for (without <VAR>keywordspec</VAR> means not to
use default keywords).
-<A NAME="IDX170"></A>
-<A NAME="IDX171"></A>
-If <VAR>keywordspec</VAR> is a C identifer <VAR>id</VAR>, <CODE>xgettext</CODE> looks
+<A NAME="IDX172"></A>
+<A NAME="IDX173"></A>
+If <VAR>keywordspec</VAR> is a C identifier <VAR>id</VAR>, <CODE>xgettext</CODE> looks
for strings in the first argument of each call to the function or macro
<VAR>id</VAR>. If <VAR>keywordspec</VAR> is of the form
<SAMP>‘<VAR>id</VAR>:<VAR>argnum</VAR>’</SAMP>, <CODE>xgettext</CODE> looks for strings in the
<DT><SAMP>‘--flag=<VAR>word</VAR>:<VAR>arg</VAR>:<VAR>flag</VAR>’</SAMP>
<DD>
-<A NAME="IDX172"></A>
+<A NAME="IDX174"></A>
Specifies additional flags for strings occurring as part of the <VAR>arg</VAR>th
argument of the function <VAR>word</VAR>. The possible flags are the possible
format string indicators, such as <SAMP>‘c-format’</SAMP>, and their negations,
such as <SAMP>‘no-c-format’</SAMP>, possibly prefixed with <SAMP>‘pass-’</SAMP>.
<BR>
-<A NAME="IDX173"></A>
+<A NAME="IDX175"></A>
The meaning of <CODE>--flag=<VAR>function</VAR>:<VAR>arg</VAR>:<VAR>lang</VAR>-format</CODE>
is that in language <VAR>lang</VAR>, the specified <VAR>function</VAR> expects as
<VAR>arg</VAR>th argument a format string. (For those of you familiar with
translators cannot accidentally use format string directives that would
lead to a crash at runtime.
<BR>
-<A NAME="IDX174"></A>
+<A NAME="IDX176"></A>
The meaning of <CODE>--flag=<VAR>function</VAR>:<VAR>arg</VAR>:pass-<VAR>lang</VAR>-format</CODE>
is that in language <VAR>lang</VAR>, if the <VAR>function</VAR> call occurs in a
position that must yield a format string, then its <VAR>arg</VAR>th argument
<DD>
<DT><SAMP>‘--trigraphs’</SAMP>
<DD>
-<A NAME="IDX175"></A>
-<A NAME="IDX176"></A>
<A NAME="IDX177"></A>
+<A NAME="IDX178"></A>
+<A NAME="IDX179"></A>
Understand ANSI C trigraphs for input.
<BR>
This option has an effect only with the languages C, C++, ObjectiveC.
<DT><SAMP>‘--qt’</SAMP>
<DD>
-<A NAME="IDX178"></A>
-<A NAME="IDX179"></A>
+<A NAME="IDX180"></A>
+<A NAME="IDX181"></A>
Recognize Qt format strings.
<BR>
This option has an effect only with the language C++.
<DT><SAMP>‘--boost’</SAMP>
<DD>
-<A NAME="IDX180"></A>
-<A NAME="IDX181"></A>
+<A NAME="IDX182"></A>
+<A NAME="IDX183"></A>
Recognize Boost format strings.
<BR>
This option has an effect only with the language C++.
<DT><SAMP>‘--debug’</SAMP>
<DD>
-<A NAME="IDX182"></A>
-<A NAME="IDX183"></A>
+<A NAME="IDX184"></A>
+<A NAME="IDX185"></A>
Use the flags <CODE>c-format</CODE> and <CODE>possible-c-format</CODE> to show who was
responsible for marking a message as a format string. The latter form is
used if the <CODE>xgettext</CODE> program decided, the format form is used if
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX184"></A>
+<A NAME="IDX186"></A>
Always write an output file even if no message is defined.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX185"></A>
-<A NAME="IDX186"></A>
+<A NAME="IDX187"></A>
+<A NAME="IDX188"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX187"></A>
+<A NAME="IDX189"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX188"></A>
-<A NAME="IDX189"></A>
+<A NAME="IDX190"></A>
+<A NAME="IDX191"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX190"></A>
+<A NAME="IDX192"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX191"></A>
+<A NAME="IDX193"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX192"></A>
+<A NAME="IDX194"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX193"></A>
-<A NAME="IDX194"></A>
+<A NAME="IDX195"></A>
+<A NAME="IDX196"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX195"></A>
+<A NAME="IDX197"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX196"></A>
-<A NAME="IDX197"></A>
<A NAME="IDX198"></A>
+<A NAME="IDX199"></A>
+<A NAME="IDX200"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX199"></A>
-<A NAME="IDX200"></A>
+<A NAME="IDX201"></A>
+<A NAME="IDX202"></A>
Sort output by file location.
<DT><SAMP>‘--omit-header’</SAMP>
<DD>
-<A NAME="IDX201"></A>
+<A NAME="IDX203"></A>
Don't write header with <SAMP>‘msgid ""’</SAMP> entry.
-<A NAME="IDX202"></A>
+<A NAME="IDX204"></A>
This is useful for testing purposes because it eliminates a source
of variance for generated <CODE>.gmo</CODE> files. With <CODE>--omit-header</CODE>,
two invocations of <CODE>xgettext</CODE> on the same files with the same
<DT><SAMP>‘--copyright-holder=<VAR>string</VAR>’</SAMP>
<DD>
-<A NAME="IDX203"></A>
+<A NAME="IDX205"></A>
Set the copyright holder in the output. <VAR>string</VAR> should be the
copyright holder of the surrounding package. (Note that the msgstr
strings, extracted from the package's sources, belong to the copyright
<DT><SAMP>‘--foreign-user’</SAMP>
<DD>
-<A NAME="IDX204"></A>
+<A NAME="IDX206"></A>
Omit FSF copyright in output. This option is equivalent to
<SAMP>‘--copyright-holder=”’</SAMP>. It can be useful for packages outside the GNU
project that want their translations to be in the public domain.
<DT><SAMP>‘--msgid-bugs-address=<VAR>email@address</VAR>’</SAMP>
<DD>
-<A NAME="IDX205"></A>
+<A NAME="IDX207"></A>
Set the reporting address for msgid bugs. This is the email address or URL
to which the translators shall report bugs in the untranslated strings:
<DD>
<DT><SAMP>‘--msgstr-prefix[=<VAR>string</VAR>]’</SAMP>
<DD>
-<A NAME="IDX206"></A>
-<A NAME="IDX207"></A>
+<A NAME="IDX208"></A>
+<A NAME="IDX209"></A>
Use <VAR>string</VAR> (or "" if not specified) as prefix for msgstr entries.
<DT><SAMP>‘-M [<VAR>string</VAR>]’</SAMP>
<DD>
<DT><SAMP>‘--msgstr-suffix[=<VAR>string</VAR>]’</SAMP>
<DD>
-<A NAME="IDX208"></A>
-<A NAME="IDX209"></A>
+<A NAME="IDX210"></A>
+<A NAME="IDX211"></A>
Use <VAR>string</VAR> (or "" if not specified) as suffix for msgstr entries.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX210"></A>
-<A NAME="IDX211"></A>
+<A NAME="IDX212"></A>
+<A NAME="IDX213"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX212"></A>
-<A NAME="IDX213"></A>
+<A NAME="IDX214"></A>
+<A NAME="IDX215"></A>
Output version information and exit.
</DL>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 6 Creating a New PO File</TITLE>
<H1><A NAME="SEC31" HREF="gettext_toc.html#TOC31">6 Creating a New PO File</A></H1>
<P>
-<A NAME="IDX214"></A>
+<A NAME="IDX216"></A>
</P>
<P>
<H2><A NAME="SEC32" HREF="gettext_toc.html#TOC32">6.1 Invoking the <CODE>msginit</CODE> Program</A></H2>
<P>
-<A NAME="IDX215"></A>
-<A NAME="IDX216"></A>
+<A NAME="IDX217"></A>
+<A NAME="IDX218"></A>
<PRE>
msginit [<VAR>option</VAR>]
</PRE>
<P>
-<A NAME="IDX217"></A>
-<A NAME="IDX218"></A>
+<A NAME="IDX219"></A>
+<A NAME="IDX220"></A>
The <CODE>msginit</CODE> program creates a new PO file, initializing the meta
information with values from the user's environment.
<DD>
<DT><SAMP>‘--input=<VAR>inputfile</VAR>’</SAMP>
<DD>
-<A NAME="IDX219"></A>
-<A NAME="IDX220"></A>
+<A NAME="IDX221"></A>
+<A NAME="IDX222"></A>
Input POT file.
</DL>
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX221"></A>
-<A NAME="IDX222"></A>
+<A NAME="IDX223"></A>
+<A NAME="IDX224"></A>
Write output to specified PO file.
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX223"></A>
-<A NAME="IDX224"></A>
+<A NAME="IDX225"></A>
+<A NAME="IDX226"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX225"></A>
+<A NAME="IDX227"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DD>
<DT><SAMP>‘--locale=<VAR>ll_CC</VAR>’</SAMP>
<DD>
-<A NAME="IDX226"></A>
-<A NAME="IDX227"></A>
+<A NAME="IDX228"></A>
+<A NAME="IDX229"></A>
Set target locale. <VAR>ll</VAR> should be a language code, and <VAR>CC</VAR> should
be a country code. The command <SAMP>‘locale -a’</SAMP> can be used to output a list
of all installed locales. The default is the user's locale setting.
<DT><SAMP>‘--no-translator’</SAMP>
<DD>
-<A NAME="IDX228"></A>
+<A NAME="IDX230"></A>
Declares that the PO file will not have a human translator and is instead
automatically generated.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX229"></A>
-<A NAME="IDX230"></A>
+<A NAME="IDX231"></A>
+<A NAME="IDX232"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX231"></A>
+<A NAME="IDX233"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX232"></A>
-<A NAME="IDX233"></A>
+<A NAME="IDX234"></A>
+<A NAME="IDX235"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX234"></A>
+<A NAME="IDX236"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX235"></A>
-<A NAME="IDX236"></A>
+<A NAME="IDX237"></A>
+<A NAME="IDX238"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX237"></A>
-<A NAME="IDX238"></A>
+<A NAME="IDX239"></A>
+<A NAME="IDX240"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC38" HREF="gettext_toc.html#TOC38">6.2 Filling in the Header Entry</A></H2>
<P>
-<A NAME="IDX239"></A>
+<A NAME="IDX241"></A>
</P>
<P>
your translation team, not only to make sure you don't do duplicated work,
but also to coordinate difficult linguistic issues.
-<A NAME="IDX240"></A>
+<A NAME="IDX242"></A>
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, <A HREF="http://www.iro.umontreal.ca/contrib/po/HTML/">http://www.iro.umontreal.ca/contrib/po/HTML/</A>,
<DT>Content-Type
<DD>
-<A NAME="IDX241"></A>
-<A NAME="IDX242"></A>
+<A NAME="IDX243"></A>
+<A NAME="IDX244"></A>
Replace <SAMP>‘CHARSET’</SAMP> 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</CODE> and <CODE>msgfmt</CODE> programs, as well as for users whose
locale's character encoding differs from yours (see section <A HREF="gettext_11.html#SEC172">11.2.4 How to specify the output character set <CODE>gettext</CODE> uses</A>).
-<A NAME="IDX243"></A>
+<A NAME="IDX245"></A>
You get the character encoding of your locale by running the shell command
<SAMP>‘locale charmap’</SAMP>. If the result is <SAMP>‘C’</SAMP> or <SAMP>‘ANSI_X3.4-1968’</SAMP>,
which is equivalent to <SAMP>‘ASCII’</SAMP> (= <SAMP>‘US-ASCII’</SAMP>), it means that your
team which charset to use. <SAMP>‘ASCII’</SAMP> is not usable for any language
except Latin.
-<A NAME="IDX244"></A>
+<A NAME="IDX246"></A>
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</CODE> and GNU
<CODE>BIG5</CODE>, <CODE>BIG5-HKSCS</CODE>, <CODE>GBK</CODE>, <CODE>GB18030</CODE>, <CODE>SHIFT_JIS</CODE>,
<CODE>JOHAB</CODE>, <CODE>TIS-620</CODE>, <CODE>VISCII</CODE>, <CODE>GEORGIAN-PS</CODE>, <CODE>UTF-8</CODE>.
-<A NAME="IDX245"></A>
+<A NAME="IDX247"></A>
In the GNU system, the following encodings are frequently used for the
corresponding languages.
-<A NAME="IDX246"></A>
+<A NAME="IDX248"></A>
<UL>
<LI><CODE>ISO-8859-1</CODE> for
</UL>
-<A NAME="IDX247"></A>
-<A NAME="IDX248"></A>
+<A NAME="IDX249"></A>
+<A NAME="IDX250"></A>
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
vertical apostrophe and the vertical double quote instead (because that's
what the character set conversion will transliterate them to).
-<A NAME="IDX249"></A>
+<A NAME="IDX251"></A>
To enter such quote characters under X11, you can change your keyboard
mapping using the <CODE>xmodmap</CODE> program. The X11 names of the quote
characters are "leftsinglequotemark", "rightsinglequotemark",
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 7 Updating Existing PO Files</TITLE>
<H2><A NAME="SEC40" HREF="gettext_toc.html#TOC40">7.1 Invoking the <CODE>msgmerge</CODE> Program</A></H2>
<P>
-<A NAME="IDX250"></A>
-<A NAME="IDX251"></A>
+<A NAME="IDX252"></A>
+<A NAME="IDX253"></A>
<PRE>
msgmerge [<VAR>option</VAR>] <VAR>def</VAR>.po <VAR>ref</VAR>.pot
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX252"></A>
-<A NAME="IDX253"></A>
+<A NAME="IDX254"></A>
+<A NAME="IDX255"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--compendium=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX254"></A>
-<A NAME="IDX255"></A>
+<A NAME="IDX256"></A>
+<A NAME="IDX257"></A>
Specify an additional library of message translations. See section <A HREF="gettext_8.html#SEC66">8.3.14 Using Translation Compendia</A>.
This option may be specified more than once.
<DD>
<DT><SAMP>‘--update’</SAMP>
<DD>
-<A NAME="IDX256"></A>
-<A NAME="IDX257"></A>
+<A NAME="IDX258"></A>
+<A NAME="IDX259"></A>
Update <VAR>def</VAR>.po. Do nothing if <VAR>def</VAR>.po is already up to date.
</DL>
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX258"></A>
-<A NAME="IDX259"></A>
+<A NAME="IDX260"></A>
+<A NAME="IDX261"></A>
Write output to specified file.
</DL>
<P>
-<A NAME="IDX260"></A>
+<A NAME="IDX262"></A>
The results are written to standard output if no output file is specified
or if it is <SAMP>‘-’</SAMP>.
<DT><SAMP>‘--backup=<VAR>control</VAR>’</SAMP>
<DD>
-<A NAME="IDX261"></A>
-<A NAME="IDX262"></A>
+<A NAME="IDX263"></A>
+<A NAME="IDX264"></A>
Make a backup of <VAR>def</VAR>.po
<DT><SAMP>‘--suffix=<VAR>suffix</VAR>’</SAMP>
<DD>
-<A NAME="IDX263"></A>
+<A NAME="IDX265"></A>
Override the usual backup suffix.
</DL>
<P>
-<A NAME="IDX264"></A>
+<A NAME="IDX266"></A>
The version control method may be selected via the <CODE>--backup</CODE> option
or through the <CODE>VERSION_CONTROL</CODE> environment variable. Here are the
values:
<DD>
<DT><SAMP>‘--multi-domain’</SAMP>
<DD>
-<A NAME="IDX265"></A>
-<A NAME="IDX266"></A>
+<A NAME="IDX267"></A>
+<A NAME="IDX268"></A>
Apply <VAR>ref</VAR>.pot to each of the domains in <VAR>def</VAR>.po.
<DT><SAMP>‘-N’</SAMP>
<DD>
<DT><SAMP>‘--no-fuzzy-matching’</SAMP>
<DD>
-<A NAME="IDX267"></A>
-<A NAME="IDX268"></A>
+<A NAME="IDX269"></A>
+<A NAME="IDX270"></A>
Do not use fuzzy matching when an exact match is not found. This may speed
up the operation considerably.
+
+<DT><SAMP>‘--previous’</SAMP>
+<DD>
+<A NAME="IDX271"></A>
+Keep the previous msgids of translated messages, marked with <SAMP>‘#|’</SAMP>, when
+adding the fuzzy marker to such messages.
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX269"></A>
-<A NAME="IDX270"></A>
+<A NAME="IDX272"></A>
+<A NAME="IDX273"></A>
Assume the input files are Java ResourceBundles in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX271"></A>
+<A NAME="IDX274"></A>
Assume the input files are NeXTstep/GNUstep localized resource files in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX272"></A>
+<A NAME="IDX275"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX273"></A>
-<A NAME="IDX274"></A>
+<A NAME="IDX276"></A>
+<A NAME="IDX277"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX275"></A>
+<A NAME="IDX278"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX276"></A>
+<A NAME="IDX279"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX277"></A>
+<A NAME="IDX280"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX278"></A>
-<A NAME="IDX279"></A>
+<A NAME="IDX281"></A>
+<A NAME="IDX282"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX280"></A>
+<A NAME="IDX283"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX281"></A>
-<A NAME="IDX282"></A>
+<A NAME="IDX284"></A>
+<A NAME="IDX285"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX283"></A>
+<A NAME="IDX286"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX284"></A>
-<A NAME="IDX285"></A>
-<A NAME="IDX286"></A>
+<A NAME="IDX287"></A>
+<A NAME="IDX288"></A>
+<A NAME="IDX289"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX287"></A>
-<A NAME="IDX288"></A>
+<A NAME="IDX290"></A>
+<A NAME="IDX291"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX289"></A>
-<A NAME="IDX290"></A>
+<A NAME="IDX292"></A>
+<A NAME="IDX293"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX291"></A>
-<A NAME="IDX292"></A>
+<A NAME="IDX294"></A>
+<A NAME="IDX295"></A>
Output version information and exit.
<DT><SAMP>‘-v’</SAMP>
<DD>
<DT><SAMP>‘--verbose’</SAMP>
<DD>
-<A NAME="IDX293"></A>
-<A NAME="IDX294"></A>
+<A NAME="IDX296"></A>
+<A NAME="IDX297"></A>
Increase verbosity level.
<DT><SAMP>‘-q’</SAMP>
<DD>
<DT><SAMP>‘--silent’</SAMP>
<DD>
-<A NAME="IDX295"></A>
-<A NAME="IDX296"></A>
-<A NAME="IDX297"></A>
+<A NAME="IDX298"></A>
+<A NAME="IDX299"></A>
+<A NAME="IDX300"></A>
Suppress progress indicators.
</DL>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 8 Editing PO Files</TITLE>
<H1><A NAME="SEC49" HREF="gettext_toc.html#TOC49">8 Editing PO Files</A></H1>
<P>
-<A NAME="IDX298"></A>
+<A NAME="IDX301"></A>
</P>
<H2><A NAME="SEC50" HREF="gettext_toc.html#TOC50">8.1 KDE's PO File Editor</A></H2>
<P>
-<A NAME="IDX299"></A>
+<A NAME="IDX302"></A>
</P>
<H2><A NAME="SEC51" HREF="gettext_toc.html#TOC51">8.2 GNOME's PO File Editor</A></H2>
<P>
-<A NAME="IDX300"></A>
+<A NAME="IDX303"></A>
</P>
<H2><A NAME="SEC52" HREF="gettext_toc.html#TOC52">8.3 Emacs's PO File Editor</A></H2>
<P>
-<A NAME="IDX301"></A>
+<A NAME="IDX304"></A>
</P>
<H3><A NAME="SEC53" HREF="gettext_toc.html#TOC53">8.3.1 Completing GNU <CODE>gettext</CODE> Installation</A></H3>
<P>
-<A NAME="IDX302"></A>
-<A NAME="IDX303"></A>
+<A NAME="IDX305"></A>
+<A NAME="IDX306"></A>
Once you have received, unpacked, configured and compiled the GNU
<CODE>gettext</CODE> distribution, the <SAMP>‘make install’</SAMP> command puts in
place the programs <CODE>xgettext</CODE>, <CODE>msgfmt</CODE>, <CODE>gettext</CODE>, and
</P>
<P>
-<A NAME="IDX304"></A>
-<A NAME="IDX305"></A>
+<A NAME="IDX307"></A>
+<A NAME="IDX308"></A>
During the installation of the PO mode, you might want to modify your
file <TT>‘.emacs’</TT>, once and for all, so it contains a few lines looking
like:
<H3><A NAME="SEC54" HREF="gettext_toc.html#TOC54">8.3.2 Main PO mode Commands</A></H3>
<P>
-<A NAME="IDX306"></A>
-<A NAME="IDX307"></A>
+<A NAME="IDX309"></A>
+<A NAME="IDX310"></A>
After setting up Emacs with something similar to the lines in
section <A HREF="gettext_8.html#SEC53">8.3.1 Completing GNU <CODE>gettext</CODE> Installation</A>, 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
<DT><KBD>_</KBD>
<DD>
-<A NAME="IDX308"></A>
+<A NAME="IDX311"></A>
Undo last modification to the PO file (<CODE>po-undo</CODE>).
<DT><KBD>Q</KBD>
<DD>
-<A NAME="IDX309"></A>
+<A NAME="IDX312"></A>
Quit processing and save the PO file (<CODE>po-quit</CODE>).
<DT><KBD>q</KBD>
<DD>
-<A NAME="IDX310"></A>
+<A NAME="IDX313"></A>
Quit processing, possibly after confirmation (<CODE>po-confirm-and-quit</CODE>).
<DT><KBD>0</KBD>
<DD>
-<A NAME="IDX311"></A>
+<A NAME="IDX314"></A>
Temporary leave the PO file window (<CODE>po-other-window</CODE>).
<DT><KBD>?</KBD>
<DD>
<DT><KBD>h</KBD>
<DD>
-<A NAME="IDX312"></A>
-<A NAME="IDX313"></A>
+<A NAME="IDX315"></A>
+<A NAME="IDX316"></A>
Show help about PO mode (<CODE>po-help</CODE>).
<DT><KBD>=</KBD>
<DD>
-<A NAME="IDX314"></A>
+<A NAME="IDX317"></A>
Give some PO file statistics (<CODE>po-statistics</CODE>).
<DT><KBD>V</KBD>
<DD>
-<A NAME="IDX315"></A>
+<A NAME="IDX318"></A>
Batch validate the format of the whole PO file (<CODE>po-validate</CODE>).
</DL>
<P>
-<A NAME="IDX316"></A>
-<A NAME="IDX317"></A>
+<A NAME="IDX319"></A>
+<A NAME="IDX320"></A>
The command <KBD>_</KBD> (<CODE>po-undo</CODE>) interfaces to the Emacs
<EM>undo</EM> facility. See section ‘Undoing Changes’ in <CITE>The Emacs Editor</CITE>. Each time <KBD>U</KBD> is typed, modifications which the translator
did to the PO file are undone a little more. For the purpose of
</P>
<P>
-<A NAME="IDX318"></A>
-<A NAME="IDX319"></A>
-<A NAME="IDX320"></A>
<A NAME="IDX321"></A>
+<A NAME="IDX322"></A>
+<A NAME="IDX323"></A>
+<A NAME="IDX324"></A>
The commands <KBD>Q</KBD> (<CODE>po-quit</CODE>) and <KBD>q</KBD>
(<CODE>po-confirm-and-quit</CODE>) are used when the translator is done with the
PO file. The former is a bit less verbose than the latter. If the file
</P>
<P>
-<A NAME="IDX322"></A>
-<A NAME="IDX323"></A>
+<A NAME="IDX325"></A>
+<A NAME="IDX326"></A>
The command <KBD>0</KBD> (<CODE>po-other-window</CODE>) 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
</P>
<P>
-<A NAME="IDX324"></A>
-<A NAME="IDX325"></A>
-<A NAME="IDX326"></A>
+<A NAME="IDX327"></A>
+<A NAME="IDX328"></A>
+<A NAME="IDX329"></A>
The command <KBD>h</KBD> (<CODE>po-help</CODE>) 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>?</KBD> has the same effect
</P>
<P>
-<A NAME="IDX327"></A>
-<A NAME="IDX328"></A>
+<A NAME="IDX330"></A>
+<A NAME="IDX331"></A>
The command <KBD>=</KBD> (<CODE>po-statistics</CODE>) 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,
</P>
<P>
-<A NAME="IDX329"></A>
-<A NAME="IDX330"></A>
+<A NAME="IDX332"></A>
+<A NAME="IDX333"></A>
The command <KBD>V</KBD> (<CODE>po-validate</CODE>) launches <CODE>msgfmt</CODE> in
checking and verbose
mode over the current PO file. This command first offers to save the
</P>
<P>
-<A NAME="IDX331"></A>
+<A NAME="IDX334"></A>
The program <CODE>msgfmt</CODE> 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*’</SAMP> buffer,
<H3><A NAME="SEC55" HREF="gettext_toc.html#TOC55">8.3.3 Entry Positioning</A></H3>
<P>
-<A NAME="IDX332"></A>
+<A NAME="IDX335"></A>
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
</P>
<P>
-<A NAME="IDX333"></A>
+<A NAME="IDX336"></A>
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
<DT><KBD>.</KBD>
<DD>
-<A NAME="IDX334"></A>
+<A NAME="IDX337"></A>
Redisplay the current entry (<CODE>po-current-entry</CODE>).
<DT><KBD>n</KBD>
<DD>
-<A NAME="IDX335"></A>
+<A NAME="IDX338"></A>
Select the entry after the current one (<CODE>po-next-entry</CODE>).
<DT><KBD>p</KBD>
<DD>
-<A NAME="IDX336"></A>
+<A NAME="IDX339"></A>
Select the entry before the current one (<CODE>po-previous-entry</CODE>).
<DT><KBD><</KBD>
<DD>
-<A NAME="IDX337"></A>
+<A NAME="IDX340"></A>
Select the first entry in the PO file (<CODE>po-first-entry</CODE>).
<DT><KBD>></KBD>
<DD>
-<A NAME="IDX338"></A>
+<A NAME="IDX341"></A>
Select the last entry in the PO file (<CODE>po-last-entry</CODE>).
<DT><KBD>m</KBD>
<DD>
-<A NAME="IDX339"></A>
+<A NAME="IDX342"></A>
Record the location of the current entry for later use
(<CODE>po-push-location</CODE>).
<DT><KBD>r</KBD>
<DD>
-<A NAME="IDX340"></A>
+<A NAME="IDX343"></A>
Return to a previously saved entry location (<CODE>po-pop-location</CODE>).
<DT><KBD>x</KBD>
<DD>
-<A NAME="IDX341"></A>
+<A NAME="IDX344"></A>
Exchange the current entry location with the previously saved one
(<CODE>po-exchange-location</CODE>).
</DL>
<P>
-<A NAME="IDX342"></A>
-<A NAME="IDX343"></A>
+<A NAME="IDX345"></A>
+<A NAME="IDX346"></A>
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
</P>
<P>
-<A NAME="IDX344"></A>
-<A NAME="IDX345"></A>
-<A NAME="IDX346"></A>
<A NAME="IDX347"></A>
+<A NAME="IDX348"></A>
+<A NAME="IDX349"></A>
+<A NAME="IDX350"></A>
The commands <KBD>n</KBD> (<CODE>po-next-entry</CODE>) and <KBD>p</KBD>
(<CODE>po-previous-entry</CODE>) move the cursor the entry following,
or preceding, the current one. If <KBD>n</KBD> is given while the
</P>
<P>
-<A NAME="IDX348"></A>
-<A NAME="IDX349"></A>
-<A NAME="IDX350"></A>
<A NAME="IDX351"></A>
+<A NAME="IDX352"></A>
+<A NAME="IDX353"></A>
+<A NAME="IDX354"></A>
The commands <KBD><</KBD> (<CODE>po-first-entry</CODE>) and <KBD>></KBD>
(<CODE>po-last-entry</CODE>) move the cursor to the first entry, or last
entry, of the PO file. When the cursor is located past the last
</P>
<P>
-<A NAME="IDX352"></A>
-<A NAME="IDX353"></A>
-<A NAME="IDX354"></A>
<A NAME="IDX355"></A>
+<A NAME="IDX356"></A>
+<A NAME="IDX357"></A>
+<A NAME="IDX358"></A>
PO mode offers another approach, by which cursor locations may be saved
onto a special stack. The command <KBD>m</KBD> (<CODE>po-push-location</CODE>)
merely adds the location of current entry to the stack, pushing
</P>
<P>
-<A NAME="IDX356"></A>
-<A NAME="IDX357"></A>
+<A NAME="IDX359"></A>
+<A NAME="IDX360"></A>
The command <KBD>x</KBD> (<CODE>po-exchange-location</CODE>) 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
<H3><A NAME="SEC56" HREF="gettext_toc.html#TOC56">8.3.4 Normalizing Strings in Entries</A></H3>
<P>
-<A NAME="IDX358"></A>
+<A NAME="IDX361"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX359"></A>
+<A NAME="IDX362"></A>
<DL COMPACT>
<DT><KBD>M-x po-normalize</KBD>
<DD>
-<A NAME="IDX360"></A>
+<A NAME="IDX363"></A>
Tidy the whole PO file by making entries more uniform.
</DL>
</P>
<P>
-<A NAME="IDX361"></A>
+<A NAME="IDX364"></A>
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.
</P>
<P>
-<A NAME="IDX362"></A>
+<A NAME="IDX365"></A>
Right now, in PO mode, strings are single line or multi-line. A string
goes multi-line if and only if it has <EM>embedded</EM> newlines, that
is, if it matches <SAMP>‘[^\n]\n+[^\n]’</SAMP>. So, we would have:
<H3><A NAME="SEC57" HREF="gettext_toc.html#TOC57">8.3.5 Translated Entries</A></H3>
<P>
-<A NAME="IDX363"></A>
+<A NAME="IDX366"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX364"></A>
+<A NAME="IDX367"></A>
Some commands are more specifically related to translated entry processing.
</P>
<DT><KBD>t</KBD>
<DD>
-<A NAME="IDX365"></A>
+<A NAME="IDX368"></A>
Find the next translated entry (<CODE>po-next-translated-entry</CODE>).
<DT><KBD>T</KBD>
<DD>
-<A NAME="IDX366"></A>
+<A NAME="IDX369"></A>
Find the previous translated entry (<CODE>po-previous-translated-entry</CODE>).
</DL>
<P>
-<A NAME="IDX367"></A>
-<A NAME="IDX368"></A>
-<A NAME="IDX369"></A>
<A NAME="IDX370"></A>
+<A NAME="IDX371"></A>
+<A NAME="IDX372"></A>
+<A NAME="IDX373"></A>
The commands <KBD>t</KBD> (<CODE>po-next-translated-entry</CODE>) and <KBD>T</KBD>
(<CODE>po-previous-translated-entry</CODE>) move forwards or backwards, chasing
for an translated entry. If none is found, the search is extended and
</P>
<P>
-<A NAME="IDX371"></A>
+<A NAME="IDX374"></A>
Translated entries usually result from the translator having edited in
a translation for them, section <A HREF="gettext_8.html#SEC61">8.3.9 Modifying Translations</A>. However, if the
variable <CODE>po-auto-fuzzy-on-edit</CODE> is not <CODE>nil</CODE>, the entry having
<H3><A NAME="SEC58" HREF="gettext_toc.html#TOC58">8.3.6 Fuzzy Entries</A></H3>
<P>
-<A NAME="IDX372"></A>
+<A NAME="IDX375"></A>
</P>
<P>
-<A NAME="IDX373"></A>
-<A NAME="IDX374"></A>
+<A NAME="IDX376"></A>
+<A NAME="IDX377"></A>
Each PO file entry may have a set of <EM>attributes</EM>, which are
qualities given a name and explicitly associated with the translation,
using a special system comment. One of these attributes
</P>
<P>
-<A NAME="IDX375"></A>
+<A NAME="IDX378"></A>
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
<DT><KBD>z</KBD>
<DD>
-<A NAME="IDX376"></A>
+<A NAME="IDX379"></A>
Find the next fuzzy entry (<CODE>po-next-fuzzy-entry</CODE>).
<DT><KBD>Z</KBD>
<DD>
-<A NAME="IDX377"></A>
+<A NAME="IDX380"></A>
Find the previous fuzzy entry (<CODE>po-previous-fuzzy-entry</CODE>).
<DT><KBD><KBD>TAB</KBD></KBD>
<DD>
-<A NAME="IDX378"></A>
+<A NAME="IDX381"></A>
Remove the fuzzy attribute of the current entry (<CODE>po-unfuzzy</CODE>).
</DL>
<P>
-<A NAME="IDX379"></A>
-<A NAME="IDX380"></A>
-<A NAME="IDX381"></A>
<A NAME="IDX382"></A>
+<A NAME="IDX383"></A>
+<A NAME="IDX384"></A>
+<A NAME="IDX385"></A>
The commands <KBD>z</KBD> (<CODE>po-next-fuzzy-entry</CODE>) and <KBD>Z</KBD>
(<CODE>po-previous-fuzzy-entry</CODE>) move forwards or backwards, chasing for
a fuzzy entry. If none is found, the search is extended and wraps
</P>
<P>
-<A NAME="IDX383"></A>
-<A NAME="IDX384"></A>
-<A NAME="IDX385"></A>
+<A NAME="IDX386"></A>
+<A NAME="IDX387"></A>
+<A NAME="IDX388"></A>
The command <KBD><KBD>TAB</KBD></KBD> (<CODE>po-unfuzzy</CODE>) removes the fuzzy
attribute associated with an entry, usually leaving it translated.
Further, if the variable <CODE>po-auto-select-on-unfuzzy</CODE> has not
</P>
<P>
-<A NAME="IDX386"></A>
-<A NAME="IDX387"></A>
+<A NAME="IDX389"></A>
+<A NAME="IDX390"></A>
The translator may also use the <KBD><KBD>DEL</KBD></KBD> command
(<CODE>po-fade-out-entry</CODE>) over any translated entry to mark it as being
fuzzy, when she wants to easily leave a trace she wants to later return
<H3><A NAME="SEC59" HREF="gettext_toc.html#TOC59">8.3.7 Untranslated Entries</A></H3>
<P>
-<A NAME="IDX388"></A>
+<A NAME="IDX391"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX389"></A>
+<A NAME="IDX392"></A>
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.
<DT><KBD>u</KBD>
<DD>
-<A NAME="IDX390"></A>
+<A NAME="IDX393"></A>
Find the next untranslated entry (<CODE>po-next-untranslated-entry</CODE>).
<DT><KBD>U</KBD>
<DD>
-<A NAME="IDX391"></A>
+<A NAME="IDX394"></A>
Find the previous untranslated entry (<CODE>po-previous-untransted-entry</CODE>).
<DT><KBD>k</KBD>
<DD>
-<A NAME="IDX392"></A>
+<A NAME="IDX395"></A>
Turn the current entry into an untranslated one (<CODE>po-kill-msgstr</CODE>).
</DL>
<P>
-<A NAME="IDX393"></A>
-<A NAME="IDX394"></A>
-<A NAME="IDX395"></A>
<A NAME="IDX396"></A>
+<A NAME="IDX397"></A>
+<A NAME="IDX398"></A>
+<A NAME="IDX399"></A>
The commands <KBD>u</KBD> (<CODE>po-next-untranslated-entry</CODE>) and <KBD>U</KBD>
(<CODE>po-previous-untransted-entry</CODE>) move forwards or backwards,
chasing for an untranslated entry. If none is found, the search is
</P>
<P>
-<A NAME="IDX397"></A>
-<A NAME="IDX398"></A>
+<A NAME="IDX400"></A>
+<A NAME="IDX401"></A>
An entry can be turned back into an untranslated entry by
merely emptying its translation, using the command <KBD>k</KBD>
(<CODE>po-kill-msgstr</CODE>). See section <A HREF="gettext_8.html#SEC61">8.3.9 Modifying Translations</A>.
<H3><A NAME="SEC60" HREF="gettext_toc.html#TOC60">8.3.8 Obsolete Entries</A></H3>
<P>
-<A NAME="IDX399"></A>
+<A NAME="IDX402"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX400"></A>
+<A NAME="IDX403"></A>
Moreover, some commands are more specifically related to obsolete
entry processing.
<DT><KBD>o</KBD>
<DD>
-<A NAME="IDX401"></A>
+<A NAME="IDX404"></A>
Find the next obsolete entry (<CODE>po-next-obsolete-entry</CODE>).
<DT><KBD>O</KBD>
<DD>
-<A NAME="IDX402"></A>
+<A NAME="IDX405"></A>
Find the previous obsolete entry (<CODE>po-previous-obsolete-entry</CODE>).
<DT><KBD><KBD>DEL</KBD></KBD>
<DD>
-<A NAME="IDX403"></A>
+<A NAME="IDX406"></A>
Make an active entry obsolete, or zap out an obsolete entry
(<CODE>po-fade-out-entry</CODE>).
</DL>
<P>
-<A NAME="IDX404"></A>
-<A NAME="IDX405"></A>
-<A NAME="IDX406"></A>
<A NAME="IDX407"></A>
+<A NAME="IDX408"></A>
+<A NAME="IDX409"></A>
+<A NAME="IDX410"></A>
The commands <KBD>o</KBD> (<CODE>po-next-obsolete-entry</CODE>) and <KBD>O</KBD>
(<CODE>po-previous-obsolete-entry</CODE>) move forwards or backwards,
chasing for an obsolete entry. If none is found, the search is
</P>
<P>
-<A NAME="IDX408"></A>
-<A NAME="IDX409"></A>
-<A NAME="IDX410"></A>
<A NAME="IDX411"></A>
+<A NAME="IDX412"></A>
+<A NAME="IDX413"></A>
+<A NAME="IDX414"></A>
However, it is possible to comment out an active entry, so making
it obsolete. GNU <CODE>gettext</CODE> utilities will later react to the
disappearance of a translation by using the untranslated string.
<H3><A NAME="SEC61" HREF="gettext_toc.html#TOC61">8.3.9 Modifying Translations</A></H3>
<P>
-<A NAME="IDX412"></A>
-<A NAME="IDX413"></A>
+<A NAME="IDX415"></A>
+<A NAME="IDX416"></A>
</P>
<P>
<DT><KBD><KBD>RET</KBD></KBD>
<DD>
-<A NAME="IDX414"></A>
+<A NAME="IDX417"></A>
Interactively edit the translation (<CODE>po-edit-msgstr</CODE>).
<DT><KBD><KBD>LFD</KBD></KBD>
<DD>
<DT><KBD>C-j</KBD>
<DD>
-<A NAME="IDX415"></A>
-<A NAME="IDX416"></A>
+<A NAME="IDX418"></A>
+<A NAME="IDX419"></A>
Reinitialize the translation with the original, untranslated string
(<CODE>po-msgid-to-msgstr</CODE>).
<DT><KBD>k</KBD>
<DD>
-<A NAME="IDX417"></A>
+<A NAME="IDX420"></A>
Save the translation on the kill ring, and delete it (<CODE>po-kill-msgstr</CODE>).
<DT><KBD>w</KBD>
<DD>
-<A NAME="IDX418"></A>
+<A NAME="IDX421"></A>
Save the translation on the kill ring, without deleting it
(<CODE>po-kill-ring-save-msgstr</CODE>).
<DT><KBD>y</KBD>
<DD>
-<A NAME="IDX419"></A>
+<A NAME="IDX422"></A>
Replace the translation, taking the new from the kill ring
(<CODE>po-yank-msgstr</CODE>).
</DL>
<P>
-<A NAME="IDX420"></A>
-<A NAME="IDX421"></A>
+<A NAME="IDX423"></A>
+<A NAME="IDX424"></A>
The command <KBD><KBD>RET</KBD></KBD> (<CODE>po-edit-msgstr</CODE>) 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
</P>
<P>
-<A NAME="IDX422"></A>
-<A NAME="IDX423"></A>
-<A NAME="IDX424"></A>
+<A NAME="IDX425"></A>
+<A NAME="IDX426"></A>
+<A NAME="IDX427"></A>
The command <KBD><KBD>LFD</KBD></KBD> (<CODE>po-msgid-to-msgstr</CODE>) initializes, or
reinitializes the translation with the original string. This command is
normally used when the translator wants to redo a fresh translation of
</P>
<P>
-<A NAME="IDX425"></A>
+<A NAME="IDX428"></A>
It is possible to arrange so, whenever editing an untranslated
entry, the <KBD><KBD>LFD</KBD></KBD> command be automatically executed. If you set
<CODE>po-auto-edit-with-msgid</CODE> to <CODE>t</CODE>, the translation gets
</P>
<P>
-<A NAME="IDX426"></A>
+<A NAME="IDX429"></A>
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
</P>
<P>
-<A NAME="IDX427"></A>
-<A NAME="IDX428"></A>
-<A NAME="IDX429"></A>
<A NAME="IDX430"></A>
<A NAME="IDX431"></A>
+<A NAME="IDX432"></A>
+<A NAME="IDX433"></A>
+<A NAME="IDX434"></A>
The command <KBD>k</KBD> (<CODE>po-kill-msgstr</CODE>) merely empties the
translation string, so turning the entry into an untranslated
one. But while doing so, its previous contents is put apart in
</P>
<P>
-<A NAME="IDX432"></A>
-<A NAME="IDX433"></A>
+<A NAME="IDX435"></A>
+<A NAME="IDX436"></A>
The command <KBD>y</KBD> (<CODE>po-yank-msgstr</CODE>) 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
</P>
<P>
-<A NAME="IDX434"></A>
+<A NAME="IDX437"></A>
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
<H3><A NAME="SEC62" HREF="gettext_toc.html#TOC62">8.3.10 Modifying Comments</A></H3>
<P>
-<A NAME="IDX435"></A>
-<A NAME="IDX436"></A>
+<A NAME="IDX438"></A>
+<A NAME="IDX439"></A>
</P>
<P>
<DT><KBD>#</KBD>
<DD>
-<A NAME="IDX437"></A>
+<A NAME="IDX440"></A>
Interactively edit the translator comments (<CODE>po-edit-comment</CODE>).
<DT><KBD>K</KBD>
<DD>
-<A NAME="IDX438"></A>
+<A NAME="IDX441"></A>
Save the translator comments on the kill ring, and delete it
(<CODE>po-kill-comment</CODE>).
<DT><KBD>W</KBD>
<DD>
-<A NAME="IDX439"></A>
+<A NAME="IDX442"></A>
Save the translator comments on the kill ring, without deleting it
(<CODE>po-kill-ring-save-comment</CODE>).
<DT><KBD>Y</KBD>
<DD>
-<A NAME="IDX440"></A>
+<A NAME="IDX443"></A>
Replace the translator comments, taking the new from the kill ring
(<CODE>po-yank-comment</CODE>).
</P>
<P>
-<A NAME="IDX441"></A>
-<A NAME="IDX442"></A>
+<A NAME="IDX444"></A>
+<A NAME="IDX445"></A>
The command <KBD>#</KBD> (<CODE>po-edit-comment</CODE>) 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
</P>
<P>
-<A NAME="IDX443"></A>
+<A NAME="IDX446"></A>
Functions found on <CODE>po-subedit-mode-hook</CODE>, if any, are executed after
the string has been inserted in the edit buffer.
</P>
<P>
-<A NAME="IDX444"></A>
-<A NAME="IDX445"></A>
-<A NAME="IDX446"></A>
<A NAME="IDX447"></A>
<A NAME="IDX448"></A>
<A NAME="IDX449"></A>
+<A NAME="IDX450"></A>
+<A NAME="IDX451"></A>
+<A NAME="IDX452"></A>
The command <KBD>K</KBD> (<CODE>po-kill-comment</CODE>) gets rid of all
translator comments, while saving those comments on the kill ring.
The command <KBD>W</KBD> (<CODE>po-kill-ring-save-comment</CODE>) takes
<H3><A NAME="SEC63" HREF="gettext_toc.html#TOC63">8.3.11 Details of Sub Edition</A></H3>
<P>
-<A NAME="IDX450"></A>
+<A NAME="IDX453"></A>
</P>
<P>
<DT><KBD>C-c C-c</KBD>
<DD>
-<A NAME="IDX451"></A>
+<A NAME="IDX454"></A>
Complete edition (<CODE>po-subedit-exit</CODE>).
<DT><KBD>C-c C-k</KBD>
<DD>
-<A NAME="IDX452"></A>
+<A NAME="IDX455"></A>
Abort edition (<CODE>po-subedit-abort</CODE>).
<DT><KBD>C-c C-a</KBD>
<DD>
-<A NAME="IDX453"></A>
+<A NAME="IDX456"></A>
Consult auxiliary PO files (<CODE>po-subedit-cycle-auxiliary</CODE>).
</DL>
<P>
-<A NAME="IDX454"></A>
-<A NAME="IDX455"></A>
-<A NAME="IDX456"></A>
+<A NAME="IDX457"></A>
+<A NAME="IDX458"></A>
+<A NAME="IDX459"></A>
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 is done, the command <KBD>C-c C-c</KBD>
</P>
<P>
-<A NAME="IDX457"></A>
-<A NAME="IDX458"></A>
+<A NAME="IDX460"></A>
+<A NAME="IDX461"></A>
If the translator becomes unsatisfied with her translation or comment,
to the extent she prefers keeping what was existent prior to the
<KBD><KBD>RET</KBD></KBD> or <KBD>#</KBD> command, she may use the command <KBD>C-c C-k</KBD>
</P>
<P>
-<A NAME="IDX459"></A>
-<A NAME="IDX460"></A>
+<A NAME="IDX462"></A>
+<A NAME="IDX463"></A>
The command <KBD>C-c C-a</KBD> (<CODE>po-subedit-cycle-auxiliary</CODE>)
allows for glancing through translations
already achieved in other languages, directly while editing the current
</P>
<P>
-<A NAME="IDX461"></A>
+<A NAME="IDX464"></A>
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
</P>
<P>
-<A NAME="IDX462"></A>
+<A NAME="IDX465"></A>
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</KBD> command), subedits
<H3><A NAME="SEC64" HREF="gettext_toc.html#TOC64">8.3.12 C Sources Context</A></H3>
<P>
-<A NAME="IDX463"></A>
-<A NAME="IDX464"></A>
-<A NAME="IDX465"></A>
+<A NAME="IDX466"></A>
+<A NAME="IDX467"></A>
+<A NAME="IDX468"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX466"></A>
+<A NAME="IDX469"></A>
The following commands are meant to help the translator at getting
program source context for a PO file entry.
<DT><KBD>s</KBD>
<DD>
-<A NAME="IDX467"></A>
+<A NAME="IDX470"></A>
Resume the display of a program source context, or cycle through them
(<CODE>po-cycle-source-reference</CODE>).
<DT><KBD>M-s</KBD>
<DD>
-<A NAME="IDX468"></A>
+<A NAME="IDX471"></A>
Display of a program source context selected by menu
(<CODE>po-select-source-reference</CODE>).
<DT><KBD>S</KBD>
<DD>
-<A NAME="IDX469"></A>
+<A NAME="IDX472"></A>
Add a directory to the search path for source files
(<CODE>po-consider-source-path</CODE>).
<DT><KBD>M-S</KBD>
<DD>
-<A NAME="IDX470"></A>
+<A NAME="IDX473"></A>
Delete a directory from the search path for source files
(<CODE>po-ignore-source-path</CODE>).
</DL>
<P>
-<A NAME="IDX471"></A>
-<A NAME="IDX472"></A>
-<A NAME="IDX473"></A>
<A NAME="IDX474"></A>
+<A NAME="IDX475"></A>
+<A NAME="IDX476"></A>
+<A NAME="IDX477"></A>
The commands <KBD>s</KBD> (<CODE>po-cycle-source-reference</CODE>) and <KBD>M-s</KBD>
(<CODE>po-select-source-reference</CODE>) both open another window displaying
some source program file, and already positioned in such a way that
</P>
<P>
-<A NAME="IDX475"></A>
-<A NAME="IDX476"></A>
-<A NAME="IDX477"></A>
<A NAME="IDX478"></A>
+<A NAME="IDX479"></A>
+<A NAME="IDX480"></A>
+<A NAME="IDX481"></A>
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.
<H3><A NAME="SEC65" HREF="gettext_toc.html#TOC65">8.3.13 Consulting Auxiliary PO Files</A></H3>
<P>
-<A NAME="IDX479"></A>
+<A NAME="IDX482"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX480"></A>
-<A NAME="IDX481"></A>
+<A NAME="IDX483"></A>
+<A NAME="IDX484"></A>
An <EM>auxiliary</EM> 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
<DT><KBD>a</KBD>
<DD>
-<A NAME="IDX482"></A>
+<A NAME="IDX485"></A>
Seek auxiliary files for another translation for the same entry
(<CODE>po-cycle-auxiliary</CODE>).
<DT><KBD>C-c C-a</KBD>
<DD>
-<A NAME="IDX483"></A>
+<A NAME="IDX486"></A>
Switch to a particular auxiliary file (<CODE>po-select-auxiliary</CODE>).
<DT><KBD>A</KBD>
<DD>
-<A NAME="IDX484"></A>
+<A NAME="IDX487"></A>
Declare this PO file as an auxiliary file (<CODE>po-consider-as-auxiliary</CODE>).
<DT><KBD>M-A</KBD>
<DD>
-<A NAME="IDX485"></A>
+<A NAME="IDX488"></A>
Remove this PO file from the list of auxiliary files
(<CODE>po-ignore-as-auxiliary</CODE>).
</DL>
<P>
-<A NAME="IDX486"></A>
-<A NAME="IDX487"></A>
-<A NAME="IDX488"></A>
<A NAME="IDX489"></A>
+<A NAME="IDX490"></A>
+<A NAME="IDX491"></A>
+<A NAME="IDX492"></A>
Command <KBD>A</KBD> (<CODE>po-consider-as-auxiliary</CODE>) adds the current
PO file to the list of auxiliary files, while command <KBD>M-A</KBD>
(<CODE>po-ignore-as-auxiliary</CODE> just removes it.
</P>
<P>
-<A NAME="IDX490"></A>
-<A NAME="IDX491"></A>
+<A NAME="IDX493"></A>
+<A NAME="IDX494"></A>
The command <KBD>a</KBD> (<CODE>po-cycle-auxiliary</CODE>) seeks all auxiliary PO
files, round-robin, searching for a translated entry in some other language
having an <CODE>msgid</CODE> field identical as the one for the current entry.
</P>
<P>
-<A NAME="IDX492"></A>
-<A NAME="IDX493"></A>
+<A NAME="IDX495"></A>
+<A NAME="IDX496"></A>
The command <KBD>C-c C-a</KBD> (<CODE>po-select-auxiliary</CODE>) 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
</P>
<P>
-<A NAME="IDX494"></A>
+<A NAME="IDX497"></A>
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’</SAMP> command. Until these
+files resulting of the <SAMP>‘M-x normalize’</SAMP> command. Until these
discrepancies between PO mode and other GNU <CODE>gettext</CODE> tools get
fully resolved, the translator should stay aware of normalisation issues.
<H3><A NAME="SEC66" HREF="gettext_toc.html#TOC66">8.3.14 Using Translation Compendia</A></H3>
<P>
-<A NAME="IDX495"></A>
+<A NAME="IDX498"></A>
</P>
<P>
-<A NAME="IDX496"></A>
+<A NAME="IDX499"></A>
A <EM>compendium</EM> 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
<H4><A NAME="SEC67" HREF="gettext_toc.html#TOC67">8.3.14.1 Creating Compendia</A></H4>
<P>
-<A NAME="IDX497"></A>
-<A NAME="IDX498"></A>
+<A NAME="IDX500"></A>
+<A NAME="IDX501"></A>
</P>
<P>
<H4><A NAME="SEC68" HREF="gettext_toc.html#TOC68">8.3.14.2 Concatenate PO Files</A></H4>
<P>
-<A NAME="IDX499"></A>
-<A NAME="IDX500"></A>
+<A NAME="IDX502"></A>
+<A NAME="IDX503"></A>
To concatenate several valid PO files into one compendium file you can
use <SAMP>‘msgcomm’</SAMP> or <SAMP>‘msgcat’</SAMP> (the latter preferred):
<P>
By default, <CODE>msgcat</CODE> will accumulate divergent translations
-for the same string. Those occurences will be marked as <CODE>fuzzy</CODE>
+for the same string. Those occurrences will be marked as <CODE>fuzzy</CODE>
and highly visible decorated; calling <CODE>msgcat</CODE> on
<TT>‘file1.po’</TT>:
<H4><A NAME="SEC69" HREF="gettext_toc.html#TOC69">8.3.14.3 Extract a Message Subset from a PO File</A></H4>
<P>
-<A NAME="IDX501"></A>
+<A NAME="IDX504"></A>
</P>
<P>
<H4><A NAME="SEC71" HREF="gettext_toc.html#TOC71">8.3.14.5 Initialize a New Translation File</A></H4>
<P>
-<A NAME="IDX502"></A>
+<A NAME="IDX505"></A>
</P>
<P>
<H4><A NAME="SEC72" HREF="gettext_toc.html#TOC72">8.3.14.6 Update an Existing Translation File</A></H4>
<P>
-<A NAME="IDX503"></A>
+<A NAME="IDX506"></A>
</P>
<P>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - 9 Manipulating PO Files</TITLE>
<H1><A NAME="SEC73" HREF="gettext_toc.html#TOC73">9 Manipulating PO Files</A></H1>
<P>
-<A NAME="IDX504"></A>
+<A NAME="IDX507"></A>
</P>
<P>
</P>
<P>
-<A NAME="IDX505"></A>
+<A NAME="IDX508"></A>
When merging two packages into a single package, the resulting POT file
will be the concatenation of the two packages' POT files. Thus the
maintainer must concatenate the two existing package translations into
</P>
<P>
-<A NAME="IDX506"></A>
+<A NAME="IDX509"></A>
When a translator takes over the translation job from another translator,
but she uses a different character encoding in her locale, she will
convert the catalog to her character encoding. This is best done through
</P>
<P>
-<A NAME="IDX507"></A>
-<A NAME="IDX508"></A>
+<A NAME="IDX510"></A>
+<A NAME="IDX511"></A>
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
</P>
<P>
-<A NAME="IDX509"></A>
+<A NAME="IDX512"></A>
When a translator wants to check her translations, for example according
to orthography rules or using a non-interactive spell checker, she can do
so using the <SAMP>‘msgexec’</SAMP> program.
</P>
<P>
-<A NAME="IDX510"></A>
+<A NAME="IDX513"></A>
When third party tools create PO or POT files, sometimes duplicates cannot
be avoided. But the GNU <CODE>gettext</CODE> tools give an error when they
encounter duplicate msgids in the same file and in the same domain.
</P>
<P>
-<A NAME="IDX511"></A>
+<A NAME="IDX514"></A>
<SAMP>‘msgattrib’</SAMP> can be used to select and extract only the fuzzy
or untranslated messages of a translation catalog.
<H2><A NAME="SEC74" HREF="gettext_toc.html#TOC74">9.1 Invoking the <CODE>msgcat</CODE> Program</A></H2>
<P>
-<A NAME="IDX512"></A>
-<A NAME="IDX513"></A>
+<A NAME="IDX515"></A>
+<A NAME="IDX516"></A>
<PRE>
msgcat [<VAR>option</VAR>] [<VAR>inputfile</VAR>]...
</PRE>
<P>
-<A NAME="IDX514"></A>
-<A NAME="IDX515"></A>
+<A NAME="IDX517"></A>
+<A NAME="IDX518"></A>
The <CODE>msgcat</CODE> 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</CODE> option, greater commonality may be requested
<DD>
<DT><SAMP>‘--files-from=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX516"></A>
-<A NAME="IDX517"></A>
+<A NAME="IDX519"></A>
+<A NAME="IDX520"></A>
Read the names of the input files from <VAR>file</VAR> instead of getting
them from the command line.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX518"></A>
-<A NAME="IDX519"></A>
+<A NAME="IDX521"></A>
+<A NAME="IDX522"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX520"></A>
-<A NAME="IDX521"></A>
+<A NAME="IDX523"></A>
+<A NAME="IDX524"></A>
Write output to specified file.
</DL>
<P>
-<A NAME="IDX522"></A>
+<A NAME="IDX525"></A>
The results are written to standard output if no output file is specified
or if it is <SAMP>‘-’</SAMP>.
<DD>
<DT><SAMP>‘--less-than=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX523"></A>
-<A NAME="IDX524"></A>
+<A NAME="IDX526"></A>
+<A NAME="IDX527"></A>
Print messages with less than <VAR>number</VAR> definitions, defaults to infinite
if not set.
<DD>
<DT><SAMP>‘--more-than=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX525"></A>
-<A NAME="IDX526"></A>
+<A NAME="IDX528"></A>
+<A NAME="IDX529"></A>
Print messages with more than <VAR>number</VAR> definitions, defaults to 0 if not
set.
<DD>
<DT><SAMP>‘--unique’</SAMP>
<DD>
-<A NAME="IDX527"></A>
-<A NAME="IDX528"></A>
+<A NAME="IDX530"></A>
+<A NAME="IDX531"></A>
Shorthand for <SAMP>‘--less-than=2’</SAMP>. Requests that only unique messages be
printed.
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX529"></A>
-<A NAME="IDX530"></A>
+<A NAME="IDX532"></A>
+<A NAME="IDX533"></A>
Assume the input files are Java ResourceBundles in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX531"></A>
+<A NAME="IDX534"></A>
Assume the input files are NeXTstep/GNUstep localized resource files in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DD>
<DT><SAMP>‘--to-code=<VAR>name</VAR>’</SAMP>
<DD>
-<A NAME="IDX532"></A>
-<A NAME="IDX533"></A>
+<A NAME="IDX535"></A>
+<A NAME="IDX536"></A>
Specify encoding for output.
<DT><SAMP>‘--use-first’</SAMP>
<DD>
-<A NAME="IDX534"></A>
+<A NAME="IDX537"></A>
Use first available translation for each message. Don't merge several
translations into one.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX535"></A>
+<A NAME="IDX538"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX536"></A>
-<A NAME="IDX537"></A>
+<A NAME="IDX539"></A>
+<A NAME="IDX540"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX538"></A>
+<A NAME="IDX541"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX539"></A>
-<A NAME="IDX540"></A>
+<A NAME="IDX542"></A>
+<A NAME="IDX543"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX541"></A>
+<A NAME="IDX544"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX542"></A>
-<A NAME="IDX543"></A>
+<A NAME="IDX545"></A>
+<A NAME="IDX546"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX544"></A>
+<A NAME="IDX547"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX545"></A>
-<A NAME="IDX546"></A>
+<A NAME="IDX548"></A>
+<A NAME="IDX549"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX547"></A>
+<A NAME="IDX550"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX548"></A>
-<A NAME="IDX549"></A>
-<A NAME="IDX550"></A>
+<A NAME="IDX551"></A>
+<A NAME="IDX552"></A>
+<A NAME="IDX553"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX551"></A>
-<A NAME="IDX552"></A>
+<A NAME="IDX554"></A>
+<A NAME="IDX555"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX553"></A>
-<A NAME="IDX554"></A>
+<A NAME="IDX556"></A>
+<A NAME="IDX557"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX555"></A>
-<A NAME="IDX556"></A>
+<A NAME="IDX558"></A>
+<A NAME="IDX559"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC81" HREF="gettext_toc.html#TOC81">9.2 Invoking the <CODE>msgconv</CODE> Program</A></H2>
<P>
-<A NAME="IDX557"></A>
-<A NAME="IDX558"></A>
+<A NAME="IDX560"></A>
+<A NAME="IDX561"></A>
<PRE>
msgconv [<VAR>option</VAR>] [<VAR>inputfile</VAR>]
</PRE>
<P>
-<A NAME="IDX559"></A>
+<A NAME="IDX562"></A>
The <CODE>msgconv</CODE> program converts a translation catalog to a different
character encoding.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX560"></A>
-<A NAME="IDX561"></A>
+<A NAME="IDX563"></A>
+<A NAME="IDX564"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX562"></A>
-<A NAME="IDX563"></A>
+<A NAME="IDX565"></A>
+<A NAME="IDX566"></A>
Write output to specified file.
</DL>
<DD>
<DT><SAMP>‘--to-code=<VAR>name</VAR>’</SAMP>
<DD>
-<A NAME="IDX564"></A>
-<A NAME="IDX565"></A>
+<A NAME="IDX567"></A>
+<A NAME="IDX568"></A>
Specify encoding for output.
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX566"></A>
-<A NAME="IDX567"></A>
+<A NAME="IDX569"></A>
+<A NAME="IDX570"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX568"></A>
+<A NAME="IDX571"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX569"></A>
+<A NAME="IDX572"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX570"></A>
-<A NAME="IDX571"></A>
+<A NAME="IDX573"></A>
+<A NAME="IDX574"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX572"></A>
+<A NAME="IDX575"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX573"></A>
+<A NAME="IDX576"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX574"></A>
+<A NAME="IDX577"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX575"></A>
-<A NAME="IDX576"></A>
+<A NAME="IDX578"></A>
+<A NAME="IDX579"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX577"></A>
+<A NAME="IDX580"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX578"></A>
-<A NAME="IDX579"></A>
+<A NAME="IDX581"></A>
+<A NAME="IDX582"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX580"></A>
+<A NAME="IDX583"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX581"></A>
-<A NAME="IDX582"></A>
+<A NAME="IDX584"></A>
+<A NAME="IDX585"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX583"></A>
-<A NAME="IDX584"></A>
+<A NAME="IDX586"></A>
+<A NAME="IDX587"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX585"></A>
-<A NAME="IDX586"></A>
+<A NAME="IDX588"></A>
+<A NAME="IDX589"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX587"></A>
-<A NAME="IDX588"></A>
+<A NAME="IDX590"></A>
+<A NAME="IDX591"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC88" HREF="gettext_toc.html#TOC88">9.3 Invoking the <CODE>msggrep</CODE> Program</A></H2>
<P>
-<A NAME="IDX589"></A>
-<A NAME="IDX590"></A>
+<A NAME="IDX592"></A>
+<A NAME="IDX593"></A>
<PRE>
msggrep [<VAR>option</VAR>] [<VAR>inputfile</VAR>]
</PRE>
<P>
-<A NAME="IDX591"></A>
+<A NAME="IDX594"></A>
The <CODE>msggrep</CODE> program extracts all messages of a translation catalog
that match a given pattern or belong to some given source files.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX592"></A>
-<A NAME="IDX593"></A>
+<A NAME="IDX595"></A>
+<A NAME="IDX596"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX594"></A>
-<A NAME="IDX595"></A>
+<A NAME="IDX597"></A>
+<A NAME="IDX598"></A>
Write output to specified file.
</DL>
<DD>
<DT><SAMP>‘--location=<VAR>sourcefile</VAR>’</SAMP>
<DD>
-<A NAME="IDX596"></A>
-<A NAME="IDX597"></A>
+<A NAME="IDX599"></A>
+<A NAME="IDX600"></A>
Select messages extracted from <VAR>sourcefile</VAR>. <VAR>sourcefile</VAR> can be
either a literal file name or a wildcard pattern.
<DD>
<DT><SAMP>‘--domain=<VAR>domainname</VAR>’</SAMP>
<DD>
-<A NAME="IDX598"></A>
-<A NAME="IDX599"></A>
+<A NAME="IDX601"></A>
+<A NAME="IDX602"></A>
Select messages belonging to domain <VAR>domainname</VAR>.
<DT><SAMP>‘-J’</SAMP>
<DD>
<DT><SAMP>‘--msgctxt’</SAMP>
<DD>
-<A NAME="IDX600"></A>
-<A NAME="IDX601"></A>
+<A NAME="IDX603"></A>
+<A NAME="IDX604"></A>
Start of patterns for the msgctxt.
<DT><SAMP>‘-K’</SAMP>
<DD>
<DT><SAMP>‘--msgid’</SAMP>
<DD>
-<A NAME="IDX602"></A>
-<A NAME="IDX603"></A>
+<A NAME="IDX605"></A>
+<A NAME="IDX606"></A>
Start of patterns for the msgid.
<DT><SAMP>‘-T’</SAMP>
<DD>
<DT><SAMP>‘--msgstr’</SAMP>
<DD>
-<A NAME="IDX604"></A>
-<A NAME="IDX605"></A>
+<A NAME="IDX607"></A>
+<A NAME="IDX608"></A>
Start of patterns for the msgstr.
<DT><SAMP>‘-C’</SAMP>
<DD>
<DT><SAMP>‘--comment’</SAMP>
<DD>
-<A NAME="IDX606"></A>
-<A NAME="IDX607"></A>
+<A NAME="IDX609"></A>
+<A NAME="IDX610"></A>
Start of patterns for the translator's comment.
<DT><SAMP>‘-X’</SAMP>
<DD>
<DT><SAMP>‘--extracted-comment’</SAMP>
<DD>
-<A NAME="IDX608"></A>
-<A NAME="IDX609"></A>
+<A NAME="IDX611"></A>
+<A NAME="IDX612"></A>
Start of patterns for the extracted comments.
<DT><SAMP>‘-E’</SAMP>
<DD>
<DT><SAMP>‘--extended-regexp’</SAMP>
<DD>
-<A NAME="IDX610"></A>
-<A NAME="IDX611"></A>
+<A NAME="IDX613"></A>
+<A NAME="IDX614"></A>
Specify that <VAR>pattern</VAR> is an extended regular expression.
<DT><SAMP>‘-F’</SAMP>
<DD>
<DT><SAMP>‘--fixed-strings’</SAMP>
<DD>
-<A NAME="IDX612"></A>
-<A NAME="IDX613"></A>
+<A NAME="IDX615"></A>
+<A NAME="IDX616"></A>
Specify that <VAR>pattern</VAR> is a set of newline-separated strings.
<DT><SAMP>‘-e <VAR>pattern</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--regexp=<VAR>pattern</VAR>’</SAMP>
<DD>
-<A NAME="IDX614"></A>
-<A NAME="IDX615"></A>
+<A NAME="IDX617"></A>
+<A NAME="IDX618"></A>
Use <VAR>pattern</VAR> as a regular expression.
<DT><SAMP>‘-f <VAR>file</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX616"></A>
-<A NAME="IDX617"></A>
+<A NAME="IDX619"></A>
+<A NAME="IDX620"></A>
Obtain <VAR>pattern</VAR> from <VAR>file</VAR>.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--ignore-case’</SAMP>
<DD>
-<A NAME="IDX618"></A>
-<A NAME="IDX619"></A>
+<A NAME="IDX621"></A>
+<A NAME="IDX622"></A>
Ignore case distinctions.
<DT><SAMP>‘-v’</SAMP>
<DD>
<DT><SAMP>‘--invert-match’</SAMP>
<DD>
-<A NAME="IDX620"></A>
-<A NAME="IDX621"></A>
+<A NAME="IDX623"></A>
+<A NAME="IDX624"></A>
Output only the messages that do not match any selection criterion, instead
of the messages that match a selection criterion.
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX622"></A>
-<A NAME="IDX623"></A>
+<A NAME="IDX625"></A>
+<A NAME="IDX626"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX624"></A>
+<A NAME="IDX627"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX625"></A>
+<A NAME="IDX628"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX626"></A>
+<A NAME="IDX629"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX627"></A>
+<A NAME="IDX630"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX628"></A>
+<A NAME="IDX631"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX629"></A>
+<A NAME="IDX632"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX630"></A>
-<A NAME="IDX631"></A>
+<A NAME="IDX633"></A>
+<A NAME="IDX634"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX632"></A>
+<A NAME="IDX635"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX633"></A>
-<A NAME="IDX634"></A>
+<A NAME="IDX636"></A>
+<A NAME="IDX637"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX635"></A>
+<A NAME="IDX638"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX636"></A>
+<A NAME="IDX639"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX637"></A>
+<A NAME="IDX640"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX638"></A>
-<A NAME="IDX639"></A>
+<A NAME="IDX641"></A>
+<A NAME="IDX642"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX640"></A>
-<A NAME="IDX641"></A>
+<A NAME="IDX643"></A>
+<A NAME="IDX644"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC95" HREF="gettext_toc.html#TOC95">9.4 Invoking the <CODE>msgfilter</CODE> Program</A></H2>
<P>
-<A NAME="IDX642"></A>
-<A NAME="IDX643"></A>
+<A NAME="IDX645"></A>
+<A NAME="IDX646"></A>
<PRE>
msgfilter [<VAR>option</VAR>] <VAR>filter</VAR> [<VAR>filter-option</VAR>]
</PRE>
<P>
-<A NAME="IDX644"></A>
+<A NAME="IDX647"></A>
The <CODE>msgfilter</CODE> program applies a filter to all translations of a
translation catalog.
<DD>
<DT><SAMP>‘--input=<VAR>inputfile</VAR>’</SAMP>
<DD>
-<A NAME="IDX645"></A>
-<A NAME="IDX646"></A>
+<A NAME="IDX648"></A>
+<A NAME="IDX649"></A>
Input PO file.
<DT><SAMP>‘-D <VAR>directory</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX647"></A>
-<A NAME="IDX648"></A>
+<A NAME="IDX650"></A>
+<A NAME="IDX651"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX649"></A>
-<A NAME="IDX650"></A>
+<A NAME="IDX652"></A>
+<A NAME="IDX653"></A>
Write output to specified file.
</DL>
</P>
<P>
-<A NAME="IDX651"></A>
+<A NAME="IDX654"></A>
Note: If the filter is not a built-in filter, you have to care about encodings:
It is your responsibility to ensure that the <VAR>filter</VAR> can cope
with input encoded in the translation catalog's encoding. If the
</P>
<P>
-<A NAME="IDX652"></A>
+<A NAME="IDX655"></A>
Note: Most translations in a translation catalog don't end with a newline
character. For this reason, it is important that the <VAR>filter</VAR>
recognizes its last input line even if it ends without a newline, and that
<DD>
<DT><SAMP>‘--expression=<VAR>script</VAR>’</SAMP>
<DD>
-<A NAME="IDX653"></A>
-<A NAME="IDX654"></A>
+<A NAME="IDX656"></A>
+<A NAME="IDX657"></A>
Add <VAR>script</VAR> to the commands to be executed.
<DT><SAMP>‘-f <VAR>scriptfile</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--file=<VAR>scriptfile</VAR>’</SAMP>
<DD>
-<A NAME="IDX655"></A>
-<A NAME="IDX656"></A>
+<A NAME="IDX658"></A>
+<A NAME="IDX659"></A>
Add the contents of <VAR>scriptfile</VAR> to the commands to be executed.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--silent’</SAMP>
<DD>
-<A NAME="IDX657"></A>
-<A NAME="IDX658"></A>
-<A NAME="IDX659"></A>
+<A NAME="IDX660"></A>
+<A NAME="IDX661"></A>
+<A NAME="IDX662"></A>
Suppress automatic printing of pattern space.
</DL>
<H3><A NAME="SEC100" HREF="gettext_toc.html#TOC100">9.4.5 Built-in <VAR>filter</VAR>s</A></H3>
<P>
-<A NAME="IDX660"></A>
-<A NAME="IDX661"></A>
+<A NAME="IDX663"></A>
+<A NAME="IDX664"></A>
The filter <SAMP>‘recode-sr-latin’</SAMP> is recognized as a built-in filter.
The command <SAMP>‘recode-sr-latin’</SAMP> converts Serbian text, written in the
Cyrillic script, to the Latin script.
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX662"></A>
-<A NAME="IDX663"></A>
+<A NAME="IDX665"></A>
+<A NAME="IDX666"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX664"></A>
+<A NAME="IDX667"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX665"></A>
+<A NAME="IDX668"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX666"></A>
+<A NAME="IDX669"></A>
Write the .po file using indented style.
<DT><SAMP>‘--keep-header’</SAMP>
<DD>
-<A NAME="IDX667"></A>
+<A NAME="IDX670"></A>
Keep the header entry, i.e. the message with <SAMP>‘msgid ""’</SAMP>, unmodified,
instead of filtering it. By default, the header entry is subject to
filtering like any other message.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX668"></A>
+<A NAME="IDX671"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX669"></A>
+<A NAME="IDX672"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX670"></A>
+<A NAME="IDX673"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX671"></A>
-<A NAME="IDX672"></A>
+<A NAME="IDX674"></A>
+<A NAME="IDX675"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX673"></A>
+<A NAME="IDX676"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX674"></A>
-<A NAME="IDX675"></A>
+<A NAME="IDX677"></A>
+<A NAME="IDX678"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX676"></A>
+<A NAME="IDX679"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX677"></A>
-<A NAME="IDX678"></A>
+<A NAME="IDX680"></A>
+<A NAME="IDX681"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX679"></A>
-<A NAME="IDX680"></A>
+<A NAME="IDX682"></A>
+<A NAME="IDX683"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX681"></A>
-<A NAME="IDX682"></A>
+<A NAME="IDX684"></A>
+<A NAME="IDX685"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX683"></A>
-<A NAME="IDX684"></A>
+<A NAME="IDX686"></A>
+<A NAME="IDX687"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC104" HREF="gettext_toc.html#TOC104">9.5 Invoking the <CODE>msguniq</CODE> Program</A></H2>
<P>
-<A NAME="IDX685"></A>
-<A NAME="IDX686"></A>
+<A NAME="IDX688"></A>
+<A NAME="IDX689"></A>
<PRE>
msguniq [<VAR>option</VAR>] [<VAR>inputfile</VAR>]
</PRE>
<P>
-<A NAME="IDX687"></A>
-<A NAME="IDX688"></A>
+<A NAME="IDX690"></A>
+<A NAME="IDX691"></A>
The <CODE>msguniq</CODE> 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</CODE>,
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX689"></A>
-<A NAME="IDX690"></A>
+<A NAME="IDX692"></A>
+<A NAME="IDX693"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX691"></A>
-<A NAME="IDX692"></A>
+<A NAME="IDX694"></A>
+<A NAME="IDX695"></A>
Write output to specified file.
</DL>
<DD>
<DT><SAMP>‘--repeated’</SAMP>
<DD>
-<A NAME="IDX693"></A>
-<A NAME="IDX694"></A>
+<A NAME="IDX696"></A>
+<A NAME="IDX697"></A>
Print only duplicates.
<DT><SAMP>‘-u’</SAMP>
<DD>
<DT><SAMP>‘--unique’</SAMP>
<DD>
-<A NAME="IDX695"></A>
-<A NAME="IDX696"></A>
+<A NAME="IDX698"></A>
+<A NAME="IDX699"></A>
Print only unique messages, discard duplicates.
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX697"></A>
-<A NAME="IDX698"></A>
+<A NAME="IDX700"></A>
+<A NAME="IDX701"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX699"></A>
+<A NAME="IDX702"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DD>
<DT><SAMP>‘--to-code=<VAR>name</VAR>’</SAMP>
<DD>
-<A NAME="IDX700"></A>
-<A NAME="IDX701"></A>
+<A NAME="IDX703"></A>
+<A NAME="IDX704"></A>
Specify encoding for output.
<DT><SAMP>‘--use-first’</SAMP>
<DD>
-<A NAME="IDX702"></A>
+<A NAME="IDX705"></A>
Use first available translation for each message. Don't merge several
translations into one.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX703"></A>
+<A NAME="IDX706"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX704"></A>
-<A NAME="IDX705"></A>
+<A NAME="IDX707"></A>
+<A NAME="IDX708"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX706"></A>
+<A NAME="IDX709"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX707"></A>
-<A NAME="IDX708"></A>
+<A NAME="IDX710"></A>
+<A NAME="IDX711"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX709"></A>
+<A NAME="IDX712"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX710"></A>
-<A NAME="IDX711"></A>
+<A NAME="IDX713"></A>
+<A NAME="IDX714"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX712"></A>
+<A NAME="IDX715"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX713"></A>
-<A NAME="IDX714"></A>
+<A NAME="IDX716"></A>
+<A NAME="IDX717"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX715"></A>
+<A NAME="IDX718"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX716"></A>
-<A NAME="IDX717"></A>
+<A NAME="IDX719"></A>
+<A NAME="IDX720"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX718"></A>
-<A NAME="IDX719"></A>
+<A NAME="IDX721"></A>
+<A NAME="IDX722"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX720"></A>
-<A NAME="IDX721"></A>
+<A NAME="IDX723"></A>
+<A NAME="IDX724"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX722"></A>
-<A NAME="IDX723"></A>
+<A NAME="IDX725"></A>
+<A NAME="IDX726"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC111" HREF="gettext_toc.html#TOC111">9.6 Invoking the <CODE>msgcomm</CODE> Program</A></H2>
<P>
-<A NAME="IDX724"></A>
-<A NAME="IDX725"></A>
+<A NAME="IDX727"></A>
+<A NAME="IDX728"></A>
<PRE>
msgcomm [<VAR>option</VAR>] [<VAR>inputfile</VAR>]...
</PRE>
<P>
-<A NAME="IDX726"></A>
+<A NAME="IDX729"></A>
The <CODE>msgcomm</CODE> program finds messages which are common to two or more
of the specified PO files.
By using the <CODE>--more-than</CODE> option, greater commonality may be requested
<DD>
<DT><SAMP>‘--files-from=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX727"></A>
-<A NAME="IDX728"></A>
+<A NAME="IDX730"></A>
+<A NAME="IDX731"></A>
Read the names of the input files from <VAR>file</VAR> instead of getting
them from the command line.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX729"></A>
-<A NAME="IDX730"></A>
+<A NAME="IDX732"></A>
+<A NAME="IDX733"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX731"></A>
-<A NAME="IDX732"></A>
+<A NAME="IDX734"></A>
+<A NAME="IDX735"></A>
Write output to specified file.
</DL>
<DD>
<DT><SAMP>‘--less-than=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX733"></A>
-<A NAME="IDX734"></A>
+<A NAME="IDX736"></A>
+<A NAME="IDX737"></A>
Print messages with less than <VAR>number</VAR> definitions, defaults to infinite
if not set.
<DD>
<DT><SAMP>‘--more-than=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX735"></A>
-<A NAME="IDX736"></A>
+<A NAME="IDX738"></A>
+<A NAME="IDX739"></A>
Print messages with more than <VAR>number</VAR> definitions, defaults to 1 if not
set.
<DD>
<DT><SAMP>‘--unique’</SAMP>
<DD>
-<A NAME="IDX737"></A>
-<A NAME="IDX738"></A>
+<A NAME="IDX740"></A>
+<A NAME="IDX741"></A>
Shorthand for <SAMP>‘--less-than=2’</SAMP>. Requests that only unique messages be
printed.
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX739"></A>
-<A NAME="IDX740"></A>
+<A NAME="IDX742"></A>
+<A NAME="IDX743"></A>
Assume the input files are Java ResourceBundles in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX741"></A>
+<A NAME="IDX744"></A>
Assume the input files are NeXTstep/GNUstep localized resource files in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX742"></A>
+<A NAME="IDX745"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX743"></A>
-<A NAME="IDX744"></A>
+<A NAME="IDX746"></A>
+<A NAME="IDX747"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX745"></A>
+<A NAME="IDX748"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX746"></A>
-<A NAME="IDX747"></A>
+<A NAME="IDX749"></A>
+<A NAME="IDX750"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX748"></A>
+<A NAME="IDX751"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX749"></A>
-<A NAME="IDX750"></A>
+<A NAME="IDX752"></A>
+<A NAME="IDX753"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX751"></A>
+<A NAME="IDX754"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX752"></A>
-<A NAME="IDX753"></A>
+<A NAME="IDX755"></A>
+<A NAME="IDX756"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX754"></A>
+<A NAME="IDX757"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX755"></A>
-<A NAME="IDX756"></A>
+<A NAME="IDX758"></A>
+<A NAME="IDX759"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX757"></A>
-<A NAME="IDX758"></A>
+<A NAME="IDX760"></A>
+<A NAME="IDX761"></A>
Sort output by file location.
<DT><SAMP>‘--omit-header’</SAMP>
<DD>
-<A NAME="IDX759"></A>
+<A NAME="IDX762"></A>
Don't write header with <SAMP>‘msgid ""’</SAMP> entry.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX760"></A>
-<A NAME="IDX761"></A>
+<A NAME="IDX763"></A>
+<A NAME="IDX764"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX762"></A>
-<A NAME="IDX763"></A>
+<A NAME="IDX765"></A>
+<A NAME="IDX766"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC118" HREF="gettext_toc.html#TOC118">9.7 Invoking the <CODE>msgcmp</CODE> Program</A></H2>
<P>
-<A NAME="IDX764"></A>
-<A NAME="IDX765"></A>
+<A NAME="IDX767"></A>
+<A NAME="IDX768"></A>
<PRE>
msgcmp [<VAR>option</VAR>] <VAR>def</VAR>.po <VAR>ref</VAR>.pot
</PRE>
<P>
-<A NAME="IDX766"></A>
+<A NAME="IDX769"></A>
The <CODE>msgcmp</CODE> program compares two Uniforum style .po files to check that
both contain the same set of msgid strings. The <VAR>def</VAR>.po file is an
existing PO file with the translations. The <VAR>ref</VAR>.pot file is the last
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX767"></A>
-<A NAME="IDX768"></A>
+<A NAME="IDX770"></A>
+<A NAME="IDX771"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories.
<DD>
<DT><SAMP>‘--multi-domain’</SAMP>
<DD>
-<A NAME="IDX769"></A>
-<A NAME="IDX770"></A>
+<A NAME="IDX772"></A>
+<A NAME="IDX773"></A>
Apply <VAR>ref</VAR>.pot to each of the domains in <VAR>def</VAR>.po.
+<DT><SAMP>‘--use-fuzzy’</SAMP>
+<DD>
+<A NAME="IDX774"></A>
+Consider fuzzy messages in the <VAR>def</VAR>.po file like translated messages.
+Note that using this option is usually wrong, because fuzzy messages are
+exactly those which have not been validated by a human translator.
+
+<DT><SAMP>‘--use-untranslated’</SAMP>
+<DD>
+<A NAME="IDX775"></A>
+Consider untranslated messages in the <VAR>def</VAR>.po file like translated
+messages. Note that using this option is usually wrong.
+
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX771"></A>
-<A NAME="IDX772"></A>
+<A NAME="IDX776"></A>
+<A NAME="IDX777"></A>
Assume the input files are Java ResourceBundles in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX773"></A>
+<A NAME="IDX778"></A>
Assume the input files are NeXTstep/GNUstep localized resource files in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX774"></A>
-<A NAME="IDX775"></A>
+<A NAME="IDX779"></A>
+<A NAME="IDX780"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX776"></A>
-<A NAME="IDX777"></A>
+<A NAME="IDX781"></A>
+<A NAME="IDX782"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC123" HREF="gettext_toc.html#TOC123">9.8 Invoking the <CODE>msgattrib</CODE> Program</A></H2>
<P>
-<A NAME="IDX778"></A>
-<A NAME="IDX779"></A>
+<A NAME="IDX783"></A>
+<A NAME="IDX784"></A>
<PRE>
msgattrib [<VAR>option</VAR>] [<VAR>inputfile</VAR>]
</PRE>
<P>
-<A NAME="IDX780"></A>
-<A NAME="IDX781"></A>
+<A NAME="IDX785"></A>
+<A NAME="IDX786"></A>
The <CODE>msgattrib</CODE> program filters the messages of a translation catalog
according to their attributes, and manipulates the attributes.
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX782"></A>
-<A NAME="IDX783"></A>
+<A NAME="IDX787"></A>
+<A NAME="IDX788"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX784"></A>
-<A NAME="IDX785"></A>
+<A NAME="IDX789"></A>
+<A NAME="IDX790"></A>
Write output to specified file.
</DL>
<DT><SAMP>‘--translated’</SAMP>
<DD>
-<A NAME="IDX786"></A>
+<A NAME="IDX791"></A>
Keep translated messages, remove untranslated messages.
<DT><SAMP>‘--untranslated’</SAMP>
<DD>
-<A NAME="IDX787"></A>
+<A NAME="IDX792"></A>
Keep untranslated messages, remove translated messages.
<DT><SAMP>‘--no-fuzzy’</SAMP>
<DD>
-<A NAME="IDX788"></A>
+<A NAME="IDX793"></A>
Remove
‘fuzzy’
marked messages.
<DT><SAMP>‘--only-fuzzy’</SAMP>
<DD>
-<A NAME="IDX789"></A>
+<A NAME="IDX794"></A>
Keep
‘fuzzy’
-marked messages, remove all other messsages.
+marked messages, remove all other messages.
<DT><SAMP>‘--no-obsolete’</SAMP>
<DD>
-<A NAME="IDX790"></A>
+<A NAME="IDX795"></A>
Remove obsolete #~ messages.
<DT><SAMP>‘--only-obsolete’</SAMP>
<DD>
-<A NAME="IDX791"></A>
+<A NAME="IDX796"></A>
Keep obsolete #~ messages, remove all other messages.
</DL>
<H3><A NAME="SEC127" HREF="gettext_toc.html#TOC127">9.8.4 Attribute manipulation</A></H3>
<P>
-<A NAME="IDX792"></A>
+<A NAME="IDX797"></A>
Attributes are modified after the message selection/removal has been
performed. If the <SAMP>‘--only-file’</SAMP> or <SAMP>‘--ignore-file’</SAMP> option is
specified, the attribute modification is applied only to those messages
<DT><SAMP>‘--set-fuzzy’</SAMP>
<DD>
-<A NAME="IDX793"></A>
+<A NAME="IDX798"></A>
Set all messages
‘fuzzy’.
<DT><SAMP>‘--clear-fuzzy’</SAMP>
<DD>
-<A NAME="IDX794"></A>
+<A NAME="IDX799"></A>
Set all messages
non-‘fuzzy’.
<DT><SAMP>‘--set-obsolete’</SAMP>
<DD>
-<A NAME="IDX795"></A>
+<A NAME="IDX800"></A>
Set all messages obsolete.
<DT><SAMP>‘--clear-obsolete’</SAMP>
<DD>
-<A NAME="IDX796"></A>
+<A NAME="IDX801"></A>
Set all messages non-obsolete.
+<DT><SAMP>‘--clear-previous’</SAMP>
+<DD>
+<A NAME="IDX802"></A>
+Remove the “previous msgid” (<SAMP>‘#|’</SAMP>) comments from all messages.
+
<DT><SAMP>‘--only-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX797"></A>
+<A NAME="IDX803"></A>
Limit the attribute changes to entries that are listed in <VAR>file</VAR>.
<VAR>file</VAR> should be a PO or POT file.
<DT><SAMP>‘--ignore-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX798"></A>
+<A NAME="IDX804"></A>
Limit the attribute changes to entries that are not listed in <VAR>file</VAR>.
<VAR>file</VAR> should be a PO or POT file.
<DT><SAMP>‘--fuzzy’</SAMP>
<DD>
-<A NAME="IDX799"></A>
+<A NAME="IDX805"></A>
Synonym for <SAMP>‘--only-fuzzy --clear-fuzzy’</SAMP>: It keeps only the fuzzy
messages and removes their
‘fuzzy’
<DT><SAMP>‘--obsolete’</SAMP>
<DD>
-<A NAME="IDX800"></A>
+<A NAME="IDX806"></A>
Synonym for <SAMP>‘--only-obsolete --clear-obsolete’</SAMP>: It keeps only the
obsolete messages and makes them non-obsolete.
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX801"></A>
-<A NAME="IDX802"></A>
+<A NAME="IDX807"></A>
+<A NAME="IDX808"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX803"></A>
+<A NAME="IDX809"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX804"></A>
+<A NAME="IDX810"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX805"></A>
-<A NAME="IDX806"></A>
+<A NAME="IDX811"></A>
+<A NAME="IDX812"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX807"></A>
+<A NAME="IDX813"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘-n’</SAMP>
<DD>
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX808"></A>
-<A NAME="IDX809"></A>
+<A NAME="IDX814"></A>
+<A NAME="IDX815"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX810"></A>
+<A NAME="IDX816"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX811"></A>
-<A NAME="IDX812"></A>
+<A NAME="IDX817"></A>
+<A NAME="IDX818"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX813"></A>
+<A NAME="IDX819"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX814"></A>
-<A NAME="IDX815"></A>
+<A NAME="IDX820"></A>
+<A NAME="IDX821"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX816"></A>
+<A NAME="IDX822"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX817"></A>
-<A NAME="IDX818"></A>
+<A NAME="IDX823"></A>
+<A NAME="IDX824"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX819"></A>
-<A NAME="IDX820"></A>
+<A NAME="IDX825"></A>
+<A NAME="IDX826"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX821"></A>
-<A NAME="IDX822"></A>
+<A NAME="IDX827"></A>
+<A NAME="IDX828"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX823"></A>
-<A NAME="IDX824"></A>
+<A NAME="IDX829"></A>
+<A NAME="IDX830"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC131" HREF="gettext_toc.html#TOC131">9.9 Invoking the <CODE>msgen</CODE> Program</A></H2>
<P>
-<A NAME="IDX825"></A>
-<A NAME="IDX826"></A>
+<A NAME="IDX831"></A>
+<A NAME="IDX832"></A>
<PRE>
msgen [<VAR>option</VAR>] <VAR>inputfile</VAR>
</PRE>
<P>
-<A NAME="IDX827"></A>
+<A NAME="IDX833"></A>
The <CODE>msgen</CODE> 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
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX828"></A>
-<A NAME="IDX829"></A>
+<A NAME="IDX834"></A>
+<A NAME="IDX835"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--output-file=<VAR>file</VAR>’</SAMP>
<DD>
-<A NAME="IDX830"></A>
-<A NAME="IDX831"></A>
+<A NAME="IDX836"></A>
+<A NAME="IDX837"></A>
Write output to specified file.
</DL>
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX832"></A>
-<A NAME="IDX833"></A>
+<A NAME="IDX838"></A>
+<A NAME="IDX839"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX834"></A>
+<A NAME="IDX840"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DT><SAMP>‘--force-po’</SAMP>
<DD>
-<A NAME="IDX835"></A>
+<A NAME="IDX841"></A>
Always write an output file even if it contains no message.
<DT><SAMP>‘-i’</SAMP>
<DD>
<DT><SAMP>‘--indent’</SAMP>
<DD>
-<A NAME="IDX836"></A>
-<A NAME="IDX837"></A>
+<A NAME="IDX842"></A>
+<A NAME="IDX843"></A>
Write the .po file using indented style.
<DT><SAMP>‘--no-location’</SAMP>
<DD>
-<A NAME="IDX838"></A>
+<A NAME="IDX844"></A>
Do not write <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines.
<DT><SAMP>‘--add-location’</SAMP>
<DD>
-<A NAME="IDX839"></A>
+<A NAME="IDX845"></A>
Generate <SAMP>‘#: <VAR>filename</VAR>:<VAR>line</VAR>’</SAMP> lines (default).
<DT><SAMP>‘--strict’</SAMP>
<DD>
-<A NAME="IDX840"></A>
+<A NAME="IDX846"></A>
Write out a strict Uniforum conforming PO file. Note that this
Uniforum format should be avoided because it doesn't support the
GNU extensions.
<DD>
<DT><SAMP>‘--properties-output’</SAMP>
<DD>
-<A NAME="IDX841"></A>
-<A NAME="IDX842"></A>
+<A NAME="IDX847"></A>
+<A NAME="IDX848"></A>
Write out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
<DT><SAMP>‘--stringtable-output’</SAMP>
<DD>
-<A NAME="IDX843"></A>
+<A NAME="IDX849"></A>
Write out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
Note that this file format doesn't support plural forms.
<DD>
<DT><SAMP>‘--width=<VAR>number</VAR>’</SAMP>
<DD>
-<A NAME="IDX844"></A>
-<A NAME="IDX845"></A>
+<A NAME="IDX850"></A>
+<A NAME="IDX851"></A>
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</VAR>.
<DT><SAMP>‘--no-wrap’</SAMP>
<DD>
-<A NAME="IDX846"></A>
+<A NAME="IDX852"></A>
Do not break long message lines. Message lines whose width exceeds the
output page width will not be split into several lines. Only file reference
lines which are wider than the output page width will be split.
<DD>
<DT><SAMP>‘--sort-output’</SAMP>
<DD>
-<A NAME="IDX847"></A>
-<A NAME="IDX848"></A>
+<A NAME="IDX853"></A>
+<A NAME="IDX854"></A>
Generate sorted output. Note that using this option makes it much harder
for the translator to understand each message's context.
<DD>
<DT><SAMP>‘--sort-by-file’</SAMP>
<DD>
-<A NAME="IDX849"></A>
-<A NAME="IDX850"></A>
+<A NAME="IDX855"></A>
+<A NAME="IDX856"></A>
Sort output by file location.
</DL>
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX851"></A>
-<A NAME="IDX852"></A>
+<A NAME="IDX857"></A>
+<A NAME="IDX858"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX853"></A>
-<A NAME="IDX854"></A>
+<A NAME="IDX859"></A>
+<A NAME="IDX860"></A>
Output version information and exit.
</DL>
<H2><A NAME="SEC137" HREF="gettext_toc.html#TOC137">9.10 Invoking the <CODE>msgexec</CODE> Program</A></H2>
<P>
-<A NAME="IDX855"></A>
-<A NAME="IDX856"></A>
+<A NAME="IDX861"></A>
+<A NAME="IDX862"></A>
<PRE>
msgexec [<VAR>option</VAR>] <VAR>command</VAR> [<VAR>command-option</VAR>]
</PRE>
<P>
-<A NAME="IDX857"></A>
+<A NAME="IDX863"></A>
The <CODE>msgexec</CODE> program applies a command to all translations of a
translation catalog.
The <VAR>command</VAR> can be any program that reads a translation from standard
</P>
<P>
-<A NAME="IDX858"></A>
+<A NAME="IDX864"></A>
A special builtin command called <SAMP>‘0’</SAMP> outputs the translation, followed
by a null byte. The output of <SAMP>‘msgexec 0’</SAMP> is suitable as input for
<SAMP>‘xargs -0’</SAMP>.
</P>
<P>
-<A NAME="IDX859"></A>
-<A NAME="IDX860"></A>
-<A NAME="IDX861"></A>
+<A NAME="IDX865"></A>
+<A NAME="IDX866"></A>
+<A NAME="IDX867"></A>
During each <VAR>command</VAR> invocation, the environment variable
<CODE>MSGEXEC_MSGID</CODE> is bound to the message's msgid, and the environment
variable <CODE>MSGEXEC_LOCATION</CODE> is bound to the location in the PO file
</P>
<P>
-<A NAME="IDX862"></A>
+<A NAME="IDX868"></A>
Note: It is your responsibility to ensure that the <VAR>command</VAR> can cope
with input encoded in the translation catalog's encoding. If the
<VAR>command</VAR> wants input in a particular encoding, you can in a first step
<DD>
<DT><SAMP>‘--input=<VAR>inputfile</VAR>’</SAMP>
<DD>
-<A NAME="IDX863"></A>
-<A NAME="IDX864"></A>
+<A NAME="IDX869"></A>
+<A NAME="IDX870"></A>
Input PO file.
<DT><SAMP>‘-D <VAR>directory</VAR>’</SAMP>
<DD>
<DT><SAMP>‘--directory=<VAR>directory</VAR>’</SAMP>
<DD>
-<A NAME="IDX865"></A>
-<A NAME="IDX866"></A>
+<A NAME="IDX871"></A>
+<A NAME="IDX872"></A>
Add <VAR>directory</VAR> to the list of directories. Source files are
searched relative to this list of directories. The resulting <TT>‘.po’</TT>
file will be written relative to the current directory, though.
<DD>
<DT><SAMP>‘--properties-input’</SAMP>
<DD>
-<A NAME="IDX867"></A>
-<A NAME="IDX868"></A>
+<A NAME="IDX873"></A>
+<A NAME="IDX874"></A>
Assume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
syntax, not in PO file syntax.
<DT><SAMP>‘--stringtable-input’</SAMP>
<DD>
-<A NAME="IDX869"></A>
+<A NAME="IDX875"></A>
Assume the input file is a NeXTstep/GNUstep localized resource file in
<CODE>.strings</CODE> syntax, not in PO file syntax.
<DD>
<DT><SAMP>‘--help’</SAMP>
<DD>
-<A NAME="IDX870"></A>
-<A NAME="IDX871"></A>
+<A NAME="IDX876"></A>
+<A NAME="IDX877"></A>
Display this help and exit.
<DT><SAMP>‘-V’</SAMP>
<DD>
<DT><SAMP>‘--version’</SAMP>
<DD>
-<A NAME="IDX872"></A>
-<A NAME="IDX873"></A>
+<A NAME="IDX878"></A>
+<A NAME="IDX879"></A>
Output version information and exit.
</DL>
For the tasks for which a combination of <SAMP>‘msgattrib’</SAMP>, <SAMP>‘msgcat’</SAMP> etc.
is not sufficient, a set of C functions is provided in a library, to make it
possible to process PO files in your own programs. When you use this library,
-you don't need to write routines to parse the PO file; instead, you retreive
+you don't need to write routines to parse the PO file; instead, you retrieve
a pointer in memory to each of messages contained in the PO file. Functions
for writing PO files are not provided at this time.
<P>
<DL>
<DT><U>Data Type:</U> <B>po_file_t</B>
-<DD><A NAME="IDX874"></A>
+<DD><A NAME="IDX880"></A>
This is a pointer type that refers to the contents of a PO file, after it has
been read into memory.
</DL>
<P>
<DL>
<DT><U>Data Type:</U> <B>po_message_iterator_t</B>
-<DD><A NAME="IDX875"></A>
+<DD><A NAME="IDX881"></A>
This is a pointer type that refers to an iterator that produces a sequence of
messages.
</DL>
<P>
<DL>
<DT><U>Data Type:</U> <B>po_message_t</B>
-<DD><A NAME="IDX876"></A>
+<DD><A NAME="IDX882"></A>
This is a pointer type that refers to a message of a PO file, including its
translation.
</DL>
<P>
<DL>
<DT><U>Function:</U> po_file_t <B>po_file_read</B> <I>(const char *<VAR>filename</VAR>)</I>
-<DD><A NAME="IDX877"></A>
+<DD><A NAME="IDX883"></A>
The <CODE>po_file_read</CODE> function reads a PO file into memory. The file name
is given as argument. The return value is a handle to the PO file's contents,
valid until <CODE>po_file_free</CODE> is called on it. In case of error, the return
<P>
<DL>
<DT><U>Function:</U> void <B>po_file_free</B> <I>(po_file_t <VAR>file</VAR>)</I>
-<DD><A NAME="IDX878"></A>
+<DD><A NAME="IDX884"></A>
The <CODE>po_file_free</CODE> function frees a PO file's contents from memory,
including all messages that are only implicitly accessible through iterators.
</DL>
<P>
<DL>
<DT><U>Function:</U> const char * const * <B>po_file_domains</B> <I>(po_file_t <VAR>file</VAR>)</I>
-<DD><A NAME="IDX879"></A>
+<DD><A NAME="IDX885"></A>
The <CODE>po_file_domains</CODE> function returns the domains for which the given
PO file has messages. The return value is a <CODE>NULL</CODE> terminated array
which is valid as long as the <VAR>file</VAR> handle is valid. For PO files which
<P>
<DL>
<DT><U>Function:</U> po_message_iterator_t <B>po_message_iterator</B> <I>(po_file_t <VAR>file</VAR>, const char *<VAR>domain</VAR>)</I>
-<DD><A NAME="IDX880"></A>
+<DD><A NAME="IDX886"></A>
The <CODE>po_message_iterator</CODE> returns an iterator that will produce the
messages of <VAR>file</VAR> that belong to the given <VAR>domain</VAR>. If <VAR>domain</VAR>
is <CODE>NULL</CODE>, the default domain is used instead. To list the messages,
<P>
<DL>
<DT><U>Function:</U> void <B>po_message_iterator_free</B> <I>(po_message_iterator_t <VAR>iterator</VAR>)</I>
-<DD><A NAME="IDX881"></A>
+<DD><A NAME="IDX887"></A>
The <CODE>po_message_iterator_free</CODE> function frees an iterator previously
allocated through the <CODE>po_message_iterator</CODE> function.
</DL>
<P>
<DL>
<DT><U>Function:</U> po_message_t <B>po_next_message</B> <I>(po_message_iterator_t <VAR>iterator</VAR>)</I>
-<DD><A NAME="IDX882"></A>
+<DD><A NAME="IDX888"></A>
The <CODE>po_next_message</CODE> function returns the next message from
<VAR>iterator</VAR> and advances the iterator. It returns <CODE>NULL</CODE> when the
iterator has reached the end of its message list.
<P>
<DL>
<DT><U>Function:</U> const char * <B>po_message_msgid</B> <I>(po_message_t <VAR>message</VAR>)</I>
-<DD><A NAME="IDX883"></A>
+<DD><A NAME="IDX889"></A>
The <CODE>po_message_msgid</CODE> function returns the <CODE>msgid</CODE> (untranslated
English string) of a message. This is guaranteed to be non-<CODE>NULL</CODE>.
</DL>
<P>
<DL>
<DT><U>Function:</U> const char * <B>po_message_msgid_plural</B> <I>(po_message_t <VAR>message</VAR>)</I>
-<DD><A NAME="IDX884"></A>
+<DD><A NAME="IDX890"></A>
The <CODE>po_message_msgid_plural</CODE> function returns the <CODE>msgid_plural</CODE>
(untranslated English plural string) of a message with plurals, or <CODE>NULL</CODE>
for a message without plural.
<P>
<DL>
<DT><U>Function:</U> const char * <B>po_message_msgstr</B> <I>(po_message_t <VAR>message</VAR>)</I>
-<DD><A NAME="IDX885"></A>
+<DD><A NAME="IDX891"></A>
The <CODE>po_message_msgstr</CODE> function returns the <CODE>msgstr</CODE> (translation)
of a message. For an untranslated message, the return value is an empty
string.
<P>
<DL>
<DT><U>Function:</U> const char * <B>po_message_msgstr_plural</B> <I>(po_message_t <VAR>message</VAR>, int <VAR>index</VAR>)</I>
-<DD><A NAME="IDX886"></A>
+<DD><A NAME="IDX892"></A>
The <CODE>po_message_msgstr_plural</CODE> function returns the
<CODE>msgstr[<VAR>index</VAR>]</CODE> of a message with plurals, or <CODE>NULL</CODE> when
the <VAR>index</VAR> is out of range or for a message without plural.
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - Footnotes</TITLE>
</HEAD>
<BODY>
-<H1>GNU gettext tools, version 0.15</H1>
+<H1>GNU gettext tools, version 0.16</H1>
<H2>Native Language Support Library and Tools</H2>
-<H2>Edition 0.15, 30 June 2006</H2>
+<H2>Edition 0.16, 20 October 2006</H2>
<ADDRESS>Ulrich Drepper</ADDRESS>
<ADDRESS>Jim Meyering</ADDRESS>
<ADDRESS>François Pinard</ADDRESS>
variables.
<H3><A NAME="FOOT5" HREF="gettext_11.html#DOCF5">(5)</A></H3>
<P>Additions are welcome. Send appropriate information to
-<A HREF="mailto:bug-glibc-manual@gnu.org">bug-glibc-manual@gnu.org</A>.
+<A HREF="mailto:bug-gnu-gettext@gnu.org">bug-gnu-gettext@gnu.org</A> and <A HREF="mailto:bug-glibc-manual@gnu.org">bug-glibc-manual@gnu.org</A>.
<P><HR><P>
-This document was generated on 20 July 2006 using the
+This document was generated on 25 October 2006 using the
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>
translator version 1.52b.</P>
</BODY>
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52b
- from gettext.texi on 20 July 2006 -->
+ from gettext.texi on 25 October 2006 -->
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<TITLE>GNU gettext utilities - Table of Contents</TITLE>
</HEAD>
<BODY>
-<H1>GNU gettext tools, version 0.15</H1>
+<H1>GNU gettext tools, version 0.16</H1>
<H2>Native Language Support Library and Tools</H2>
-<H2>Edition 0.15, 30 June 2006</H2>
+<H2>Edition 0.16, 20 October 2006</H2>
<ADDRESS>Ulrich Drepper</ADDRESS>
<ADDRESS>Jim Meyering</ADDRESS>
<ADDRESS>François Pinard</ADDRESS>
<UL>
<LI><A NAME="TOC215" HREF="gettext_13.html#SEC215">13.5.1 AM_GNU_GETTEXT in <TT>‘gettext.m4’</TT></A>
<LI><A NAME="TOC216" HREF="gettext_13.html#SEC216">13.5.2 AM_GNU_GETTEXT_VERSION in <TT>‘gettext.m4’</TT></A>
-<LI><A NAME="TOC217" HREF="gettext_13.html#SEC217">13.5.3 AM_PO_SUBDIRS in <TT>‘po.m4’</TT></A>
-<LI><A NAME="TOC218" HREF="gettext_13.html#SEC218">13.5.4 AM_ICONV in <TT>‘iconv.m4’</TT></A>
-</UL>
-<LI><A NAME="TOC219" HREF="gettext_13.html#SEC219">13.6 Integrating with CVS</A>
-<UL>
-<LI><A NAME="TOC220" HREF="gettext_13.html#SEC220">13.6.1 Avoiding version mismatch in distributed development</A>
-<LI><A NAME="TOC221" HREF="gettext_13.html#SEC221">13.6.2 Files to put under CVS version control</A>
-<LI><A NAME="TOC222" HREF="gettext_13.html#SEC222">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A>
-<UL>
-<LI><A NAME="TOC223" HREF="gettext_13.html#SEC223">13.6.3.1 Options</A>
-<LI><A NAME="TOC224" HREF="gettext_13.html#SEC224">13.6.3.2 Informative output</A>
-</UL>
-</UL>
-<LI><A NAME="TOC225" HREF="gettext_13.html#SEC225">13.7 Creating a Distribution Tarball</A>
-</UL>
-<LI><A NAME="TOC226" HREF="gettext_14.html#SEC226">14 The Installer's and Distributor's View</A>
-<LI><A NAME="TOC227" HREF="gettext_15.html#SEC227">15 Other Programming Languages</A>
-<UL>
-<LI><A NAME="TOC228" HREF="gettext_15.html#SEC228">15.1 The Language Implementor's View</A>
-<LI><A NAME="TOC229" HREF="gettext_15.html#SEC229">15.2 The Programmer's View</A>
-<LI><A NAME="TOC230" HREF="gettext_15.html#SEC230">15.3 The Translator's View</A>
-<UL>
-<LI><A NAME="TOC231" HREF="gettext_15.html#SEC231">15.3.1 C Format Strings</A>
-<LI><A NAME="TOC232" HREF="gettext_15.html#SEC232">15.3.2 Objective C Format Strings</A>
-<LI><A NAME="TOC233" HREF="gettext_15.html#SEC233">15.3.3 Shell Format Strings</A>
-<LI><A NAME="TOC234" HREF="gettext_15.html#SEC234">15.3.4 Python Format Strings</A>
-<LI><A NAME="TOC235" HREF="gettext_15.html#SEC235">15.3.5 Lisp Format Strings</A>
-<LI><A NAME="TOC236" HREF="gettext_15.html#SEC236">15.3.6 Emacs Lisp Format Strings</A>
-<LI><A NAME="TOC237" HREF="gettext_15.html#SEC237">15.3.7 librep Format Strings</A>
-<LI><A NAME="TOC238" HREF="gettext_15.html#SEC238">15.3.8 Scheme Format Strings</A>
-<LI><A NAME="TOC239" HREF="gettext_15.html#SEC239">15.3.9 Smalltalk Format Strings</A>
-<LI><A NAME="TOC240" HREF="gettext_15.html#SEC240">15.3.10 Java Format Strings</A>
-<LI><A NAME="TOC241" HREF="gettext_15.html#SEC241">15.3.11 C# Format Strings</A>
-<LI><A NAME="TOC242" HREF="gettext_15.html#SEC242">15.3.12 awk Format Strings</A>
-<LI><A NAME="TOC243" HREF="gettext_15.html#SEC243">15.3.13 Object Pascal Format Strings</A>
-<LI><A NAME="TOC244" HREF="gettext_15.html#SEC244">15.3.14 YCP Format Strings</A>
-<LI><A NAME="TOC245" HREF="gettext_15.html#SEC245">15.3.15 Tcl Format Strings</A>
-<LI><A NAME="TOC246" HREF="gettext_15.html#SEC246">15.3.16 Perl Format Strings</A>
-<LI><A NAME="TOC247" HREF="gettext_15.html#SEC247">15.3.17 PHP Format Strings</A>
-<LI><A NAME="TOC248" HREF="gettext_15.html#SEC248">15.3.18 GCC internal Format Strings</A>
-<LI><A NAME="TOC249" HREF="gettext_15.html#SEC249">15.3.19 Qt Format Strings</A>
-<LI><A NAME="TOC250" HREF="gettext_15.html#SEC250">15.3.20 Boost Format Strings</A>
-</UL>
-<LI><A NAME="TOC251" HREF="gettext_15.html#SEC251">15.4 The Maintainer's View</A>
-<LI><A NAME="TOC252" HREF="gettext_15.html#SEC252">15.5 Individual Programming Languages</A>
-<UL>
-<LI><A NAME="TOC253" HREF="gettext_15.html#SEC253">15.5.1 C, C++, Objective C</A>
-<LI><A NAME="TOC254" HREF="gettext_15.html#SEC254">15.5.2 sh - Shell Script</A>
-<UL>
-<LI><A NAME="TOC255" HREF="gettext_15.html#SEC255">15.5.2.1 Preparing Shell Scripts for Internationalization</A>
-<LI><A NAME="TOC256" HREF="gettext_15.html#SEC256">15.5.2.2 Contents of <CODE>gettext.sh</CODE></A>
-<LI><A NAME="TOC257" HREF="gettext_15.html#SEC257">15.5.2.3 Invoking the <CODE>gettext</CODE> program</A>
-<LI><A NAME="TOC258" HREF="gettext_15.html#SEC258">15.5.2.4 Invoking the <CODE>ngettext</CODE> program</A>
-<LI><A NAME="TOC259" HREF="gettext_15.html#SEC259">15.5.2.5 Invoking the <CODE>envsubst</CODE> program</A>
-<LI><A NAME="TOC260" HREF="gettext_15.html#SEC260">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A>
-<LI><A NAME="TOC261" HREF="gettext_15.html#SEC261">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A>
-</UL>
-<LI><A NAME="TOC262" HREF="gettext_15.html#SEC262">15.5.3 bash - Bourne-Again Shell Script</A>
-<LI><A NAME="TOC263" HREF="gettext_15.html#SEC263">15.5.4 Python</A>
-<LI><A NAME="TOC264" HREF="gettext_15.html#SEC264">15.5.5 GNU clisp - Common Lisp</A>
-<LI><A NAME="TOC265" HREF="gettext_15.html#SEC265">15.5.6 GNU clisp C sources</A>
-<LI><A NAME="TOC266" HREF="gettext_15.html#SEC266">15.5.7 Emacs Lisp</A>
-<LI><A NAME="TOC267" HREF="gettext_15.html#SEC267">15.5.8 librep</A>
-<LI><A NAME="TOC268" HREF="gettext_15.html#SEC268">15.5.9 GNU guile - Scheme</A>
-<LI><A NAME="TOC269" HREF="gettext_15.html#SEC269">15.5.10 GNU Smalltalk</A>
-<LI><A NAME="TOC270" HREF="gettext_15.html#SEC270">15.5.11 Java</A>
-<LI><A NAME="TOC271" HREF="gettext_15.html#SEC271">15.5.12 C#</A>
-<LI><A NAME="TOC272" HREF="gettext_15.html#SEC272">15.5.13 GNU awk</A>
-<LI><A NAME="TOC273" HREF="gettext_15.html#SEC273">15.5.14 Pascal - Free Pascal Compiler</A>
-<LI><A NAME="TOC274" HREF="gettext_15.html#SEC274">15.5.15 wxWidgets library</A>
-<LI><A NAME="TOC275" HREF="gettext_15.html#SEC275">15.5.16 YCP - YaST2 scripting language</A>
-<LI><A NAME="TOC276" HREF="gettext_15.html#SEC276">15.5.17 Tcl - Tk's scripting language</A>
-<LI><A NAME="TOC277" HREF="gettext_15.html#SEC277">15.5.18 Perl</A>
-<UL>
-<LI><A NAME="TOC278" HREF="gettext_15.html#SEC278">15.5.18.1 General Problems Parsing Perl Code</A>
-<LI><A NAME="TOC279" HREF="gettext_15.html#SEC279">15.5.18.2 Which keywords will xgettext look for?</A>
-<LI><A NAME="TOC280" HREF="gettext_15.html#SEC280">15.5.18.3 How to Extract Hash Keys</A>
-<LI><A NAME="TOC281" HREF="gettext_15.html#SEC281">15.5.18.4 What are Strings And Quote-like Expressions?</A>
-<LI><A NAME="TOC282" HREF="gettext_15.html#SEC282">15.5.18.5 Invalid Uses Of String Interpolation</A>
-<LI><A NAME="TOC283" HREF="gettext_15.html#SEC283">15.5.18.6 Valid Uses Of String Interpolation</A>
-<LI><A NAME="TOC284" HREF="gettext_15.html#SEC284">15.5.18.7 When To Use Parentheses</A>
-<LI><A NAME="TOC285" HREF="gettext_15.html#SEC285">15.5.18.8 How To Grok with Long Lines</A>
-<LI><A NAME="TOC286" HREF="gettext_15.html#SEC286">15.5.18.9 Bugs, Pitfalls, And Things That Do Not Work</A>
-</UL>
-<LI><A NAME="TOC287" HREF="gettext_15.html#SEC287">15.5.19 PHP Hypertext Preprocessor</A>
-<LI><A NAME="TOC288" HREF="gettext_15.html#SEC288">15.5.20 Pike</A>
-<LI><A NAME="TOC289" HREF="gettext_15.html#SEC289">15.5.21 GNU Compiler Collection sources</A>
-</UL>
-<LI><A NAME="TOC290" HREF="gettext_15.html#SEC290">15.6 Internationalizable Data</A>
-<UL>
-<LI><A NAME="TOC291" HREF="gettext_15.html#SEC291">15.6.1 POT - Portable Object Template</A>
-<LI><A NAME="TOC292" HREF="gettext_15.html#SEC292">15.6.2 Resource String Table</A>
-<LI><A NAME="TOC293" HREF="gettext_15.html#SEC293">15.6.3 Glade - GNOME user interface description</A>
-</UL>
-</UL>
-<LI><A NAME="TOC294" HREF="gettext_16.html#SEC294">16 Concluding Remarks</A>
-<UL>
-<LI><A NAME="TOC295" HREF="gettext_16.html#SEC295">16.1 History of GNU <CODE>gettext</CODE></A>
-<LI><A NAME="TOC296" HREF="gettext_16.html#SEC296">16.2 Related Readings</A>
-</UL>
-<LI><A NAME="TOC297" HREF="gettext_17.html#SEC297">A Language Codes</A>
-<LI><A NAME="TOC298" HREF="gettext_18.html#SEC298">B Country Codes</A>
-<LI><A NAME="TOC299" HREF="gettext_19.html#SEC299">C Licenses</A>
-<UL>
-<LI><A NAME="TOC300" HREF="gettext_19.html#SEC300">C.1 GNU GENERAL PUBLIC LICENSE</A>
-<UL>
-<LI><A NAME="TOC301" HREF="gettext_19.html#SEC301">Preamble</A>
-<LI><A NAME="TOC302" HREF="gettext_19.html#SEC302">Appendix: How to Apply These Terms to Your New Programs</A>
-</UL>
-<LI><A NAME="TOC303" HREF="gettext_19.html#SEC303">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A>
-<UL>
-<LI><A NAME="TOC304" HREF="gettext_19.html#SEC304">Preamble</A>
-<LI><A NAME="TOC305" HREF="gettext_19.html#SEC305">How to Apply These Terms to Your New Libraries</A>
-</UL>
-<LI><A NAME="TOC306" HREF="gettext_19.html#SEC306">C.3 GNU Free Documentation License</A>
-<UL>
-<LI><A NAME="TOC307" HREF="gettext_19.html#SEC307">ADDENDUM: How to use this License for your documents</A>
-</UL>
-</UL>
-<LI><A NAME="TOC308" HREF="gettext_20.html#SEC308">Program Index</A>
-<LI><A NAME="TOC309" HREF="gettext_21.html#SEC309">Option Index</A>
-<LI><A NAME="TOC310" HREF="gettext_22.html#SEC310">Variable Index</A>
-<LI><A NAME="TOC311" HREF="gettext_23.html#SEC311">PO Mode Index</A>
-<LI><A NAME="TOC312" HREF="gettext_24.html#SEC312">Autoconf Macro Index</A>
-<LI><A NAME="TOC313" HREF="gettext_25.html#SEC313">General Index</A>
+<LI><A NAME="TOC217" HREF="gettext_13.html#SEC217">13.5.3 AM_GNU_GETTEXT_NEED in <TT>‘gettext.m4’</TT></A>
+<LI><A NAME="TOC218" HREF="gettext_13.html#SEC218">13.5.4 AM_GNU_GETTEXT_INTL_SUBDIR in <TT>‘intldir.m4’</TT></A>
+<LI><A NAME="TOC219" HREF="gettext_13.html#SEC219">13.5.5 AM_PO_SUBDIRS in <TT>‘po.m4’</TT></A>
+<LI><A NAME="TOC220" HREF="gettext_13.html#SEC220">13.5.6 AM_ICONV in <TT>‘iconv.m4’</TT></A>
+</UL>
+<LI><A NAME="TOC221" HREF="gettext_13.html#SEC221">13.6 Integrating with CVS</A>
+<UL>
+<LI><A NAME="TOC222" HREF="gettext_13.html#SEC222">13.6.1 Avoiding version mismatch in distributed development</A>
+<LI><A NAME="TOC223" HREF="gettext_13.html#SEC223">13.6.2 Files to put under CVS version control</A>
+<LI><A NAME="TOC224" HREF="gettext_13.html#SEC224">13.6.3 Invoking the <CODE>autopoint</CODE> Program</A>
+<UL>
+<LI><A NAME="TOC225" HREF="gettext_13.html#SEC225">13.6.3.1 Options</A>
+<LI><A NAME="TOC226" HREF="gettext_13.html#SEC226">13.6.3.2 Informative output</A>
+</UL>
+</UL>
+<LI><A NAME="TOC227" HREF="gettext_13.html#SEC227">13.7 Creating a Distribution Tarball</A>
+</UL>
+<LI><A NAME="TOC228" HREF="gettext_14.html#SEC228">14 The Installer's and Distributor's View</A>
+<LI><A NAME="TOC229" HREF="gettext_15.html#SEC229">15 Other Programming Languages</A>
+<UL>
+<LI><A NAME="TOC230" HREF="gettext_15.html#SEC230">15.1 The Language Implementor's View</A>
+<LI><A NAME="TOC231" HREF="gettext_15.html#SEC231">15.2 The Programmer's View</A>
+<LI><A NAME="TOC232" HREF="gettext_15.html#SEC232">15.3 The Translator's View</A>
+<UL>
+<LI><A NAME="TOC233" HREF="gettext_15.html#SEC233">15.3.1 C Format Strings</A>
+<LI><A NAME="TOC234" HREF="gettext_15.html#SEC234">15.3.2 Objective C Format Strings</A>
+<LI><A NAME="TOC235" HREF="gettext_15.html#SEC235">15.3.3 Shell Format Strings</A>
+<LI><A NAME="TOC236" HREF="gettext_15.html#SEC236">15.3.4 Python Format Strings</A>
+<LI><A NAME="TOC237" HREF="gettext_15.html#SEC237">15.3.5 Lisp Format Strings</A>
+<LI><A NAME="TOC238" HREF="gettext_15.html#SEC238">15.3.6 Emacs Lisp Format Strings</A>
+<LI><A NAME="TOC239" HREF="gettext_15.html#SEC239">15.3.7 librep Format Strings</A>
+<LI><A NAME="TOC240" HREF="gettext_15.html#SEC240">15.3.8 Scheme Format Strings</A>
+<LI><A NAME="TOC241" HREF="gettext_15.html#SEC241">15.3.9 Smalltalk Format Strings</A>
+<LI><A NAME="TOC242" HREF="gettext_15.html#SEC242">15.3.10 Java Format Strings</A>
+<LI><A NAME="TOC243" HREF="gettext_15.html#SEC243">15.3.11 C# Format Strings</A>
+<LI><A NAME="TOC244" HREF="gettext_15.html#SEC244">15.3.12 awk Format Strings</A>
+<LI><A NAME="TOC245" HREF="gettext_15.html#SEC245">15.3.13 Object Pascal Format Strings</A>
+<LI><A NAME="TOC246" HREF="gettext_15.html#SEC246">15.3.14 YCP Format Strings</A>
+<LI><A NAME="TOC247" HREF="gettext_15.html#SEC247">15.3.15 Tcl Format Strings</A>
+<LI><A NAME="TOC248" HREF="gettext_15.html#SEC248">15.3.16 Perl Format Strings</A>
+<LI><A NAME="TOC249" HREF="gettext_15.html#SEC249">15.3.17 PHP Format Strings</A>
+<LI><A NAME="TOC250" HREF="gettext_15.html#SEC250">15.3.18 GCC internal Format Strings</A>
+<LI><A NAME="TOC251" HREF="gettext_15.html#SEC251">15.3.19 Qt Format Strings</A>
+<LI><A NAME="TOC252" HREF="gettext_15.html#SEC252">15.3.20 Boost Format Strings</A>
+</UL>
+<LI><A NAME="TOC253" HREF="gettext_15.html#SEC253">15.4 The Maintainer's View</A>
+<LI><A NAME="TOC254" HREF="gettext_15.html#SEC254">15.5 Individual Programming Languages</A>
+<UL>
+<LI><A NAME="TOC255" HREF="gettext_15.html#SEC255">15.5.1 C, C++, Objective C</A>
+<LI><A NAME="TOC256" HREF="gettext_15.html#SEC256">15.5.2 sh - Shell Script</A>
+<UL>
+<LI><A NAME="TOC257" HREF="gettext_15.html#SEC257">15.5.2.1 Preparing Shell Scripts for Internationalization</A>
+<LI><A NAME="TOC258" HREF="gettext_15.html#SEC258">15.5.2.2 Contents of <CODE>gettext.sh</CODE></A>
+<LI><A NAME="TOC259" HREF="gettext_15.html#SEC259">15.5.2.3 Invoking the <CODE>gettext</CODE> program</A>
+<LI><A NAME="TOC260" HREF="gettext_15.html#SEC260">15.5.2.4 Invoking the <CODE>ngettext</CODE> program</A>
+<LI><A NAME="TOC261" HREF="gettext_15.html#SEC261">15.5.2.5 Invoking the <CODE>envsubst</CODE> program</A>
+<LI><A NAME="TOC262" HREF="gettext_15.html#SEC262">15.5.2.6 Invoking the <CODE>eval_gettext</CODE> function</A>
+<LI><A NAME="TOC263" HREF="gettext_15.html#SEC263">15.5.2.7 Invoking the <CODE>eval_ngettext</CODE> function</A>
+</UL>
+<LI><A NAME="TOC264" HREF="gettext_15.html#SEC264">15.5.3 bash - Bourne-Again Shell Script</A>
+<LI><A NAME="TOC265" HREF="gettext_15.html#SEC265">15.5.4 Python</A>
+<LI><A NAME="TOC266" HREF="gettext_15.html#SEC266">15.5.5 GNU clisp - Common Lisp</A>
+<LI><A NAME="TOC267" HREF="gettext_15.html#SEC267">15.5.6 GNU clisp C sources</A>
+<LI><A NAME="TOC268" HREF="gettext_15.html#SEC268">15.5.7 Emacs Lisp</A>
+<LI><A NAME="TOC269" HREF="gettext_15.html#SEC269">15.5.8 librep</A>
+<LI><A NAME="TOC270" HREF="gettext_15.html#SEC270">15.5.9 GNU guile - Scheme</A>
+<LI><A NAME="TOC271" HREF="gettext_15.html#SEC271">15.5.10 GNU Smalltalk</A>
+<LI><A NAME="TOC272" HREF="gettext_15.html#SEC272">15.5.11 Java</A>
+<LI><A NAME="TOC273" HREF="gettext_15.html#SEC273">15.5.12 C#</A>
+<LI><A NAME="TOC274" HREF="gettext_15.html#SEC274">15.5.13 GNU awk</A>
+<LI><A NAME="TOC275" HREF="gettext_15.html#SEC275">15.5.14 Pascal - Free Pascal Compiler</A>
+<LI><A NAME="TOC276" HREF="gettext_15.html#SEC276">15.5.15 wxWidgets library</A>
+<LI><A NAME="TOC277" HREF="gettext_15.html#SEC277">15.5.16 YCP - YaST2 scripting language</A>
+<LI><A NAME="TOC278" HREF="gettext_15.html#SEC278">15.5.17 Tcl - Tk's scripting language</A>
+<LI><A NAME="TOC279" HREF="gettext_15.html#SEC279">15.5.18 Perl</A>
+<UL>
+<LI><A NAME="TOC280" HREF="gettext_15.html#SEC280">15.5.18.1 General Problems Parsing Perl Code</A>
+<LI><A NAME="TOC281" HREF="gettext_15.html#SEC281">15.5.18.2 Which keywords will xgettext look for?</A>
+<LI><A NAME="TOC282" HREF="gettext_15.html#SEC282">15.5.18.3 How to Extract Hash Keys</A>
+<LI><A NAME="TOC283" HREF="gettext_15.html#SEC283">15.5.18.4 What are Strings And Quote-like Expressions?</A>
+<LI><A NAME="TOC284" HREF="gettext_15.html#SEC284">15.5.18.5 Invalid Uses Of String Interpolation</A>
+<LI><A NAME="TOC285" HREF="gettext_15.html#SEC285">15.5.18.6 Valid Uses Of String Interpolation</A>
+<LI><A NAME="TOC286" HREF="gettext_15.html#SEC286">15.5.18.7 When To Use Parentheses</A>
+<LI><A NAME="TOC287" HREF="gettext_15.html#SEC287">15.5.18.8 How To Grok with Long Lines</A>
+<LI><A NAME="TOC288" HREF="gettext_15.html#SEC288">15.5.18.9 Bugs, Pitfalls, And Things That Do Not Work</A>
+</UL>
+<LI><A NAME="TOC289" HREF="gettext_15.html#SEC289">15.5.19 PHP Hypertext Preprocessor</A>
+<LI><A NAME="TOC290" HREF="gettext_15.html#SEC290">15.5.20 Pike</A>
+<LI><A NAME="TOC291" HREF="gettext_15.html#SEC291">15.5.21 GNU Compiler Collection sources</A>
+</UL>
+<LI><A NAME="TOC292" HREF="gettext_15.html#SEC292">15.6 Internationalizable Data</A>
+<UL>
+<LI><A NAME="TOC293" HREF="gettext_15.html#SEC293">15.6.1 POT - Portable Object Template</A>
+<LI><A NAME="TOC294" HREF="gettext_15.html#SEC294">15.6.2 Resource String Table</A>
+<LI><A NAME="TOC295" HREF="gettext_15.html#SEC295">15.6.3 Glade - GNOME user interface description</A>
+</UL>
+</UL>
+<LI><A NAME="TOC296" HREF="gettext_16.html#SEC296">16 Concluding Remarks</A>
+<UL>
+<LI><A NAME="TOC297" HREF="gettext_16.html#SEC297">16.1 History of GNU <CODE>gettext</CODE></A>
+<LI><A NAME="TOC298" HREF="gettext_16.html#SEC298">16.2 Related Readings</A>
+</UL>
+<LI><A NAME="TOC299" HREF="gettext_17.html#SEC299">A Language Codes</A>
+<UL>
+<LI><A NAME="TOC300" HREF="gettext_17.html#SEC300">A.1 Usual Language Codes</A>
+<LI><A NAME="TOC301" HREF="gettext_17.html#SEC301">A.2 Rare Language Codes</A>
+</UL>
+<LI><A NAME="TOC302" HREF="gettext_18.html#SEC302">B Country Codes</A>
+<LI><A NAME="TOC303" HREF="gettext_19.html#SEC303">C Licenses</A>
+<UL>
+<LI><A NAME="TOC304" HREF="gettext_19.html#SEC304">C.1 GNU GENERAL PUBLIC LICENSE</A>
+<UL>
+<LI><A NAME="TOC305" HREF="gettext_19.html#SEC305">Preamble</A>
+<LI><A NAME="TOC306" HREF="gettext_19.html#SEC306">Appendix: How to Apply These Terms to Your New Programs</A>
+</UL>
+<LI><A NAME="TOC307" HREF="gettext_19.html#SEC307">C.2 GNU LESSER GENERAL PUBLIC LICENSE</A>
+<UL>
+<LI><A NAME="TOC308" HREF="gettext_19.html#SEC308">Preamble</A>
+<LI><A NAME="TOC309" HREF="gettext_19.html#SEC309">How to Apply These Terms to Your New Libraries</A>
+</UL>
+<LI><A NAME="TOC310" HREF="gettext_19.html#SEC310">C.3 GNU Free Documentation License</A>
+<UL>
+<LI><A NAME="TOC311" HREF="gettext_19.html#SEC311">ADDENDUM: How to use this License for your documents</A>
+</UL>
+</UL>
+<LI><A NAME="TOC312" HREF="gettext_20.html#SEC312">Program Index</A>
+<LI><A NAME="TOC313" HREF="gettext_21.html#SEC313">Option Index</A>
+<LI><A NAME="TOC314" HREF="gettext_22.html#SEC314">Variable Index</A>
+<LI><A NAME="TOC315" HREF="gettext_23.html#SEC315">PO Mode Index</A>
+<LI><A NAME="TOC316" HREF="gettext_24.html#SEC316">Autoconf Macro Index</A>
+<LI><A NAME="TOC317" HREF="gettext_25.html#SEC317">General Index</A>
</UL>
<P><HR><P>
-This document was generated on 20 July 2006 using the
+This document was generated on 25 October 2006 using the
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>
translator version 1.52b.</P>
</BODY>
Australia.
@item AW
Aruba.
+@item AX
+Aaland Islands.
@item AZ
Azerbaijan.
@item BA
@item CD
Congo (Dem. Rep.).
@item CF
-Central African Rep..
+Central African Republic.
@item CG
Congo (Rep.).
@item CH
Colombia.
@item CR
Costa Rica.
-@item CS
-Serbia and Montenegro.
@item CU
Cuba.
@item CV
@item GA
Gabon.
@item GB
-Britain (UK).
+Britain (United Kingdom).
@item GD
Grenada.
@item GE
Georgia.
@item GF
French Guiana.
+@item GG
+Guernsey.
@item GH
Ghana.
@item GI
Ireland.
@item IL
Israel.
+@item IM
+Isle of Man.
@item IN
India.
@item IO
Iceland.
@item IT
Italy.
+@item JE
+Jersey.
@item JM
Jamaica.
@item JO
Monaco.
@item MD
Moldova.
+@item ME
+Montenegro.
@item MG
Madagascar.
@item MH
Reunion.
@item RO
Romania.
+@item RS
+Serbia.
@item RU
Russia.
@item RW
@item VA
Vatican City.
@item VC
-St Vincent.
+St Vincent and the Grenadines.
@item VE
Venezuela.
@item VG
Afar.
@item ab
Abkhazian.
+@item ad
+Adangme.
@item ae
Avestan.
@item af
@item de
German.
@item dv
-Divehi.
+Divehi; Maldivian.
@item dz
Dzongkha; Bhutani.
@item ee
@item fr
French.
@item fy
-Frisian.
+Western Frisian.
@item ga
Irish.
@item gd
Scots; Gaelic.
@item gl
-Gallegan; Galician.
+Galician.
@item gn
Guarani.
@item gu
@item gv
Manx.
@item ha
-Hausa (?).
+Hausa.
@item he
Hebrew (formerly iw).
@item hi
@item ii
Sichuan Yi.
@item ik
-Inupiak.
+Inupiak; Inupiaq.
@item io
Ido.
@item is
@item kg
Kongo.
@item ki
-Kikuyu.
+Kikuyu; Gikuyu.
@item kj
-Kuanyama.
+Kuanyama; Kwanyama.
@item kk
Kazakh.
@item kl
@item la
Latin.
@item lb
-Letzeburgesch.
+Letzeburgesch; Luxembourgish.
@item lg
Ganda.
@item li
@item mg
Malagasy.
@item mh
-Marshall.
+Marshallese.
@item mi
Maori.
@item mk
@item nr
Ndebele, South.
@item nv
-Navajo.
+Navajo; Navaho.
@item ny
Chichewa; Nyanja.
@item oc
@item sg
Sango; Sangro.
@item si
-Sinhalese.
+Sinhala; Sinhalese.
@item sk
Slovak.
@item sl
@item tn
Tswana; Setswana.
@item to
-Tonga (?).
+Tonga.
@item tr
Turkish.
@item ts
-@set UPDATED 30 June 2006
-@set UPDATED-MONTH June 2006
-@set EDITION 0.15
-@set VERSION 0.15
+@set UPDATED 20 October 2006
+@set UPDATED-MONTH October 2006
+@set EDITION 0.16
+@set VERSION 0.16
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH AUTOPOINT "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH AUTOPOINT "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
autopoint \- copies standard gettext infrastructure
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH GETTEXTIZE "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH GETTEXTIZE "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
gettextize \- install or upgrade gettext infrastructure
.SH SYNOPSIS
\fB\-\-version\fR
print version information and exit
.TP
-\fB\-c\fR, \fB\-\-copy\fR
-copy files instead of making symlinks
-.TP
\fB\-f\fR, \fB\-\-force\fR
force writing of new files even if old exist
.TP
\fB\-\-no\-changelog\fR
don't update or create ChangeLog files
.TP
+\fB\-\-symlink\fR
+make symbolic links instead of copying files
+.TP
\fB\-n\fR, \fB\-\-dry\-run\fR
print modifications but don't perform them
.SH AUTHOR
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td><td width="90%">
-<b>-c</b>, <b>--copy</b></td></table>
+<b>-f</b>, <b>--force</b></td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td><td width="79%">
-copy files instead of making symlinks</td></table>
+force writing of new files even if old exist</td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td><td width="90%">
-<b>-f</b>, <b>--force</b></td></table>
+<b>--intl</b></td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td><td width="79%">
-force writing of new files even if old exist</td></table>
+install libintl in a subdirectory</td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td><td width="90%">
-<b>--intl</b></td></table>
+<b>--no-changelog</b></td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td><td width="79%">
-install libintl in a subdirectory</td></table>
+don't update or create ChangeLog files</td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td><td width="90%">
-<b>--no-changelog</b></td></table>
+<b>--symlink</b></td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td><td width="79%">
-don't update or create ChangeLog files</td></table>
+make symbolic links instead of copying files</td></table>
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGATTRIB "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGATTRIB "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgattrib \- attribute matching and manipulation on message catalog
.SH SYNOPSIS
\fB\-\-clear\-obsolete\fR
set all messages non-obsolete
.TP
+\fB\-\-clear\-previous\fR
+remove the "previous msgid" from all messages
+.TP
\fB\-\-only\-file\fR=\fIFILE\fR.po
manipulate only entries listed in FILE.po
.TP
<td width="21%"></td><td width="79%">
set all messages non-obsolete</td></table>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>--clear-previous</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+remove the "previous msgid" from all
+messages</td></table>
+
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGCAT "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGCAT "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgcat \- combines several message catalogs
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGCMP "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGCMP "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgcmp \- compare message catalog and template
.SH SYNOPSIS
.TP
\fB\-m\fR, \fB\-\-multi\-domain\fR
apply ref.pot to each of the domains in def.po
+.TP
+\fB\-\-use\-fuzzy\fR
+consider fuzzy entries
+.TP
+\fB\-\-use\-untranslated\fR
+consider untranslated entries
.SS "Input file syntax:"
.TP
\fB\-P\fR, \fB\-\-properties\-input\fR
<td width="21%"></td><td width="79%">
apply ref.pot to each of the domains in def.po</td></table>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>--use-fuzzy</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+consider fuzzy entries</td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>--use-untranslated</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+consider untranslated entries</td></table>
+
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGCOMM "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGCOMM "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgcomm \- match two message catalogs
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGCONV "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGCONV "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgconv \- character set conversion for message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGEN "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGEN "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgen \- create English message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGEXEC "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGEXEC "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgexec \- process translations of message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGFILTER "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGFILTER "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgfilter \- edit translations of message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGFMT "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGFMT "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgfmt \- compile message catalog to binary format
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGGREP "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGGREP "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msggrep \- pattern matching on message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGINIT "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGINIT "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msginit \- initialize a message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGMERGE "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGMERGE "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgmerge \- merge message catalog and template
.SH SYNOPSIS
.TP
\fB\-N\fR, \fB\-\-no\-fuzzy\-matching\fR
do not use fuzzy matching
+.TP
+\fB\-\-previous\fR
+keep previous msgids of translated messages
.SS "Input file syntax:"
.TP
\fB\-P\fR, \fB\-\-properties\-input\fR
<td width="21%"></td><td width="79%">
do not use fuzzy matching</td></table>
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="10%"></td><td width="90%">
+<b>--previous</b></td></table>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cols="2" cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="21%"></td><td width="79%">
+keep previous msgids of translated messages</td></table>
+
<table width="100%" border=0 rules="none" frame="void"
cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGUNFMT "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGUNFMT "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msgunfmt \- uncompile message catalog from binary format
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH MSGUNIQ "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH MSGUNIQ "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
msguniq \- unify duplicate translations in message catalog
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
-.TH XGETTEXT "1" "July 2006" "GNU gettext-tools 0.15" GNU
+.TH XGETTEXT "1" "October 2006" "GNU gettext-tools 0.16" GNU
.SH NAME
xgettext \- extract gettext strings from source
.SH SYNOPSIS
# define COMMENT 257
# define DOMAIN 258
# define JUNK 259
-# define MSGCTXT 260
-# define MSGID 261
-# define MSGID_PLURAL 262
-# define MSGSTR 263
-# define NAME 264
-# define NUMBER 265
-# define STRING 266
+# define PREV_MSGCTXT 260
+# define PREV_MSGID 261
+# define PREV_MSGID_PLURAL 262
+# define PREV_STRING 263
+# define MSGCTXT 264
+# define MSGID 265
+# define MSGID_PLURAL 266
+# define MSGSTR 267
+# define NAME 268
+# define NUMBER 269
+# define STRING 270
#line 20 "po-gram-gen.y"
#include "error.h"
#include "xalloc.h"
#include "gettext.h"
-#include "read-po-abstract.h"
+#include "read-catalog-abstract.h"
#define _(str) gettext (str)
do_callback_message (char *msgctxt,
char *msgid, lex_pos_ty *msgid_pos, char *msgid_plural,
char *msgstr, size_t msgstr_len, lex_pos_ty *msgstr_pos,
+ char *prev_msgctxt,
+ char *prev_msgid, char *prev_msgid_plural,
bool obsolete)
{
/* Test for header entry. Ignore fuzziness of the header entry. */
po_callback_message (msgctxt,
msgid, msgid_pos, msgid_plural,
msgstr, msgstr_len, msgstr_pos,
+ prev_msgctxt, prev_msgid, prev_msgid_plural,
false, obsolete);
}
+#define free_message_intro(value) \
+ if ((value).prev_ctxt != NULL) \
+ free ((value).prev_ctxt); \
+ if ((value).prev_id != NULL) \
+ free ((value).prev_id); \
+ if ((value).prev_id_plural != NULL) \
+ free ((value).prev_id_plural); \
+ if ((value).ctxt != NULL) \
+ free ((value).ctxt);
-#line 126 "po-gram-gen.y"
+
+#line 143 "po-gram-gen.y"
#ifndef YYSTYPE
typedef union
{
struct { string_list_ty stringlist; lex_pos_ty pos; bool obsolete; } stringlist;
struct { long number; lex_pos_ty pos; bool obsolete; } number;
struct { lex_pos_ty pos; bool obsolete; } pos;
+ struct { char *ctxt; char *id; char *id_plural; lex_pos_ty pos; bool obsolete; } prev;
+ struct { char *prev_ctxt; char *prev_id; char *prev_id_plural; char *ctxt; lex_pos_ty pos; bool obsolete; } message_intro;
struct { struct msgstr_def rhs; lex_pos_ty pos; bool obsolete; } rhs;
} yystype;
# define YYSTYPE yystype
-#define YYFINAL 32
+#define YYFINAL 46
#define YYFLAG -32768
-#define YYNTBASE 15
+#define YYNTBASE 19
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 266 ? yytranslate[x] : 24)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 270 ? yytranslate[x] : 33)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 11, 2, 12, 2, 2, 2, 2, 2, 2,
+ 2, 15, 2, 16, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
- 6, 7, 8, 9, 10, 13, 14
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 17,
+ 18
};
#if YYDEBUG
static const short yyprhs[] =
{
- 0, 0, 1, 4, 7, 10, 13, 16, 21, 26,
- 30, 34, 37, 39, 43, 46, 48, 51, 57, 59,
- 62
+ 0, 0, 1, 4, 7, 10, 13, 15, 18, 23,
+ 28, 32, 36, 39, 41, 44, 47, 51, 53, 57,
+ 59, 63, 66, 69, 71, 74, 80, 82, 85, 87
};
static const short yyrhs[] =
{
- -1, 15, 23, 0, 15, 16, 0, 15, 17, 0,
- 15, 1, 0, 4, 14, 0, 18, 22, 9, 22,
- 0, 18, 22, 19, 20, 0, 18, 22, 19, 0,
- 18, 22, 20, 0, 18, 22, 0, 7, 0, 6,
- 22, 7, 0, 8, 22, 0, 21, 0, 20, 21,
- 0, 9, 11, 13, 12, 22, 0, 14, 0, 22,
- 14, 0, 3, 0
+ -1, 19, 20, 0, 19, 21, 0, 19, 22, 0,
+ 19, 1, 0, 3, 0, 4, 18, 0, 23, 31,
+ 13, 31, 0, 23, 31, 27, 29, 0, 23, 31,
+ 27, 0, 23, 31, 29, 0, 23, 31, 0, 25,
+ 0, 24, 25, 0, 26, 32, 0, 26, 32, 28,
+ 0, 11, 0, 10, 31, 11, 0, 7, 0, 6,
+ 32, 7, 0, 12, 31, 0, 8, 32, 0, 30,
+ 0, 29, 30, 0, 13, 15, 17, 16, 31, 0,
+ 18, 0, 31, 18, 0, 9, 0, 32, 9, 0
};
#endif
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
- 0, 146, 147, 148, 149, 150, 154, 161, 179, 197,
- 205, 213, 222, 228, 239, 250, 254, 269, 291, 298,
- 309
+ 0, 170, 171, 172, 173, 174, 179, 187, 195, 216,
+ 237, 246, 255, 266, 275, 289, 298, 312, 318, 329,
+ 335, 347, 358, 369, 373, 388, 411, 418, 429, 436
};
#endif
/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
static const char *const yytname[] =
{
- "$", "error", "$undefined.", "COMMENT", "DOMAIN", "JUNK", "MSGCTXT",
- "MSGID", "MSGID_PLURAL", "MSGSTR", "NAME", "'['", "']'", "NUMBER",
- "STRING", "msgfmt", "domain", "message", "message_intro",
- "msgid_pluralform", "pluralform_list", "pluralform", "string_list",
- "comment", 0
+ "$", "error", "$undefined.", "COMMENT", "DOMAIN", "JUNK", "PREV_MSGCTXT",
+ "PREV_MSGID", "PREV_MSGID_PLURAL", "PREV_STRING", "MSGCTXT", "MSGID",
+ "MSGID_PLURAL", "MSGSTR", "NAME", "'['", "']'", "NUMBER", "STRING",
+ "po_file", "comment", "domain", "message", "message_intro", "prev",
+ "msg_intro", "prev_msg_intro", "msgid_pluralform",
+ "prev_msgid_pluralform", "pluralform_list", "pluralform", "string_list",
+ "prev_string_list", 0
};
#endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
{
- 0, 15, 15, 15, 15, 15, 16, 17, 17, 17,
- 17, 17, 18, 18, 19, 20, 20, 21, 22, 22,
- 23
+ 0, 19, 19, 19, 19, 19, 20, 21, 22, 22,
+ 22, 22, 22, 23, 23, 24, 24, 25, 25, 26,
+ 26, 27, 28, 29, 29, 30, 31, 31, 32, 32
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
- 0, 0, 2, 2, 2, 2, 2, 4, 4, 3,
- 3, 2, 1, 3, 2, 1, 2, 5, 1, 2,
- 1
+ 0, 0, 2, 2, 2, 2, 1, 2, 4, 4,
+ 3, 3, 2, 1, 2, 2, 3, 1, 3, 1,
+ 3, 2, 2, 1, 2, 5, 1, 2, 1, 2
};
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
error. */
static const short yydefact[] =
{
- 1, 0, 5, 20, 0, 0, 12, 3, 4, 0,
- 2, 6, 18, 0, 11, 13, 19, 0, 0, 9,
- 10, 15, 14, 0, 7, 0, 8, 16, 0, 0,
- 17, 0, 0
+ 1, 0, 5, 6, 0, 0, 19, 0, 17, 2,
+ 3, 4, 0, 0, 13, 0, 7, 28, 0, 26,
+ 0, 12, 14, 15, 20, 29, 18, 27, 0, 0,
+ 10, 11, 23, 0, 16, 21, 0, 8, 0, 9,
+ 24, 22, 0, 0, 25, 0, 0
};
static const short yydefgoto[] =
{
- 1, 7, 8, 9, 19, 20, 21, 13, 10
+ 1, 9, 10, 11, 12, 13, 14, 15, 30, 34,
+ 31, 32, 20, 18
};
static const short yypact[] =
{
- -32768, 10,-32768,-32768, -10, 4,-32768,-32768,-32768, 4,
- -32768,-32768,-32768, -2, -7,-32768,-32768, 4, -8, 13,
- 13,-32768, 5, 11, 5, 12, 13,-32768, 14, 4,
- 5, 25,-32768
+ -32768, 2,-32768,-32768, -8, 5,-32768, 0,-32768,-32768,
+ -32768,-32768, 0, 13,-32768, 5,-32768,-32768, 20,-32768,
+ -7, 8,-32768, 24,-32768,-32768,-32768,-32768, 0, 7,
+ 15, 15,-32768, 5,-32768, 12, 17, 12, 21, 15,
+ -32768, 26, 22, 0, 12, 37,-32768
};
static const short yypgoto[] =
{
- -32768,-32768,-32768,-32768,-32768, 8, -5, -9,-32768
+ -32768,-32768,-32768,-32768,-32768,-32768, 27,-32768,-32768,-32768,
+ 9, -24, -12, -14
};
-#define YYLAST 27
+#define YYLAST 40
static const short yytable[] =
{
- 14, 17, 18, 23, 11, 15, 12, 16, 22, 24,
- 31, 2, 16, 3, 4, 27, 5, 6, 12, 16,
- 30, 27, 25, 23, 28, 32, 29, 26
+ 21, 23, 45, 2, 26, 3, 4, 40, 5, 6,
+ 16, 27, 7, 8, 17, 40, 35, 37, 19, 41,
+ 28, 29, 36, 7, 8, 19, 27, 24, 38, 25,
+ 27, 44, 33, 25, 42, 25, 36, 46, 43, 39,
+ 22
};
static const short yycheck[] =
{
- 9, 8, 9, 11, 14, 7, 14, 14, 17, 18,
- 0, 1, 14, 3, 4, 20, 6, 7, 14, 14,
- 29, 26, 9, 11, 13, 0, 12, 19
+ 12, 15, 0, 1, 11, 3, 4, 31, 6, 7,
+ 18, 18, 10, 11, 9, 39, 28, 29, 18, 33,
+ 12, 13, 15, 10, 11, 18, 18, 7, 13, 9,
+ 18, 43, 8, 9, 17, 9, 15, 0, 16, 30,
+ 13
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "bison.simple"
switch (yyn) {
case 6:
-#line 155 "po-gram-gen.y"
+#line 180 "po-gram-gen.y"
{
- po_callback_domain (yyvsp[0].string.string);
+ po_callback_comment_dispatcher (yyvsp[0].string.string);
}
break;
case 7:
-#line 162 "po-gram-gen.y"
+#line 188 "po-gram-gen.y"
+{
+ po_callback_domain (yyvsp[0].string.string);
+ }
+ break;
+case 8:
+#line 196 "po-gram-gen.y"
{
char *string2 = string_list_concat_destroy (&yyvsp[-2].stringlist.stringlist);
char *string4 = string_list_concat_destroy (&yyvsp[0].stringlist.stringlist);
- check_obsolete (yyvsp[-3].string, yyvsp[-2].stringlist);
- check_obsolete (yyvsp[-3].string, yyvsp[-1].pos);
- check_obsolete (yyvsp[-3].string, yyvsp[0].stringlist);
- if (!yyvsp[-3].string.obsolete || pass_obsolete_entries)
- do_callback_message (yyvsp[-3].string.string, string2, &yyvsp[-3].string.pos, NULL,
+ check_obsolete (yyvsp[-3].message_intro, yyvsp[-2].stringlist);
+ check_obsolete (yyvsp[-3].message_intro, yyvsp[-1].pos);
+ check_obsolete (yyvsp[-3].message_intro, yyvsp[0].stringlist);
+ if (!yyvsp[-3].message_intro.obsolete || pass_obsolete_entries)
+ do_callback_message (yyvsp[-3].message_intro.ctxt, string2, &yyvsp[-3].message_intro.pos, NULL,
string4, strlen (string4) + 1, &yyvsp[-1].pos.pos,
- yyvsp[-3].string.obsolete);
+ yyvsp[-3].message_intro.prev_ctxt,
+ yyvsp[-3].message_intro.prev_id, yyvsp[-3].message_intro.prev_id_plural,
+ yyvsp[-3].message_intro.obsolete);
else
{
+ free_message_intro (yyvsp[-3].message_intro);
free (string2);
free (string4);
}
}
break;
-case 8:
-#line 180 "po-gram-gen.y"
+case 9:
+#line 217 "po-gram-gen.y"
{
char *string2 = string_list_concat_destroy (&yyvsp[-2].stringlist.stringlist);
- check_obsolete (yyvsp[-3].string, yyvsp[-2].stringlist);
- check_obsolete (yyvsp[-3].string, yyvsp[-1].string);
- check_obsolete (yyvsp[-3].string, yyvsp[0].rhs);
- if (!yyvsp[-3].string.obsolete || pass_obsolete_entries)
- do_callback_message (yyvsp[-3].string.string, string2, &yyvsp[-3].string.pos, yyvsp[-1].string.string,
+ check_obsolete (yyvsp[-3].message_intro, yyvsp[-2].stringlist);
+ check_obsolete (yyvsp[-3].message_intro, yyvsp[-1].string);
+ check_obsolete (yyvsp[-3].message_intro, yyvsp[0].rhs);
+ if (!yyvsp[-3].message_intro.obsolete || pass_obsolete_entries)
+ do_callback_message (yyvsp[-3].message_intro.ctxt, string2, &yyvsp[-3].message_intro.pos, yyvsp[-1].string.string,
yyvsp[0].rhs.rhs.msgstr, yyvsp[0].rhs.rhs.msgstr_len, &yyvsp[0].rhs.pos,
- yyvsp[-3].string.obsolete);
+ yyvsp[-3].message_intro.prev_ctxt,
+ yyvsp[-3].message_intro.prev_id, yyvsp[-3].message_intro.prev_id_plural,
+ yyvsp[-3].message_intro.obsolete);
else
{
+ free_message_intro (yyvsp[-3].message_intro);
free (string2);
free (yyvsp[-1].string.string);
free (yyvsp[0].rhs.rhs.msgstr);
}
}
break;
-case 9:
-#line 198 "po-gram-gen.y"
+case 10:
+#line 238 "po-gram-gen.y"
{
- check_obsolete (yyvsp[-2].string, yyvsp[-1].stringlist);
- check_obsolete (yyvsp[-2].string, yyvsp[0].string);
- po_gram_error_at_line (&yyvsp[-2].string.pos, _("missing `msgstr[]' section"));
+ check_obsolete (yyvsp[-2].message_intro, yyvsp[-1].stringlist);
+ check_obsolete (yyvsp[-2].message_intro, yyvsp[0].string);
+ po_gram_error_at_line (&yyvsp[-2].message_intro.pos, _("missing `msgstr[]' section"));
+ free_message_intro (yyvsp[-2].message_intro);
string_list_destroy (&yyvsp[-1].stringlist.stringlist);
free (yyvsp[0].string.string);
}
break;
-case 10:
-#line 206 "po-gram-gen.y"
+case 11:
+#line 247 "po-gram-gen.y"
{
- check_obsolete (yyvsp[-2].string, yyvsp[-1].stringlist);
- check_obsolete (yyvsp[-2].string, yyvsp[0].rhs);
- po_gram_error_at_line (&yyvsp[-2].string.pos, _("missing `msgid_plural' section"));
+ check_obsolete (yyvsp[-2].message_intro, yyvsp[-1].stringlist);
+ check_obsolete (yyvsp[-2].message_intro, yyvsp[0].rhs);
+ po_gram_error_at_line (&yyvsp[-2].message_intro.pos, _("missing `msgid_plural' section"));
+ free_message_intro (yyvsp[-2].message_intro);
string_list_destroy (&yyvsp[-1].stringlist.stringlist);
free (yyvsp[0].rhs.rhs.msgstr);
}
break;
-case 11:
-#line 214 "po-gram-gen.y"
+case 12:
+#line 256 "po-gram-gen.y"
{
- check_obsolete (yyvsp[-1].string, yyvsp[0].stringlist);
- po_gram_error_at_line (&yyvsp[-1].string.pos, _("missing `msgstr' section"));
+ check_obsolete (yyvsp[-1].message_intro, yyvsp[0].stringlist);
+ po_gram_error_at_line (&yyvsp[-1].message_intro.pos, _("missing `msgstr' section"));
+ free_message_intro (yyvsp[-1].message_intro);
string_list_destroy (&yyvsp[0].stringlist.stringlist);
}
break;
-case 12:
-#line 223 "po-gram-gen.y"
+case 13:
+#line 267 "po-gram-gen.y"
+{
+ yyval.message_intro.prev_ctxt = NULL;
+ yyval.message_intro.prev_id = NULL;
+ yyval.message_intro.prev_id_plural = NULL;
+ yyval.message_intro.ctxt = yyvsp[0].string.string;
+ yyval.message_intro.pos = yyvsp[0].string.pos;
+ yyval.message_intro.obsolete = yyvsp[0].string.obsolete;
+ }
+ break;
+case 14:
+#line 276 "po-gram-gen.y"
+{
+ check_obsolete (yyvsp[-1].prev, yyvsp[0].string);
+ yyval.message_intro.prev_ctxt = yyvsp[-1].prev.ctxt;
+ yyval.message_intro.prev_id = yyvsp[-1].prev.id;
+ yyval.message_intro.prev_id_plural = yyvsp[-1].prev.id_plural;
+ yyval.message_intro.ctxt = yyvsp[0].string.string;
+ yyval.message_intro.pos = yyvsp[0].string.pos;
+ yyval.message_intro.obsolete = yyvsp[0].string.obsolete;
+ }
+ break;
+case 15:
+#line 290 "po-gram-gen.y"
+{
+ check_obsolete (yyvsp[-1].string, yyvsp[0].stringlist);
+ yyval.prev.ctxt = yyvsp[-1].string.string;
+ yyval.prev.id = string_list_concat_destroy (&yyvsp[0].stringlist.stringlist);
+ yyval.prev.id_plural = NULL;
+ yyval.prev.pos = yyvsp[-1].string.pos;
+ yyval.prev.obsolete = yyvsp[-1].string.obsolete;
+ }
+ break;
+case 16:
+#line 299 "po-gram-gen.y"
+{
+ check_obsolete (yyvsp[-2].string, yyvsp[-1].stringlist);
+ check_obsolete (yyvsp[-2].string, yyvsp[0].string);
+ yyval.prev.ctxt = yyvsp[-2].string.string;
+ yyval.prev.id = string_list_concat_destroy (&yyvsp[-1].stringlist.stringlist);
+ yyval.prev.id_plural = yyvsp[0].string.string;
+ yyval.prev.pos = yyvsp[-2].string.pos;
+ yyval.prev.obsolete = yyvsp[-2].string.obsolete;
+ }
+ break;
+case 17:
+#line 313 "po-gram-gen.y"
{
yyval.string.string = NULL;
yyval.string.pos = yyvsp[0].pos.pos;
yyval.string.obsolete = yyvsp[0].pos.obsolete;
}
break;
-case 13:
-#line 229 "po-gram-gen.y"
+case 18:
+#line 319 "po-gram-gen.y"
{
check_obsolete (yyvsp[-2].pos, yyvsp[-1].stringlist);
check_obsolete (yyvsp[-2].pos, yyvsp[0].pos);
yyval.string.obsolete = yyvsp[0].pos.obsolete;
}
break;
-case 14:
-#line 240 "po-gram-gen.y"
+case 19:
+#line 330 "po-gram-gen.y"
+{
+ yyval.string.string = NULL;
+ yyval.string.pos = yyvsp[0].pos.pos;
+ yyval.string.obsolete = yyvsp[0].pos.obsolete;
+ }
+ break;
+case 20:
+#line 336 "po-gram-gen.y"
+{
+ check_obsolete (yyvsp[-2].pos, yyvsp[-1].stringlist);
+ check_obsolete (yyvsp[-2].pos, yyvsp[0].pos);
+ yyval.string.string = string_list_concat_destroy (&yyvsp[-1].stringlist.stringlist);
+ yyval.string.pos = yyvsp[0].pos.pos;
+ yyval.string.obsolete = yyvsp[0].pos.obsolete;
+ }
+ break;
+case 21:
+#line 348 "po-gram-gen.y"
{
check_obsolete (yyvsp[-1].pos, yyvsp[0].stringlist);
plural_counter = 0;
yyval.string.obsolete = yyvsp[-1].pos.obsolete;
}
break;
-case 15:
-#line 251 "po-gram-gen.y"
+case 22:
+#line 359 "po-gram-gen.y"
+{
+ check_obsolete (yyvsp[-1].pos, yyvsp[0].stringlist);
+ yyval.string.string = string_list_concat_destroy (&yyvsp[0].stringlist.stringlist);
+ yyval.string.pos = yyvsp[-1].pos.pos;
+ yyval.string.obsolete = yyvsp[-1].pos.obsolete;
+ }
+ break;
+case 23:
+#line 370 "po-gram-gen.y"
{
yyval.rhs = yyvsp[0].rhs;
}
break;
-case 16:
-#line 255 "po-gram-gen.y"
+case 24:
+#line 374 "po-gram-gen.y"
{
check_obsolete (yyvsp[-1].rhs, yyvsp[0].rhs);
yyval.rhs.rhs.msgstr = (char *) xmalloc (yyvsp[-1].rhs.rhs.msgstr_len + yyvsp[0].rhs.rhs.msgstr_len);
yyval.rhs.obsolete = yyvsp[-1].rhs.obsolete;
}
break;
-case 17:
-#line 270 "po-gram-gen.y"
+case 25:
+#line 389 "po-gram-gen.y"
{
check_obsolete (yyvsp[-4].pos, yyvsp[-3].pos);
check_obsolete (yyvsp[-4].pos, yyvsp[-2].number);
yyval.rhs.obsolete = yyvsp[-4].pos.obsolete;
}
break;
-case 18:
-#line 292 "po-gram-gen.y"
+case 26:
+#line 412 "po-gram-gen.y"
{
string_list_init (&yyval.stringlist.stringlist);
string_list_append (&yyval.stringlist.stringlist, yyvsp[0].string.string);
yyval.stringlist.obsolete = yyvsp[0].string.obsolete;
}
break;
-case 19:
-#line 299 "po-gram-gen.y"
+case 27:
+#line 419 "po-gram-gen.y"
{
check_obsolete (yyvsp[-1].stringlist, yyvsp[0].string);
yyval.stringlist.stringlist = yyvsp[-1].stringlist.stringlist;
yyval.stringlist.obsolete = yyvsp[-1].stringlist.obsolete;
}
break;
-case 20:
-#line 310 "po-gram-gen.y"
+case 28:
+#line 430 "po-gram-gen.y"
{
- po_callback_comment_dispatcher (yyvsp[0].string.string);
+ string_list_init (&yyval.stringlist.stringlist);
+ string_list_append (&yyval.stringlist.stringlist, yyvsp[0].string.string);
+ yyval.stringlist.pos = yyvsp[0].string.pos;
+ yyval.stringlist.obsolete = yyvsp[0].string.obsolete;
+ }
+ break;
+case 29:
+#line 437 "po-gram-gen.y"
+{
+ check_obsolete (yyvsp[-1].stringlist, yyvsp[0].string);
+ yyval.stringlist.stringlist = yyvsp[-1].stringlist.stringlist;
+ string_list_append (&yyval.stringlist.stringlist, yyvsp[0].string.string);
+ yyval.stringlist.pos = yyvsp[-1].stringlist.pos;
+ yyval.stringlist.obsolete = yyvsp[-1].stringlist.obsolete;
}
break;
}
#endif
return yyresult;
}
-#line 314 "po-gram-gen.y"
+#line 445 "po-gram-gen.y"