Django auto-translation of field values

What's really nice in Django is the gettext implementation and the _ convention. But when running django-admin.py makemessages we're not generating any translations for dynamic values such as field values. So let's say that we have a model and we'd like what's in it to be displayed in a translated manner. In the new Django development version we're able to create our own special field types. And we can extend the CharField to provide automatic translation:

 from django.db import models  
from django.utils.translation import gettext_lazy as _





class AutoTranslateField(models.CharField):  
    __metaclass__ = models.SubfieldBase  
    def to_python(self, value):  
        return str(_(value))

After that we just add whatever translations we know of to our locale/CODE/LC_MESSAGES/django.po file and run compilemessages.