Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Смена языка на сайте (https://javascript.ru/forum/misc/83605-smena-yazyka-na-sajjte.html)

рони 19.02.2022 21:30

wemon,
document.addEventListener('DOMContentLoaded', () => {
        const lang = document.querySelector(".lang-switcher");
        lang.addEventListener("click", event => {
            let href = event.target.getAttribute('href');
            if (href) {
                event.preventDefault();
                let value = href.match(/[^\/]+/g)[1];
                let url = window.location.href;
                let reg = new RegExp(`\/[^\/]+\/${value}\/`);
                url = url.replace(reg, href);
                window.location.href = url;
            }
        })
    });

wemon 19.02.2022 22:50

рони,
Подскажите что я сделал не так? Мне нужно убрать ссылки ?
<ul class="lang-switcher">
<li class="lang-ua"><a href="">УКР</a></li>
<li class="lang-ru"><span>РУС</span></li>
</ul>

wemon 19.02.2022 23:02

рони,
Ссылка получается сейчас ведет сама на себя без смены пути с /ru/ на /ua/

рони 19.02.2022 23:13

Цитата:

Сообщение от wemon
Мне нужно убрать ссылки ?

???код написан для поста #10

wemon 19.02.2022 23:27

рони,
Можете подсказать как это сделать для всех страниц сайта ?
Сейчас работает только на:
https://stock.ck.ua/ru/catalog/
https://stock.ck.ua/ua/catalog/
Для других страниц не получается переключать
https://stock.ck.ua/ua/delivery/
https://stock.ck.ua/ru/delivery/

https://stock.ck.ua/ua/contacts/
https://stock.ck.ua/ru/contacts/

рони 19.02.2022 23:31

Цитата:

Сообщение от wemon
Для других страниц не получается переключать

так сделайте ссылки на других страницах также.
на delivery ссылка delivery
на /contacts/ ссылка /contacts/

а не catalog/ везде

рони 19.02.2022 23:39

wemon,
с нормальными ссылками и скрипт не нужен будет.

wemon 19.02.2022 23:41

рони,
Цитата:

а не catalog/ везде
Это я сделал для пример с ссылками переключений страниц между собой чтобы объяснить что мне нужно.
Так как страниц будет много. Я в посте #10 я указал что нужно для всех страниц сайта. Может Вы меня не так поняли просто.
То есть сделать одно решение для переключения между /ru/ на /ua/ в середине ссылки.

wemon 19.02.2022 23:49

рони,
Да и меню вывел отдельно, выводится из отдельного файла чтобы в случае добавления каких то пунктов меню сделать в одном месте. И переключатель языка в нем. Так как будут страницы помимо меню нужно одно решение. Если делать ссылками то потом придётся исправлять везде где наделал их.

рони 19.02.2022 23:56

wemon,
если сложно сделать ссылки на сервере, то можно так ...
document.addEventListener('DOMContentLoaded', () => {
            let ru = document.querySelector(".lang-switcher .lang-ru a");
            let ua = document.querySelector(".lang-switcher .lang-ua a");
            let value = window.location.href.match(/[^\/]+/g).pop();
            let url = `/ru/${value}/`;
            if (ua) {
                url = `/ua/${value}/`;
                ua.setAttribute('href', url);
            }
            if (ru) ru.setAttribute('href', url);
        });


Часовой пояс GMT +3, время: 09:30.