除了单一情况外,我的django应用程序和翻译运行完美。
我有一个错误和一个成功的视图和模板,它将不同的消息呈现为相同的两个模板(一个用于成功消息,另一个用于失败和错误)
我的一般错误视图如下:
@login_required
@never_cache
def base_error_page(request, error="", title=""):
context = {'error': error, 'title': title + " | "}
return render_to_response('general_pages/operation_failed.html', context,
context_instance=RequestContext(request, {}))
我的错误模板general_pages/operation_failed.html
{% extends "base.html" %}
{% block title %}{{ title }}{% endblock title %}
{% block content %}
{% autoescape off %}
<h2>{{ title|slice:":-3" }}</h2>
<table class="info_table">
<tr>
<th><img src="{{ MEDIA_URL }}img/failure.png"></th>
<td style="font-weight: bold">{{ error }}</td>
</tr>
</table>
{% endautoescape %}
{% endblock content %}
我只是将已翻译的字符串提供给我的页面视图,并在页面上显示该消息。 Usege如下
一些view.py
from django.utils.translation import ugettext as _
def someview(request):
...
...
if some_error:
return base_error_page(request, error=_('Update Failed <br />'
'<a href="%(profile)s">Back to Profile Settings »»</a>') % {"profile": reverse('custom_profile')},
title=_("Update Profile"))
但我的失败(和成功)页面消息未翻译成所选语言。所有其他翻译工作正常。
我正在使用Djnago 1.6.5
答案 0 :(得分:0)
我会这样接近:
from django.utils.translation import ugettext as _
from django.shortcuts import render_to_response
from django.template import RequestContext
def someview(request):
...
...
if some_error:
return render_to_response('general_pages/operation_failed.html', {"error":_("update failed")},
context_instance=RequestContext(request))
然后让模板完成剩下的工作:
{% extends "base.html" %}
{% load i18n %}
{% block title %}{{ title }}{% endblock title %}
{% block content %}
{% autoescape off %}
<h2>{{ title|slice:":-3" }}</h2>
<table class="info_table">
<tr>
<th><img src="{{ MEDIA_URL }}img/failure.png"></th>
<td style="font-weight: bold">{{ error|title }}<br /><a href="{% url "custom_profile" %}">{% trans "back to profile settings"|title %} »»</a></td>
</tr>
</table>
{% endautoescape %}
{% endblock content %}