Django не использует мой пользовательский перевод
У меня есть django проект с django rest framwork. Мне нужен многоязычный проект, и я пытаюсь сделать свой собственный перевод. Я использую документ drf https://www.django-rest-framework.org/topics/internationalization/#adding-new-translations, а также документ django и другие источники, но знаю, что django все еще использует перевод drf по умолчанию. мои переопределения не применяются и новые строки не переводятся. Например, я переопределяю эту строку в .po файле
msgid "Username"
msgstr ""
to
msgid "Username"
msgstr "یوزنیم"
но он переводится как "نام کاربری". и я добавляю эту строку
msgid "there is a user with this national id"
msgstr "سامتینگ"
и использовать это сообщение как ошибку уникального валидатора сериализатора, но оно не переводится
national_id = serializers.CharField(validators=[validate_national_id, UniqueValidator(queryset=User.objects.all(), message='there is a user with this national id') ], allow_blank=True)
Вы должны отметить строку как строку перевода:
from django.utils.translation import gettext as _
national_id = serializers.CharField(validators=[validate_national_id, UniqueValidator(queryset=User.objects.all(), message=_('there is a user with this national id')) ], allow_blank=True)
прочитайте использование перевода https://docs.djangoproject.com/en/4.0/topics/i18n/translation/