Не работают скрипты перевода, что делать?

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

Всем привет, у меня имеется код HTML в котором есть ссылки в футере для смены языков, так же JSON и JS файлы которые это контролируют, но выдаёт ошибку помогите

Не работают скрипты перевода, что делать?

Не работают скрипты перевода, что делать?

index.html:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Project</title>      <link rel="stylesheet" href="src/css/global.css"> </head> <body id="page-top" onload="translate('en','lng-tag')">     <div id="layout">         <header>             <h1 id="heading" lng-tag="heading">                 The project uses:             </br>                 HTML, CSS and JS             </h1>         </header>         <main>             <div id="primaryBlock">                 <div id="secondaryBlock">                     <div id="descriptionBlock">                         <h2 id="descriptionTitle">                             Description:                         </h2>                         <p id="descriptionText" lng-tag="description"></p>                     </div>                     <div id="progressBlock">                         <h2 id="progressTitle">                             Progress:                         </h2>                         <p id="progressText"></p>                         <ul id="progressList">                             <li id="git"></li>                         </ul>                     </div>                 </div>                 <div id="information">                     <div id="aboutMe">                         <h2 id="aboutMeTitle">                             Project:                         </h2>                         <p id="userName"></p>                         <p id="repo"></p>                     </div>                     <div id="social">                         <h2 id="socialTitle">                             Social:                         </h2>                         <ul id="socialList">                             <li id="email"></li>                             <li id="gitHub"></li>                         </ul>                     </div>                 </div>             </div>         </main>         <footer>             <p>Thanks for visiting my project page</p>             <li class="nav-item" style="list-style-type: none; margin-left: 20px;">                 <a class="nav-link js-scroll-trigger lng" id="enTranslator" href="javascript:void(0);">En</a>                 <a class="nav-link js-scroll-trigger lng" id="ruTranslator" href="javascript:void(0);" style="margin-left: 10px;">Ru</a>             </li>         </footer>     </div>     <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>     <script src="src/scripts/translate.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>Project</title> <link rel="stylesheet" href="src/css/global.css"> </head> <body id="page-top" onload="translate('en','lng-tag')"> <div id="layout"> <header> <h1 id="heading" lng-tag="heading"> The project uses: </br> HTML, CSS and JS </h1> </header> <main> <div id="primaryBlock"> <div id="secondaryBlock"> <div id="descriptionBlock"> <h2 id="descriptionTitle"> Description: </h2> <p id="descriptionText" lng-tag="description"></p> </div> <div id="progressBlock"> <h2 id="progressTitle"> Progress: </h2> <p id="progressText"></p> <ul id="progressList"> <li id="git"></li> </ul> </div> </div> <div id="information"> <div id="aboutMe"> <h2 id="aboutMeTitle"> Project: </h2> <p id="userName"></p> <p id="repo"></p> </div> <div id="social"> <h2 id="socialTitle"> Social: </h2> <ul id="socialList"> <li id="email"></li> <li id="gitHub"></li> </ul> </div> </div> </div> </main> <footer> <p>Thanks for visiting my project page</p> <li class="nav-item" style="list-style-type: none; margin-left: 20px;"> <a class="nav-link js-scroll-trigger lng" id="enTranslator" href="javascript:void(0);">En</a> <a class="nav-link js-scroll-trigger lng" id="ruTranslator" href="javascript:void(0);" style="margin-left: 10px;">Ru</a> </li> </footer> </div> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script src="src/scripts/translate.js"></script> <script type="module" src="src/scripts/index.js"></script> </body> </html>

index.js:

import config from "../../config.json" assert {type: "json"}; import lang_en from "../../lng/en.json" assert {type: "json"}; import lang_ru from "../../lng/ru.json" assert {type: "json"};  // Description: document.getElementById("descriptionText").innerHTML = lang_en.description;  // Progress: document.getElementById("progressText").textContent = lang_en.progress; document.getElementById("git").textContent = "Git — .git"  // Project: document.getElementById("userName").textContent = `Creator: ${config.userName}`; document.getElementById("repo").innerHTML = `Repository: <a href="${config.repoLink}">here</a>`;  // Social: document.getElementById("email").textContent = `Email — ${config.social.email}`; document.getElementById("gitHub").innerHTML = `My GitHub profile: <a href="${config.social.gitHub}">here</a>`  function translate(lng, tagAttr){     var translate = new Translate();     translate.init(tagAttr, lng);     translate.process();     if(lng == 'en'){       $("#enTranslator");       $("#ruTranslator");     }      if(lng == 'ru'){       $("#ruTranslator");       $("#enTranslator");     } }  $(document).ready(function(){          $("#enTranslator").click(function(){         translate('en', 'lng-tag');     });        $("#ruTranslator").click(function(){         translate('ru', 'lng-tag');     }); });

import config from "../../config.json" assert {type: "json"}; import lang_en from "../../lng/en.json" assert {type: "json"}; import lang_ru from "../../lng/ru.json" assert {type: "json"}; // Description: document.getElementById("descriptionText").innerHTML = lang_en.description; // Progress: document.getElementById("progressText").textContent = lang_en.progress; document.getElementById("git").textContent = "Git — .git" // Project: document.getElementById("userName").textContent = `Creator: ${config.userName}`; document.getElementById("repo").innerHTML = `Repository: <a href="${config.repoLink}">here</a>`; // Social: document.getElementById("email").textContent = `Email — ${config.social.email}`; document.getElementById("gitHub").innerHTML = `My GitHub profile: <a href="${config.social.gitHub}">here</a>` function translate(lng, tagAttr){ var translate = new Translate(); translate.init(tagAttr, lng); translate.process(); if(lng == 'en'){ $("#enTranslator"); $("#ruTranslator"); } if(lng == 'ru'){ $("#ruTranslator"); $("#enTranslator"); } } $(document).ready(function(){ $("#enTranslator").click(function(){ translate('en', 'lng-tag'); }); $("#ruTranslator").click(function(){ translate('ru', 'lng-tag'); }); });

translate.js:

function Translate() {   this.init =  function(attribute, lng){     this.attribute = attribute;     this.lng = lng;	 }  this.process = function() {     _self = this;     var xrhFile = new XMLHttpRequest();      xrhFile.open("GET", "../lng"+this.lng+".json", false);     xrhFile.onreadystatechange = function ()     {         if(xrhFile.readyState === 4)         {             if(xrhFile.status === 200 || xrhFile.status == 0)             {                 var LngObject = JSON.parse(xrhFile.responseText);                 var allDom = document.getElementsByTagName("*");                 for(var i =0; i < allDom.length; i++){                     var elem = allDom[i];                     var key = elem.getAttribute(_self.attribute);                     if(key != null) {                         elem.innerHTML = LngObject[key]  ;                     }                 }                          }         }     }     xrhFile.send(); } }

function Translate() { this.init = function(attribute, lng){ this.attribute = attribute; this.lng = lng; } this.process = function() { _self = this; var xrhFile = new XMLHttpRequest(); xrhFile.open("GET", "../lng"+this.lng+".json", false); xrhFile.onreadystatechange = function () { if(xrhFile.readyState === 4) { if(xrhFile.status === 200 || xrhFile.status == 0) { var LngObject = JSON.parse(xrhFile.responseText); var allDom = document.getElementsByTagName("*"); for(var i =0; i < allDom.length; i++){ var elem = allDom[i]; var key = elem.getAttribute(_self.attribute); if(key != null) { elem.innerHTML = LngObject[key] ; } } } } } xrhFile.send(); } }

en.json:

{     "description": "Hello everyone, I already wrote in the description that this is a mini project in which I am learning <span>JS</span>, <span>TS</span> and various frameworks for <span>JS</span>, improving my skills in <span>HTML</span>, <span>SASS</span>, <span>CSS</span>, etc.",     "progress": "At this point I will write what new things I have learned so far." }

{ "description": "Hello everyone, I already wrote in the description that this is a mini project in which I am learning <span>JS</span>, <span>TS</span> and various frameworks for <span>JS</span>, improving my skills in <span>HTML</span>, <span>SASS</span>, <span>CSS</span>, etc.", "progress": "At this point I will write what new things I have learned so far." }

ru.json:

{     "description": "Всем привет, я уже писал в описании, что это мини проект, в котором я изучаю <span>JS</span>, <span>TS</span> и различные фреймворки для <span>JS</span>, совершенствую свои навыки работы с <span>HTML</span>, <span>SASS</span>, <span>CSS</span> и т.д.",     "progress": "На этом этапе я напишу, что нового я узучил" }

{ "description": "Всем привет, я уже писал в описании, что это мини проект, в котором я изучаю <span>JS</span>, <span>TS</span> и различные фреймворки для <span>JS</span>, совершенствую свои навыки работы с <span>HTML</span>, <span>SASS</span>, <span>CSS</span> и т.д.", "progress": "На этом этапе я напишу, что нового я узучил" }

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

Все ошибки исправил, теперь только не могу разобрать с тегами , выдаёт ошибку get

Не работают скрипты перевода, что делать?

Иди учи вначале html(кривые пользовательские атрибуты), а затем js(вызов функций до их объявления)

  • Можно уточнить, насчёт этого, какие именно атрибуты
  • "lng-tag" https://developer.mozilla.org/ru/docs/Learn/HTML/H...
  • Антон Шаманов, спасибо на указанные недостатки, поработал теперь работает как часы
  • Антон Шаманов, Можете подсказать, насколько теперь этот код качественный?
    Или лучше делать через функцию?
    class Translate {   constructor(props) {       this.attribute = props.attribute;       this.lng = props.lng;   }    process() {       const _self = this;       const xrhFile = new XMLHttpRequest();       xrhFile.open("GET", `./src/scripts/translations/${this.lng}.json`, false);       xrhFile.onreadystatechange = function () {           if (xrhFile.readyState === 4) {               if (xrhFile.status === 200 || xrhFile.status == 0) {                   const LngObject = JSON.parse(xrhFile.responseText);                   const allDom = document.getElementsByTagName("*");                   for (let i = 0; i < allDom.length; i++) {                       const elem = allDom[i];                       const key = elem.getAttribute(_self.attribute);                       if (key != null) {                           elem.innerHTML = LngObject[key];                       }                   }               }           }       };       xrhFile.send();   } }  function loadNewLang(new_lang) {   const translate = new Translate({ attribute: 'data-lang', lng: new_lang });   const currentLng = new_lang;   translate.process(); }  loadNewLang('en'); document.querySelector('.language-switcher').addEventListener('click', function (e) {   e.preventDefault();   if (this.classList.contains('ru')) {       this.classList.toggle('ru');       this.classList.toggle('en');       this.textContent = 'En';       loadNewLang('en');   }   else if (this.classList.contains('en')) {       this.classList.toggle('en');       this.classList.toggle('ru');       this.textContent = 'Ru';       loadNewLang('ru');   } }); export {};

    class Translate { constructor(props) { this.attribute = props.attribute; this.lng = props.lng; } process() { const _self = this; const xrhFile = new XMLHttpRequest(); xrhFile.open("GET", `./src/scripts/translations/${this.lng}.json`, false); xrhFile.onreadystatechange = function () { if (xrhFile.readyState === 4) { if (xrhFile.status === 200 || xrhFile.status == 0) { const LngObject = JSON.parse(xrhFile.responseText); const allDom = document.getElementsByTagName("*"); for (let i = 0; i < allDom.length; i++) { const elem = allDom[i]; const key = elem.getAttribute(_self.attribute); if (key != null) { elem.innerHTML = LngObject[key]; } } } } }; xrhFile.send(); } } function loadNewLang(new_lang) { const translate = new Translate({ attribute: 'data-lang', lng: new_lang }); const currentLng = new_lang; translate.process(); } loadNewLang('en'); document.querySelector('.language-switcher').addEventListener('click', function (e) { e.preventDefault(); if (this.classList.contains('ru')) { this.classList.toggle('ru'); this.classList.toggle('en'); this.textContent = 'En'; loadNewLang('en'); } else if (this.classList.contains('en')) { this.classList.toggle('en'); this.classList.toggle('ru'); this.textContent = 'Ru'; loadNewLang('ru'); } }); export {};

  • Никита Москвитин, как минимум это не рабочий код - ты не можешь переопределять константы, на то они и константы
Нужно решить такую задачу?

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

Заказать помощь
Лучший ответ
1
Алексей Денисов Ответ

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

1. Проверьте настройки вашего браузера. Иногда блокировщики рекламы или расширения для защиты конфиденциальности могут блокировать работу скриптов перевода. Убедитесь, что эти расширения не блокируют нужный функционал.

2. Попробуйте очистить кэш и файлы cookie браузера. Иногда накопленные данные могут привести к конфликтам и проблемам с загрузкой скриптов. После очистки кэша и cookie перезапустите браузер и проверьте работу скриптов.

3. Обновите ваш браузер до последней версии. Иногда проблемы с загрузкой скриптов могут быть связаны с устаревшей версией браузера, которая не поддерживает определенные функции.

4. Проверьте настройки безопасности браузера. Убедитесь, что скрипты не блокируются из-за настроек безопасности. Может быть, стоит временно отключить блокировку скриптов или добавить сайт в список исключений.

Если после выполнения этих шагов проблема не решится, возможно, проблема лежит на стороне сервера сайта, и вам стоит обратиться к администратору сайта или службе поддержки для получения дополнительной помощи.

// Пример кода на PHP
echo "Пример кода на PHP";

// Пример кода на PHP echo "Пример кода на PHP";

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

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

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

комментарий

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

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