The reason this sort of worked for us and we didn't notice anything for a long time was that because of django.staticfiles, most of the askbot strings were actually picked up for translation! managy.py collectstatic copied askbot templates to a local dir under project, where makemessages found them and presented them for translation in rosetta. So when we were thinking we're translating askbot, we were actually translating its (partially) cloned version in STATIC_DIR! Heh.