Manual Page Result
0
Command: strmerge | Section: 1 | Source: Digital UNIX | File: strmerge.1.gz
strmerge(1) General Commands Manual strmerge(1)
NAME
strmerge - batch string replacement
SYNOPSIS
strmerge [ -m prefix ] [ -p patternfile ] [ -s string ] source-pro-
gram...
DESCRIPTION
The strmerge command reads the strings specified in the message file
produced by strextract and replaces those strings with calls to the
message file in the source program to create a new source program. The
new version of source program has the same name as the input source
program, with the prefix nl_. For example, if the input source program
is named prog.c, the output source program is named nl_prog.c. You use
this command to replace hard-coded messages (text strings identified by
the strextract command) with calls to the catgets function and to cre-
ate a source message catalog file. The source message catalog contains
the text for each message extracted from your input source program. The
strmerge command names the file by appending .msg to the name of the
input source program. For example, the source message catalog for the
prog.c program is named prog.msg . You can use the source message cat-
alog as input to the gencat command.
At run time, the program reads the message text from the message cata-
log. By storing messages in a message catalog, instead of your pro-
gram, you allow the text of messages to be translated to a new language
or modified without the source program being changed.
In the source-program argument, you name one or more source programs
for which you want strings replaced. The strmerge command does not re-
place messages for source programs included using the #include direc-
tive. Therefore, you might want a source program and all the source
programs it includes on a single strmerge command line.
You can create a patterns file (as specified by patternfile ) to con-
trol how the strmerge command replaces text. The patterns file is di-
vided into several sections, each of which is identified by a keyword.
The keyword must start at the beginning of a new line, and its first
character must be a dollar sign ($). Following the identifier, you
specify a number of patterns. Each pattern begins on a new line and
follows the regular expression syntax you use in the ed editor. For
more information on the patterns file, see the patterns(4) reference
page.
FLAGS
-m Add prefix to message numbers in the output source program and
source message catalog. You can use this prefix as a mnemonic.
You must process source message catalogs that contain number pre-
fixes using the mkcatdefs command. Message numbers will be in the
form: <prefix><msg_num>
Set numbers will be in the form: S_<prefix><set_num>
If you process your input source program with the mkcatdefs com-
mand, the resulting source program and source message catalog
might not be portable. For more information, see the Writing
Software for the International Market.
-p Use patternfile to match strings in the input source program. By
default, the command searches for the pattern file in the current
directory, your home directory and finally /usr/lib/nls.
If you omit the -p option, the strmerge command uses a default
patterns file that is stored in /usr/lib/nls/patterns.
-s Write string at the top of the source message catalog. If you omit
the -s option, strmerge uses the string specified in the $CATHEAD
section of the patterns file.
RESTRICTIONS
You can specify only one rewrite string for all classes of pattern
matches.
The strmerge command does not verify if the message text file matches
the source file being rewritten.
The strmerge command does not replace strings to files included with
#include directive. You must run the strmerge command on these files
separately.
EXAMPLES
The following produces a message file prog.cat for a program called
prog.c. % strextract -p c_patterns prog.c prog2.c % vi prog.str %
strmerge -p c_patterns prog.c prog2.c % gencat prog.cat prog.msg
prog2.msg % vi nl_prog.c % vi nl_prog2.c % cc nl_prog.c nl_prog2.c
In this example, the strextract command uses the c_patterns file to de-
termine which strings to match. The input source programs are named
prog.c and prog2.c.
If you need to remove any of the messages or extract one of the created
strings, edit the resulting message file, prog.str. Under no condi-
tions should you add to this file. Doing so could result in unpre-
dictable behavior.
You issue the strmerge command to replace the extracted strings with
calls to the message catalog. In response to this command, strmerge
creates the source message catalogs, prog.msg and prog2.msg, and the
output source programs, nl_prog.c and nl_prog2.c.
Before compiling the source programs, you must edit nl_prog.c and
nl_prog2.c to include the appropriate catopen and catclose function
calls.
The gencat command creates a message catalog and the cc command creates
an executable program.
RELATED INFORMATION
extract(1), gencat(1), strextract(1), trans(1), regexp(3), catopen(3),
catgets(3), patterns(4)
Writing Software for the International Market delim off
strmerge(1)