【问题标题】:how to display list of LANGUAGES in django template如何在 django 模板中显示语言列表
【发布时间】:2021-08-11 15:19:44
【问题描述】:

我试图在我的模板中显示语言标签列表,但它只显示我的 settings.py 语言的原始名称

LANGUAGES = (      
   ('en', _('english uk')),
   ('ar', _('arabic uae')),
   ('fa', _('Persian')),

)

我的模板

        <li class="nav-item dropdown">
          <a class="nav-link" data-toggle="dropdown" href="#">
            <i class="fas fa-globe"></i>
          </a>
          <div class="text-center dropdown-menu dropdown-menu-lg dropdown-menu-right">
            {% get_current_language as LANGUAGE_CODE %}
            {% get_available_languages as LANGUAGES %}
            {% get_language_info_list for LANGUAGES  as languages %}
            {% for lang in languages %}
                <a class="dropdown-item" href="/{{lang.code}}/"> {{lang.name_local}}</a>
            {% endfor %}    
                      
          </div>
        </li> 
我需要显示_('english uk'),值而不是原始名称 请问有可能吗?感谢您的帮助 ..

【问题讨论】:

  • 我认为最好将值作为字符串保存在单独的列表中。例如:('en', "_('english uk')")
  • 以及如何访问该元组值
  • 可能是this
  • 它不返回提供的值
  • 您可以添加与此模板相关的视图和/或模型吗?你想做什么?只需在模板中显示您可能使用的语言,还是您选择一个选项的表单?

标签: django internationalization django-i18n


【解决方案1】:

对于那些寻找从模板中遍历tuples的人

<div class="text-center dropdown-menu dropdown-menu-lg dropdown-menu-right">
     {% get_current_language as LANGUAGE_CODE %}
     {% get_available_languages as LANGUAGES %}
     {% for lang in LANGUAGES %}
          <a class="dropdown-item" href="/{{lang.0}}/"> {{lang.1}}</a>
      {% endfor %}    
</div>

【讨论】:

  • 这是一个可接受的解决方案,但我认为迭代语言信息的命名变体更容易记住和识别。
【解决方案2】:

你可以试试lang.namelang.name_translated。这些可能是您的答案,第一个以英语显示语言名称,第二个以当前活动语言显示。

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2020-11-07
    • 2021-11-02
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    相关资源
    最近更新 更多