Lint rules
inconsistent-args
errorFlags a translation whose ICU features don't match the source message.
Why this is bad
Placeholders are the contract between your code and a message. A translation that drops one may needlessly generalize the sentence, and one that invents a placeholder will throw at runtime.
Examples
Given the source message "Delete {item}".
Examples of incorrect code for this rule:
messages/fr.json
{"delete": "Supprimer cet élément"}
(absent argument)
messages/fr.json
{"delete": "Supprimer {objet}"}
(translated argument)
messages/fr.json
{"delete": "Supprimer l'{item}"}
(apostrophe escapes argument)
Examples of correct code for this rule:
messages/fr.json
{"delete": "Supprimer l''{item}"}
(apostrophe escaped too)
How to fix it
Re-translate the message for the flagged locale with eloqnt translate. Passing --id replaces the existing translation, and the post-translation checks reject any attempt whose arguments differ from the source.
npx eloqnt translate --id delete --locale fr
To fix it manually, use every argument exactly as the source spells it.