mkmsgs(1)


mkmsgs -- create message files for use by gettxt and pfmt

Synopsis

mkmsgs [-o] [-i locale] inputstrings msgfile

Description

The mkmsgs utility is used to create a file of text strings that can be accessed using the text retrieval tools (see pfmt(1), gettxt(1), srchtxt(1), exstr(1), and gettxt(3C)). It will take as input a file of text strings for a particular geographic locale (see setlocale(3C)) and create a file of text strings in a format that can be retrieved by pfmt(1), gettxt(1), and gettxt(3C). By using the -i option, you can install the created file under the /usr/lib/locale/locale/LC_MESSAGES directory (locale corresponds to the language in which the text strings are written).

inputstrings
the name of the file that contains the original text strings.

msgfile
the name of the output file where mkmsgs writes the strings in a format that is readable by gettxt(1) and gettxt(3C). The name of msgfile can be up to 14 characters in length, but may not contain either ``\0'' (null) or the ASCII code for ``/'' (slash) or ``:'' (colon).

-i locale
install msgfile in the /usr/lib/locale/locale/LC_MESSAGES directory. Only a privileged user or a member of group bin can create or overwrite files in this directory. Directories under /usr/lib/locale will be created if they do not exist.

-o
overwrite msgfile, if it exists.
The input file contains a set of text strings for the particular geographic locale. Text strings are separated by a newline character. Nongraphic characters must be represented as alphabetic escape sequences. Messages are transformed and copied sequentially from inputstrings to msgfile. To generate an empty message in msgfile, leave an empty line at the correct place in inputstrings.

Messages can be specified on a single line or across multiple lines, and must contain a total of 4095 characters or less. Mutli-line messages are delimited by the characters "%<" and "%>" on a line by themselves, as in the following example:

   %<
   message line 1
   message line 2
   ...
   %>

Only the characters space, tab, and linefeed are permitted on the lines with the delimiters.

Single-line and multi-line comments can be included in the file. Single-line comments are designated by the characters ``%#'' as the first two characters of the comment line:

   message 1
   %# This is a  comment
   message 2
Multi-line comments are designated by the characters ``%{'' at the beginning of the first comment line, and are terminated by the characters ``%}'' at the beginning of a line (with no following text):
   message 1
   %{ This is a comment
   %}
   message 2
or:
   message 1
   %{
   This is a comment
   %}
   message 2
The space following the comment-opening characters is optional.

Strings can be changed simply by editing the file inputstrings. New strings must be added only at the end of the file; then a new msgfile file must be created and installed in the correct place. If this procedure is not followed, the retrieval function will retrieve the wrong string and software compatibility will be broken.

Examples

The following example shows an input message source file C.str:
   File %s:\t cannot be opened\n
   %s: Bad directory\n
   ...
   write error\n
   ...
The following command uses the input strings from C.str to create text strings in the appropriate format in the file UX in the current directory:

mkmsgs C.str UX

The following command uses the input strings from FR.str to create text strings in the appropriate format in the file UX in the directory /usr/lib/locale/french/LC_MESSAGES/UX:

mkmsgs -i french FR.str UX

These text strings would be accessed if you had set the environment variable LC_MESSAGES to ``french'' and then invoked one of the text retrieval tools listed at the beginning of the ``Description'' section.

Files


/usr/lib/locale/locale/LC_MESSAGES/uxsysadm
language-specific message file used by mkmsgs (see LANG in environ(5))

References

exstr(1), gettxt(1), gettxt(3C), pfmt(1), setlocale(3C), srchtxt(1)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004