mirror of
				https://github.com/django/django.git
				synced 2025-10-30 19:47:35 +00:00 
			
		
		
		
	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
					
				
					 5 changed files with 18 additions and 7 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Malcolm Tredinnick
						Malcolm Tredinnick