Перевод строк сторонних Django-приложений с помощью утилиты makemessages

Иногда необходимо найти переводимые строки с помощью утилиты manage.py makemessages, относящиеся к стороннему приложению, установленному в каталоге виртуального окружения. Проблема заключается в том, что makemessages просматривает только те каталоги, которые находятся внутри текущего каталога. В заметке небольшая подсказка.

Чтобы позволить manage.py makemessages находить переводимые строки в файлах сторонних приложений, установленных, например, в каталоге виртуального окружения, достаточно создать символическую ссылку из стороннего приложения в каталог вашего проекта:

cd project_root
ln -s /home/eu/.virtualenvs/chief/lib/python3.5/site-packages/rangefilter rangefilter
python manage.py makemessages -l ru -s

Здесь очень важна опция s. Она заставляет makemessages следовать по символическим ссылкам.

Если приложение уже переведено, то файл .po будет создан в каталоге app/locale/ru.

Если описаннный прием по каким-то причинам у вас не сработал, проверьте переменную LOCALE_PATHS в settings.py.