Skip to content
Browse files

[1.2.X] Fixed #12193 - Add details to the i18n documentation for tran…

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

Backport of r15102 from trunk.

git-svn-id: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent 235f29f commit b5a7ac4fff1d3830a57012da42b0ba5d92fc9d48 @timgraham timgraham committed
Showing with 33 additions and 0 deletions.
  1. +33 −0 docs/topics/i18n/internationalization.txt
33 docs/topics/i18n/internationalization.txt
@@ -255,6 +255,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 b5a7ac4

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