django - 翻译 django 模板中的动态内容

标签 django django-templates

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

示例::

{{ text_to_be_translated.brand_name}}

上面的'text_to_be_translated.brand_name'是一个字典,有数千个像brand_name这样的键,它可以保存许多值,如'我的品牌','你的品牌'等

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

我尝试手动将文本的 msgids 放入 po 文件中

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

但它没有被翻译。

我做错了什么,请帮忙。

最佳答案

只是为了让某人受益而写。

我通过编写模板过滤器并使用“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 标签根据应用的过滤器计算翻译后的值并给出翻译后的输出。

希望有帮助。干杯!!!

关于django - 翻译 django 模板中的动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45011440/

相关文章:

python - 如何在 Django 的选择和单选输入中删除未选择的项目

python - 如何通过模板在 django 模型选择中添加选项

django - 如何将自定义控件添加到 django 管理站点?

python - Django注释查询的多值结果渲染到html表中

Django Photologue 上传照片示例

python - Django TemplateView 上下文未在模板上呈现

python - 如何使用 Python 字符串格式将表示美分的整数转换为表示美元的 float ?

python - 启动第一个 Django 项目报错

mysql - MySQL/Django 中的部分空日期

django - 在 Django 中对缓存和 django-channels channel 层使用相同的 Redis 存储是否可以?