Как получить текущую локаль в апострофе в файле nunjucks, используя апостроф-рабочий процесс - PullRequest
1 голос
/ 28 февраля 2020

Я только начинаю с apostrophcms и apostrophe-workflow, извините, если это выглядит очевидным.
В настоящее время я пытаюсь добавить в заголовок раскрывающееся меню языка. Я понимаю, что все языки присутствуют в раскрывающемся списке, но я пытаюсь показать текущий язык и скрыть другие в раскрывающемся списке. Код может быть более явным:

 

           {% для локализации в apos .workflow .localizations ()%} {% if localization.name! = CURRENT_LOCALE_I_CANT_FIND%}  {{localization.label}}  {% endif%} {% endfor%}   

Я надеюсь, что вы можете помочь и заранее поблагодарить вас.

1 Ответ

1 голос
/ 28 февраля 2020

Вы можете получить активный язык с помощью apos.workflow.lang() Это упоминается в README в отношении атрибута HTML lang, но его также можно использовать для установки активного элемента в переключателе.

Я недавно использовал это в проекте. Как и у вас, ul превращается в раскрывающийся селектор с помощью CSS и JS, а button открывает его, но также отображает активный язык. Первое l oop и условное выражение используются для получения читаемой метки для активного языка, поскольку lang() возвращает код языка / языка.

{% 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>
...