From a6a5e2d8b1a22e4a33a3f34255935f7fa5d7bc33 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 15 Apr 2026 15:39:59 +0200 Subject: feat: create language switcher with persistence --- .../assets/js/language-switcher.js | 24 ++++++++++++++++++++++ themes/danix-xyz-hacker/hugo.toml | 0 .../layouts/partials/hamburger-menu.html | 1 + 3 files changed, 25 insertions(+) create mode 100644 themes/danix-xyz-hacker/assets/js/language-switcher.js create mode 100644 themes/danix-xyz-hacker/hugo.toml (limited to 'themes/danix-xyz-hacker') diff --git a/themes/danix-xyz-hacker/assets/js/language-switcher.js b/themes/danix-xyz-hacker/assets/js/language-switcher.js new file mode 100644 index 0000000..3d8ffac --- /dev/null +++ b/themes/danix-xyz-hacker/assets/js/language-switcher.js @@ -0,0 +1,24 @@ +document.addEventListener('DOMContentLoaded', function() { + // Get all language switcher elements + const langSwitchers = document.querySelectorAll('[data-lang-switch]'); + + if (!langSwitchers || langSwitchers.length === 0) { + return; + } + + // Add click event listener to each language switcher + langSwitchers.forEach(function(switcher) { + switcher.addEventListener('click', function(e) { + e.preventDefault(); + + // Get the language code from the data attribute + const langCode = this.getAttribute('data-lang-switch'); + + // Store the language preference in localStorage + localStorage.setItem('preferred-language', langCode); + + // Navigate to the language-specific URL + window.location.href = this.href; + }); + }); +}); diff --git a/themes/danix-xyz-hacker/hugo.toml b/themes/danix-xyz-hacker/hugo.toml new file mode 100644 index 0000000..e69de29 diff --git a/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html b/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html index 5b84fdd..00d99e3 100644 --- a/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html +++ b/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html @@ -42,6 +42,7 @@ {{ range .Site.Languages }} {{ $current := eq . $.Page.Language }} -- cgit v1.2.3