django菜单 - 语言选择器 - 仅显示现有语言

时间:2014-10-15 14:15:58

标签: python django django-cms

我不确定之前是否有人遇到此问题:

我在django cms的管理员中有这些页面。

enter image description here

这些是我使用django cms创建的页面,语言来自settings.py

LANGUAGES

我使用{% language_chooser %},它会显示LANGUAGES中定义的所有语言。

我想要的是:如果我在home,在language_chooser中,只显示那些创建了页面的语言。在这种情况下,只有englishgermanespaniol

我怎样才能做到这一点?任何指导表示赞赏

已解决,但是......

我最终在language_chooser.html

中使用了这个
{% load i18n menu_tags %}

{% get_available_languages as languages %}

{% if languages|length > 1 %}
 {% for language in languages %}
     {% if language.1 in current_page.get_languages %}
     <li class="lang{% ifequal current_language language.0 %} active{% endifequal %}">
        <a href="{% page_language_url language.0 %}"
           title="{% trans "Change to language:" %} {{ language.1 }}">{{ language.0 }}</a>
     </li>
     {% endif %}
 {% endfor %}
{% endif %}

但这只出现在home页面,而不是其他页面,任何想法? BTW,其他页面是AppHooks

1 个答案:

答案 0 :(得分:0)

我刚刚这样做了:

{% if languages|length > 1 %}
 {% for language in languages %}
   <li class="lang{% ifequal current_language language.0 %} active{% endifequal %}">
    <a href="/./{{ language.0 }}/"
       title="{% trans "Change to language:" %} {{ language.1 }}">{{ language.0 }}</a>
   </li>
 {% endfor %}
{% endif %}

意思是..如果他们更改语言,只需将用户重定向到主页面。

<a href="/./{{ language.0 }}/" ..

并确保仅在settings.py中定义您的网站具有翻译的语言..