What language format does django translation.activate() accept?
The format is: 

you can supply a plain language ('hu', 'pt', 'en', 'de' etc.)
you can supply a language and a "territory" ('pt-pt', 'pt-br', 'en-gb')
note that django is buggy if you use other formats (eg. 'pt_br') since it does not properly recognise the language-territory relation. (I haven't tried but looking at the code I also think 'pt-BR' format
should work. It is too bad that we don't have a verbose option to see django's guesses.)

Django checks the directories in the following order (assuming you enter 'pt-br'):

language_territory.isoencoding ('pt_BR.ISO8859-1'), 
language_territory ('pt_BR') -- but note that if a territory is longer than 2 characters, then only the first character gets capitalized (eg. 'zh_Hans')!
language.encoding ('pt.ISO8859-1')
language ('pt')
falling back to default language and trying its 4 possible directory (usually ['en_US.ISO8859-2', 'en_US', 'en.ISO8859-2', 'en'])

This was missing in Django documentation, now you can all find it here. Good luck.
One more thing:
You can put a locale directory into each app directory. I recommend you to break up the translation into smaller units - it is easier to track the translations later.
I have struggled with what language formats I need to pass to translation.activate and I asked a detailed question but then I dug up the solution from the source. See it in my answer.