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/

Вернуться на верх