The proposal is simple; create a broadcast function that instead accepts a translation key as an argument, as well as a list of text to substitute within the translation.
This could be implemented using the tellraw command. And could also be extended to errors in custom commands when one is thrown.