msggen - generate a machine independent formatted message catalog
msggen [ options ] catfile [ msgfile ]
merges the message text source files msgfile
into a machine independent formatted message catalog catfile
. The file catfile
will be created if it does not already exist. If catfile
does exist, its messages will be
included in the new catfile
. If set and message numbers collide, the new message text defined in msgfile
the old message text currently contained in catfile
. Non-ASCII characters must be UTF-8 encoded.
can be used to convert to/from UTF-8.
- -f, --format
List the printf(3) format signature for
each message in catfile. A format signature is one line containing one character per format specification:
- long double
- long long
- -l, --list
List catfile in UTF-8 msgfile form.
- -s, --set
Convert the catfile operand to a message set number and print the number on the standard
Message text source files are in gencat(1)
format, defined as follows. Note
that the fields of a message text source line are separated by a single blank character. Any other blank characters are considered
as being part of the subsequent field. The NL_*
constants are defined in one or both of <limits.h>
- $ comment
A line beginning with $ followed by a blank character is treated as a
- $delset n comment
This line deletes message set n from an
existing message catalog. n denotes the set number [1, NL_SETMAX]. Any text following the set number is treated as a
- $quote c
This line specifies an optional quote character c, which can be used to
surround message-text so that trailing spaces or empty messages are visible in a message source line. By default, or if an
empty $quote directive is supplied, no quoting of message-text will be recognized.
- $set n comment
This line specifies the set identifier of the following
messages until the next $set or end-of-file appears. n denotes the set identifier, which is defined as a number in
the range [1, NL_SETMAX]. Set numbers need not be contiguous. Any text following the set identifier is treated as a comment.
If no $set directive is specified in a message text source file, all messages will be located in message set 1.
- $translation identification YYYY-MM-DD[,...]
Append translation info to the message catalog header. Only the newest date for a given identification is retained
in the catalog. Multiple translation lines are combined into a single , separated list.
- m message-text
m denotes the message identifier, which is defined as a
number in the range [1, NL_MSGMAX]. The message-text is stored in the message catalogue with the set identifier specified by
the last $set directive, and with message identifier m. If the message-text is empty, and a blank character
field separator is present, an empty string is stored in the message catalogue. If a message source line has a message number, but
neither a field separator nor message-text, the existing message with that number (if any) is deleted from the catalogue.
Message identifiers need not be contiguous. There are no message-text length restrictions.