Can you share a little bit more about the context for these translations?
Are these for the built-in messages where you're translating the built-in messages on your own and not using the translations we provide? If so that is a bit trickier. We are not likely to change our message format for built-in strings. But we can think together about a solution if this is the scenario you're in.
Are these for your own new messages, such as in custom blocks? I think, but I'm not 100% certain, that Blockly never calls `.replace('%1', ...)` on a developer-provided message. So you can use a different token if you want, and call `.replace` with your own token. That's just the built-in javascript string replace method replacing the token we chose in our messages, we're not doing anything i18n-specific here, so you should be able to replace a different token of your choosing if you'd like.
Let me know if that helps or not. Best,
Maribeth