如何翻译django中的表单?

5 django translation django-forms

我想翻译一个django表单.如何翻译字段的标签?

我试过了field.label=ugettext_lazy(field.label),但标签没有在django.po文件中填充

我想,我可能已经把ugettext_lazy的概念弄错了

简单来说,我希望将字段标签放入django.po文件中.

使用ugettext{% trans %}标签完成的其他翻译效果很好

我已经能够通过设置基于模型翻译字段,verbose_name但是当我尝试表单字段时,我得到了一个TypeError

miz*_*zar 9

我会准确地说:

from django.utils.translation import ugettext_lazy as _
...
first_name = forms.CharField(label=_(u'First name'))
Run Code Online (Sandbox Code Playgroud)

它可能会引发错误,因为表单无法很好地管理像_(u'First name')这样的代理对象,并且渲染中的结果是一个void形式.我在python2.x和django 1.3/1.4上测试了这个

原因是由最初由不同的os和库创建的编译的.po消息(它可以依赖于python,django,os.库版本).出现此错误时,必须重新创建本地化消息.


Tom*_*gli 5

class ExampleForm(forms.Form):
    f1 = forms.CharField(label= ugettext_lazy('field label'))
Run Code Online (Sandbox Code Playgroud)


inl*_*ger 5

from django.utils.translation import ugettext_lazy as _
first_name = forms.CharField(label=_(u'First name'))
Run Code Online (Sandbox Code Playgroud)