+7 (987) 026-06-36
Написать в Telegram

Оставить заявку
stanislav_web

Многоязычность (мультиязычность) сайта на 1С-Битрикс

Многоязычность (мультиязычность) сайта на 1С-Битрикс Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

Многоязычность (мультиязычность) сайта на 1С-Битрикс

Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы

📅 25 июля 2024

👁‍🗨 249

🔥 0

Многоязычность (мультиязычность) сайта на 1С-Битрикс
1. Добавляем в конец файла /bitrix/php_interface/dbconn.php
<?
$arLang = array("ru", "en");
if (isset($_GET["user_lang"]) && in_array($_GET["user_lang"], $arLang))
{
	setcookie("USER_LANG", $_GET["user_lang"], time()+9999999, "/");
	define("LANGUAGE_ID", $_GET["user_lang"]);
}
elseif (isset($_COOKIE["USER_LANG"]) && in_array($_COOKIE["USER_LANG"], $arLang))
{
	define("LANGUAGE_ID", $_COOKIE["USER_LANG"]);
}
?>
2. Добавляем в файл /local/templates/s1/header.php
<html lang="<?= LANGUAGE_ID; ?>">
<a href="?user_lang=ru">RU</a>
<a href="?user_lang=en">ENG</a>
3. Добавляем компонентам условия, например компоненту меню
<? $APPLICATION->IncludeComponent(
	"bitrix:menu",
	"menu",
	array(
		"CHILD_MENU_TYPE" => LANGUAGE_ID == "en" ? "top_en" : "top_ru",
		"ROOT_MENU_TYPE" => LANGUAGE_ID == "en" ? "top_en" : "top_ru",
	),
	false
); ?>