Put this into the init.py file in the root of your project (the same directory level as urls.py and settings.py) and this installs _() as a global reference into the current running python VM, and now it’s as universally available as int(), map(), or str().
This is, of course, controversial. Modifying the python global namespace to add a function can be considered maintenance-hostile. But the gettext feature is so universal– at least to me– that init.py is where it belongs.
1 2 3 4 5 6
# Add to __init.py__ in root of your project (same directory # as urls.py and settings.py): from django.utils.translation import ugettext import __builtin__ __builtin__.__dict__['_'] = ugettext