django.conf.urls.i18n must allow param language as GET
|Reported by:||anonymous||Owned by:||nobody|
|Severity:||Keywords:||i18n, set_language, get, post|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The description of the set_language method :
Since this view changes how the user will see the rest of the site, it must only be accessed as a POST request. If called as a GET request, it will redirect to the page in the request (the 'next' parameter) without changing any state.
Is not fully correct, in which reason the language must be only given by POST?
This force to be form (or doing an ajax hack) and it's not possible with links.
I don't know many users that will try the ?language=fail just to see what happens, and the ones that do that know how to revert it.
In my mind (and for many others django users for sure), forcing the language to be given in POST make the whole i18n changing language more difficult than the tiny possibility for a user to change the ux in a mess.
I would be pleased to know more about the why :)