Validates messageformat messages against various errors and warnings.
npm i messageformat-validatormfv [options] [subcommand]Check for issues in all files within lang/
mfv -s en -p lang/Add messages that exist in en to all files within lang/, if they are missing
mfv -s en -p lang/ add-missingOutput the myMessage message from the es-es file with all messageformat structure highlighted
mfv -l es-es -p lang/ highlight myMessageRe-write messages to a standard format, using newlines and tabs for complex arguments, and removing any plural categories that are invalid for each locale (e.g. zero for English, one for Korean)
mfv -s en -p lang/ format -nr-V, --version - output the version number
--no-issues - Don't output issues
-i, --ignore <items> - Ignore these comma-separated issue types
-l, --locales <items> - Process only these comma-separated locales
-p, --path <path> - Path to a directory containing locale files
-t, --translator-output - Output JSON of all source messages that are missing or untranslated in the target
-s, --source-locale <locale> - The locale to use as the source
--json-obj - Indicate that the files to be parsed are JSON files with keys that have objects for values with their own keys: translation and context
-h, --help - Display help for command
remove-extraneous - Remove messages that do not exist in the source locale
add-missing - Add messages that do not exist in the target locale
sort - Sort messages alphabetically by key, maintaining any blocks
rename <old-key> <new-key> - Rename a message
highlight <key> - Output a message with all non-translatable ICU MessageFormat structure highlighted
format - Rewrite messages to a standard format
Some options can be configured with default values in mfv.config.json
{
"source": "en"
"path": "lang/",
"locales": ["ar", "de", "en", "es", "es-es", "hi", "tr"],
"jsonObj": true
}argument - Unrecognized argument
brace - Mismatched braces
category - Unsupported category
duplicate - Multiple messages with the same name
extraneous - Message does not exist in the source locale
missing - Message missing from the target locale
nbsp - Message structure contains non-breaking space
nest - The nesting order of the target message does not match the source message
option - Unrecognized option
option-missing - Missing option used in the source
other - Missing "other" option
parse - Failed to parse message
source - Failed to parse source message
category-missing - Missing categories used by the target locale
nest-ideal - A select is nested inside a plural or selectordinal
nest-order - Nesting order does not match source
split - Split by a complex argument
untranslated - Message has not been translated