@Electro-max

Как запомнить выбранный пользователем язык через localstorage?

Здравствуйте, выбираю язык, текст переводится, ключ (ru или еn) записывается в localstorage, но при обновлении сбрасывается на начальный. Помогите исправить код.
HTML:
class="changelng"
                        input type="button" class="translate" value="Русский" key=ru
                        input type="button" class="translate active" value="English" key=en


JS:
const data = {
    'ru':
    {
        'title': "Сайт",
        'news': 'Новости',
        'language': 'Язык',
        'support': 'Поддержка',
        'account': 'Аккаунт',
    },
    'en':
    {
        'title': "Site",
        'news': 'News',
        'language': 'Language',
        'support': 'Support',
        'account': 'Account', 
    },

let langEl = document.querySelector('.changelng')
let link = document.querySelectorAll('.translate')
const titleEl = document.querySelector('.title')
const accountEl = document.querySelector('.account')
const supportEl = document.querySelector('.support')
const languageEl = document.querySelector('.language')
const newsEl = document.querySelector('.news')
link.forEach(el => {
    el.addEventListener('click', () => {
        langEl.querySelector('.active').classList.remove('active')
        el.classList.add('active')
        let attr = el.getAttribute('key')
        titleEl.textContent = data[attr].title
        accountEl.textContent = data[attr].account
        supportEl.textContent = data[attr].support
        languageEl.textContent = data[attr].language
        newsEl.textContent = data[attr].news
        localStorage.setItem('lng', JSON.stringify(attr))
        function newAttr() {
            if(localStorage.getItem('lng')!==null) {
                const newLng = JSON.parse(localStorage.getItem('lng'))
                data[attr] = newLng 
            }
        } 
    })
})
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 3
SagePtr
@SagePtr
Еда - это святое
Надёргали код из разных источников, не понимая, как он вообще работает, да?
Ответ написан
Комментировать
@Electro-max Автор вопроса
код понятно как работает и код работает к нему вопросов нет, концовку на сохранение я сам писал, там не совсем мне понятно как оно должно сохнанять, поэтому и спрашиваю
Ответ написан
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Лучше проще, чем никогда
const data = localStorage.getItem('lng'); // чтение данных из localStorage
localStorage.setItem('lng'); // запись данных в localStorage


Чтобы в data иметь актуальную информацию используют вот такой подход:
const dataKey = 'lng';
let data = JSON.pasre(localStorage.getItem(dataKey));

if( data === null ){
	data = [];
	localStorage.setItem(dataKey, JSON.stringify(data))
}

console.log(data) // do something with data
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы