safe_join will return a value already marked `html_safe`, there's no need to manually mark it html_safe yourself, it'll already be so. 

If there's indeed a Rails bug involved here requiring a workaround, such that we can't just let Rails do it's thing -- I think it needs a more targetted workaround.  More likely, we're using Rails wrong (or it's a missing feature in Rails) -- it's perhaps not supported to use an already-escaped-and-marked-html-safe value as an i18n substitution value? 

But this workaround of marking the entire results of the `t()` call as `html_safe` will lead to very undesirable effects where this works different than any other `t()` call, in that in most i18n values, you put literal `&` and they get escaped by Rails, but in these values you'd have to instead put literal `&amp;` in, as well as make sure to escape anything else in any of the i18n literals or substitution values, because you've disabled Rails from doing so. Which is not normally how i18n works.