• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1@c This file is part of the GNU gettext manual.
2@c Copyright (C) 1995-2020 Free Software Foundation, Inc.
3@c See the file gettext.texi for copying conditions.
4
5@pindex xgettext
6@cindex @code{xgettext} program, usage
7@example
8xgettext [@var{option}] [@var{inputfile}] @dots{}
9@end example
10
11The @code{xgettext} program extracts translatable strings from given
12input files.
13
14@subsection Input file location
15
16@table @samp
17@item @var{inputfile} @dots{}
18Input files.
19
20@item -f @var{file}
21@itemx --files-from=@var{file}
22@opindex -f@r{, @code{xgettext} option}
23@opindex --files-from@r{, @code{xgettext} option}
24Read the names of the input files from @var{file} instead of getting
25them from the command line.
26
27@item -D @var{directory}
28@itemx --directory=@var{directory}
29@opindex -D@r{, @code{xgettext} option}
30@opindex --directory@r{, @code{xgettext} option}
31Add @var{directory} to the list of directories.  Source files are
32searched relative to this list of directories.  The resulting @file{.po}
33file will be written relative to the current directory, though.
34
35@end table
36
37If @var{inputfile} is @samp{-}, standard input is read.
38
39@subsection Output file location
40
41@table @samp
42@item -d @var{name}
43@itemx --default-domain=@var{name}
44@opindex -d@r{, @code{xgettext} option}
45@opindex --default-domain@r{, @code{xgettext} option}
46Use @file{@var{name}.po} for output (instead of @file{messages.po}).
47
48@item -o @var{file}
49@itemx --output=@var{file}
50@opindex -o@r{, @code{xgettext} option}
51@opindex --output@r{, @code{xgettext} option}
52Write output to specified file (instead of @file{@var{name}.po} or
53@file{messages.po}).
54
55@item -p @var{dir}
56@itemx --output-dir=@var{dir}
57@opindex -p@r{, @code{xgettext} option}
58@opindex --output-dir@r{, @code{xgettext} option}
59Output files will be placed in directory @var{dir}.
60
61@end table
62
63@cindex output to stdout, @code{xgettext}
64If the output @var{file} is @samp{-} or @samp{/dev/stdout}, the output
65is written to standard output.
66
67@subsection Choice of input file language
68
69@table @samp
70@item -L @var{name}
71@itemx --language=@var{name}
72@opindex -L@r{, @code{xgettext} option}
73@opindex --language@r{, @code{xgettext} option}
74@cindex supported languages, @code{xgettext}
75Specifies the language of the input files.  The supported languages
76are @code{C}, @code{C++}, @code{ObjectiveC}, @code{PO}, @code{Shell},
77@code{Python}, @code{Lisp}, @code{EmacsLisp}, @code{librep}, @code{Scheme},
78@code{Smalltalk}, @code{Java}, @code{JavaProperties}, @code{C#}, @code{awk},
79@code{YCP}, @code{Tcl}, @code{Perl}, @code{PHP}, @code{Ruby},
80@code{GCC-source}, @code{NXStringTable}, @code{RST}, @code{RSJ}, @code{Glade},
81@code{Lua}, @code{JavaScript}, @code{Vala}, @code{GSettings}, @code{Desktop}.
82
83@item -C
84@itemx --c++
85@opindex -C@r{, @code{xgettext} option}
86@opindex --c++@r{, @code{xgettext} option}
87This is a shorthand for @code{--language=C++}.
88
89@end table
90
91By default the language is guessed depending on the input file name
92extension.
93
94@subsection Input file interpretation
95
96@table @samp
97@item --from-code=@var{name}
98@opindex --from-code@r{, @code{xgettext} option}
99Specifies the encoding of the input files.  This option is needed only
100if some untranslated message strings or their corresponding comments
101contain non-ASCII characters.  Note that Tcl and Glade input files are
102always assumed to be in UTF-8, regardless of this option.
103
104@end table
105
106By default the input files are assumed to be in ASCII.
107
108@subsection Operation mode
109
110@table @samp
111@item -j
112@itemx --join-existing
113@opindex -j@r{, @code{xgettext} option}
114@opindex --join-existing@r{, @code{xgettext} option}
115Join messages with existing file.
116
117@item -x @var{file}
118@itemx --exclude-file=@var{file}
119@opindex -x@r{, @code{xgettext} option}
120@opindex --exclude-file@r{, @code{xgettext} option}
121Entries from @var{file} are not extracted.  @var{file} should be a PO or
122POT file.
123
124@item -c[@var{tag}]
125@itemx --add-comments[=@var{tag}]
126@opindex -c@r{, @code{xgettext} option}
127@opindex --add-comments@r{, @code{xgettext} option}
128Place comment blocks starting with @var{tag} and preceding keyword lines
129in the output file.  Without a @var{tag}, the option means to put @emph{all}
130comment blocks preceding keyword lines in the output file.
131
132Note that comment blocks supposed to be extracted must be adjacent to
133keyword lines.  For example, in the following C source code:
134
135@example
136/* This is the first comment.  */
137gettext ("foo");
138
139/* This is the second comment: not extracted  */
140gettext (
141  "bar");
142
143gettext (
144  /* This is the third comment.  */
145  "baz");
146@end example
147
148The second comment line will not be extracted, because there is one
149blank line between the comment line and the keyword.
150
151@item --check[=@var{CHECK}]
152@opindex --check@r{, @code{xgettext} option}
153@cindex supported syntax checks, @code{xgettext}
154Perform a syntax check on msgid and msgid_plural.  The supported checks
155are:
156
157@table @samp
158@item ellipsis-unicode
159Prefer Unicode ellipsis character over ASCII @code{...}
160
161@item space-ellipsis
162Prohibit whitespace before an ellipsis character
163
164@item quote-unicode
165Prefer Unicode quotation marks over ASCII @code{"'`}
166
167@item bullet-unicode
168Prefer Unicode bullet character over ASCII @code{*} or @code{-}
169
170@end table
171
172The option has an effect on all input files.  To enable or disable
173checks for a certain string, you can mark it with an @code{xgettext:}
174special comment in the source file.  For example, if you specify the
175@code{--check=space-ellipsis} option, but want to suppress the check on
176a particular string, add the following comment:
177
178@example
179/* xgettext: no-space-ellipsis-check */
180gettext ("We really want a space before ellipsis here ...");
181@end example
182
183The @code{xgettext:} comment can be followed by flags separated with a
184comma.  The possible flags are of the form @samp{[no-]@var{name}-check},
185where @var{name} is the name of a valid syntax check.  If a flag is
186prefixed by @code{no-}, the meaning is negated.
187
188Some tests apply the checks to each sentence within the msgid, rather
189than the whole string.  xgettext detects the end of sentence by
190performing a pattern match, which usually looks for a period followed by
191a certain number of spaces.  The number is specified with the
192@code{--sentence-end} option.
193
194@item --sentence-end[=@var{TYPE}]
195@opindex --sentence-end@r{, @code{xgettext} option}
196@cindex sentence end markers, @code{xgettext}
197The supported values are:
198
199@table @samp
200@item single-space
201Expect at least one whitespace after a period
202
203@item double-space
204Expect at least two whitespaces after a period
205
206@end table
207
208@end table
209
210@subsection Language specific options
211
212@table @samp
213@item -a
214@itemx --extract-all
215@opindex -a@r{, @code{xgettext} option}
216@opindex --extract-all@r{, @code{xgettext} option}
217Extract all strings.
218
219This option has an effect with most languages, namely C, C++, ObjectiveC,
220Shell, Python, Lisp, EmacsLisp, librep, Java, C#, awk, Tcl, Perl, PHP,
221GCC-source, Glade, Lua, JavaScript, Vala, GSettings.
222
223@item -k[@var{keywordspec}]
224@itemx --keyword[=@var{keywordspec}]
225@opindex -k@r{, @code{xgettext} option}
226@opindex --keyword@r{, @code{xgettext} option}
227Specify @var{keywordspec} as an additional keyword to be looked for.
228Without a @var{keywordspec}, the option means to not use default keywords.
229
230@cindex adding keywords, @code{xgettext}
231@cindex context, argument specification in @code{xgettext}
232If @var{keywordspec} is a C identifier @var{id}, @code{xgettext} looks
233for strings in the first argument of each call to the function or macro
234@var{id}.  If @var{keywordspec} is of the form
235@samp{@var{id}:@var{argnum}}, @code{xgettext} looks for strings in the
236@var{argnum}th argument of the call.  If @var{keywordspec} is of the form
237@samp{@var{id}:@var{argnum1},@var{argnum2}}, @code{xgettext} looks for
238strings in the @var{argnum1}st argument and in the @var{argnum2}nd argument
239of the call, and treats them as singular/plural variants for a message
240with plural handling.  Also, if @var{keywordspec} is of the form
241@samp{@var{id}:@var{contextargnum}c,@var{argnum}} or
242@samp{@var{id}:@var{argnum},@var{contextargnum}c}, @code{xgettext} treats
243strings in the @var{contextargnum}th argument as a context specifier.
244And, as a special-purpose support for GNOME, if @var{keywordspec} is of the
245form @samp{@var{id}:@var{argnum}g}, @code{xgettext} recognizes the
246@var{argnum}th argument as a string with context, using the GNOME @code{glib}
247syntax @samp{"msgctxt|msgid"}.
248@*
249Furthermore, if @var{keywordspec} is of the form
250@samp{@var{id}:@dots{},@var{totalnumargs}t}, @code{xgettext} recognizes this
251argument specification only if the number of actual arguments is equal to
252@var{totalnumargs}.  This is useful for disambiguating overloaded function
253calls in C++.
254@*
255Finally, if @var{keywordspec} is of the form
256@samp{@var{id}:@var{argnum}...,"@var{xcomment}"}, @code{xgettext}, when
257extracting a message from the specified argument strings, adds an extracted
258comment @var{xcomment} to the message.  Note that when used through a normal
259shell command line, the double-quotes around the @var{xcomment} need to be
260escaped.
261
262This option has an effect with most languages, namely C, C++, ObjectiveC,
263Shell, Python, Lisp, EmacsLisp, librep, Java, C#, awk, Tcl, Perl, PHP,
264GCC-source, Glade, Lua, JavaScript, Vala, GSettings, Desktop.
265
266The default keyword specifications, which are always looked for if not
267explicitly disabled, are language dependent.  They are:
268
269@itemize
270@item
271For C, C++, and GCC-source: @code{gettext}, @code{dgettext:2},
272@code{dcgettext:2}, @code{ngettext:1,2}, @code{dngettext:2,3},
273@code{dcngettext:2,3}, @code{gettext_noop}, and @code{pgettext:1c,2},
274@code{dpgettext:2c,3}, @code{dcpgettext:2c,3}, @code{npgettext:1c,2,3},
275@code{dnpgettext:2c,3,4}, @code{dcnpgettext:2c,3,4}.
276
277@item
278For Objective C: Like for C, and also @code{NSLocalizedString}, @code{_},
279@code{NSLocalizedStaticString}, @code{__}.
280
281@item
282For Shell scripts: @code{gettext}, @code{ngettext:1,2}, @code{eval_gettext},
283@code{eval_ngettext:1,2}, @code{eval_pgettext:1c,2},
284@code{eval_npgettext:1c,2,3}.
285
286@item
287For Python: @code{gettext}, @code{ugettext}, @code{dgettext:2},
288@code{ngettext:1,2}, @code{ungettext:1,2}, @code{dngettext:2,3}, @code{_}.
289
290@item
291For Lisp: @code{gettext}, @code{ngettext:1,2}, @code{gettext-noop}.
292
293@item
294For EmacsLisp: @code{_}.
295
296@item
297For librep: @code{_}.
298
299@item
300For Scheme: @code{gettext}, @code{ngettext:1,2}, @code{gettext-noop}.
301
302@item
303For Java: @code{GettextResource.gettext:2},
304@code{GettextResource.ngettext:2,3}, @code{GettextResource.pgettext:2c,3},
305@code{GettextResource.npgettext:2c,3,4}, @code{gettext}, @code{ngettext:1,2},
306@code{pgettext:1c,2}, @code{npgettext:1c,2,3}, @code{getString}.
307
308@item
309For C#: @code{GetString}, @code{GetPluralString:1,2},
310@code{GetParticularString:1c,2}, @code{GetParticularPluralString:1c,2,3}.
311
312@item
313For awk: @code{dcgettext}, @code{dcngettext:1,2}.
314
315@item
316For Tcl: @code{::msgcat::mc}.
317
318@item
319For Perl: @code{gettext}, @code{%gettext}, @code{$gettext}, @code{dgettext:2},
320@code{dcgettext:2}, @code{ngettext:1,2}, @code{dngettext:2,3},
321@code{dcngettext:2,3}, @code{gettext_noop}.
322
323@item
324For PHP: @code{_}, @code{gettext}, @code{dgettext:2}, @code{dcgettext:2},
325@code{ngettext:1,2}, @code{dngettext:2,3}, @code{dcngettext:2,3}.
326
327@item
328For Glade 1: @code{label}, @code{title}, @code{text}, @code{format},
329@code{copyright}, @code{comments}, @code{preview_text}, @code{tooltip}.
330
331@item
332For Lua: @code{_}, @code{gettext.gettext}, @code{gettext.dgettext:2},
333@code{gettext.dcgettext:2}, @code{gettext.ngettext:1,2},
334@code{gettext.dngettext:2,3}, @code{gettext.dcngettext:2,3}.
335
336@item
337For JavaScript: @code{_}, @code{gettext}, @code{dgettext:2},
338@code{dcgettext:2}, @code{ngettext:1,2}, @code{dngettext:2,3},
339@code{pgettext:1c,2}, @code{dpgettext:2c,3}.
340
341@item
342For Vala: @code{_}, @code{Q_}, @code{N_}, @code{NC_}, @code{dgettext:2},
343@code{dcgettext:2}, @code{ngettext:1,2}, @code{dngettext:2,3},
344@code{dpgettext:2c,3}, @code{dpgettext2:2c,3}.
345
346@item
347For Desktop: @code{Name}, @code{GenericName}, @code{Comment},
348@code{Keywords}.
349@end itemize
350
351To disable the default keyword specifications, the option @samp{-k} or
352@samp{--keyword} or @samp{--keyword=}, without a @var{keywordspec}, can be
353used.
354
355@item --flag=@var{word}:@var{arg}:@var{flag}
356@opindex --flag@r{, @code{xgettext} option}
357Specifies additional flags for strings occurring as part of the @var{arg}th
358argument of the function @var{word}.  The possible flags are the possible
359format string indicators, such as @samp{c-format}, and their negations,
360such as @samp{no-c-format}, possibly prefixed with @samp{pass-}.
361@*
362@cindex function attribute, __format__
363The meaning of @code{--flag=@var{function}:@var{arg}:@var{lang}-format}
364is that in language @var{lang}, the specified @var{function} expects as
365@var{arg}th argument a format string.  (For those of you familiar with
366GCC function attributes, @code{--flag=@var{function}:@var{arg}:c-format} is
367roughly equivalent to the declaration
368@samp{__attribute__ ((__format__ (__printf__, @var{arg}, ...)))} attached
369to @var{function} in a C source file.)
370For example, if you use the @samp{error} function from GNU libc, you can
371specify its behaviour through @code{--flag=error:3:c-format}.  The effect of
372this specification is that @code{xgettext} will mark as format strings all
373@code{gettext} invocations that occur as @var{arg}th argument of
374@var{function}.
375This is useful when such strings contain no format string directives:
376together with the checks done by @samp{msgfmt -c} it will ensure that
377translators cannot accidentally use format string directives that would
378lead to a crash at runtime.
379@*
380@cindex function attribute, __format_arg__
381The meaning of @code{--flag=@var{function}:@var{arg}:pass-@var{lang}-format}
382is that in language @var{lang}, if the @var{function} call occurs in a
383position that must yield a format string, then its @var{arg}th argument
384must yield a format string of the same type as well.  (If you know GCC
385function attributes, the @code{--flag=@var{function}:@var{arg}:pass-c-format}
386option is roughly equivalent to the declaration
387@samp{__attribute__ ((__format_arg__ (@var{arg})))} attached to @var{function}
388in a C source file.)
389For example, if you use the @samp{_} shortcut for the @code{gettext} function,
390you should use @code{--flag=_:1:pass-c-format}.  The effect of this
391specification is that @code{xgettext} will propagate a format string
392requirement for a @code{_("string")} call to its first argument, the literal
393@code{"string"}, and thus mark it as a format string.
394This is useful when such strings contain no format string directives:
395together with the checks done by @samp{msgfmt -c} it will ensure that
396translators cannot accidentally use format string directives that would
397lead to a crash at runtime.
398@*
399This option has an effect with most languages, namely C, C++, ObjectiveC,
400Shell, Python, Lisp, EmacsLisp, librep, Scheme, Java, C#, awk, YCP, Tcl, Perl, PHP,
401GCC-source, Lua, JavaScript, Vala.
402
403@item -T
404@itemx --trigraphs
405@opindex -T@r{, @code{xgettext} option}
406@opindex --trigraphs@r{, @code{xgettext} option}
407@cindex C trigraphs
408Understand ANSI C trigraphs for input.
409@*
410This option has an effect only with the languages C, C++, ObjectiveC.
411
412@item --qt
413@opindex --qt@r{, @code{xgettext} option}
414@cindex Qt format strings
415Recognize Qt format strings.
416@*
417This option has an effect only with the language C++.
418
419@item --kde
420@opindex --kde@r{, @code{xgettext} option}
421@cindex KDE format strings
422Recognize KDE 4 format strings.
423@*
424This option has an effect only with the language C++.
425
426@item --boost
427@opindex --boost@r{, @code{xgettext} option}
428@cindex Boost format strings
429Recognize Boost format strings.
430@*
431This option has an effect only with the language C++.
432
433@item --debug
434@opindex --debug@r{, @code{xgettext} option}
435@cindex debugging messages marked as format strings
436Use the flags @code{c-format} and @code{possible-c-format} to show who was
437responsible for marking a message as a format string.  The latter form is
438used if the @code{xgettext} program decided, the former form is used if
439the programmer prescribed it.
440
441By default only the @code{c-format} form is used.  The translator should
442not have to care about these details.
443
444@end table
445
446This implementation of @code{xgettext} is able to process a few awkward
447cases, like strings in preprocessor macros, ANSI concatenation of
448adjacent strings, and escaped end of lines for continued strings.
449
450@subsection Output details
451
452@c --no-escape and --escape omitted on purpose.  They are not useful.
453
454@table @samp
455@item --color
456@itemx --color=@var{when}
457@opindex --color@r{, @code{xgettext} option}
458Specify whether or when to use colors and other text attributes.
459See @ref{The --color option} for details.
460
461@item --style=@var{style_file}
462@opindex --style@r{, @code{xgettext} option}
463Specify the CSS style rule file to use for @code{--color}.
464See @ref{The --style option} for details.
465
466@item --force-po
467@opindex --force-po@r{, @code{xgettext} option}
468Always write an output file even if no message is defined.
469
470@item -i
471@itemx --indent
472@opindex -i@r{, @code{xgettext} option}
473@opindex --indent@r{, @code{xgettext} option}
474Write the .po file using indented style.
475
476@item --no-location
477@opindex --no-location@r{, @code{xgettext} option}
478Do not write @samp{#: @var{filename}:@var{line}} lines.  Note that using
479this option makes it harder for technically skilled translators to understand
480each message's context.
481
482@item -n
483@itemx --add-location=@var{type}
484@opindex -n@r{, @code{xgettext} option}
485@opindex --add-location@r{, @code{xgettext} option}
486Generate @samp{#: @var{filename}:@var{line}} lines (default).
487
488The optional @var{type} can be either @samp{full}, @samp{file}, or
489@samp{never}.  If it is not given or @samp{full}, it generates the
490lines with both file name and line number.  If it is @samp{file}, the
491line number part is omitted.  If it is @samp{never}, it completely
492suppresses the lines (same as @code{--no-location}).
493
494@item --strict
495@opindex --strict@r{, @code{xgettext} option}
496Write out a strict Uniforum conforming PO file.  Note that this
497Uniforum format should be avoided because it doesn't support the
498GNU extensions.
499
500@item --properties-output
501@opindex --properties-output@r{, @code{xgettext} option}
502Write out a Java ResourceBundle in Java @code{.properties} syntax.  Note
503that this file format doesn't support plural forms and silently drops
504obsolete messages.
505
506@item --stringtable-output
507@opindex --stringtable-output@r{, @code{xgettext} option}
508Write out a NeXTstep/GNUstep localized resource file in @code{.strings} syntax.
509Note that this file format doesn't support plural forms.
510
511@item --its=@var{file}
512@opindex --its@r{, @code{xgettext} option}
513Use ITS rules defined in @var{file}.
514Note that this is only effective with XML files.
515
516@item --itstool
517@opindex --itstool@r{, @code{xgettext} option}
518Write out comments recognized by itstool (@uref{http://itstool.org}).
519Note that this is only effective with XML files.
520
521@item -w @var{number}
522@itemx --width=@var{number}
523@opindex -w@r{, @code{xgettext} option}
524@opindex --width@r{, @code{xgettext} option}
525Set the output page width.  Long strings in the output files will be
526split across multiple lines in order to ensure that each line's width
527(= number of screen columns) is less or equal to the given @var{number}.
528
529@item --no-wrap
530@opindex --no-wrap@r{, @code{xgettext} option}
531Do not break long message lines.  Message lines whose width exceeds the
532output page width will not be split into several lines.  Only file reference
533lines which are wider than the output page width will be split.
534
535@item -s
536@itemx --sort-output
537@opindex -s@r{, @code{xgettext} option}
538@opindex --sort-output@r{, @code{xgettext} option}
539@cindex sorting output of @code{xgettext}
540Generate sorted output.  Note that using this option makes it much harder
541for the translator to understand each message's context.
542
543@item -F
544@itemx --sort-by-file
545@opindex -F@r{, @code{xgettext} option}
546@opindex --sort-by-file@r{, @code{xgettext} option}
547Sort output by file location.
548
549@item --omit-header
550@opindex --omit-header@r{, @code{xgettext} option}
551Don't write header with @samp{msgid ""} entry.
552
553@cindex testing @file{.po} files for equivalence
554This is useful for testing purposes because it eliminates a source
555of variance for generated @code{.gmo} files.  With @code{--omit-header},
556two invocations of @code{xgettext} on the same files with the same
557options at different times are guaranteed to produce the same results.
558
559Note that using this option will lead to an error if the resulting file
560would not entirely be in ASCII.
561
562@item --copyright-holder=@var{string}
563@opindex --copyright-holder@r{, @code{xgettext} option}
564Set the copyright holder in the output.  @var{string} should be the
565copyright holder of the surrounding package.  (Note that the msgstr
566strings, extracted from the package's sources, belong to the copyright
567holder of the package.)  Translators are expected to transfer or disclaim
568the copyright for their translations, so that package maintainers can
569distribute them without legal risk.  If @var{string} is empty, the output
570files are marked as being in the public domain; in this case, the translators
571are expected to disclaim their copyright, again so that package maintainers
572can distribute them without legal risk.
573
574The default value for @var{string} is the Free Software Foundation, Inc.,
575simply because @code{xgettext} was first used in the GNU project.
576
577@item --foreign-user
578@opindex --foreign-user@r{, @code{xgettext} option}
579Omit FSF copyright in output.  This option is equivalent to
580@samp{--copyright-holder=''}.  It can be useful for packages outside the GNU
581project that want their translations to be in the public domain.
582
583@item --package-name=@var{package}
584@opindex --package-name@r{, @code{xgettext} option}
585Set the package name in the header of the output.
586
587@item --package-version=@var{version}
588@opindex --package-version@r{, @code{xgettext} option}
589Set the package version in the header of the output.  This option has an
590effect only if the @samp{--package-name} option is also used.
591
592@item --msgid-bugs-address=@var{email@@address}
593@opindex --msgid-bugs-address@r{, @code{xgettext} option}
594Set the reporting address for msgid bugs.  This is the email address or URL
595to which the translators shall report bugs in the untranslated strings:
596
597@itemize -
598@item Strings which are not entire sentences; see the maintainer guidelines
599in @ref{Preparing Strings}.
600@item Strings which use unclear terms or require additional context to be
601understood.
602@item Strings which make invalid assumptions about notation of date, time or
603money.
604@item Pluralisation problems.
605@item Incorrect English spelling.
606@item Incorrect formatting.
607@end itemize
608
609It can be your email address, or a mailing list address where translators
610can write to without being subscribed, or the URL of a web page through
611which the translators can contact you.
612
613The default value is empty, which means that translators will be clueless!
614Don't forget to specify this option.
615
616@item -m[@var{string}]
617@itemx --msgstr-prefix[=@var{string}]
618@opindex -m@r{, @code{xgettext} option}
619@opindex --msgstr-prefix@r{, @code{xgettext} option}
620Use @var{string} (or "" if not specified) as prefix for msgstr values.
621
622@item -M[@var{string}]
623@itemx --msgstr-suffix[=@var{string}]
624@opindex -M@r{, @code{xgettext} option}
625@opindex --msgstr-suffix@r{, @code{xgettext} option}
626Use @var{string} (or "" if not specified) as suffix for msgstr values.
627
628@end table
629
630@subsection Informative output
631
632@table @samp
633@item -h
634@itemx --help
635@opindex -h@r{, @code{xgettext} option}
636@opindex --help@r{, @code{xgettext} option}
637Display this help and exit.
638
639@item -V
640@itemx --version
641@opindex -V@r{, @code{xgettext} option}
642@opindex --version@r{, @code{xgettext} option}
643Output version information and exit.
644
645@item -v
646@itemx --verbose
647@opindex -v@r{, @code{xgettext} option}
648@opindex --verbose@r{, @code{xgettext} option}
649Increase verbosity level.
650
651@end table
652