Check out https://github.com/rory/django-template-i18n-lint.
I used it as part of a 'code quality' unit test suite to ensure we don't leave strings untagged for i18n in a particular project (and also to help spot which strings needed fixing up when first starting the retrospective i18n process). There's also a -r
option when you run it that should automatically make the changes.
However, I didn't use that auto-fix option -- I wanted more control over things (eg blocktrans vs trans etc), so I just kept running my tests and fixing up the various places where the linter found missing i18n markup. I also did something similar for gettext imports in Python files, and string markup in Python files, as well as named variable placeholders in strings in Python files, to make translations less likely to mess up word orders.
(The project that I retrospectively i18ned was three years old and pretty large as a result - it took five weeks to get it all straight. I hope yours takes less time)
PS: template-i18n-lint also has a sibling: https://github.com/rory/python-pylint-i18n