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
