django will redirect back the URL specified by the `next` parameter. In the case of the faq, it has the language code embedded in the URL, so the app shouldn't redirect back to that URL.  Instead, it checks the URL to see if it's on the faq, and changes the next URL to the appropriate URL instead.

This could mostly be done by placing one form per link in the language chooser, but the faq URL munging would still have to be done at some point.

It's not the prettiest code -- I'll add some more comments to make it more understandable.