如何在django cms中隐藏语言选择器中的未翻译页面?

时间:2014-02-25 19:36:39

标签: django internationalization django-cms

我想在django cms中隐藏语言选择器中的未翻译页面,以便语言选择器仅显示具有该页面翻译的语言。我怎么能这样做?

一个想法是扩展语言选择器模板,并检查语言是否有翻译页面,但我无法找到如何做到这一点。

2 个答案:

答案 0 :(得分:1)

在django cms 3.0中:

{% if page and language in page.languages %}

for 2.4:

您可能会运行自定义过滤器或模板标签::

if page.title_set.filter(language=lang).count():
    return True
else:
    return False

答案 1 :(得分:0)

实际上有一个漂亮的解决方案,首先发布在这里:https://groups.google.com/forum/#!topic/django-cms/z1rdf4C-ltQ

current_page.get_languages是解决方案。在我的Aldryn项目中使用djangocms 3。

includes/menu/langnav.html

{% load i18n menu_tags %}
{% if languages|length > 1 %}

{% comment %}
    This is awesome: https://groups.google.com/forum/#!topic/django-cms/z1rdf4C-ltQ
{% endcomment %}

<li class="lang">
    {% for language in current_page.get_languages %}
        <a class="{{ language }}{% ifequal current_language language %} selected{% endifequal %}"
           href="{% page_language_url language %}">{{ language }}</a>
    {% endfor %}
</li>
{% endif %}