Question: I want to know whether form errors can be shown in Chinese or other languages?

This is how I am getting my errors 

```
{{ form.field_name.errors }}

```

Answer: 
**Some quick explanation first:**

Your form field errors come from

```
raise forms.ValidationError(_("My Error Message"))

```

In Django (possibly in other places also), it is common to see this:

```
from django.utils.translation import ugettext_lazy as _

```

This turns the `_` into a `ugettext_lazy`, i.e. the code above is REALLY:

```
raise forms.ValidationError(ugettext_lazy("My Error Message"))

```

but to avoid typing ugettext\_lazy (or your translation function) over and over again, we simply map it to `_`.

**Answer to your question**

Finally, to answer your question on whether the errors can be shown in Chinese (or other languages). This depends on whether the validation error message is passed into django.utils.translation.ugettext. In the example above, the "My Error Message" would be displayed in Chinese translated if the user's LANGUAGE\_CODE is zh-tw or zh-cn. 

Below is an example where there would be no translation:

```
raise forms.ValidationError("My Error Message")

```

I highly recommend reading: <https://docs.djangoproject.com/en/1.3/topics/i18n/internationalization/> as there is additional work you will need to do to get the translations to show up properly.
if you use \_ in your form messages the message will be displayed in the right lang! but if you want to check which lang is running in the template you can use:

```
{% if LANGUAGE_CODE != "ch" %}

{% endif %}

```

for more info about using \_ in your form, check this out: <https://docs.djangoproject.com/en/1.3/ref/forms/validation/#form-subclasses-and-modifying-field-errors>