Задать вопрос
@ZeeGi01

Почему не берётся информация с LocalStorage?

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

HTML
<span class="lang" key="test">ПРОВЕРКА</span>
<br>
<button id="ru" class="translate">Русский</button>
<button id="en" class="translate">English</button>


JavaScript
document.addEventListener('DOMContentLoaded', getLocalLang)

var arrLang = {
    'en': {
        'test': 'TEST',
    },
    'ru': {
        'test': 'ПРОВЕРКА',
    }
}



$(function() {
    $('.translate').click(function() {
        var lang = $(this).attr('id');
        saveLocalLang(lang)

        $('.lang').each(function(index, item) {
            $(this).text(arrLang[lang][$(this).attr('key')]);
        });
    });
});


// LOCAL STORAGE

function saveLocalLang(language) {
    let langs
    if (localStorage.getItem('key:','langs') === null) {
        langs = []
    } else {
        langs = JSON.parse(localStorage.getItem('key:','langs'))
    }
    langs.push(language)
    localStorage.setItem('langs', JSON.stringify(langs))
}

function getLocalLang() {
    let langs
    if (localStorage.getItem('key:','langs') === null) {
        langs = []
    } else {
        langs = JSON.parse(localStorage.getItem('key:','langs'))
    }
    langs.forEach(function (language) {
        let lang = langs[langs.length - 1]
        setTimeout(() => {
            $('.lang').each(function(index, item) {
                $(this).text(arrLang[lang][$(this).attr('key')]);
            });
        }, 0)
    })
}
  • Вопрос задан
  • 318 просмотров
Подписаться 1 Простой 7 комментариев
Решения вопроса 2
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Везде поправьте
localStorage.getItem('key:','langs')

на

localStorage.getItem('langs')
Ответ написан
Spartak-2205
@Spartak-2205
Разработка и создание сайтов
Не правильно
localStorage.getItem('key:','langs')
Правильно
localStorage.getItem('langs')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы