Django 形式和国际化 - 标签的错误语言

Django form and internationalisation - wrong language for a label

我在 Django 网站中显示表单时遇到问题。

我的 forms.py 表格:

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

class FiltreMonoForm(forms.Form):
    orth = forms.CharField(max_length=255, required=False, label=_('orth').capitalize())

我在views.py中的观点:

from .forms import FiltreMonoForm

def monollist(request, page=1):
    if request.GET:
        form = FiltreMonoForm(request.GET.copy())
    else:
        form = FiltreMonoForm()
    return render(request, 'lexics/listemonol.html', locals())

在我的模板中 listemonol.html:

{{ form.as_p }}

显示时,我的表单中的 "orth" 标签使用了错误的语言。

我在我的视图中添加了一个已翻译的变量来验证,当我在我的模板中显示它时,它的语言是正确的。

有人想用正确的语言制作我的标签吗?

谢谢

您正在使用“_”引用 ugettext_lazy,您的导入语句有问题..

from django.utils.translation import ugettext_lazy

应该是

from django.utils.translation import ugettext_lazy as _

我通常建议人们不要在要翻译的字符串上使用 .upper(),而是依赖 CSS(例如 text-transform: uppercase)。

处理翻译后的字符串总是给我带来很多问题。