Django перевести приветствие

Предположим, что у нас есть определения человека, например:

{
  "first_name": "Peter",
  "last_name": "Peterson",
  "academic_title": "Dr",
  "salutation": "mr"
}

В английском языке приветствие должно звучать так:

def person.display_name():
   prefix = person.academic_title if person.academic_title else person.salutation      
   return _(Hello "%(prefix)s {first_name} {last_name}") % {"prefix": prefix}

# Dr. Peter Peterson #if the person has a title
# Mr. Peter Peterson #if the user has no title

В немецком языке это определение не работает, так как оно всегда

prefix = f"{person.salutation} {person.academic_title}      

Есть ли способ пометить его для перевода, кроме

def person.display_name(lang):
   if lang == 'en':
       prefix = person.academic_title if person.academic_title else person.salutation      
   elif lang == 'de':   
      prefix = f"{person.salutation} {person.academic_title}

   return _("Hello %(prefix)s {first_name} {last_name}") % {"prefix": prefix}

Что имеет недостаток в наличии двух строк перевода

Вернуться на верх