在使用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,看来 可以满足这一需求。