About Context-Specific Translations

Some English terms have multiple meanings, and their translation depends on context. For example, in German, "address" is "Adresse" for a physical location but "Speicheradresse" in computer science. Likewise, "default" can be "Standard" in settings or "Vorgabe" in programming.

In Django, you can set a context for the translations using pgettext or pgettext_lazy:

address = models.CharField(
    pgettext_lazy("Physical", "Address"), max_length=200,
)

Analogously you can set that in the template:

{% translate "Address" context "Physical" %}

Tips and Tricks Programming Translations Django 5.2 Django 4.2 Django 3.2