Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2022, 21:12
Аватар для wemon
Интересующийся
Отправить личное сообщение для wemon Посмотреть профиль Найти все сообщения от wemon
 
Регистрация: 25.04.2017
Сообщений: 29

Смена языка на сайте
Здравствуйте.
Подскажите пожалуйста как сделать приключение языков.
Сейчас разбил по каталогам для разных языков в таком виде:
https://stock.ck.ua/ru/catalog/7451362/
https://stock.ck.ua/ua/catalog/7451362/

Но теперь не могу понять как реализовать переключении между /ru/ и /ua/ а оставшийся путь не менялся.
Подскажите пожалуйста как сделать ?
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2022, 21:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

смена языка ru/ua
wemon,
добавить на обе страницы.
<!DOCTYPE html>
<html >
<head ></head>
<body><select class="lang">
    <option value="ru">ru</option>
    <option value="ua">ua</option>
    </select>
</body>
<script>
    document.addEventListener("DOMContentLoaded", () => {
        const select = document.querySelector(".lang");
        let url = window.location.href, value;
        for ({
                value
            } of select.options) {
            if (value && url.includes(value, 19)) {
                select.value = value;
            }
        };
        select.addEventListener("change", _ => {
        if(!select.value) return;
        url = `https://stock.ck.ua/${select.value}/catalog/7451362/`;
        window.location.href = url;
        })
    });
</script>
</html>

Последний раз редактировалось рони, 21.01.2022 в 21:56.
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2022, 21:56
Аватар для wemon
Интересующийся
Отправить личное сообщение для wemon Посмотреть профиль Найти все сообщения от wemon
 
Регистрация: 25.04.2017
Сообщений: 29

Спасибо добавил. Но почему-то срабатывает один раз. Потом на этой же странице нельзя переключить обратно.
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2022, 22:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от wemon
Потом на этой же странице
скопируйте скрипт и селект по новой
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2022, 22:14
Аватар для wemon
Интересующийся
Отправить личное сообщение для wemon Посмотреть профиль Найти все сообщения от wemon
 
Регистрация: 25.04.2017
Сообщений: 29

Все работает. Можете также подсказать сейчас попробовал вставить в другой каталог https://stock.ck.ua/ua/catalog/7451363/ он перенаправляется /catalog/7451362/
Как сделать ${select.value}/catalog/7451362/`; что бы путь менялся в зависимости от текущей ссылки. То есть чтобы заменялась только та часть ссылки /ru/ и /ua/
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2022, 22:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

wemon,
пробуйте ...
<!DOCTYPE html>
<html >
<head ></head>
<body><select class="lang">
    <option value="ru">ru</option>
    <option value="ua">ua</option>
    </select>
</body>
<script>
document.addEventListener("DOMContentLoaded", () => {
        const select = document.querySelector(".lang");
        let url = window.location.href, value, reg;
        for ({ value } of select.options) {
            reg = new RegExp(`/${value}/`);
            if (value && reg.test(url)) {
                select.value = value;
                break;
            }
        };
        select.addEventListener("change", _ => {
        if(!select.value) return;
        url = url.replace(reg, `/${select.value}/`);
        window.location.href = url;
        })
    });
</script>
</html>

Последний раз редактировалось рони, 21.01.2022 в 23:17. Причина: break;
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2022, 22:43
Аватар для wemon
Интересующийся
Отправить личное сообщение для wemon Посмотреть профиль Найти все сообщения от wemon
 
Регистрация: 25.04.2017
Сообщений: 29

Последний вариант, срабатывает один раз на странице. Потом не переключает.
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2022, 23:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

wemon,
break забыл добавить. скопируйте снова #6
Ответить с цитированием
  #9 (permalink)  
Старый 21.01.2022, 23:39
Аватар для wemon
Интересующийся
Отправить личное сообщение для wemon Посмотреть профиль Найти все сообщения от wemon
 
Регистрация: 25.04.2017
Сообщений: 29

рони,
Спасибо Вам большое. Все работает.
Ответить с цитированием
  #10 (permalink)  
Старый 19.02.2022, 20:20
Аватар для wemon
Интересующийся
Отправить личное сообщение для wemon Посмотреть профиль Найти все сообщения от wemon
 
Регистрация: 25.04.2017
Сообщений: 29

рони,
Здравствуйте можете пожалуйста помочь с другим вариантом, только уже для ссылочного переключателя по аналогу как для select.
Сейчас сделал переключатель ссылками (УКР | РУС) для 2-х страниц, вот пример:
https://stock.ck.ua/ru/catalog/
Для разных страниц на которых находишься выводится по разному:
Если на Русской версии:
<ul class="lang-switcher">
<li class="lang-ua"><a href="/ua/catalog/">УКР</a></li>
<li class="lang-ru"><span>РУС</span></li>
</ul>

Если на Украинской версии:
<ul class="lang-switcher">
<li class="lang-ua"><span>УКР</span></li>
<li class="lang-ru"><a href="/ru/catalog/">РУС</a></li>
</ul>

Подскажите как реализовать это для всех страниц сайта?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск на сайте методом post konsd26 jQuery 13 18.11.2017 15:24
Динамическая смена фона на сайте karakym jQuery 9 28.06.2015 01:15
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Смена темы на сайте xunicorn jQuery 3 06.06.2012 10:34
смена CSSна сайте в зависимости от дня недели dac_60 Элементы интерфейса 29 12.12.2010 15:05