每当我跑:
$ ./manage.py makemessages -a -l es -e .py
它仅包含翻译,在locale/es/LC_MESSAGES/django.po
内我在 MY 应用中标记的字符串,但我想翻译django表单中标记为可翻译的字符串,如下所示:{{ 3}}
有没有办法让makemessages
翻译Django中的Forms
标签和验证错误消息而不必覆盖这些表单?
提前感谢您的帮助! :)
答案 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
将获取这些字符串,您将能够转换它们。