* `require()` is more direct and likely faster than a synchronous
file read into user land and then sync JSON.parse (as grunt.file
does) than Node natively reading and parsing a file in one go.
Also benefits being less Grunt-specific and theoretically some minor
benefit to IDE and static analysis.
* Inline loop as for-of without the forEach function calls.
Change-Id: I06c8f8729b2f4ba2c574c7aaeaa2ae56513b4595
This repo is a little tricky, as it's made up of multiple sub-
extensions, each using relative paths, but at least this way it
is clear that adding additional i18n paths to a manifest will
also add it to the linting set-up.
Change-Id: I7bc4f0cd5d2b431fe47a4d3bee2ca69a06aeea6d
This is one of the last extensions to be converted to having
the API messages in a separate file (at least out of the extensions
that are used be Wikimedia).
This one is a bit different from the others because it actually as several
extensions with separate i18n files, so it requires extra-careful review,
especially in Gruntfile and the extension.json files.
Bug: T189982
Change-Id: I66faae6fd4ff447327587c89ad2a1704edd1b356
As pointed out by Umherirrender, this does not entirely work
for ConfirmEdit in this way, as there're several subdirectories
which also contain i18n files. I'm not sure why I missed this
in the first place, therefore reverting for now.
This reverts commit 24864a36bd.
Change-Id: Ib83a67650bb5f25eebb66e8701f9bd80b659e573