Сначала несколько быстрых объяснений:
Ошибки вашего поля формы происходят из
raise forms.ValidationError(_("My Error Message"))
В Django (возможно, также и в других местах) часто можно увидетьthis:
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/, поскольку вам потребуется выполнить дополнительную работу, чтобы получитьпереводы отображаются правильно.