Author: aaugustin Date: 2011-11-01 07:02:31 -0700 (Tue, 01 Nov 2011) New Revision: 17061
Modified: django/trunk/django/utils/cache.py django/trunk/docs/topics/cache.txt django/trunk/tests/regressiontests/cache/tests.py Log: Made the cache locale-dependant when USE_L10N is True, even if USE_I18N is False. Refs #5691. Modified: django/trunk/django/utils/cache.py =================================================================== --- django/trunk/django/utils/cache.py 2011-10-31 18:54:24 UTC (rev 17060) +++ django/trunk/django/utils/cache.py 2011-11-01 14:02:31 UTC (rev 17061) @@ -158,7 +158,7 @@ def _i18n_cache_key_suffix(request, cache_key): """If enabled, returns the cache key ending with a locale.""" - if settings.USE_I18N: + if settings.USE_I18N or settings.USE_L10N: # first check if LocaleMiddleware or another middleware added # LANGUAGE_CODE to request, then fall back to the active language # which in turn can also fall back to settings.LANGUAGE_CODE Modified: django/trunk/docs/topics/cache.txt =================================================================== --- django/trunk/docs/topics/cache.txt 2011-10-31 18:54:24 UTC (rev 17060) +++ django/trunk/docs/topics/cache.txt 2011-11-01 14:02:31 UTC (rev 17061) @@ -498,6 +498,10 @@ :ref:`how-django-discovers-language-preference`). This allows you to easily cache multilingual sites without having to create the cache key yourself. +.. versionchanged:: 1.4 + +This also happens when :setting:`USE_L10N` is set to ``True``. + __ `Controlling cache: Using other headers`_ The per-view cache Modified: django/trunk/tests/regressiontests/cache/tests.py =================================================================== --- django/trunk/tests/regressiontests/cache/tests.py 2011-10-31 18:54:24 UTC (rev 17060) +++ django/trunk/tests/regressiontests/cache/tests.py 2011-11-01 14:02:31 UTC (rev 17061) @@ -1154,23 +1154,33 @@ request.session = {} return request - @override_settings(USE_I18N=True) - def test_cache_key_i18n(self): + @override_settings(USE_I18N=True, USE_L10N=False) + def test_cache_key_i18n_translation(self): request = self._get_request() lang = translation.get_language() response = HttpResponse() key = learn_cache_key(request, response) - self.assertTrue(key.endswith(lang), "Cache keys should include the language name when i18n is active") + self.assertIn(lang, key, "Cache keys should include the language name when translation is active") key2 = get_cache_key(request) self.assertEqual(key, key2) - @override_settings(USE_I18N=False) + @override_settings(USE_I18N=False, USE_L10N=True) + def test_cache_key_i18n_formatting(self): + request = self._get_request() + lang = translation.get_language() + response = HttpResponse() + key = learn_cache_key(request, response) + self.assertIn(lang, key, "Cache keys should include the language name when formatting is active") + key2 = get_cache_key(request) + self.assertEqual(key, key2) + + @override_settings(USE_I18N=False, USE_L10N=False) def test_cache_key_no_i18n (self): request = self._get_request() lang = translation.get_language() response = HttpResponse() key = learn_cache_key(request, response) - self.assertFalse(key.endswith(lang), "Cache keys shouldn't include the language name when i18n is inactive") + self.assertNotIn(lang, key, "Cache keys shouldn't include the language name when i18n isn't active") @override_settings( CACHE_MIDDLEWARE_KEY_PREFIX="test", -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.