Как настроить кнопку для переключения языков на двух доменах в Битриксе?

Как переделать скрипт таким образом, чтобы он запоминал текущий URI, определял домен и осуществлял переход на другой домен (например, с test.ru на en.test.ru), все это при условии замены параметра `user_lang` в URL?
  • 29 июля 2024 г. 10:13
Ответы на вопрос 2
Для настройки кнопки для переключения языков на двух доменах в Битриксе, вам нужно создать два сайта в настройках модуля "Сайты" (раздел "Настройки" -> "Настройки продукта" -> "Сайты") и привязать к каждому из них соответствующий языковой файл.

Затем можно создать элемент управления на сайте (например, кнопку или ссылку), который будет переключать языковые версии сайта. На эту кнопку или ссылку можно назначить обработчик события, который будет менять параметр `user_lang` в URL и перераспределять пользователя на соответствующий домен. Для этого можно использовать следующий код:

```php
$lang = ($_REQUEST['user_lang'] == 'en') ? 'en' : 'ru'; // Получаем текущий выбранный язык
$domain = ($_SERVER['HTTP_HOST'] == 'test.ru') ? 'en.test.ru' : 'test.ru'; // Получаем текущий домен
$redirect_url = str_replace('user_lang=' . $_REQUEST['user_lang'], 'user_lang=' . $lang, $_SERVER['REQUEST_URI']); // Заменяем параметр user_lang в URL
header('Location: http://' . $domain . $redirect_url); // Осуществляем переход на другой домен с измененным параметром user_lang
```

Этот код будет определять текущий выбранный язык, текущий домен и производить переадресацию на другой домен с измененным параметром `user_lang` в URL. Поместите этот код в обработчик события, который будет вызываться при нажатии на кнопку или ссылку смены языка.

Для корректной работы этого кода убедитесь, что у вас настроены оба домена с соответствующими языковыми версиями сайта и что у вас настроена соответствующая локализация и языковые файлы для каждой версии.
есть готовый компонент bitrix:main.site.selector
Похожие вопросы