Итак, у нас есть сайт с Joomla 4. И мы используем стандартный шаблон Cassiopeia.
В настройках шаблона мы указали, что в качестве логотипа будет использоваться файл logo2.png, который мы положили в удобную нам папку на сайте.
Допустим у нас сайт сделан на двух языках: русском и английском.
Мы создаем два файла для логотипа на нужном языке и называем их: logo2-en-GB.png и logo2-ru-RU.png, соответственно.
Загружаем эти файлы в ту же папку, где лежит logo2.png.
Далее открываем файл: /templates/cassiopeia/index.php
Находим там строки:
// Logo file or site title param
if ($this->params->get('logoFile')) {
$logo = HTMLHelper::_('image', Uri::root(false) . htmlspecialchars($this->params->get('logoFile'), ENT_QUOTES), $sitename, ['loading' => 'eager', 'decoding' => 'async'], false, 0);
}
и меняем их на:
if ($this->params->get('logoFile')) {
$lang = JFactory::getLanguage();
$tag = $lang->getTag();
$logo = HTMLHelper::_('image', Uri::root(false) . str_replace(".png", "-".$tag.".png",htmlspecialchars($this->params->get('logoFile'), ENT_QUOTES)), $sitename, ['loading' => 'eager', 'decoding' => 'async'], false, 0);
}
Что мы сделали. Мы получаем контейнер языка, далее с помощью функции getTag() получаем тег языка, который выбран в данным момент на сайте. Он будет содержать значания: "ru-RU" или "en-GB".
Далее мы меняем путь к файлу логотиа, дописывая там перед расширением .png наш тег.
Пользуйтесь на здоровье!