我的数据库中有一个Product
CharField为name
的模型。在页面上有一个用于渲染Product
模型的实例的模板。在视图中,我将传递到模板product
变量,该变量是Product
模型的过滤实例。在模板中,我需要根据当前正在渲染的{{ product.name }}
个实例页面来转换变量Product
。
阅读Django文档后:
要翻译模板表达式(例如,访问对象属性或使用模板过滤器),您需要将表达式绑定到局部变量以在翻译块中使用。
我决定使用下一个:
{% blocktrans with product_name=product.name%}{{product_name}}{% endblocktrans %}
在django.po文件中我得到:
msgid "%(product_name)s"
你能告诉我,我走对了吗?
如果这种方法只允许为一个name
提供翻译,那么其他product
实例的product.name
属性应该如何翻译呢?
感谢您的关注!
答案 0 :(得分:1)
那不是这样的。
生成.po
文件时,它不会通过数据库来获取所有产品并为其名称创建msgid
。
您可以使用django的内置翻译机制来翻译静态内容。
对于您要完成的工作,我认为django-modeltranslation之类的内容很合适。