django- / wagtail-modeltranslation:如何测试翻译是否存在

时间:2019-03-26 16:55:11

标签: django wagtail django-modeltranslation

在使用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>

此语言切换器始终指向所有定义的语言-当前实例尚未翻译成这些语言之一(将显示备用语言的实例)。但是我只想链接到已经存在的翻译。

类似(!pseudocode 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或model属性或其他任何形式。

有一个unmerged PR,看来 可以满足这一需求。

0 个答案:

没有答案