我想知道表格错误是否可以用中文或其他语言显示?
这就是我收到错误的方法
{{ form.field_name.errors }}
答案 0 :(得分:2)
如果您在视图中设置语言,错误消息将以所选语言打印:
from django.utils.translation import activate
activate('de')
答案 1 :(得分:2)
首先快速解释一下:
您的表单字段错误来自
raise forms.ValidationError(_("My Error Message"))
在Django中(也可能在其他地方),通常会看到:
from django.utils.translation import ugettext_lazy as _
这会将_
变为ugettext_lazy
,即上面的代码真的是:
raise forms.ValidationError(ugettext_lazy("My Error Message"))
但为了避免反复输入ugettext_lazy(或您的翻译功能),我们只需将其映射到_
。
回答您的问题
最后,回答您关于错误是否可以用中文(或其他语言)显示的问题。这取决于验证错误消息是否传递到django.utils.translation.ugettext。在上面的示例中,如果用户的LANGUAGE_CODE是zh-tw或zh-cn,则“我的错误消息”将以中文翻译显示。
下面是一个没有翻译的例子:
raise forms.ValidationError("My Error Message")
我强烈建议您阅读:https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/,因为您需要执行其他工作才能正确显示翻译。
答案 2 :(得分:0)
如果您在表单消息中使用_,则消息将显示在右侧lang中!但是如果你想检查模板中运行的lang,你可以使用:
{% if LANGUAGE_CODE != "ch" %}
{% endif %}
有关在表单中使用_的详情,请查看:https://docs.djangoproject.com/en/1.3/ref/forms/validation/#form-subclasses-and-modifying-field-errors