【问题标题】:Django form and internationalisation - wrong language for a labelDjango 表单和国际化 - 标签的语言错误
【发布时间】:2018-06-05 16:46:55
【问题描述】:

在我的 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”标签语言错误。

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

有人想把我的标签也用正确的语言吗?

谢谢

【问题讨论】:

    标签: django forms translation


    【解决方案1】:

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

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

    【讨论】:

    • 这就是问题所在。当我删除“capitalize()”时,我的代码工作正常。非常感谢!
    【解决方案2】:

    您正在使用 '_' 引用 ugettext_lazy ,您的导入语句是问题所在..

    from django.utils.translation import ugettext_lazy
    

    应该是

    from django.utils.translation import ugettext_lazy as _
    

    【讨论】:

    • 复制文本时出错。在我的原始文件中,我有“ugettext_lazy as _”。我编辑了我的帖子。
    猜你喜欢
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多