Django模板变量(模型实例)翻译

时间:2018-11-20 22:38:37

标签: django localization internationalization translation

我的数据库中有一个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属性应该如何翻译呢? 感谢您的关注!

1 个答案:

答案 0 :(得分:1)

那不是这样的。

生成.po文件时,它不会通过数据库来获取所有产品并为其名称创建msgid

您可以使用django的内置翻译机制来翻译静态内容。

对于您要完成的工作,我认为django-modeltranslation之类的内容很合适。