Вы можете получить активный язык с помощью 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>