Хочу реализовать мульти-язык на сайте, и чтобы сохранялся после перезагрузки.
Так вот скрипт вроде сохраняет все в 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)
})
}