xref: /netbsd-src/external/gpl2/gettext/dist/gettext-tools/doc/msgcat.texi (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
1@pindex msgcat
2@cindex @code{msgcat} program, usage
3@example
4msgcat [@var{option}] [@var{inputfile}]...
5@end example
6
7@cindex concatenate PO files
8@cindex merge PO files
9The @code{msgcat} program concatenates and merges the specified PO files.
10It finds messages which are common to two or more of the specified PO files.
11By using the @code{--more-than} option, greater commonality may be requested
12before messages are printed.  Conversely, the @code{--less-than} option may be
13used to specify less commonality before messages are printed (i.e.@:
14@samp{--less-than=2} will only print the unique messages).  Translations,
15comments and extract comments will be cumulated, except that if
16@code{--use-first} is specified, they will be taken from the first PO file
17to define them.  File positions from all PO files will be cumulated.
18
19@subsection Input file location
20
21@table @samp
22@item @var{inputfile} @dots{}
23Input files.
24
25@item -f @var{file}
26@itemx --files-from=@var{file}
27@opindex -f@r{, @code{msgcat} option}
28@opindex --files-from@r{, @code{msgcat} option}
29Read the names of the input files from @var{file} instead of getting
30them from the command line.
31
32@item -D @var{directory}
33@itemx --directory=@var{directory}
34@opindex -D@r{, @code{msgcat} option}
35@opindex --directory@r{, @code{msgcat} option}
36Add @var{directory} to the list of directories.  Source files are
37searched relative to this list of directories.  The resulting @file{.po}
38file will be written relative to the current directory, though.
39
40@end table
41
42If @var{inputfile} is @samp{-}, standard input is read.
43
44@subsection Output file location
45
46@table @samp
47@item -o @var{file}
48@itemx --output-file=@var{file}
49@opindex -o@r{, @code{msgcat} option}
50@opindex --output-file@r{, @code{msgcat} option}
51Write output to specified file.
52
53@end table
54
55@cindex standard output, and @code{msgcat}
56The results are written to standard output if no output file is specified
57or if it is @samp{-}.
58
59@subsection Message selection
60
61@table @samp
62@item -< @var{number}
63@itemx --less-than=@var{number}
64@opindex -<@r{, @code{msgcat} option}
65@opindex --less-than@r{, @code{msgcat} option}
66Print messages with less than @var{number} definitions, defaults to infinite
67if not set.
68
69@item -> @var{number}
70@itemx --more-than=@var{number}
71@opindex ->@r{, @code{msgcat} option}
72@opindex --more-than@r{, @code{msgcat} option}
73Print messages with more than @var{number} definitions, defaults to 0 if not
74set.
75
76@item -u
77@itemx --unique
78@opindex -u@r{, @code{msgcat} option}
79@opindex --unique@r{, @code{msgcat} option}
80Shorthand for @samp{--less-than=2}.  Requests that only unique messages be
81printed.
82
83@end table
84
85@subsection Input file syntax
86
87@table @samp
88@item -P
89@itemx --properties-input
90@opindex -P@r{, @code{msgcat} option}
91@opindex --properties-input@r{, @code{msgcat} option}
92Assume the input files are Java ResourceBundles in Java @code{.properties}
93syntax, not in PO file syntax.
94
95@item --stringtable-input
96@opindex --stringtable-input@r{, @code{msgcat} option}
97Assume the input files are NeXTstep/GNUstep localized resource files in
98@code{.strings} syntax, not in PO file syntax.
99
100@end table
101
102@subsection Output details
103
104@c --no-escape and --escape omitted on purpose.  They are not useful.
105
106@table @samp
107@item -t
108@itemx --to-code=@var{name}
109@opindex -t@r{, @code{msgcat} option}
110@opindex --to-code@r{, @code{msgcat} option}
111Specify encoding for output.
112
113@item --use-first
114@opindex --use-first@r{, @code{msgcat} option}
115Use first available translation for each message.  Don't merge several
116translations into one.
117
118@item --force-po
119@opindex --force-po@r{, @code{msgcat} option}
120Always write an output file even if it contains no message.
121
122@item -i
123@itemx --indent
124@opindex -i@r{, @code{msgcat} option}
125@opindex --indent@r{, @code{msgcat} option}
126Write the .po file using indented style.
127
128@item --no-location
129@opindex --no-location@r{, @code{msgcat} option}
130Do not write @samp{#: @var{filename}:@var{line}} lines.
131
132@item -n
133@itemx --add-location
134@opindex -n@r{, @code{msgcat} option}
135@opindex --add-location@r{, @code{msgcat} option}
136Generate @samp{#: @var{filename}:@var{line}} lines (default).
137
138@item --strict
139@opindex --strict@r{, @code{msgcat} option}
140Write out a strict Uniforum conforming PO file.  Note that this
141Uniforum format should be avoided because it doesn't support the
142GNU extensions.
143
144@item -p
145@itemx --properties-output
146@opindex -p@r{, @code{msgcat} option}
147@opindex --properties-output@r{, @code{msgcat} option}
148Write out a Java ResourceBundle in Java @code{.properties} syntax.  Note
149that this file format doesn't support plural forms and silently drops
150obsolete messages.
151
152@item --stringtable-output
153@opindex --stringtable-output@r{, @code{msgcat} option}
154Write out a NeXTstep/GNUstep localized resource file in @code{.strings} syntax.
155Note that this file format doesn't support plural forms.
156
157@item -w @var{number}
158@itemx --width=@var{number}
159@opindex -w@r{, @code{msgcat} option}
160@opindex --width@r{, @code{msgcat} option}
161Set the output page width.  Long strings in the output files will be
162split across multiple lines in order to ensure that each line's width
163(= number of screen columns) is less or equal to the given @var{number}.
164
165@item --no-wrap
166@opindex --no-wrap@r{, @code{msgcat} option}
167Do not break long message lines.  Message lines whose width exceeds the
168output page width will not be split into several lines.  Only file reference
169lines which are wider than the output page width will be split.
170
171@item -s
172@itemx --sort-output
173@opindex -s@r{, @code{msgcat} option}
174@opindex --sort-output@r{, @code{msgcat} option}
175@cindex sorting @code{msgcat} output
176Generate sorted output.  Note that using this option makes it much harder
177for the translator to understand each message's context.
178
179@item -F
180@itemx --sort-by-file
181@opindex -F@r{, @code{msgcat} option}
182@opindex --sort-by-file@r{, @code{msgcat} option}
183Sort output by file location.
184
185@end table
186
187@subsection Informative output
188
189@table @samp
190@item -h
191@itemx --help
192@opindex -h@r{, @code{msgcat} option}
193@opindex --help@r{, @code{msgcat} option}
194Display this help and exit.
195
196@item -V
197@itemx --version
198@opindex -V@r{, @code{msgcat} option}
199@opindex --version@r{, @code{msgcat} option}
200Output version information and exit.
201
202@end table
203