xgettext1
Extract gettext strings from source
Usage
xgettext [OPTION]
[INPUTFILE] ...
Overview
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
Releases
15 releases since Debian 1.2 (Rex); the text changed 12 times.
--add-comments since Debian 3.0 (Woody);
--add-location since Debian 3.0 (Woody);
--boost since Debian 4.0 (Etch);
--c++ since Debian 3.0 (Woody);
--check since Debian 9 (Stretch);
--color since Debian 6.0 (Squeeze);
--copyright-holder since Debian 3.1 (Sarge);
--debug since Debian 3.0 (Woody);
--default-domain since Debian 3.0 (Woody);
--directory since Debian 3.0 (Woody);
--escape since Debian 3.0 (Woody);
--exclude-file since Debian 3.0 (Woody);
--extract-all since Debian 3.0 (Woody);
--files-from since Debian 3.0 (Woody);
--flag since Debian 3.1 (Sarge);
--force-po since Debian 3.0 (Woody);
--foreign-user since Debian 3.0 (Woody);
--from-code since Debian 3.1 (Sarge);
--generated since Arch Linux 2026-11-01;
--help since Debian 3.0 (Woody);
--indent since Debian 3.0 (Woody);
--its since Debian 9 (Stretch);
--itstool since Debian 9 (Stretch);
--join-existing since Debian 3.0 (Woody);
--kde since Debian 5.0 (Lenny);
--keyword since Debian 3.0 (Woody);
--language since Debian 3.0 (Woody);
--msgid-bugs-address since Debian 3.1 (Sarge);
--msgstr-prefix since Debian 3.0 (Woody);
--msgstr-suffix since Debian 3.0 (Woody);
--no-check since Arch Linux 2026-11-01;
--no-escape since Debian 3.0 (Woody);
--no-git since Arch Linux 2026-11-01;
--no-location since Debian 3.0 (Woody);
--no-wrap since Debian 3.1 (Sarge);
--omit-header since Debian 3.0 (Woody);
--output since Debian 3.0 (Woody);
--output-dir since Debian 3.0 (Woody);
--package-name since Debian 5.0 (Lenny);
--package-version since Debian 5.0 (Lenny);
--properties-output since Debian 3.1 (Sarge);
--qt since Debian 3.1 (Sarge);
--reference since Arch Linux 2026-11-01;
--sentence-end since Debian 9 (Stretch);
--sort-by-file since Debian 3.0 (Woody);
--sort-output since Debian 3.0 (Woody);
--strict since Debian 3.0 (Woody);
--stringtable-output since Debian 3.1 (Sarge);
--style since Debian 6.0 (Squeeze);
--tag since Debian 13 (Trixie);
--trigraphs since Debian 3.0 (Woody);
--verbose since Debian 11 (Bullseye);
--version since Debian 3.0 (Woody);
--width since Debian 3.0 (Woody);
-C since Debian 3.0 (Woody);
-D since Debian 3.0 (Woody);
-E since Debian 3.0 (Woody);
-F since Debian 3.0 (Woody);
-L since Debian 3.0 (Woody);
-M since Debian 3.0 (Woody);
-T since Debian 3.0 (Woody);
-V since Debian 3.0 (Woody);
-cTAG since Debian 6.0 (Squeeze);
-e since Debian 3.0 (Woody);
-f since Debian 3.0 (Woody);
-i since Debian 3.0 (Woody);
-j since Debian 3.0 (Woody);
-k since Debian 3.0 (Woody);
-kWORD since Debian 6.0 (Squeeze);
-s since Debian 3.0 (Woody);
-v since Debian 11 (Bullseye);
-w since Debian 3.0 (Woody).
-P until Debian 1.3 (Bo).