summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/topics/i18n/internationalization.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/topics/i18n/internationalization.txt b/docs/topics/i18n/internationalization.txt
index 6f3b48b687..771a36b3e0 100644
--- a/docs/topics/i18n/internationalization.txt
+++ b/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
-------------------------------------