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