manpagez: man pages & more
man xgettext(1)
Home | html | info | man
xgettext(1)                      User Commands                     xgettext(1)


NAME

       xgettext - extract gettext strings from source


SYNOPSIS

       xgettext [OPTION] [INPUTFILE]...


DESCRIPTION

       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


AUTHOR

       Written by Ulrich Drepper and Bruno Haible.


REPORTING BUGS

       Report bugs in the bug tracker at
       <https://savannah.gnu.org/projects/gettext> or by email to
       <bug-gettext@gnu.org>.


COPYRIGHT

       Copyright (C) 1995-2026 Free Software Foundation, Inc.  License GPLv3+:
       GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
       This is free software: you are free to change and redistribute it.
       There is NO WARRANTY, to the extent permitted by law.


SEE ALSO

       The full documentation for xgettext is maintained as a Texinfo manual.
       If the info and xgettext programs are properly installed at your site,
       the command

              info autopoint

       should give you access to the complete manual.

GNU gettext-tools 1.0            January 2026                      xgettext(1)

gettext 1.0 - Generated Thu Mar 12 16:38:00 CDT 2026
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.