Django trans和url标签

mod*_*che 21 django internationalization

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

<p>
    First <a href="{% url edit-profile username=user.username %}">edit your profile</a>, please.
</p>
Run Code Online (Sandbox Code Playgroud)

根据语言,<a>标签包围的文本肯定会改变.如何让翻译人员决定链接位置?将整个事物包装成a {% trans %}会导致错误:

<p>{% trans "First <a href='{% url edit-profile username=user.username %}'>edit your profile</a>, please." %}</p>
Run Code Online (Sandbox Code Playgroud)

抛出的错误是TemplateSyntaxError: Searching for value. Unexpected end of string in column 64: trans "First <a href='{% url edit-profile username=user.username.

我应该怎么做呢?我是否必须在视图中确定URL,然后将该URL作为字符串传递给模板?对于我认为是一个非常普遍的问题,这似乎是一个非常复杂的解决方案.

Ned*_*der 48

使用{% blocktrans %}.在Django的翻译文档包括下面的例子:

{% url path.to.view arg arg2 as the_url %}
{% blocktrans %}
This is a URL: {{ the_url }}
{% endblocktrans %}
Run Code Online (Sandbox Code Playgroud)