mirror of https://github.com/django/django.git
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
This commit is contained in:
parent
a4f68c1b40
commit
170e5d5f74
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue