DRF из коробки умеет отдавать ошибки на русском языке, если в хедере указать
Accept-Language: ru
.
Мне необходимо сделать перевод своих кастомных ошибок.
В
документации говорится следующее:
If you're only translating custom error messages that exist inside your project codebase you don't need to copy the REST framework source django.po file into a LOCALE_PATHS folder, and can instead simply run Django's standard makemessages process.
Соответственно, что я сделал:
1. Тексты ошибок завернул в
_('Error message')
2. В settings указал
LOCALE_PATHS
3. Выполнил
python manage.py makemessages -l ru
Создался файл .po и здесь сразу первая проблема. В этом файле, помимо моих текстов, еще огромная куча джанговских текстов, которые мне не надо переводить, т.к. они итак уже переведены джангой. Хотелось бы не переопределить ru перевод, а дополнить его. Есть идеи?
Далее я выполнил
python manage.py compilemessages
, это собрало .mo файл. И отсюда вторая проблема. Мои ошибки перевелись, конечно, но вот стандартные DRF ошибки теперь не на русском (напр. "This field is required", "Authentication credentials were not provided" и т.д.).