LinuxCommandLibrary

xgettext

extract gettext strings from source

TLDR

Scan file and output strings to messages.po

$ xgettext [path/to/input_file]
copy


Use a different output filename
$ xgettext --output [path/to/output_file] [path/to/input_file]
copy


Append new strings to an existing file
$ xgettext --join-existing --output [path/to/output_file] [path/to/input_file]
copy


Don't add a header containing metadata to the output file
$ xgettext --omit-header [path/to/input_file]
copy

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, Shell, Python, Lisp, EmacsLisp, librep, Scheme, Smalltalk, Java, JavaProperties, C#, awk, YCP, Tcl, Perl, PHP, Ruby, GCC-source, NXStringTable, RST, RSJ, Glade, Lua, JavaScript, Vala, 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)

--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, Shell, Python, Lisp, EmacsLisp, librep, Scheme, Java, C#, awk, Tcl, Perl, PHP, GCC-source, Glade, Lua, JavaScript, Vala)

-kWORD, --keyword=WORD

look for WORD as an additional keyword

-k, --keyword

do not to use default keywords (only languages C, C++, ObjectiveC, Shell, Python, Lisp, EmacsLisp, librep, Scheme, Java, C#, awk, Tcl, Perl, PHP, GCC-source, Glade, Lua, JavaScript, Vala, Desktop)

--flag=WORD:ARG:FLAG

additional flag for strings inside the argument number ARG of keyword WORD

(only languages C, C++, ObjectiveC, Shell,

Python, Lisp, EmacsLisp, librep, Scheme, Java, C#, awk, YCP, Tcl, Perl, PHP, GCC-source, Lua, JavaScript, Vala)

-T, --trigraphs

understand ANSI C trigraphs for input (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

--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

-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

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 © 1995-2023 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 xgettext should give you access to the complete manual.

AUTHOR

Written by Ulrich Drepper.

Copied to clipboard