Как лучше сделать переключение языков на многостр. сайте?(без бэка)?

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

1. **Подготовка языковых ресурсов:**
Создайте файлы JSON для каждого языка, содержащие переводы всех текстов на сайте. Например, en.json, fr.json, ru.json.

Пример содержимого en.json:

   {
       "home": "Home",
       "about": "About",
       "contact": "Contact"
   }

2. **HTML разметка:**
В HTML добавьте атрибут data-i18n к элементам, которые должны быть переведены.

Пример:

   <button data-i18n="home"></button>
   <button data-i18n="about"></button>
   <button data-i18n="contact"></button>

3. **JavaScript код:**
Создайте JavaScript функцию для загрузки языковых ресурсов и перевода текстов. При смене языка функция будет подставлять соответствующие переводы.

Пример:

   let currentLang = 'en';

   function loadLanguage(lang) {
       fetch(`${lang}.json`)
           .then(response => response.json())
           .then(data => {
               document.querySelectorAll('[data-i18n]').forEach(element => {
                   const key = element.getAttribute('data-i18n');
                   element.textContent = data[key];
               });
           });
   }

   document.querySelectorAll('.lang-selector').forEach(selector => {
       selector.addEventListener('click', function() {
           const lang = this.getAttribute('data-lang');
           currentLang = lang;
           loadLanguage(lang);
       });
   });

   // Default language
   loadLanguage(currentLang);

4. **Добавление переключателя языка:**
Добавьте элементы для выбора языка и атрибут data-lang, который будет использоваться для определения выбранного языка.

Пример:

   <button class="lang-selector" data-lang="en">English</button>
   <button class="lang-selector" data-lang="fr">Français</button>
   <button class="lang-selector" data-lang="ru">Русский</button>

Таким образом, при загрузке страницы будет использоваться язык по умолчанию (например, английский). При выборе другого языка, тексты на странице будут динамически обновляться согласно выбранному языку. Этот подход использования JSON и JavaScript позволяет гибко управлять переводами на многоязычном сайте без необходимости обращения к бэкэнду.