Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

Ссылка скопирована
1 ответ

Помогите как можно реализовать смену языка кнопки в зависимости от языка функции которая задаёт перевод страницы?
Есть код JS который меняет тему страницы и при нажатии название кнопки в зависимости от темы, как ей задать язык перевода через функцию которая её осуществляет?

Кнопка которая осуществляет смену темы на сайте:

$('.theme-toggle').on('click', function () {     document.body.classList.toggle('light-theme');     if($(this).hasClass('light')) {         $(this).toggleClass('light dark').text('Dark theme');     } else if ($(this).hasClass('dark')) {         $(this).toggleClass('dark light').text('Light theme');     } });

$('.theme-toggle').on('click', function () { document.body.classList.toggle('light-theme'); if($(this).hasClass('light')) { $(this).toggleClass('light dark').text('Dark theme'); } else if ($(this).hasClass('dark')) { $(this).toggleClass('dark light').text('Light theme'); } });

И сама функция перевода языка страницы:

(function($) {  function Translate() {       this.init =  function(attribute, lang) {     this.attribute = attribute;     this.lang = lang;     };      this.process = function() {     let _self = this;     let xrhFile = new XMLHttpRequest();      xrhFile.open("GET", "./src/scripts/translations/"+this.lang+".json", true);     xrhFile.onreadystatechange = function () {         if(xrhFile.readyState === 4) {         if(xrhFile.status === 200 || xrhFile.status == 0) {             let LangObject = JSON.parse(xrhFile.responseText);             let allDom = document.getElementsByTagName("*");             for(let i =0; i < allDom.length; i++){             let elemment = allDom[i];             let key = elemment.getAttribute(_self.attribute);             if(key != null) {                 elemment.innerHTML = LangObject[key];             }             }         }         }     };     xrhFile.send();     }; }  function loadNewLang(new_lang) {     let translate = new Translate();     let currentLang = new_lang;     let attributeName = 'data-lang';     translate.init(attributeName, currentLang);     translate.process(); }  loadNewLang('en');  $('.language-switcher').on('click', function(button) {     button.preventDefault();     if($(this).hasClass('ru')) {         $(this).toggleClass('ru en').text('English');         loadNewLang('en');     } else if ($(this).hasClass('en')) {         $(this).toggleClass('en ru').text('Русский');         loadNewLang('ru');     } });  })(jQuery);

(function($) { function Translate() { this.init = function(attribute, lang) { this.attribute = attribute; this.lang = lang; }; this.process = function() { let _self = this; let xrhFile = new XMLHttpRequest(); xrhFile.open("GET", "./src/scripts/translations/"+this.lang+".json", true); xrhFile.onreadystatechange = function () { if(xrhFile.readyState === 4) { if(xrhFile.status === 200 || xrhFile.status == 0) { let LangObject = JSON.parse(xrhFile.responseText); let allDom = document.getElementsByTagName("*"); for(let i =0; i < allDom.length; i++){ let elemment = allDom[i]; let key = elemment.getAttribute(_self.attribute); if(key != null) { elemment.innerHTML = LangObject[key]; } } } } }; xrhFile.send(); }; } function loadNewLang(new_lang) { let translate = new Translate(); let currentLang = new_lang; let attributeName = 'data-lang'; translate.init(attributeName, currentLang); translate.process(); } loadNewLang('en'); $('.language-switcher').on('click', function(button) { button.preventDefault(); if($(this).hasClass('ru')) { $(this).toggleClass('ru en').text('English'); loadNewLang('en'); } else if ($(this).hasClass('en')) { $(this).toggleClass('en ru').text('Русский'); loadNewLang('ru'); } }); })(jQuery);

Дополнительно:

А в чем собственно проблема? Что не работает, какая ошибка, в каком месте?

  • YepBro, всё работает, у меня просто не получается реализовать перевод кнопки с темой на русский, чтобы при нажатии на кнопку перевода страницы она переводилась, я пытался сделать всё это через булев но не получилось

    Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

    Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

  • Никита Москвитин, has и toggle не нужны. Одна проверка на ключ . Если есть - false, если нет - true.
    В твоей конструкции ты пытаешься проверить наличие класса ru, который там будет всегда. Твои toggle будут этому способствовать.
  • Александр Васильев, простите я маленько туповат, можно как-то объяснить более понятней
  • Никита Москвитин, странно, что темы переключаются, а они переключаются?
  • Александр Васильев, да
  • Никита Москвитин,
    Вот что ответил ии
    Для jquery
    $("button").click(function() {   $(this).text(function(i, text) {     return text === "Показать всё" ? "Скрыть всё" : "Показать всё";   }) });

    $("button").click(function() { $(this).text(function(i, text) { return text === "Показать всё" ? "Скрыть всё" : "Показать всё"; }) });

    На js

    const btn = document.querySelector('.btn > span'); btn.addEventListener('click', function() {   btn.innerHTML =     (btn.innerHTML === 'Показать всё') ? 'Скрыть всё' : 'Показать всё'; });

    const btn = document.querySelector('.btn > span'); btn.addEventListener('click', function() { btn.innerHTML = (btn.innerHTML === 'Показать всё') ? 'Скрыть всё' : 'Показать всё'; });

  • Александр Васильев, маленько не то, как с jQuery можно менять значение атрибутов например data-lang который мне нужен
  • Никита Москвитин, в свитчере у тебя только классы
  • Александр Васильев, причём здесь классы, есть .attr и .data, только они у меня не работает когда я пытаюсь поменять значение data-lang="", через них
  • Никита Москвитин, а где твоя первоначальная разметка?
  • Александр Васильев, вот что у меня получилось, только он за место того что хранится в переменной, даёт мне само название переменной в кнопке,
    $('.theme-toggle').on('click', function () {     document.body.classList.toggle('light-theme');     var currentValue = $('.theme-toggle').attr('data-lang');     var newLang = currentValue === 'themeToggle-light' ? 'themeToggle-dark' : 'themeToggle-light';          $('.theme-toggle').attr('data-lang', newLang);     $('.theme-toggle').html(newLang); });

    $('.theme-toggle').on('click', function () { document.body.classList.toggle('light-theme'); var currentValue = $('.theme-toggle').attr('data-lang'); var newLang = currentValue === 'themeToggle-light' ? 'themeToggle-dark' : 'themeToggle-light'; $('.theme-toggle').attr('data-lang', newLang); $('.theme-toggle').html(newLang); });

  • Никита Москвитин, Давай отлаживать по шагам.

    1) По клику на кнопку у тебя нужный языковой json-файл подгружается?

    2) Каким образом у тебя сейчас выводится дефолтный текст?

    Хоть бы кусочек хтмл привел для понимания :) ну и json-файл тоже не помешало бы показать (хотя бы кусок) для понимания структуры

  • Никита Москвитин, $('.theme-toggle') внутри поменяй на $(this)
  • YepBro,
    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title data-lang="title"></title>      <link rel="stylesheet" href="src/css/global.css"> </head> <body>     <div class="layout">         <header>             <h1 class="heading" data-lang="heading" style="border-bottom: 3px solid var(--border-color);"></h1>         </header>         <main>             <div class="primaryBlock">                 <div class="secondaryBlock">                     <div class="descriptionBlock">                         <h2 class="descriptionTitle" data-lang="descriptionTitle"></h2>                         <p class="descriptionText" data-lang="descriptionText"></p>                     </div>                     <div class="newBlock">                         <div class="newBlockTitle">                             <h2 class="newTitle" data-lang="newTitle"></h2>                             <a href="#" class="moreTitle close">Open more.</a>                         </div>                         <p class="newText" data-lang="newText"></p>                         <p class="moreText" data-lang="moreText"></p>                     </div>                     <div class="progressBlock">                         <h2 class="progressTitle" data-lang="progressTitle"></h2>                         <p class="progressText" data-lang="progressText"></p>                         <ul class="progressList">                             <li class="git" data-lang="git"></li>                         </ul>                     </div>                 </div>                 <div class="information">                     <div class="aboutMe">                         <h2 class="aboutMeTitle" data-lang="aboutMeTitle"></h2>                         <p class="userName" data-lang="userName"></p>                         <p class="repo" data-lang="repo"></p>                     </div>                     <div class="social">                         <h2 class="socialTitle" data-lang="socialTitle"></h2>                         <ul class="socialList">                             <li class="email" data-lang="email"></li>                             <li class="gitHub" data-lang="gitHub"></li>                         </ul>                     </div>                 </div>             </div>         </main>         <footer>             <div class="function">                 <button class="language-switcher en">English</button>                 <button class="theme-toggle dark" data-lang="themeToggle-light">Light theme</button>             </div>         </footer>     </div>     <script defer src="src/scripts/jquery.min.js"></script>     <script type="module" src="src/scripts/index.js"></script> </body> </html>

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title data-lang="title"></title> <link rel="stylesheet" href="src/css/global.css"> </head> <body> <div class="layout"> <header> <h1 class="heading" data-lang="heading" style="border-bottom: 3px solid var(--border-color);"></h1> </header> <main> <div class="primaryBlock"> <div class="secondaryBlock"> <div class="descriptionBlock"> <h2 class="descriptionTitle" data-lang="descriptionTitle"></h2> <p class="descriptionText" data-lang="descriptionText"></p> </div> <div class="newBlock"> <div class="newBlockTitle"> <h2 class="newTitle" data-lang="newTitle"></h2> <a href="#" class="moreTitle close">Open more.</a> </div> <p class="newText" data-lang="newText"></p> <p class="moreText" data-lang="moreText"></p> </div> <div class="progressBlock"> <h2 class="progressTitle" data-lang="progressTitle"></h2> <p class="progressText" data-lang="progressText"></p> <ul class="progressList"> <li class="git" data-lang="git"></li> </ul> </div> </div> <div class="information"> <div class="aboutMe"> <h2 class="aboutMeTitle" data-lang="aboutMeTitle"></h2> <p class="userName" data-lang="userName"></p> <p class="repo" data-lang="repo"></p> </div> <div class="social"> <h2 class="socialTitle" data-lang="socialTitle"></h2> <ul class="socialList"> <li class="email" data-lang="email"></li> <li class="gitHub" data-lang="gitHub"></li> </ul> </div> </div> </div> </main> <footer> <div class="function"> <button class="language-switcher en">English</button> <button class="theme-toggle dark" data-lang="themeToggle-light">Light theme</button> </div> </footer> </div> <script defer src="src/scripts/jquery.min.js"></script> <script type="module" src="src/scripts/index.js"></script> </body> </html>

    en.json
    {
    "title": "Mini project",
    "heading": "Q: What is used?
    A: HTML, CSS and JS.",
    "descriptionTitle": "Description:",
    "descriptionText": "Hello everyone, I already wrote in the description that this is a mini project in which I am learning JS, TS and various frameworks for JS, improving my skills in HTML, SASS, CSS, etc.",
    "newTitle": "What's new:",
    "newText": "02/18/24: I tried to add a page translation using JS, as a result, if you followed the project, I didn’t succeed, but the next day I was able to add a page translation function using JS.",
    "moreText": "02/21/24: A theme change was added to the site when you click on a button in the footer, from dark to light.",
    "progressTitle": "Progress:",
    "progressText": "At this point I will write what new things I have learned so far.",
    "git": "Git — .git",
    "aboutMeTitle": "About me:",
    "userName": "Creator: Maatarashiii",
    "repo": "Repository: here.",
    "socialTitle": "Contact me:",
    "email": "Email — maatarashiii@gmail.com",
    "gitHub": "My GitHub profile: here.",
    "themeToggle-dark": "Dark theme",
    "themeToggle-light": "Light theme"
    }

  • YepBro, Александр Васильев, вот что по факту получилось
    $(document).ready(function() {     $.getJSON("./src/scripts/translations/en.json", function(data) {         let jsonData = data;                  $(document).ready(function() {             $('.theme-toggle').click(function() {                 document.body.classList.toggle('light-theme');                 let currentValue = $(this).attr('data-lang');                                  let newLang = currentValue === 'themeToggle-light' ? 'themeToggle-dark' : 'themeToggle-light';                 let newTitle = jsonData[newLang];                                  $(this).attr('data-lang', newLang);                 $(this).text(newTitle);             });         });     }); });

    $(document).ready(function() { $.getJSON("./src/scripts/translations/en.json", function(data) { let jsonData = data; $(document).ready(function() { $('.theme-toggle').click(function() { document.body.classList.toggle('light-theme'); let currentValue = $(this).attr('data-lang'); let newLang = currentValue === 'themeToggle-light' ? 'themeToggle-dark' : 'themeToggle-light'; let newTitle = jsonData[newLang]; $(this).attr('data-lang', newLang); $(this).text(newTitle); }); }); }); });

    Когда нажимаешь на кнопку смены темы название кнопки меняется, но когда нажимаешь на перевод то она один раз переводится на момент нажатия, после того как нажимаешь на кнопку она просто перестаёт переводится хотя перевод страницы по факту работает, как сделать так чтобы переводчик в реальном времени просматривал data-lang

  • Никита Москвитин, я думаю у тебя и второй раз перевод работает, просто ты всегда загружаешь файл с английским текстом. Посмотри вторую строку твоего кода.
  • YepBro, вот я и не понимаю, как загружать тот или иной файл в зависимости от языка страницы
  • .@maatarashiii, Для начала прекрати перемешивать кнопки и код переключения темы и переключения языков.

    1) Вернись к исходному коду, который был у тебя до внедрения переключения языков.

    2) Добавь рядом с кнопкой переключения темы кнопку переключения языков с классом lang-toggle и дата-атрибутом data-lang="ru"

    3) Добавь обработчик клику по кнопке смены языка ('.lang-toggle').on что бы он меня текст кнопки и значение data-lang. Только это. Как это сделаешь и убедишься, что все работает то пиши сюда. Подскажу что делать дальше

  • И сразу покажи html-код кнопки и js который напишешь.
  • YepBro, не понимаю как это сделать, легче просто сделать текст переключить тему xD

    Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

  • YepBro и Александр Васильев, вроде так работает, он меняет текст в зависимости от переменной, в которой перевод страницы на данный момент
    $('.theme-toggle').on('click', function () {     document.body.classList.toggle('light-theme');     if ($(this).hasClass('light')) {         $(this).toggleClass('light dark');         if (currentLanguage === 'en') {             $(this).text("Dark theme");         } else if (currentLanguage === 'ru') {             $(this).text("Темная тема");         }     } else if ($(this).hasClass('dark')) {         $(this).toggleClass('dark light');         if (currentLanguage === 'en') {             $(this).text("Light theme");         } else if (currentLanguage === 'ru') {             $(this).text("Светлая тема");         }     } });

    $('.theme-toggle').on('click', function () { document.body.classList.toggle('light-theme'); if ($(this).hasClass('light')) { $(this).toggleClass('light dark'); if (currentLanguage === 'en') { $(this).text("Dark theme"); } else if (currentLanguage === 'ru') { $(this).text("Темная тема"); } } else if ($(this).hasClass('dark')) { $(this).toggleClass('dark light'); if (currentLanguage === 'en') { $(this).text("Light theme"); } else if (currentLanguage === 'ru') { $(this).text("Светлая тема"); } } });

    Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

    Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

    Только чтобы она поменяла текст на тот который нужен, нужно нажать тогда она поменяет текст кнопки, вот теперь вопрос как этот исправить

  • Никита Москвитин, у тебя опять смешаны кнопки смены темы и смены языка. Так не должно быть. Смена темы это отдельный процесс, а смена языка отдельный. Они независимы друг от друга.

    И когда я просил показать кнопки, то имел ввиду не скриншоты, а html-код.

  • YepBro,
    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title data-lang="title"></title>      <link rel="stylesheet" href="src/css/global.css"> </head> <body>     <div class="layout">         <header>             <h1 class="heading" data-lang="heading" style="border-bottom: 3px solid var(--border-color);"></h1>         </header>         <main>             <div class="primaryBlock">                 <div class="secondaryBlock">                     <div class="descriptionBlock">                         <h2 class="descriptionTitle" data-lang="descriptionTitle"></h2>                         <p class="descriptionText" data-lang="descriptionText"></p>                     </div>                     <div class="newBlock">                         <div class="newBlockTitle">                             <h2 class="newTitle" data-lang="newTitle"></h2>                             <a class="moreTitle close">Show more</a>                         </div>                         <p class="newText" data-lang="newText"></p>                         <p class="moreext" data-lang="moreText"></p>                     </div>                     <div class="progressBlock">                         <h2 class="progressTitle" data-lang="progressTitle"></h2>                         <p class="progressText" data-lang="progressText"></p>                         <ul class="progressList">                             <li class="git" data-lang="git"></li>                         </ul>                     </div>                 </div>                 <div class="information">                     <div class="aboutMe">                         <h2 class="aboutMeTitle" data-lang="aboutMeTitle"></h2>                         <p class="userName" data-lang="userName"></p>                         <p class="repo" data-lang="repo"></p>                     </div>                     <div class="social">                         <h2 class="socialTitle" data-lang="socialTitle"></h2>                         <ul class="socialList">                             <li class="email" data-lang="email"></li>                             <li class="gitHub" data-lang="gitHub"></li>                         </ul>                     </div>                 </div>             </div>         </main>         <footer>             <div class="function">                 <button class="languageSwitcher en">English</button>                 <button class="themeToggle light">Light theme</button>             </div>         </footer>     </div>     <script src="src/scripts/jquery.min.js"></script>     <script type="module" src="src/scripts/index.js"></script> </body> </html>

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title data-lang="title"></title> <link rel="stylesheet" href="src/css/global.css"> </head> <body> <div class="layout"> <header> <h1 class="heading" data-lang="heading" style="border-bottom: 3px solid var(--border-color);"></h1> </header> <main> <div class="primaryBlock"> <div class="secondaryBlock"> <div class="descriptionBlock"> <h2 class="descriptionTitle" data-lang="descriptionTitle"></h2> <p class="descriptionText" data-lang="descriptionText"></p> </div> <div class="newBlock"> <div class="newBlockTitle"> <h2 class="newTitle" data-lang="newTitle"></h2> <a class="moreTitle close">Show more</a> </div> <p class="newText" data-lang="newText"></p> <p class="moreext" data-lang="moreText"></p> </div> <div class="progressBlock"> <h2 class="progressTitle" data-lang="progressTitle"></h2> <p class="progressText" data-lang="progressText"></p> <ul class="progressList"> <li class="git" data-lang="git"></li> </ul> </div> </div> <div class="information"> <div class="aboutMe"> <h2 class="aboutMeTitle" data-lang="aboutMeTitle"></h2> <p class="userName" data-lang="userName"></p> <p class="repo" data-lang="repo"></p> </div> <div class="social"> <h2 class="socialTitle" data-lang="socialTitle"></h2> <ul class="socialList"> <li class="email" data-lang="email"></li> <li class="gitHub" data-lang="gitHub"></li> </ul> </div> </div> </div> </main> <footer> <div class="function"> <button class="languageSwitcher en">English</button> <button class="themeToggle light">Light theme</button> </div> </footer> </div> <script src="src/scripts/jquery.min.js"></script> <script type="module" src="src/scripts/index.js"></script> </body> </html>

  • YepBro, как сделать их независимыми друг от друга, когда нужно знать какой текущий язык стоит на странице, и сделать один текст на английском и русском "сменить тему" и всё, суть в другом чтобы на русском писалось "Тёмная тема" и "Светлая тема", а на английском "Dark theme" и "Light theme", и чтобы когда в переводчики был установлен русский язык, показывались русский текст в кнопке смены темы, а когда в переводчике английский язык, показывался английский текст в кнопке смены темы, как их тогда не объединять, даже когда использовать .data("lang"), и так не корректно работает, я думал вариант с сохранение текущего языка в переводчике, и передавать его кнопкам для обозначения текста в ней, только как это сделать качественно я не знаю, получается только так
  • YepBro, надо было просто добавить интервал обновления функции обновления текста

    function updateButtonMoreTitle() {
    if (currentLanguage === 'en') {
    $('.moreTitle').text($('.moreTitle').hasClass('close') ? "Hide all" : "Show more");
    } else if (currentLanguage === 'ru') {
    $('.moreTitle').text($('.moreTitle').hasClass('close') ? "Скрыть всё" : "Показать все");
    }
    }

    setInterval(updateButtonMoreTitle, 1);

    $('.moreTitle').on('click', function () {
    $(".moreText").toggle('showText');
    $(this).toggleClass('close open');
    updateButtonMoreTitle();
    });

  • YepBro, и на производительность сайта это ни как не влияет

    Как реализовать смену языка кнопки в зависимости от языка функции перевода страницы?

  • Никита Москвитин, Ты через такие костыли решаешь задачу ) но раз заработало и ты получил нужный результат, то поздравляю.
  • Никита Москвитин, так небольшой js и не должен влиять. Тем более он заменяет контент уже после отрисовки страницы.
  • YepBro, ну других вариантов я просто не вижу, и как её можно по другому решить
  • Никита Москвитин, https://codepen.io/yepbro/pen/dyrBvqR
  • 2 варианта решения:

    1. Вариант:

    function updateButtonMoreTitle() { if (currentLanguage === 'en') { $('.moreTitle').text($('.moreTitle').hasClass('close') ? "Hide all" : "Show more"); } else if (currentLanguage === 'ru') { $('.moreTitle').text($('.moreTitle').hasClass('close') ? "Скрыть всё" : "Показать все"); } }  setInterval(updateButtonMoreTitle, 1);  $('.moreTitle').on('click', function () { $(".moreText").toggle('showText'); $(this).toggleClass('close open'); updateButtonMoreTitle(); });

    function updateButtonMoreTitle() { if (currentLanguage === 'en') { $('.moreTitle').text($('.moreTitle').hasClass('close') ? "Hide all" : "Show more"); } else if (currentLanguage === 'ru') { $('.moreTitle').text($('.moreTitle').hasClass('close') ? "Скрыть всё" : "Показать все"); } } setInterval(updateButtonMoreTitle, 1); $('.moreTitle').on('click', function () { $(".moreText").toggle('showText'); $(this).toggleClass('close open'); updateButtonMoreTitle(); });

    2. Вариант:
    https://codepen.io/yepbro/pen/dyrBvqR

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

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

    Прежде всего, вам нужно определить, каким образом вы будете хранить языковые настройки на вашем сайте. Один из способов - использовать переменную в URL или в cookies, чтобы хранить выбранный язык.

    Далее, создайте функцию, которая будет отображать текст кнопки на соответствующем языке в зависимости от выбранного языка. Например, если вы используете PHP, ваш код может выглядеть следующим образом:

    function getLanguageButtonText($lang) {
        switch ($lang) {
            case 'en':
                return 'English';
                break;
            case 'fr':
                return 'Français';
                break;
            case 'de':
                return 'Deutsch';
                break;
            // Добавьте другие языки по мере необходимости
            default:
                return 'Language';
        }
    }

    function getLanguageButtonText($lang) { switch ($lang) { case 'en': return 'English'; break; case 'fr': return 'Français'; break; case 'de': return 'Deutsch'; break; // Добавьте другие языки по мере необходимости default: return 'Language'; } }

    Затем в вашем HTML-коде вы можете использовать эту функцию для отображения текста на кнопке:

     
    <button></button>

    <button></button>

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

    Надеюсь, это решение поможет вам реализовать смену языка кнопки в зависимости от языка функции перевода страницы на вашем сайте.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно