21

我想在 Django 1.3 应用程序中翻译包含 URL 的段落。

<p>
    First <a href="{% url edit-profile username=user.username %}">edit your profile</a>, please.
</p>

根据语言的不同,被<a>标签包围的文本肯定会发生变化。我怎样才能让翻译人员决定链接的位置?将整个事物包装在 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 作为字符串传递给模板?对于我认为非常常见的问题,这似乎是一个非常复杂的解决方案。

4

2 回答 2

50

使用{% blocktrans %}. Django 翻译文档包括这个例子:

{% url path.to.view arg arg2 as the_url %}
{% blocktrans %}
This is a URL: {{ the_url }}
{% endblocktrans %}
于 2012-06-30T02:45:27.203 回答
0

这对我有用:

{% url "app-name:name-of-view" as the_url %}
{% blocktrans %}
This is a URL: {{ the_url }}
{% endblocktrans %}
于 2021-06-10T12:13:14.713 回答