This rule checks ids used in react-intl's <FormattedMessage />, formatMessage and defineMessages,
to determine if they (or template literal pattern) can be found in the locale files.
By default, the localeFiles is set to ['locales/en-US.json'], but can be changed in the eslint config settings.
Given an example locale file whose content looks like:
{
"in_example": "An example message",
"in_one_label": "First message label",
"in_two_label": "Second message label"
}Examples of incorrect code for this rule:
<FormattedMessage id='missing_example' />formatMessage({ id: 'missing_example' })defineMessages({ msg: { id:'missing_example' }})defineMessage({ id:'missing_example' })Examples of correct code for this rule:
<FormattedMessage id='in_example' /><FormattedMessage id={ `in_${someKey}_label` } />formatMessage({ id: 'in_example' })formatMessage({ id: `in_${someKey}_label` })defineMessages({ msg: { id: 'in_example' }})defineMessages({ msg: { id: `in_${someKey}_label` }})defineMessage({ id: 'in_example' })defineMessage({ id: `in_${someKey}_label` })"@godaddy/react-intl/id-missing": <enabled>
settings.localeFiles: list of locale files, defaults to ['locales/en-US.json']
settings.projectRoot: set to __dirname to help with realtime linting
Disable this rule if the module does not have locale files.