Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Fixed #12193 - Add details to the i18n documentation for translation …

…of model classes (relations and methods). Thanks Maxime Petazzoni and Ramiro for work on the patch.

git-svn-id: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit ec38c88dfb7f737377297c56810cd44111270255 1 parent aa1b537
@timgraham timgraham authored
Showing with 33 additions and 0 deletions.
  1. +33 −0 docs/topics/i18n/internationalization.txt
33 docs/topics/i18n/internationalization.txt
@@ -312,6 +312,39 @@ name::
verbose_name = _('my thing')
verbose_name_plural = _('mythings')
+Notes on model classes translation
+Your model classes may not only contain normal fields: you may have relations
+(with a ``ForeignKey`` field) or additional model methods you may use for
+columns in the Django admin site.
+If you have models with foreign keys and you use the Django admin site, you can
+provide translations for the relation itself by using the ``verbose_name``
+parameter on the ``ForeignKey`` object::
+ class MyThing(models.Model):
+ kind = models.ForeignKey(ThingKind, related_name='kinds',
+ verbose_name=_('kind'))
+As you would do for the ``verbose_name`` and ``verbose_name_plural`` settings of
+a model Meta class, you should provide a lowercase verbose name text for the
+relation as Django will automatically titlecase it when required.
+For model methods, you can provide translations to Django and the admin site
+with the ``short_description`` parameter set on the corresponding method::
+ class MyThing(models.Model):
+ kind = models.ForeignKey(ThingKind, related_name='kinds',
+ verbose_name=_('kind'))
+ def is_mouse(self):
+ return self.kind.type == MOUSE_TYPE
+ is_mouse.short_description = _('Is it a mouse?')
+As always with model classes translations, don't forget to use the lazy
+translation method!
Working with lazy translation objects

0 comments on commit ec38c88

Please sign in to comment.
Something went wrong with that request. Please try again.