Forums / National / Russian / Тех. поддержка / Переключение языков сайта

Два вопроса по реализации

passer
#1 2020-02-23 23:33

Тема LABOR

Прошу знатоков помочь в решении моих вопросов.

Вопрос первый

В хедере поставил переключение языков на основе I18N:

<a href="{I18N_LANG_ROW_URL}" class="{I18N_LANG_ROW_CLASS}"><img src="images/flags/{I18N_LANG_ROW_FLAG}.png"/></a>

В шапке стоят две ссылки - два флага стран. При нажатии на флажок меняется соответствующий язык.

А как сделать, чтобы виден был только один флажок? То есть, чтобы флажок активного языка был скрыт?

Вопрос второй

Флажки переключения языков видны только постороннему посетителю. Стоит залогиться - панель переключения языков скрывается. Не знаю, нормально ли это? Хотелось бы, чтобы панель переключения языков была видимой для всех пользователей.

Заранее благодарю!

Kopusha
#2 2020-02-24 10:52

Самое просто что приходит в голову <!-- IF {PHP.i18n_locale} == 'en' -->

По второму вопросы нужен экстрасенс.

passer
#3 2020-02-24 12:28

Спасибо!

Второй вопрос снимаем: в самом деле, если чел залогинился на своем языке - ему в процессе пребывания на сайте другой язык не нужен. Наверно, этой логики придерживались создатели шаблона...

А вот по первому: никак не соображу, как должна выглядеть полная ссылка с Вашей добавкой.

Kopusha
#4 2020-02-24 12:41
В котонти в шаблонах прописываете какое либо условие - вариантов море - к примеру display:none в зависимости от выбранного языка.
<!-- IF {PHP.i18n_locale} == 'en' -->
если анг
<!-- ESLE -->
если не англ
<!-- ENDIF -->
 
Не зная вашего кода я хз как показать пример
 
passer
#5 2020-02-24 18:29

Прошу прощения за то, что по своей невнимательности (вот ведь блин-н, козёл!) невольно ввел Вас в заблуждение фразой о двух ссылках - флагах.

В действительности ВЕСЬ переключатель языков выглядит так:

                <!-- BEGIN: I18N_LANG -->
                    <!-- BEGIN: I18N_LANG_ROW -->
                    <a href="{I18N_LANG_ROW_URL}" class="{I18N_LANG_ROW_CLASS}"><img src="images/flags/{I18N_LANG_ROW_FLAG}.png"/></a>
                    <!-- END: I18N_LANG_ROW -->
                <!-- END: I18N_LANG -->

А в админке, в настройках  "Extentions/Content/Internationalization/Configuration" прописаны два языка.

И вот эта конструкция выводит в шапку два флага (если в админке прописать три языка - выводятся соотвественно три флага).

Вот и ломаю голову: как в эту конструкцию ввести указание типа display:none для активного языка!

Kopusha
#6 2020-02-24 23:05

За многоязычность отвечает плагин i18n. Так как все теги указанные вами для хидера смотрим в плагине i18n.header.php. Там есть еще теги, к примеру 'I18N_LANG_ROW_SELECTED' => $lc_selected.

Можно сделать
<!-- BEGIN: I18N_LANG -->
                    <!-- BEGIN: I18N_LANG_ROW -->
                    <a href="{I18N_LANG_ROW_URL}" class="{I18N_LANG_ROW_CLASS} " {
I18N_LANG_ROW_SELECTED}><img src="images/flags/{I18N_LANG_ROW_FLAG}.png"/></a>
                    <!-- END: I18N_LANG_ROW -->
                <!-- END: I18N_LANG -->

к примеру. Получим что то вроде 
<li><a href="/ru/" rel="nofollow" selected=" selected">ru</a></li> только в той локале в которой мы сейчас. Не 100% рабочий код, пробуйте., важно понять принцип формирования всего этого, и искать в нужным местах самому, иначе каждый шаг бцдет долгим.

passer
#7 2020-02-25 07:36

Большое спасибо Вам за старание мне помочь!

Буду пробовать. получится - отпишусь...