Гендерная проблема в переводе django i18n

Мне нужно решить проблему перевода по полу, и Django, похоже, не выполнил контексты gettext...

Мне нужно перевести с английского:

<p>Welcome, {{ username }}</p>

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

<p>Bienvenido, {{ username }}</p>

и если есть женщина:

<p>Bienvenida, {{ username }}</p>

Обратите внимание на разницу (bienvenido/bienvenida)

Есть ли способ сделать это?

Спасибо,

Н.

Ответ 1

Django - это просто Python, поэтому вы можете напрямую использовать привязки gettext Python, если вам нужно, я не вижу причин, по которым вы не могли бы написать тег {% gender_trans [gender]%}.

Ответ 2

Способ, которым я решил это:

{% if profile.male %}
{% blocktrans with profile.name as male %}Welcome, {{ male }}{% endblocktrans %}
{% else %}
{% blocktrans with profile.name as female %}Welcome, {{ female }}{% endblocktrans %}
{% endif %}

Ответ 3

Ожидая, что контексты будут поддерживаться, простой альтернативой может быть небольшое изменение испанского предложения и использование приветствия, которое не меняется в зависимости от пола человека. Например, вы можете использовать "hola" или какой-либо другой эквивалентный термин.