Commit 170e5d5f authored by Jannis Leidel's avatar Jannis Leidel
Browse files

Fixed #17458 -- Marked Http404 error messages for translation. Thanks, Claude Paroz.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17447 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent a4f68c1b
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ from django import http
from django.contrib.contenttypes.models import ContentType
from django.contrib.sites.models import Site, get_current_site
from django.core.exceptions import ObjectDoesNotExist
from django.utils.translation import ugettext as _

def shortcut(request, content_type_id, object_id):
    """
@@ -11,17 +12,18 @@ def shortcut(request, content_type_id, object_id):
    try:
        content_type = ContentType.objects.get(pk=content_type_id)
        if not content_type.model_class():
            raise http.Http404("Content type %s object has no associated model"
                               % content_type_id)
            raise http.Http404(_(u"Content type %(ct_id)s object has no associated model") %
                               {'ct_id': content_type_id})
        obj = content_type.get_object_for_this_type(pk=object_id)
    except (ObjectDoesNotExist, ValueError):
        raise http.Http404("Content type %s object %s doesn't exist"
                           % (content_type_id, object_id))
        raise http.Http404(_(u"Content type %(ct_id)s object %(obj_id)s doesn't exist") %
                           {'ct_id': content_type_id, 'obj_id': object_id})

    try:
        get_absolute_url = obj.get_absolute_url
    except AttributeError:
        raise http.Http404("%s objects don't have a get_absolute_url() method"
                           % content_type.name)
        raise http.Http404(_("%(ct_name)s objects don't have a get_absolute_url() method") %
                           {'ct_name': content_type.name})
    absurl = get_absolute_url()

    # Try to figure out the object's domain, so we can do a cross-site redirect
+4 −3
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ from django.contrib.gis.db.models.fields import GeometryField
from django.db import connections, DEFAULT_DB_ALIAS
from django.db.models import get_model
from django.utils.encoding import smart_str
from django.utils.translation import ugettext as _

from django.contrib.gis.shortcuts import render_to_kml, render_to_kmz

@@ -40,7 +41,7 @@ def sitemap(request, sitemaps, section=None):
    maps, urls = [], []
    if section is not None:
        if section not in sitemaps:
            raise Http404("No sitemap available for section: %r" % section)
            raise Http404(_(u"No sitemap available for section: %r") % section)
        maps.append(sitemaps[section])
    else:
        maps = sitemaps.values()
@@ -54,9 +55,9 @@ def sitemap(request, sitemaps, section=None):
            else:
                urls.extend(site.get_urls(page=page, site=current_site))
        except EmptyPage:
            raise Http404("Page %s empty" % page)
            raise Http404(_(u"Page %s empty") % page)
        except PageNotAnInteger:
            raise Http404("No page '%s'" % page)
            raise Http404(_(u"No page '%s'") % page)
    xml = smart_str(loader.render_to_string('gis/sitemaps/geo_sitemap.xml', {'urlset': urls}))
    return HttpResponse(xml, content_type='application/xml')

+3 −2
Original line number Diff line number Diff line
from django.http import Http404
from django.utils.translation import ugettext as _

def feed(request, url, feed_dict=None):
    """Provided for backwards compatibility."""
    if not feed_dict:
        raise Http404("No feeds are registered.")
        raise Http404(_(u"No feeds are registered."))

    try:
        slug, param = url.split('/', 1)
@@ -13,7 +14,7 @@ def feed(request, url, feed_dict=None):
    try:
        f = feed_dict[slug]
    except KeyError:
        raise Http404("Slug %r isn't registered." % slug)
        raise Http404(_(u"Slug %r isn't registered.") % slug)

    instance = f()
    instance.feed_url = getattr(f, 'feed_url', None) or request.path
+7 −4
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ import urllib
from django.http import Http404, HttpResponse, HttpResponseRedirect, HttpResponseNotModified
from django.template import loader, Template, Context, TemplateDoesNotExist
from django.utils.http import http_date, parse_http_date
from django.utils.translation import ugettext as _, ugettext_noop

def serve(request, path, document_root=None, show_indexes=False):
    """
@@ -48,9 +49,9 @@ def serve(request, path, document_root=None, show_indexes=False):
    if os.path.isdir(fullpath):
        if show_indexes:
            return directory_index(newpath, fullpath)
        raise Http404("Directory indexes are not allowed here.")
        raise Http404(_(u"Directory indexes are not allowed here."))
    if not os.path.exists(fullpath):
        raise Http404('"%s" does not exist' % fullpath)
        raise Http404(_(u'"%s" does not exist') % fullpath)
    # Respect the If-Modified-Since header.
    statobj = os.stat(fullpath)
    mimetype, encoding = mimetypes.guess_type(fullpath)
@@ -69,16 +70,17 @@ def serve(request, path, document_root=None, show_indexes=False):


DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
{% load i18n %}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" content="en-us" />
    <meta name="robots" content="NONE,NOARCHIVE" />
    <title>Index of {{ directory }}</title>
    <title>{% blocktrans %}Index of {{ directory }}{% endblocktrans %}</title>
  </head>
  <body>
    <h1>Index of {{ directory }}</h1>
    <h1>{% blocktrans %}Index of {{ directory }}{% endblocktrans %}</h1>
    <ul>
      {% ifnotequal directory "/" %}
      <li><a href="../">../</a></li>
@@ -90,6 +92,7 @@ DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
  </body>
</html>
"""
template_translatable = ugettext_noop(u"Index of %(directory)s")

def directory_index(path, fullpath):
    try: