Far from glamorous but somewhat necessary, I think. :)
I'm confident I got every offending tr call but let me know if you see something I've missed.
Also, I preferred to keep important strings without divisions (e.g. tr("bla") + "<b>" + tr("bla")) since dividing entire phrases may easily confuse translators and lose context in many languages; so take this into consideration for nits on style.
Obs.: The comments starting here is what brought me to it and I believe the final objective could be to ban html tags from translations as a whole (from just adding a check on update-translations.py to, who knows, add a test to fail if some tr() with html tag(s) is found in case there's a clean way to do it) but that's another thing for now.