Проблема в том, что промежуточное программное обеспечение уже установило значение языка в Запросе, поэтому вам придется добавить свое собственное промежуточное программное обеспечение (после CommonMiddleware, я полагаю). Внутри вашего промежуточного класса ваш метод process_request установит язык, а ваш метод process_response сбросит язык.
http://docs.djangoproject.com/en/dev/topics/http/middleware/
Может быть ярлык для того, чтобы не использовать промежуточное программное обеспечение (вручную установить значение LANGUAGE_CODE для запроса и выполнить translation.activate в представлении), но я не пробовал ничего подобного.