Awesome
messageformat-validator
Validates messageformat messages against various errors and warnings.
Install
npm i messageformat-validator
Usage
mfv [options] [subcommand]
Examples
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-missing
Output the myMessage
message from the es-es
file with all messageformat structure highlighted
mfv -l es-es -p lang/ highlight myMessage
Options:
-V, --version
- output the version number
-e, --throw-errors
- Throw an error if error issues are found
--no-issues
- Don't output issues
-i, --ignoreIssueTypes <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
Subommands:
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
help [command]
- display help for command
Config File
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
}
Errors
argument
- There are unrecognized arguments in the target message.
brace
- There are mismatched braces in the target message.
case
- There are unrecognized cases in the target message.
extraneous
- There is an extraneous message in the target locale.
missing
- There is a message missing from the target locale.
nbsp
- There are invalid non-breaking spaces in the structure of the target message.
nest
- The nesting order of the target message does not match the source message.
other
- The target message is missing an other
case
parse
- The target message can not be parsed.
source
- There is an error in the source message.
Warnings
categories
- The target message is missing plural categories used in the target locale
nest
- There is a select
nested inside a plural
or selectordinal
in the target message.
split
- The target message is split by a non-argument. plural
, selectordinal
, and select
cases should contain complete translations.
untranslated
- The target message has not been translated.