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