Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022



mkmsgs - create message files for use by gettxt


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


The mkmsgs utility is used to create a file of text strings that can be accessed using the text retrieval tools gettxt(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 both 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, where locale corresponds to the language in which the text strings are written.

inputstrings is the name of the file that contains the original text strings. msgfile is 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).

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.

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.


The following options are supported:


Overwrite msgfile, if it exists.

–i locale

Install msgfile in the /usr/lib/locale/locale/LC_MESSAGES directory. Only someone with appropriate privileges can create or overwrite files in this directory. Directories under /usr/lib/locale will be created if they do not exist.


Example 1 Using the mkmsgs command.

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
Example 2 Using Input Strings From C.str to Create Text Strings in a File

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:

example% mkmsgs C.str UX
Example 3 Using Input Strings From FR.str to Create Text Strings in a File

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/fr/LC_MESSAGES:

example% mkmsgs -i fr FR.str UX

These text strings would be accessed if you had set the environment variable LC_MESSAGES=fr and then invoked one of the text retrieval tools listed at the beginning of the DESCRIPTION section.



message files created by mkmsgs for the locale locale


See attributes(7) for descriptions of the following attributes:


See Also

exstr(1), gettxt(1), setlocale(3C), gettxt(3C), attributes(7)