WIll this do the right thing?  If report_empty is false, then it will go into the else clause even for empty translations, and doesn't that cause some mischief?  When I was fiddling with this to get it to shut up about empties, I think I had to do:  if empty: if report_empty:, etc.