В настройках модуля "Переключение языков" Joomla, есть три варианта отображения:
- Показывать языки выпадающим списком.
- Показывать флаги языков.
- Показывать полные, или короткие заголовки языков (только текст, без флагов).
При этом, если пользователь выбирает второй пункт "Показывать флаги языков", то третий пункт становится неактивным. То есть нельзя одновременно показывать флаги языков и рядом с ними выводить их заголовки.
Поэтому, чтобы получить результат как на картинке к этому материалу, нужно загрузить в папку images две иконки с именем ru-round-icon.png и uk-round-icon.png (здесь ru и uk – это начальные буквы языка, который будет установлен при переключении).
Затем нужно установить настройки модуля "Переключение языков" так как показано на картинке ниже.

И конечно же нужно изменить код определённого файла. Этот файл находится по следующему пути:
\ваш_сайт\modules\mod_languages\tmpl\default.php
Чтобы не вносить изменения в этот файл после каждого обновления CMS Joomla! рекомендую скопировать его сюда:
\ваш_сайт\templates\ваш_шаблон\html\mod_languages\default.php
Откройте файл \ваш_сайт\templates\ваш_шаблон\html\mod_languages\default.php и найдите в нём код:
<li class="lang-active">
<a aria-current="true" <?php echo $lbl; ?> href="/<?php echo htmlspecialchars_decode(htmlspecialchars($base, ENT_QUOTES, 'UTF-8'), ENT_NOQUOTES); ?>">
<?php if ($params->get('image', 1)) : ?>
<?php if ($language->image) : ?>
<?php echo HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', $language->title_native, ['title' => $language->title_native], true); ?>
<?php else : ?>
<span class="badge bg-secondary" title="<?php echo $language->title_native; ?>"><?php echo strtoupper($language->sef); ?></span>
<?php endif; ?>
<?php else : ?>
<?php echo $params->get('full_name', 1) ? $language->title_native : strtoupper($language->sef); ?>
<?php endif; ?>
</a>
</li>
Замените этот код на:
<li class="lang-active">
<a aria-current="true" <?php echo $lbl; ?> href="/<?php echo htmlspecialchars_decode(htmlspecialchars($base, ENT_QUOTES, 'UTF-8'), ENT_NOQUOTES); ?>">
<span class="flag-icon">
<img src="/images/<?php echo $language->sef; ?>-round-icon.png" alt="<?php echo $language->title_native; ?>" title="<?php echo $language->title_native; ?>">
</span>
<?php if ($params->get('full_name', 1)) : ?>
<span class="lang-name"><?php echo $language->title_native; ?></span>
<?php else : ?>
<span class="lang-name"><?php echo strtoupper($language->sef); ?></span>
<?php endif; ?>
</a>
</li> 