Django trans和url标签

时间:2012-06-30 02:39:01

标签: django internationalization

我想在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作为字符串传递给模板?对于我认为是一个非常普遍的问题,这似乎是一个非常复杂的解决方案。

2 个答案:

答案 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 %}