Django i18n:翻译数据库值,其中一个词是一个可能会改变的名称

Django i18n: Translating database values where one word is a name that might change

我想翻译用户在我的应用程序 (Django 1.8) 中收到的通知。通知存储在数据库中,并且都有标准文本,但它们包括通知相关人员的姓名,例如,一个可能是:

"John has sent you a message"

因此 "has sent you a message" 部分每次都会相同,但开头的名称可能会更改为任何内容,不需要翻译。

对于其他数据库变量和一些具有一些标准值的通知,我只是在做 {% trans notification.message %} 并手动将 msgid 和 msgstr 添加到 django.po 文件中,但是由于这个有名字一开始我不知道该怎么办。建议?

如果文本是您所说的 'standard' 文本,您可能不应该将它们冗余地存储在数据库中而只是更改名称(我不相信您正在尝试做的事情是可能的).使用模型的 属性 或函数可能会更好:

@property
def message(self):
    return ugettext('{name} has sent you a message').format(name=self.foo.bar.name)

这样,makemessages 就可以正常进行翻译。