【问题标题】:How to mark string for translation in jinja2 using trans blocks如何使用 trans 块在 jinja2 中标记要翻译的字符串
【发布时间】:2015-01-26 22:15:09
【问题描述】:

我正在使用 django 和 jinja2,并且在我的一个 html 页面中有类似的内容

<p><strong>Q. {{ _("What products will you accept?") }}</strong></p>

<p class="style3"><strong>A: </strong>{% trans myurl=request.url('start') %}A list of qualifying devices is available once you start your trade-in estimate. <a href= {{myurl}}>Click here</a> to learn what your old device is worth.</p>{% endtrans %}

当我运行django-admin.py makemessages 时,“你会接受哪些产品?”是唯一被处理的字符串。我认为用 {% trans %} 块包装一个字符串也会标记该字符串还是这是一个错误的陈述?

标记第二个字符串的最佳技术是什么(由于request.url 变量,这很棘手)

我已尝试{{ _("A list of qualifying devices is available once you start your trade-in estimate. &lt;a href= {{ request.url('start') }}&gt;Click here&lt;/a&gt; to learn what your old device is worth.")|safe }},但链接无法正常工作。

【问题讨论】:

    标签: django internationalization jinja2


    【解决方案1】:

    要翻译这样的块,您需要使用the {% blocktrans %} template tag

    {% blocktrans with myurl=request.url('start') %}
    A list of qualifying devices is available once you start your trade-in estimate. <a href= {{myurl}}>Click here</a> to learn what your old device is worth.</p>
    {% endblocktrans %}
    

    但是,我不确定您是否可以像您正在尝试的那样在模板中调用类似的函数anywhere

    考虑改为将myurl 作为模板变量传入,然后使用更小的文本块。这增加了翻译的重用——尤其是对于像“单击此处”这样的小型通用块。

    {% blocktrans %}
        "A list of qualifying devices is available once you start your trade-in estimate."
    {% endblocktrans %}
    
    <a href= {{myurl}}>{% trans "Click here" %}</a>
        {% trans "to learn what your old device is worth." %}
    

    此外,在使用 HTML 和模板标签时,请尝试保持它们正确嵌套。例如,在您的代码中,您将拥有:

    <p>... {% blocktrans %}... </p>{% endblocktrans %}
    

    尝试像这样嵌套它们:

    <p>... {% blocktrans %}... {% endblocktrans %}</p>
    

    这对于可以自动缩进和折叠内容并有助于提高可读性的 IDE 尤其有用。

    【讨论】:

    • blocktrans是django的模板,我用的是jinja2
    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2022-07-21
    • 1970-01-01
    • 2017-01-26
    • 2010-09-30
    相关资源
    最近更新 更多