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}
Что имеет недостаток в наличии двух строк перевода