如何使用 apostrophe-workflow 在 nunjucks 文件中获取 apostrophecms 中的当前语言环境

How to get the current locale in apostrophecms in a nunjucks file using apostrophe-workflow

我刚开始使用 apostrophcms,apostrophe-workflow 很抱歉,如果这看起来很明显。
我目前正在尝试在 header 中添加语言下拉菜单。我以所有区域设置都出现在下拉列表中的方式工作,但我尝试做的是显示当前语言,而其他语言隐藏在下拉列表中,代码可能更明确:

 <ul class="navbar-nav nav-flex-icons">

          <a class="nav-link dropdown-item" href="#" id="lang-dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <pre>{{ apos.i18n | dump}}</pre>
            {# I WANT THE CURRENT LANGUAGE HERE but I don't know where to find it #}
          </a>

          <div class="dropdown-menu" aria-labelledby="lang-dropdown">
            {% for localization in apos
              .workflow
              .localizations() %}
                  {% if localization.name != CURRENT_LOCALE_I_CANT_FIND %}
                    <a class="dropdown-item" href="{{ localization._url | build({ workflowLocale: localization.workflowLocale }) }}">
                      <span class="flag-icon flag-icon-{{localization.workflowLocale.split('-')[1] | lower}}"></span>
                      {{ localization.label }}
                    </a>
                  {% endif %}
            {% endfor %}
          </div>
        </ul>

希望大家多多帮助,先谢谢了。

你可以通过 apos.workflow.lang() 获取活动语言 这在与 HTML lang 属性相关的 README 中提到,但它可用于设置活动项目切换器也是如此。

我最近在一个项目中使用了这个。与您的类似,ul 使用 CSS 和 JS 变成了下拉选择器,button 将其打开,但也显示活动语言。第一个循环和条件用于获取活动语言的可读标签,因为 lang() returns language/locale 代码。

{% set lang = '' %}
{% set activeLocale = apos.workflow.lang() %}
{% for l in apos.workflow.localizations() %}
  {% if l.workflowLocale === activeLocale %}
    {% set lang = l.label %}
  {% endif %}
{% endfor %}
<button type="button" data-role="lang-toggle">
  <span>{{ lang }}</span>
</button>
<ul data-role="lang-list">
  {% for locale in apos.workflow.localizations() %}
    {% if locale.workflowLocale !== activeLocale %}
      <li>
        <a href="{{ locale._url | build({ workflowLocale: locale.workflowLocale }) }}" >{{ locale.label }}</a>
      </li>
    {% endif %}
  {% endfor %}
</ul>