Index: django/utils/cache.py
===================================================================
--- django/utils/cache.py	(revision 7950)
+++ django/utils/cache.py	(working copy)
@@ -29,6 +29,7 @@
 from django.core.cache import cache
 from django.utils.encoding import smart_str, iri_to_uri
 from django.utils.http import http_date
+from django.utils import translation
 
 cc_delim_re = re.compile(r'\s*,\s*')
 
@@ -143,9 +144,14 @@
         value = request.META.get(header, None)
         if value is not None:
             ctx.update(value)
-    return 'views.decorators.cache.cache_page.%s.%s.%s' % (
-               key_prefix, iri_to_uri(request.path), ctx.hexdigest())
-
+    if settings.USE_I18N:
+        lang = translation.get_language()
+        return 'views.decorators.cache.cache_page.%s.%s.%s.%s' % (
+                   key_prefix, iri_to_uri(request.path), ctx.hexdigest(), lang)
+    else:
+        return 'views.decorators.cache.cache_page.%s.%s.%s' % (
+                   key_prefix, iri_to_uri(request.path), ctx.hexdigest())
+    
 def get_cache_key(request, key_prefix=None):
     """
     Returns a cache key based on the request path. It can be used in the
@@ -158,8 +164,13 @@
     """
     if key_prefix is None:
         key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
-    cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
-                    key_prefix, iri_to_uri(request.path))
+    if settings.USE_I18N:
+        lang = translation.get_language()
+        cache_key = 'views.decorators.cache.cache_header.%s.%s.%s' % (
+                        key_prefix, iri_to_uri(request.path), lang)
+    else:
+        cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
+                        key_prefix, iri_to_uri(request.path))
     headerlist = cache.get(cache_key, None)
     if headerlist is not None:
         return _generate_cache_key(request, headerlist, key_prefix)
@@ -183,8 +194,13 @@
         key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
     if cache_timeout is None:
         cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
-    cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
-                    key_prefix, iri_to_uri(request.path))
+    if settings.USE_I18N:
+        lang = translation.get_language()
+        cache_key = 'views.decorators.cache.cache_header.%s.%s.%s' % (
+                        key_prefix, iri_to_uri(request.path), lang)
+    else:
+        cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
+                        key_prefix, iri_to_uri(request.path))
     if response.has_header('Vary'):
         headerlist = ['HTTP_'+header.upper().replace('-', '_')
                       for header in cc_delim_re.split(response['Vary'])]
