Wouldn't it be a cleaner approach to seperate language dependent content completely from the actual models. It's more "DRY" because you only define the text fields on one place. You could even introduce a site-wide model for all language dependent content like this:
class Content(meta.Model): model_id = foreignkey to the name of the model it relates to object_id = foreignkey to specific object it relates to language_id = foreignkey to the language name = name of the attribute value = the content Another solution would be to create a translation model for every model that needs it. The translation model would look like: class ThingContent(meta.Model): object_id = foreignkey to specific object it relates to language_id = foreignkey to the language title = title content description = description content I do agree with Hugo that such a thing should be integrated into the user interface and to add special permissions for translators.