@c This file is part of the GNU gettext manual.
@c Copyright (C) 1995-2019 Free Software Foundation, Inc.
@c See the file gettext.texi for copying conditions.

@pindex msgcmp
@cindex @code{msgcmp} program, usage
@example
msgcmp [@var{option}] @var{def}.po @var{ref}.pot
@end example

@cindex compare PO files
The @code{msgcmp} program compares two Uniforum style .po files to check that
both contain the same set of msgid strings.  The @var{def}.po file is an
existing PO file with the translations.  The @var{ref}.pot file is the last
created PO file, or a PO Template file (generally created by @code{xgettext}).
This is useful for checking that you have translated each and every message
in your program.  Where an exact match cannot be found, fuzzy matching is
used to produce better diagnostics.

@subsection Input file location

@table @samp
@item @var{def}.po
Translations.

@item @var{ref}.pot
References to the sources.

@item -D @var{directory}
@itemx --directory=@var{directory}
@opindex -D@r{, @code{msgcmp} option}
@opindex --directory@r{, @code{msgcmp} option}
Add @var{directory} to the list of directories.  Source files are
searched relative to this list of directories.

@end table

@subsection Operation modifiers

@table @samp
@item -m
@itemx --multi-domain
@opindex -m@r{, @code{msgcmp} option}
@opindex --multi-domain@r{, @code{msgcmp} option}
Apply @var{ref}.pot to each of the domains in @var{def}.po.

@item -N
@itemx --no-fuzzy-matching
@opindex -N@r{, @code{msgcmp} option}
@opindex --no-fuzzy-matching@r{, @code{msgcmp} option}
Do not use fuzzy matching when an exact match is not found.  This may speed
up the operation considerably.

@item --use-fuzzy
@opindex --use-fuzzy@r{, @code{msgcmp} option}
Consider fuzzy messages in the @var{def}.po file like translated messages.
Note that using this option is usually wrong, because fuzzy messages are
exactly those which have not been validated by a human translator.

@item --use-untranslated
@opindex --use-untranslated@r{, @code{msgcmp} option}
Consider untranslated messages in the @var{def}.po file like translated
messages.  Note that using this option is usually wrong.

@end table

@subsection Input file syntax

@table @samp
@item -P
@itemx --properties-input
@opindex -P@r{, @code{msgcmp} option}
@opindex --properties-input@r{, @code{msgcmp} option}
Assume the input files are Java ResourceBundles in Java @code{.properties}
syntax, not in PO file syntax.

@item --stringtable-input
@opindex --stringtable-input@r{, @code{msgcmp} option}
Assume the input files are NeXTstep/GNUstep localized resource files in
@code{.strings} syntax, not in PO file syntax.

@end table

@subsection Informative output

@table @samp
@item -h
@itemx --help
@opindex -h@r{, @code{msgcmp} option}
@opindex --help@r{, @code{msgcmp} option}
Display this help and exit.

@item -V
@itemx --version
@opindex -V@r{, @code{msgcmp} option}
@opindex --version@r{, @code{msgcmp} option}
Output version information and exit.

@end table
