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

时间:2016-03-26 16:26:29

标签: python django internationalization django-1.8 django-i18n

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

"约翰给你发了一条消息"

所以"已经给你发了一条消息"每一部分都是相同的,但是开头的名字可能会改变为任何东西,并且不需要翻译。

对于其他数据库变量和一些具有一些标准值的通知,我只是执行priv并手动将msgid和msgstr添加到django.po文件中,但由于此名称中包含一开始我不知道该怎么做。建议?

1 个答案:

答案 0 :(得分:1)

如果文本是标准的'如你所说的那样,你可能不应该将它们冗余地存储在数据库中,只需更改名称(我不相信你想要做的事情是可能的)。使用该模型的属性或功能可能会更好:

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

这样,makemessages将适用于您的翻译。