The problem is that the middleware has already set the value of the language in the Request, so you will have to add your own middleware (after CommonMiddleware I believe). Inside your middleware class your process_request method will set the language and your process_response method will reset the language.
http://docs.djangoproject.com/en/dev/topics/http/middleware/
There may be a shortcut for not using middleware (manually setting the request LANGUAGE_CODE value and doing translation.activate within the view), but I have not tried anything like this.