我想翻译一个django表单。如何翻译字段标签?
我试过了field.label=ugettext_lazy(field.label)
,但标签没有在django.po文件中填充
我可能已经把ugettext_lazy的概念弄错了,我想
简单来说,我希望将字段标签放入django.po文件中。
使用ugettext
和{% trans %}
标记完成的其他翻译效果很好
我已经能够通过设置verbose_name
来根据模型翻译字段,但当我尝试使用表单字段时,我得到TypeError
答案 0 :(得分:6)
我会准确地说:
from django.utils.translation import ugettext_lazy as _
...
first_name = forms.CharField(label=_(u'First name'))
它可能会引发错误,因为表单无法很好地管理代理对象 _(u'First name'),渲染中的结果是void形式。 我在python2.x和django 1.3 / 1.4
上测试了这个原因是由于最初由不同的o.s.创建的编译的.po消息。和库(它可以依赖于python,django,os。库版本)。 如果出现此错误,则必须重新创建本地化消息。
答案 1 :(得分:5)
class ExampleForm(forms.Form):
f1 = forms.CharField(label= ugettext_lazy('field label'))
答案 2 :(得分:5)
from django.utils.translation import ugettext_lazy as _
first_name = forms.CharField(label=_(u'First name'))