Fixed #5603 -- Allow customization of the language cookie name. Thanks, moe.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7185 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
2dbb08e5dc
commit
efed04b634
|
@ -91,8 +91,8 @@ LANGUAGES_BIDI = ("he", "ar", "fa")
|
||||||
# If you set this to False, Django will make some optimizations so as not
|
# If you set this to False, Django will make some optimizations so as not
|
||||||
# to load the internationalization machinery.
|
# to load the internationalization machinery.
|
||||||
USE_I18N = True
|
USE_I18N = True
|
||||||
|
|
||||||
LOCALE_PATHS = ()
|
LOCALE_PATHS = ()
|
||||||
|
LANGUAGE_COOKIE_NAME = 'django_language'
|
||||||
|
|
||||||
# Not-necessarily-technical managers of the site. They get broken link
|
# Not-necessarily-technical managers of the site. They get broken link
|
||||||
# notifications and other various e-mails.
|
# notifications and other various e-mails.
|
||||||
|
|
|
@ -355,7 +355,7 @@ def get_language_from_request(request):
|
||||||
if lang_code in supported and lang_code is not None and check_for_language(lang_code):
|
if lang_code in supported and lang_code is not None and check_for_language(lang_code):
|
||||||
return lang_code
|
return lang_code
|
||||||
|
|
||||||
lang_code = request.COOKIES.get('django_language')
|
lang_code = request.COOKIES.get(settings.LANGUAGE_COOKIE_NAME)
|
||||||
if lang_code and lang_code in supported and check_for_language(lang_code):
|
if lang_code and lang_code in supported and check_for_language(lang_code):
|
||||||
return lang_code
|
return lang_code
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ def set_language(request):
|
||||||
if hasattr(request, 'session'):
|
if hasattr(request, 'session'):
|
||||||
request.session['django_language'] = lang_code
|
request.session['django_language'] = lang_code
|
||||||
else:
|
else:
|
||||||
response.set_cookie('django_language', lang_code)
|
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
NullSource = """
|
NullSource = """
|
||||||
|
|
|
@ -547,7 +547,7 @@ following this algorithm:
|
||||||
|
|
||||||
* First, it looks for a ``django_language`` key in the the current user's
|
* First, it looks for a ``django_language`` key in the the current user's
|
||||||
`session`_.
|
`session`_.
|
||||||
* Failing that, it looks for a cookie called ``django_language``.
|
* Failing that, it looks for a cookie that is named according to your ``LANGUAGE_COOKIE_NAME`` setting (the default name is: ``django_language``).
|
||||||
* Failing that, it looks at the ``Accept-Language`` HTTP header. This
|
* Failing that, it looks at the ``Accept-Language`` HTTP header. This
|
||||||
header is sent by your browser and tells the server which language(s) you
|
header is sent by your browser and tells the server which language(s) you
|
||||||
prefer, in order by priority. Django tries each language in the header
|
prefer, in order by priority. Django tries each language in the header
|
||||||
|
@ -719,7 +719,8 @@ Activate this view by adding the following line to your URLconf::
|
||||||
The view expects to be called via the ``POST`` method, with a ``language``
|
The view expects to be called via the ``POST`` method, with a ``language``
|
||||||
parameter set in request. If session support is enabled, the view
|
parameter set in request. If session support is enabled, the view
|
||||||
saves the language choice in the user's session. Otherwise, it saves the
|
saves the language choice in the user's session. Otherwise, it saves the
|
||||||
language choice in a ``django_language`` cookie.
|
language choice in a cookie that is by default named ``django_language``
|
||||||
|
(the name can be changed through the ``LANGUAGE_COOKIE_NAME`` setting).
|
||||||
|
|
||||||
After setting the language choice, Django redirects the user, following this
|
After setting the language choice, Django redirects the user, following this
|
||||||
algorithm:
|
algorithm:
|
||||||
|
|
|
@ -579,6 +579,16 @@ in standard language format. For example, U.S. English is ``"en-us"``. See the
|
||||||
|
|
||||||
.. _internationalization docs: ../i18n/
|
.. _internationalization docs: ../i18n/
|
||||||
|
|
||||||
|
LANGUAGE_COOKIE_NAME
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Default: ``'django_language'``
|
||||||
|
|
||||||
|
The name of the cookie to use for the language cookie. This can be whatever
|
||||||
|
you want (but should be different from SESSION_COOKIE_NAME). See the
|
||||||
|
`internationalization docs`_ for details.
|
||||||
|
|
||||||
|
|
||||||
LANGUAGES
|
LANGUAGES
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
@ -822,8 +832,8 @@ SESSION_COOKIE_NAME
|
||||||
|
|
||||||
Default: ``'sessionid'``
|
Default: ``'sessionid'``
|
||||||
|
|
||||||
The name of the cookie to use for sessions. This can be whatever you want.
|
The name of the cookie to use for sessions. This can be whatever you want (but
|
||||||
See the `session docs`_.
|
should be different from ``LANGUAGE_COOKIE_NAME``). See the `session docs`_.
|
||||||
|
|
||||||
SESSION_COOKIE_PATH
|
SESSION_COOKIE_PATH
|
||||||
-------------------
|
-------------------
|
||||||
|
|
Loading…
Reference in New Issue