Go to the first, previous, next, last section, table of contents.


4 Making the PO Template File

After preparing the sources, the programmer creates a PO template file. This section explains how to use xgettext for this purpose.

4.1 Invoking the xgettext Program

xgettext [option] [inputfile] ...

The xgettext program extracts translatable strings from given input files.

4.1.1 Input file location

`inputfile ...´
Input files.
`-f file´
`--files-from=file´
Read the names of the input files from file instead of getting them from the command line.
`-D directory´
`--directory=directory´
Add directory to the list of directories. Source files are searched relative to this list of directories. The resulting `.po´ file will be written relative to the current directory, though.

If inputfile is `-´, standard input is read.

4.1.2 Output file location

`-d name´
`--default-domain=name´
Use `name.po´ for output (instead of `messages.po´).
`-o file´
`--output=file´
Write output to specified file (instead of `name.po´ or `messages.po´).
`-p dir´
`--output-dir=dir´
Output files will be placed in directory dir.

If the output file is `-´ or `/dev/stdout´, the output is written to standard output.

4.1.3 Choice of input file language

`-L name´
`--language=name´
Specifies the language of the input files. The supported languages are C, C++, ObjectiveC, PO, Java, YCP.
`-C´
`--c++´
This is a shorthand for --language=C++.

By default the language is guessed depending on the input file name extension.

4.1.4 Operation mode

`-j´
`--join-existing´
Join messages with existing file.
`-x file´
`--exclude-file=file´
Entries from file are not extracted. file should be a PO or POT file.
`-c [tag
`--add-comments[=tag
Place comment block with tag (or those preceding keyword lines) in output file.

4.1.5 Language=C/C++ specific options

`-a´
`--extract-all´
Extract all strings.
`-k keywordspec´
`--keyword[=keywordspec
Additional keyword to be looked for (without keywordspec means not to use default keywords). If keywordspec is a C identifer id, xgettext looks for strings in the first argument of each call to the function or macro id. If keywordspec is of the form `id:argnum´, xgettext looks for strings in the argnumth argument of the call. If keywordspec is of the form `id:argnum1,argnum2´, xgettext looks for strings in the argnum1st argument and in the argnum2nd argument of the call, and treats them as singular/plural variants for a message with plural handling. The default keyword specifications, which are always looked for if not explicitly disabled, are gettext, dgettext:2, dcgettext:2, ngettext:1,2, dngettext:2,3, dcngettext:2,3, and gettext_noop.
`-T´
`--trigraphs´
Understand ANSI C trigraphs for input.
`--debug´
Use the flags c-format and possible-c-format to show who was responsible for marking a message as a format string. The latter form is used if the xgettext program decided, the format form is used if the programmer prescribed it. By default only the c-format form is used. The translator should not have to care about these details.

This implementation of xgettext is able to process a few awkward cases, like strings in preprocessor macros, ANSI concatenation of adjacent strings, and escaped end of lines for continued strings.

4.1.6 Output details

`--force-po´
Always write an output file even if no message is defined.
`-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 a strict Uniforum conforming PO file. Note that this Uniforum format should be avoided because it doesn't support the GNU extensions.
`-w number´
`--width=number´
Set the output page width. Long strings in the output files will be split across multiple lines in order to ensure that each line's width (= number of screen columns) is less or equal to the given number.
`-s´
`--sort-output´
Generate sorted output. Note that using this option makes it much harder for the translator to understand each message's context.
`-F´
`--sort-by-file´
Sort output by file location.
`--omit-header´
Don't write header with `msgid ""´ entry. This is useful for testing purposes because it eliminates a source of variance for generated .gmo files. With --omit-header, two invocations of xgettext on the same files with the same options at different times are guaranteed to produce the same results.
`--foreign-user´
Omit FSF copyright in output. This can be useful for translators outside the GNU project.
`-m [string
`--msgstr-prefix[=string
Use string (or "" if not specified) as prefix for msgstr entries.
`-M [string
`--msgstr-suffix[=string
Use string (or "" if not specified) as suffix for msgstr entries.

4.1.7 Informative output

`-h´
`--help´
Display this help and exit.
`-V´
`--version´
Output version information and exit.


Go to the first, previous, next, last section, table of contents.