Option A:
It's quite simple actually. Assuming you don't want to keep reviewing your locale files (or relying on 3rd party edits like rosetta) which can be tedious, you can simply translate all your model-fields dynamically.
One way to do this is via the app: django-parler, which allows you to leverage its TranslatableModel, TranslatedFields classes.
----More info on this can be found in the book Django 3 by Example: Chapter 9 (very exhaustive).
Option B
If your options are constricted by choices (IT HAPPENS)...& your model fields rely on a list of pre-determined choices, you can simply make the choices translatable like so:
in models.py
from django.utils.translation import gettext_lazy as _
class Products(models.Model):
class ProductName(models.TextChoices):
RAD = 'RD', _('Radio')
TEL = 'TV', _('Television')
details: [https://docs.djangoproject.com/en/3.1/ref/models/fields/][1]
or if you're using enums
in enums.py
from django.utils.translation import gettext_lazy as _
@unique
class StudentChoice(Enum):
rad = _('Radio')
tel = _('Television')
After defining your choices, you simply follow the internationalization/localization recommendations for the framework.