django- / wagtail-modeltranslation: как проверить, существует ли перевод - PullRequest
0 голосов
/ 26 марта 2019

На многоязычном сайте, использующем wagtail-modeltranslation (который основан на django-modeltranslation ) Я хочу отображать мой переключатель языка только при наличии соответствующих переводов.

Но я не знаю "недорогого" (например, проверка всех полей перевода вручную) способа проверки на соответствующий перевод.

Мой текущий (на основе шаблонов) переключатель языка:

{% load i18n wagtail_modeltranslation %}

{% get_current_language as CURRENT_LANGUAGE_CODE %}
{% get_available_languages_wmt as languages %}

<div class="language">
{% for language in languages %}
  {% if CURRENT_LANGUAGE_CODE == language %}
    {{ language }}
  {% else %}
    <a href="{% change_lang language %}">
      {{ language }}
    </a>
  {% endif %}
  {% if not forloop.last %} / {% endif %}
{% endfor %}
</div>

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

Что-то вроде (! Псевдокод is_translated!):

{% for language in languages %}
  {% if CURRENT_LANGUAGE_CODE == language %}
    {{ language }}
  {% elif language.is_translated %}
    <a href="{% change_lang language %}">
      {{ language }}
    </a>
  {% endif %}
{% endfor %}

Кто-нибудь знает о возможности, как этого добиться?

Я не привязан к своему шаблону, включая приведенный выше фрагмент, он также может быть реализован как TemplateTag или свойство модели или как угодно.

Существует необъявленный PR , который кажется , чтобы удовлетворить эту потребность.

...