我想在Django 1.3应用程序中翻译包含URL的段落。
<p>
First <a href="{% url edit-profile username=user.username %}">edit your profile</a>, please.
</p>
根据语言的不同,<a>
标记所包围的文字肯定会发生变化。如何让翻译人员决定链接位置?将整个事物包裹在{% trans %}
中会导致错误:
<p>{% trans "First <a href='{% url edit-profile username=user.username %}'>edit your profile</a>, please." %}</p>
引发的错误是TemplateSyntaxError: Searching for value. Unexpected end of string in column 64: trans "First <a href='{% url edit-profile username=user.username
。
我应该怎么做呢?我是否必须在视图中确定URL,然后将该URL作为字符串传递给模板?对于我认为是一个非常普遍的问题,这似乎是一个非常复杂的解决方案。
答案 0 :(得分:46)
使用{% blocktrans %}
。 Django translation docs包括以下示例:
{% url path.to.view arg arg2 as the_url %}
{% blocktrans %}
This is a URL: {{ the_url }}
{% endblocktrans %}
答案 1 :(得分:0)
这对我有用:
{% url "app-name:name-of-view" as the_url %}
{% blocktrans %}
This is a URL: {{ the_url }}
{% endblocktrans %}