Django model translation : store translations in database or use gettext?

If you want to let users of your app(or third party translators) easily update the translations without code changes then go for one of the solutions that stores the translations in the database.

If you instead want greater quality control(version control, several set of eyes, etc), then use gettext. By using gettext you may also control which strings you want translate.

Just my 2c.


http://packages.python.org/django-easymode/ combines the two:

http://packages.python.org/django-easymode/i18n/index.html

http://packages.python.org/django-easymode/i18n/translation.html

Gettext is used to translate large ammounts of data, and the admin is used for day to day updates.


django-modeltranslation is best for storing translated value. you will go to django-admin and put translated value.

But If you are using django-dbgettext, then you dont need to put any value in django-admin, you can use rosetta for that. If you are not able to look any value for translation and you want it to translate, then you can do entry of model in "*dbgettext_registration.py*" and run command "python manage.py dbgettext_export" then "python manage.py compilemessages".