翻译django模板中的动态内容

zte4gxcn  于 2022-11-18  发布在  Go
关注(0)|答案(1)|浏览(180)

我有一个用django中的一个视图呈现的html模板,这个模板有一些视图发送的动态值。
范例:

{{ text_to_be_translated.brand_name}}

上面的“text_to_be_translated.brand_name”是一个字典,它有上千个像brand_name这样的关键字,可以包含许多值,如“my brand”、“your brand”等
我无法翻译上述动态文本。
我尝试手动将文本的msgid放入po文件中

msgid "my brand"
msgstr "カードインフォメーション"

但它没有被翻译。
我做错了什么,请帮帮忙。

wqsoz72f

wqsoz72f1#

只是为了让别人受益而写作。
我通过编写一个模板过滤器并使用“django with tag”强制翻译模板中的文本来解决这个问题

在模板.html中

{% with card_details_trans=registration_card_details.card_details|template_trans %}
    {% trans card_details_trans %}
{% endwith %}

在模板标记中

@register.filter(name='template_trans')
def template_trans(text):
    try:
        return ugettext(text)
    except:
        return text

逻辑

  1. Django不知道动态变量的内容需要被翻译。
    1.* with* 标记根据应用的过滤器计算转换后的值,并给出转换后的输出。
    希望对你有帮助,干杯!

相关问题