PR Checklist
### PR Structure
- [x] This PR has reasonably narrow scope (if not, break it down into smaller
PRs).
- [x] This PR avoids mixing refactoring changes with feature changes (split into
two PRs otherwise).
- [x] This PR's title starts is concise and descriptive.
### Thoroughness
- [x] This PR adds tests for the most critical parts of the new functionality or
fixes.
- [x] I've updated any docs, `.md` files, etc… affected by this change.
What
Add i18n lint:scripts to lint TypeScript/JavaScript files.
Why
So we can know when script files are referring missing translations.
Known limitations
Only literal strings will be considered, as dynamic scope is impossible (?) to do.
This pull request is built on top of #676, so we need to merge it first
PR Checklist
### PR Structure - [x] This PR has reasonably narrow scope (if not, break it down into smaller PRs). - [x] This PR avoids mixing refactoring changes with feature changes (split into two PRs otherwise). - [x] This PR's title starts is concise and descriptive. ### Thoroughness - [x] This PR adds tests for the most critical parts of the new functionality or fixes. - [x] I've updated any docs, `.md` files, etc… affected by this change.What
Add
i18n lint:scripts
to lint TypeScript/JavaScript files.Why
So we can know when script files are referring missing translations.
Known limitations