OS Manuals

/usr/bin/xgettext

GNU locale utilities

From gettext 1.0-r8 (os), captured 2026-11-05 by running xgettext --help (exit 0). permalink

Usage: /usr/bin/xgettext [OPTION] [INPUTFILE]...

Extract translatable strings from given input files.

Mandatory arguments to long options are mandatory for short options too.
Similarly for optional arguments.

Input file location:
  INPUTFILE ...               input files
  -f, --files-from=FILE       get list of input files from FILE
  -D, --directory=DIRECTORY   add DIRECTORY to list for input files search
If input file is -, standard input is read.

Output file location:
  -d, --default-domain=NAME   use NAME.po for output (instead of messages.po)
  -o, --output=FILE           write output to specified file
  -p, --output-dir=DIR        output files will be placed in directory DIR
If output file is -, output is written to standard output.

Choice of input file language:
  -L, --language=NAME         recognise the specified language
                                (C, C++, ObjectiveC, PO, Python, Java,
                                JavaProperties, C#, JavaScript, TypeScript, TSX,
                                Scheme, Guile, Lisp, EmacsLisp, librep, Rust,
                                Go, Ruby, Shell, awk, Lua, Modula-2, D, OCaml,
                                Smalltalk, Vala, Tcl, Perl, PHP, GCC-source,
                                YCP, NXStringTable, RST, RSJ, Glade, GSettings,
                                Desktop)
  -C, --c++                   shorthand for --language=C++
By default the language is guessed depending on the input file name extension.

Input file interpretation:
      --from-code=NAME        encoding of input files
                                (except for Python, Tcl, Glade)
By default the input files are assumed to be in ASCII.

Operation mode:
  -j, --join-existing         join messages with existing file
  -x, --exclude-file=FILE.po  entries from FILE.po are not extracted
  -cTAG, --add-comments=TAG   place comment blocks starting with TAG and
                                preceding keyword lines in output file
  -c, --add-comments          place all comment blocks preceding keyword lines
                                in output file
      --check=NAME            perform syntax check on messages
                                (ellipsis-unicode, space-ellipsis,
                                 quote-unicode, bullet-unicode)
      --no-check=NAME         don't perform syntax check on messages
                                (url, email)
      --sentence-end=TYPE     type describing the end of sentence
                                (single-space, which is the default,
                                 or double-space)

Language specific options:
  -a, --extract-all           extract all strings
                                (only languages C, C++, ObjectiveC, Python,
                                Java, C#, JavaScript, TypeScript, TSX, Scheme,
                                Guile, Lisp, EmacsLisp, librep, Rust, Go, Shell,
                                awk, Lua, Modula-2, D, OCaml, Vala, Tcl, Perl,
                                PHP, GCC-source, Glade, GSettings)
  -kWORD, --keyword=WORD      look for WORD as an additional keyword
  -k, --keyword               do not to use default keywords
                                (only languages C, C++, ObjectiveC, Python,
                                Java, C#, JavaScript, TypeScript, TSX, Scheme,
                                Guile, Lisp, EmacsLisp, librep, Rust, Go, Shell,
                                awk, Lua, Modula-2, D, OCaml, Vala, Tcl, Perl,
                                PHP, GCC-source, Glade, GSettings, Desktop)
      --flag=WORD:ARG:FLAG    additional flag for strings inside the argument
                              number ARG of keyword WORD
                                (only languages C, C++, ObjectiveC, Python,
                                Java, C#, JavaScript, TypeScript, TSX, Scheme,
                                Guile, Lisp, EmacsLisp, librep, Rust, Go, Shell,
                                awk, Lua, Modula-2, D, OCaml, Vala, Tcl, Perl,
                                PHP, GCC-source, YCP)
      --tag=WORD:FORMAT       defines the behaviour of tagged template literals
                              with tag WORD
                                (only language JavaScript)
  -T, --trigraphs             understand ANSI C trigraphs for input
                                (deprecated; only languages C, C++, ObjectiveC)
      --its=FILE              apply ITS rules from FILE
                                (only XML based languages)
      --qt                    recognize Qt format strings
                                (only language C++)
      --kde                   recognize KDE 4 format strings
                                (only language C++)
      --boost                 recognize Boost format strings
                                (only language C++)
      --debug                 more detailed formatstring recognition result

Output details:
      --color                 use colors and other text attributes always
      --color=WHEN            use colors and other text attributes if WHEN.
                              WHEN may be 'always', 'never', 'auto', or 'html'.
      --style=STYLEFILE       specify CSS style rule file for --color
  -e, --no-escape             do not use C escapes in output (default)
  -E, --escape                use C escapes in output, no extended chars
      --force-po              write PO file even if empty
  -i, --indent                write the .po file using indented style
      --no-location           do not write '#: filename:line' lines
  -n, --add-location          generate '#: filename:line' lines (default)
      --strict                write out strict Uniforum conforming .po file
      --properties-output     write out a Java .properties file
      --stringtable-output    write out a NeXTstep/GNUstep .strings file
      --itstool               write out itstool comments
  -w, --width=NUMBER          set output page width
      --no-wrap               do not break long message lines, longer than
                              the output page width, into several lines
  -s, --sort-output           generate sorted output (deprecated)
  -F, --sort-by-file          sort output by file location
      --omit-header           don't write header with 'msgid ""' entry
      --no-git                don't use the git program to produce a
                              reproducible 'POT-Creation-Date' field in the
                              output.
      --copyright-holder=STRING  set copyright holder in output
      --foreign-user          omit FSF copyright in output for foreign user
      --package-name=PACKAGE  set package name in output
      --package-version=VERSION  set package version in output
      --msgid-bugs-address=EMAIL@ADDRESS  set report address for msgid bugs
      --generated=FILE        Declares that the given FILE is generated and
                              therefore should not have an influence on the
                              'POT-Creation-Date' field in the output.
      --reference=FILE        Declares that the output depends on the contents
                              of the given FILE.  This has an influence on the
                              'POT-Creation-Date' field in the output.
  -m[STRING], --msgstr-prefix[=STRING]  use STRING or "" as prefix for msgstr
                                values
  -M[STRING], --msgstr-suffix[=STRING]  use STRING or "" as suffix for msgstr
                                values

Informative output:
  -h, --help                  display this help and exit
  -V, --version               output version information and exit
  -v, --verbose               increase verbosity level

Report bugs in the bug tracker at <https://savannah.gnu.org/projects/gettext>
or by email to <bug-gettext@gnu.org>.
Options (54)
OptionDescriptionSource
-f, --files-from FILEget list of input files from FILEhelp + man
-D, --directory DIRECTORYadd DIRECTORY to list for input files searchhelp + man
-d, --default-domain NAMEuse NAME.po for output (instead of messages.po)help + man
-o, --output FILEwrite output to specified filehelp + man
-p, --output-dir DIRoutput files will be placed in directory DIRhelp + man
-L, --language NAMErecognise the specified language (C, C++, ObjectiveC, PO, Python, Java, JavaProperties, C#, JavaScript, TypeScript, TSX, Scheme, Guile, Lisp, EmacsLisp, librep, Rust, Go, Ruby, Shell, awk, Lua,…help + man
-C, --c++shorthand for --language=C++help + man
--from-code NAMEencoding of input files (except for Python, Tcl, Glade)help + man
-j, --join-existingjoin messages with existing filehelp + man
-x, --exclude-file FILE.poentries from FILE.po are not extractedhelp + man
-cTAG, --add-comments TAGplace comment blocks starting with TAG and preceding keyword lines in output filehelp + man
--check NAMEperform syntax check on messages (ellipsis-unicode, space-ellipsis, quote-unicode, bullet-unicode)help + man
--no-check NAMEdon't perform syntax check on messages (url, email)help + man
--sentence-end TYPEtype describing the end of sentence (single-space, which is the default, or double-space)help + man
-a, --extract-allextract all strings (only languages C, C++, ObjectiveC, Python, Java, C#, JavaScript, TypeScript, TSX, Scheme, Guile, Lisp, EmacsLisp, librep, Rust, Go, Shell, awk, Lua, Modula-2, D, OCaml, Vala,…help + man
-kWORD, --keyword WORDlook for WORD as an additional keywordhelp + man
--flag WORD:ARG:FLAGadditional flag for strings inside the argument number ARG of keyword WORD (only languages C, C++, ObjectiveC, Python, Java, C#, JavaScript, TypeScript, TSX, Scheme, Guile, Lisp, EmacsLisp, librep,…help + man
--tag WORD:FORMATdefines the behaviour of tagged template literals with tag WORD (only language JavaScript)help + man
-T, --trigraphsunderstand ANSI C trigraphs for input (deprecated;help + man
--its FILEapply ITS rules from FILE (only XML based languages)help + man
--qtrecognize Qt format strings (only language C++)help + man
--kderecognize KDE 4 format strings (only language C++)help + man
--boostrecognize Boost format strings (only language C++)help + man
--debugmore detailed formatstring recognition resulthelp + man
--coloruse colors and other text attributes alwayshelp + man
--style STYLEFILEspecify CSS style rule file for --colorhelp + man
-e, --no-escapedo not use C escapes in output (default)help + man
-E, --escapeuse C escapes in output, no extended charshelp + man
--force-powrite PO file even if emptyhelp + man
-i, --indentwrite the .po file using indented stylehelp + man
--no-locationdo not write '#: filename:line' lineshelp + man
-n, --add-locationgenerate '#: filename:line' lines (default)help + man
--strictwrite out strict Uniforum conforming .po filehelp + man
--properties-outputwrite out a Java .properties filehelp + man
--stringtable-outputwrite out a NeXTstep/GNUstep .strings filehelp + man
--itstoolwrite out itstool commentshelp + man
-w, --width NUMBERset output page widthhelp + man
--no-wrapdo not break long message lines, longer than the output page width, into several lineshelp + man
-s, --sort-outputgenerate sorted output (deprecated)help + man
-F, --sort-by-filesort output by file locationhelp + man
--omit-headerdon't write header with 'msgid ""' entryhelp + man
--no-gitdon't use the git program to produce a reproducible 'POT-Creation-Date' field in the output.help + man
--copyright-holder STRINGset copyright holder in outputhelp + man
--foreign-useromit FSF copyright in output for foreign userhelp + man
--package-name PACKAGEset package name in outputhelp + man
--package-version VERSIONset package version in outputhelp + man
--msgid-bugs-address EMAIL@ADDRESSset report address for msgid bugshelp + man
--generated FILEDeclares that the given FILE is generated and therefore should not have an influence on the 'POT-Creation-Date' field in the output.help + man
--reference FILEDeclares that the output depends on the contents of the given FILE.help + man
-m, --msgstr-prefix STRINGuse STRING or "" as prefix for msgstr valueshelp
-M, --msgstr-suffix STRINGuse STRING or "" as suffix for msgstr valueshelp
-h, --helpdisplay this help and exithelp + man
-V, --versionoutput version information and exithelp + man
-v, --verboseincrease verbosity levelhelp + man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.