URL скопирован в буфер обмена!

Как автоматически обновлять ссылки для смены языка на сайте Tilda?

С помощью этой модификации можно автоматически обновлять ссылки на языковые версии в блоке ME601A. Достаточно добавить языковые коды в меню и скрипт сам будет формировать корректные ссылки, перенаправляя пользователей на соответствующую языковую версию страницы. Дополнительно можно скрывать текущий язык из списка.

Модификация работает с включенным Autoscale в блоках
Модификация работает только со стандартным блоком
Номер модификации в библиотеке TiCode

Генератор кода

Класс для блока ME601A
Язык поумолчанию
Список языков на сайте
Текущий язык в списке
Войдите в аккаунт чтобы получить доступ к генератору кода
Этот генератор кода доступен только тем кто оплатил подписку
<!--TICODE--><!-- Библиотека модификаций для Тильда https://ticode.dev --> <!--TCD000--><script> document.addEventListener("DOMContentLoaded", function() { setTimeout(function() { const TCDlangMenu = document.querySelectorAll(".uc-lang .t966__menu-link"); if (!TCDlangMenu.length) return; const TCDAlloLang = "en, it".split(", "); const TCDDefLang = "ru"; const TCDMod = false; let Ti103 = window.location.pathname.replace(/\/$/, ""); let TCDAutoLang = TCDDefLang; let TCDLg = Ti103; const URLTiSegments = Ti103.split("/"); const URlTilastSegment = URLTiSegments[URLTiSegments.length - 1]; if (TCDAlloLang.includes(URlTilastSegment)) { TCDAutoLang = URlTilastSegment; URLTiSegments.pop(); TCDLg = URLTiSegments.join("/") || "/"; } TCDlangMenu.forEach(item => { let href = item.getAttribute("href").trim(); let langTildaCode = href.replace("/", ""); let newTiCodesHref = ""; if (TCDAlloLang.includes(langTildaCode)) { newTiCodesHref = TCDLg + "/" + langTildaCode; } else if (langTildaCode === TCDDefLang) { newTiCodesHref = TCDLg === "" ? "/" : TCDLg; } if (newTiCodesHref.charAt(0) !== "/") { newTiCodesHref = "/" + newTiCodesHref; } item.setAttribute("href", newTiCodesHref); }); if (TCDMod) { setTimeout(function() { TCDlangMenu.forEach(item => { let href = item.getAttribute("href").trim(); if (href === Ti103) { let rowTC = item.closest(".t966__menu-list-row"); if (rowTC) { rowTC.remove(); } } }); }, 300); } }, 100); }); </script> <style> .uc-lang .t966__menu-item-title { margin-top: 7px; } </style> <script> (function TCDupdType() { const TildahtmlBclok = document.currentScript; if (TildahtmlBclok) { const recordElement = TildahtmlBclok.closest('.r[data-record-type]'); if (recordElement) { recordElement.setAttribute('data-record-type', Math.random().toString(36).substring(2, 12)); }}})(); </script>
КОПИРОВАТЬ КОД
Эта модификация подходит для сайтов с несколькими языковыми версиями, где нужно настроить удобное переключение между языками без ручного проставления ссылок. Вместо создания отдельных меню для каждой страницы, достаточно добавить одно языковое меню и подключить скрипт, который автоматически сгенерирует корректные ссылки на языковые версии.

1. Создаем блок ME601A в хедере или футере и присваиваем класс uc-lang
Чтобы добавить класс блоку, заходим в настройки блока и сверху от id блока будет кнопка "Добавить CSS Class Name"

2. Указываем в меню ME601A список доступных языков (важно, чтобы для них уже были созданы страницы).
Например, если на сайте 3 языка русский (основной), английский и итальянский, то для главной страницы должны быть такие страницы:
https://site.com – RU (основной язык)
https://site.com/en – EN
https://site.com/it – IT
В блоке ME601A добавляем три пункта (Ru, En, It) и в ссылках пишем /ru, /en, /it.

3. В генераторе в поле "Язык по умолчанию" указываем язык который будет по умолчанию. Например, в нашем случае это RU. В ссылке мы указывали /ru, значит в генератор указываем ru

4 В поле "Список языков на сайте" указываем через запятую остальные языки кроме главного, в формате en, it.
Важно! названия должны совпадать ссылками которые указывали в контенте (изначально указывали /en и /it).

4. При необходимости указываем дополнительные настройки в генераторе:
Текущий язык в списке - если включить, то текущий язык будет скрыт из списка. Например, на странице https://site.com/contact/it язык It будет скрыт м меню ME601A.

5. Копируем код и вставляем HTM блок Т123. Блок с кодом размещаем под блоком ME601A. Ссылку открытия ME601A назначаем на любой элемент который должен открывать меню и публикуем все страницы.

Как работает скрипт: Скрипт проверяет URL и автоматически обновляет ссылки в ME601A. Если в адресе есть /en или /it, в меню создаются ссылки с этими языковыми кодами. Если языковой приставки нет, страница считается основной (ru), а в меню ME601A в пункте RU создается ссылка без приставки.
Made on
Tilda