我为Django编写了一个模板标签,可以像这样使用:
因此,基本上,该标签的实现看起来大致如下:
很不幸,我们在使用
我在Django的
{% foo bar="foobar"%}
。该标签获取bar
参数值,对其使用ugettext
进行翻译,并用翻译后的字符串渲染标签。因此,基本上,该标签的实现看起来大致如下:
@register.simple_tag
def foo(bar):
return "something something " + ugettext(bar)
很不幸,我们在使用
ugettext
与变量时,这意味着Django不会标记我们的bar
参数值进行翻译。我在Django的
makemessages
以及{% trans %}
代码中寻找解决方案,但没有找到任何清楚说明如何完成"标记翻译"的方法。那么,我的问题是:要怎么做?如何强制Django认为我的标签的bar
参数值应该被翻译,以便在执行manage.py makemessages
后出现在.po(t)文件中?
{% trans "sth" as var %}
然后{% foo bar=var %}
的东西。我的问题是如何避免它,如果可能的话。 - m4txmakemessages
创建的文件,但我认为那样更糟糕。 - Saysebar
参数的值始终为字符串字面量。 - m4tx