feat: header switch lang based on selection

This commit is contained in:
kittentm 2026-04-28 06:20:05 +02:00
commit d65c8d2a73
No known key found for this signature in database
GPG key ID: AC43DFDBC1F44A91

View file

@ -116,10 +116,6 @@ window.initDropdown = function() {
var $toggle = $('#dropdownToggle'); var $toggle = $('#dropdownToggle');
var $optionsList = $('#dropdownOptions'); var $optionsList = $('#dropdownOptions');
var $selectedImg = $('#selected-img'); var $selectedImg = $('#selected-img');
var savedLangSrc = localStorage.getItem('selected_lang_src');
if (savedLangSrc && $selectedImg.length) {
$selectedImg.attr('src', savedLangSrc);
}
if ($toggle.length) { if ($toggle.length) {
$toggle.off('click').on('click', function(e) { $toggle.off('click').on('click', function(e) {
@ -129,11 +125,11 @@ window.initDropdown = function() {
$optionsList.off('click').on('click', 'li', function() { $optionsList.off('click').on('click', 'li', function() {
var newSrc = $(this).attr('data-src'); var newSrc = $(this).attr('data-src');
var langValue = $(this).attr('data-value'); // en or jp var langValue = $(this).attr('data-value');
$selectedImg.attr('src', newSrc); var headerFile = (langValue === 'jp') ? "../header-jp.html" : "../header.html";
$optionsList.removeClass('show'); localStorage.setItem('selected_header', headerFile);
localStorage.setItem('selected_lang_src', newSrc); localStorage.setItem('selected_lang_src', newSrc);
localStorage.setItem('selected_lang_value', langValue); window.location.reload();
}); });
$(document).off('click.dropdown').on('click.dropdown', function() { $(document).off('click.dropdown').on('click.dropdown', function() {
@ -151,12 +147,21 @@ window.loadHeader = function(callback) {
} }
}; };
fetch("../header.html") const targetHeader = localStorage.getItem('selected_header') || "../header.html";
fetch(targetHeader)
.then(res => res.text()) .then(res => res.text())
.then(html => { .then(html => {
const container = document.getElementById("header-container"); const container = document.getElementById("header-container");
if (container) { if (container) {
container.innerHTML = html; container.innerHTML = html;
const savedLangSrc = localStorage.getItem('selected_lang_src');
const selectedImg = container.querySelector('#selected-img');
if (savedLangSrc && selectedImg) {
selectedImg.src = savedLangSrc;
}
window.headerLoaded = true; window.headerLoaded = true;
window.loadHeaderCallbacks.forEach(cb => cb(container)); window.loadHeaderCallbacks.forEach(cb => cb(container));
} }