Django 模板:用变量翻译 include

7 投票
2 回答
2632 浏览
提问于 2025-04-18 13:53

我有一个模板,可以传入一个文本变量。我想把这个模板放到另一个模板里,但想用翻译后的文本作为变量。该怎么做呢?

我想要的效果是这样的:

{% include "a_dir/stuff.html" with text={% trans "Load more promotions" %} %}

我考虑过自己写一个模板标签,来执行一个 ugettext 的功能,但在创建 .po 文件时,文本变量不会自动被识别。

我不想在 view 里做这个工作,因为我们所有的翻译都是在模板中进行的。

2 个回答

3

一种更简洁的方法是

{% include 'a_dir/stuff.html' with text=_("Load more promotions") %}

这个方法也可以很好地与变量一起使用

8

你可以用 as 这个语法把翻译后的字符串放到一个变量里。比如:

{% trans "Load more promotions" as promotions %}
{% include "a_dir/stuff.html" with text=promotions %}

想了解更多细节,可以查看 文档

撰写回答