如何在Django中翻译表单的标签和验证消息

时间:2013-02-11 17:00:18

标签: python django django-forms translation

每当我跑:

$ ./manage.py makemessages -a -l es -e .py

它仅包含翻译,在locale/es/LC_MESSAGES/django.po内我在 MY 应用中标记的字符串,但我想翻译django表单中标记为可翻译的字符串,如下所示:{{ 3}}

有没有办法让makemessages翻译Django中的Forms标签和验证错误消息而不必覆盖这些表单?

提前感谢您的帮助! :)

3 个答案:

答案 0 :(得分:4)

这些字符串的翻译已由django项目完成:https://github.com/django/django/blob/master/django/contrib/auth/locale/es_MX/LC_MESSAGES/django.po#L42

您无需自己翻译。

您应该已经在应用中翻译了它们。

答案 1 :(得分:1)

如果您使用的是ModelForm,请查看this answer以自定义标签和错误消息:

B

答案 2 :(得分:0)

如上所述,翻译随Django一起提供。但是,如果您希望或不符合您的意愿的语言翻译不完整,您可以随时复制字符串以翻译到您的项目,您的翻译将优先于Django附带的翻译。

要实现这一点,只需创建文件并包含这些字符串即可翻译。例如app/i18n.py

'''
Fake file to translate messages from django.contrib.auth.
'''

def _(text):
    return text

def fake():
    _(u'This username is already taken. Please choose another.')

现在makemessages将获取这些字符串,您将能够转换它们。