I've worked up this code with big help from @carlcs.
I want to set up a class
if current locale is turned on.
- Firstly, I tried the easiest way by putting
{{ current ? 'my-class' }}
intoli
. - Secondly, I tried to set variable for current locale.
I've end up by struggling to answer my question, Why all locales are turned on?
{# Language switcher #}
{% set locale = craft.i18n.getCurrentLocale() %}
{# Configure site locales #}
{% set locales = ['en', 'en_gb'] %}
{# Check if locale equals the requested page locale #}
{% if locale == craft.locale %}
{% set current = true %}
{% else %}
{% set current = false %}
{% endif %}
{# Give locales class or text #}
{% if locale == 'en' %}
{% set territoryCode = 'world' %}
{% set active = 'uk-active' %}
{% endif %}
{% if locale == 'en_gb' %}
{% set territoryCode = 'uk' %}
{% set active = 'uk-active' %}
{% endif %}
{# This is the current locale #}
<span>{{ territoryCode|upper }}</span>
<ul>
{% set locales = ['en_001', 'en_gb'] %}
{% for locale in locales %}
{% set subTags = locale|split('_') %}
{% set territory = subTags|length > 1 ?craft.i18n.getLocaleData(craft.locale).getTerritory(subTags|last) : '' %}
{% set language = craft.i18n.getLocaleById(locale).name %}
{% set language = language ?: craft.i18n.getLocaleById(subTags|first).name %}
{% set language = language|replace("/- #{territory}$/", '') %}
<li {% if active %}class="{{ active }}{% endif %}">
<a href="{{ craft.config.siteUrl[locale] ~ craft.request.getPath() }}">
{% if territory and language %}
{{ territory }} ({{ language }})
{% endif %}
</a>
</li>
{% endfor %}
</ul>
Update
<ul>
{% set locales = ['en_001', 'en_gb'] %}
{% for locale in locales %}
{# Check if locale equals the requested page locale #}
{% if locale == craft.locale %}
{% set current = true %}
{% else %}
{% set current = false %}
{% endif %}
{% set subTags = locale|split('_') %}
{% set territory = subTags|length > 1 ? craft.i18n.getLocaleData(craft.locale).getTerritory(subTags|last) : '' %}
{% set language = craft.i18n.getLocaleById(locale).name %}
{% set language = language ?: craft.i18n.getLocaleById(subTags|first).name %}
{% set language = language|replace("/- #{territory}$/", '') %}
<li class="{{ current is defined ? 'uk-active' }}">
<a href="{{ craft.config.siteUrl[locale] ~ craft.request.getPath() }}">
{% if territory and language %}
{{ territory }} ({{ language }})
{% endif %}
</a>
</li>
{% endfor %}
</ul>