【问题标题】:How to hide an untranslated page from language chooser in django cms?如何从 django cms 的语言选择器中隐藏未翻译的页面?
【发布时间】:2014-03-28 06:41:49
【问题描述】:

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

一个想法是扩展语言选择器模板并检查该语言是否有翻译页面,但我不知道该怎么做。

【问题讨论】:

  • 这个问题你解决了吗?

标签: django internationalization django-cms


【解决方案1】:

在 django cms 3.0 中:

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

对于 2.4:

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

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

【讨论】:

    【解决方案2】:

    其实有一个漂亮的解决方案,先贴在这里: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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多