0

Я хочу перевести уведомления, которые пользователи получают в моем приложении (Django 1.8). Эти уведомления сохраняются в базе данных, и все имеют стандартные тексты, но они включают в себя имя человека, что уведомление относится, например, один может быть:Django i18n: перевод значений базы данных, где одно слово - это имя, которое может быть изменено.

«Джон послал вам сообщение»

поэтому часть «отправила вам сообщение» будет одинаковой каждый раз, но имя в начале может измениться на что угодно и не нужно переводить.

Для других переменных базы данных и некоторых уведомлений, которые имеют несколько стандартных значений, я просто делаю {% trans notification.message %} и вручную добавляю msgid и msgstr к файлу django.po, но поскольку у этого есть имя в начале, я знаю, что делать. Предложения?

ответ

1

Если тексты являются «стандартными» текстами, то вы, вероятно, не должны хранить их избыточно в базе данных с изменением имен (я не верю, что вы пытаетесь сделать это возможно). Вы, вероятно, лучше со свойством или функцией модели:

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

Таким образом, makemessages будет работать должным образом для ваших переводов.

+0

имеет общий смысл. благодаря! – dietbacon