Задать вопрос

Как перевести только кастомные ошибки в DRF?

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" и т.д.).
  • Вопрос задан
  • 511 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
JustJew
@JustJew Автор вопроса
Надо было просто исключить тексты из пакетов при помощи ключа --ignore
python manage.py makemessages -l ru --ignore=env
python manage.py compilemessages -l ru --ignore=env
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы