Django 1.6 Block Trans 不使用变量
Django 1.6 Block Trans not working with variable
我正在尝试翻译一段带有块 trans 标签的文本,如下所示:
{% url 'mymodel.view.results' result_id as results_url %}
{% blocktrans %}See your results here: <a href='{{results_url}}'>Results</a>{% endblocktrans %}
区块 trans 中的文本没有被翻译,即使它周围的所有文本都被翻译了。翻译未标记为模糊,在 .po 文件中,文本如下所示:
#: templates/results.html:10
4
#, python-format
msgid ""
"See your results here: "
"<a href='%(results_url)s'>Results</a>"
msgstr ""
"Para su conveniencia <a "
"href='%(results_url)s'>Resultados </a>"
翻译的显示方式有什么问题吗?我注意到它在块传输中显示 %()s 而不是 {{}}。但我假设这是 django 在 po 文件中将其标记为变量的方式。我该怎么做才能使翻译适用于其中包含变量的块传输。
您必须将变量传递给 blocktrans
才能在其中使用它们。没有那个 django 无法翻译这句话,因为渲染时它看起来像这样:
sentence = _('See your results here: <a href='%(results_url)s'>Results</a>" % {'results_url': results_url})
换句话说,每次呈现模板时,翻译引擎都会获取已填充 results_url 的字符串。
您必须使其等同于该代码:
sentence = _('See your results here: <a href='%(results_url)s'>Results</a>") % {'results_url': results_url}
为此,只需将您的变量传递给 blocktrans:
{% blocktrans with results_url=results_url %}See your results here: <a href='{{results_url}}'>Results</a>{% endblocktrans %}
我正在尝试翻译一段带有块 trans 标签的文本,如下所示:
{% url 'mymodel.view.results' result_id as results_url %}
{% blocktrans %}See your results here: <a href='{{results_url}}'>Results</a>{% endblocktrans %}
区块 trans 中的文本没有被翻译,即使它周围的所有文本都被翻译了。翻译未标记为模糊,在 .po 文件中,文本如下所示:
#: templates/results.html:10
4
#, python-format
msgid ""
"See your results here: "
"<a href='%(results_url)s'>Results</a>"
msgstr ""
"Para su conveniencia <a "
"href='%(results_url)s'>Resultados </a>"
翻译的显示方式有什么问题吗?我注意到它在块传输中显示 %()s 而不是 {{}}。但我假设这是 django 在 po 文件中将其标记为变量的方式。我该怎么做才能使翻译适用于其中包含变量的块传输。
您必须将变量传递给 blocktrans
才能在其中使用它们。没有那个 django 无法翻译这句话,因为渲染时它看起来像这样:
sentence = _('See your results here: <a href='%(results_url)s'>Results</a>" % {'results_url': results_url})
换句话说,每次呈现模板时,翻译引擎都会获取已填充 results_url 的字符串。
您必须使其等同于该代码:
sentence = _('See your results here: <a href='%(results_url)s'>Results</a>") % {'results_url': results_url}
为此,只需将您的变量传递给 blocktrans:
{% blocktrans with results_url=results_url %}See your results here: <a href='{{results_url}}'>Results</a>{% endblocktrans %}