{%trans“string”as my_translated_string%}未在模板中呈现内容

时间:2013-02-10 13:11:33

标签: django internationalization django-templates translation

Django 1.4 doc说,您可以将翻译后的字符串转换为“vars”,以便在不同的地方使用,或者使用以下语法在模板标签或过滤器中用作参数:

{% trans "String" as my_translated_string %}

<h1>{{ my_translated_string }}</h1>

https://docs.djangoproject.com/en/1.4/topics/i18n/translation/#trans-template-tag

我是这样做的,但是定义的var永远不会呈现内容。在我的模板代码下面:

{% extends "default_layout.html" %}

{% load i18n %}

{% trans "My page title" as title %}

{% block meta_title %}{{ title }}{% endblock %}

{% block content %} 
    <h1>{{ title }}</h1>
{% endblock %}

当然,在这两种情况下,“标题”都呈现为空。

我错过了什么吗?

谢谢。

1 个答案:

答案 0 :(得分:8)

正如okm所说,您需要在要使用它的块中定义变量,并且该变量的范围也在块内:

{% extends "default_layout.html" %}
{% load i18n %}

{% block meta_title %}
{% trans "My page title" as title %}
{{ title }}
{% endblock %}

{% block content %}
{% trans "My page title" as title %}
    <h1>{{ title }}</h1>
{% endblock %}