New Rubocop rule against sprintf/interpolation inside translations

Example of bad code:

# Example of bad code
_("hi %{name}" % { name: "Luki" }) # This will pass "hi Luki" into the translation function
# Example of good code
_("hi %{name}") % { name: "Luki" } # This will pass "hi %{name}" into the translation function

The former replaces the placeholder before passing it into our translation function, the latter after. This is important, because only the latter works correctly. We have a similar linting rule in eslint which requires the arguments to be string literals.

Spotted in !118204 (comment 1361898968)

Edited by Peter Leitzen