compilemessages does not behave the same as makemessages
|Ready for checkin
|Patch needs improvement:
makemessages was upgraded in Django 1.7 so that it would automatically put app strings in app specific locale files and other strings in the first LOCALE_PATHS entry, as explained in the "Changed in Django 1.7" part of https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#message-files. This was ticket #16084.
Ticket #20451 was marked as a duplicate of this ticket, but ticket #16084 only improved makemessages, it didn't change compilemessages at all. compilemessages, when run from the same directory as manage.py, will only compile 'conf/locale', 'locale' and the LOCALE_PATHS .po files, it will not compile any app specific locale files that were created by a call to makemessages.
The documentation on compilemessages does not appear to tell you this, https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#compiling-message-files says "This tool runs over all available .po files and creates .mo files". It then says you should run it "In the same directory from which you ran django-admin.py makemessages" which I think is referring to the pre-1.7 behaviour of having to run it in more than one place.
I'm not sure whether it would be better for compilemessages to have the same behaviour as makemessages or for the documentation to update to point out you still need to run it in each app if they have separate locale entries.