翻译django模板中的动态内容

时间:2017-07-10 11:59:20

标签: django django-templates

我有一个由django中的视图呈现的html模板。模板具有视图发送的一些动态值。

实施例::

{{ text_to_be_translated.brand_name}}

上面的'text_to_be_translated.brand_name'是一个包含brand_name等数千个键的字典,它可以包含许多值,如“我的品牌”,“您的品牌”等

我无法翻译上述动态文字。

我尝试在po文件中手动输入msgids

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

但它没有被翻译。

我做错了什么,请帮忙。

1 个答案:

答案 0 :(得分:3)

只是写一些人可能会受益。

我通过编写模板过滤器并使用'django with tag'强制翻译模板中的文本来解决问题

在template.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不知道需要翻译动态变量的内容。
  2. with 标记计算应用过滤器的翻译值并提供翻译后的输出。
  3. 希望它有所帮助。干杯!!!