summaryrefslogtreecommitdiffstats
path: root/themes
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-15 15:39:59 +0200
committerDanilo M. <danix@danix.xyz>2026-04-15 15:39:59 +0200
commita6a5e2d8b1a22e4a33a3f34255935f7fa5d7bc33 (patch)
tree09373b418ce4062bc268735edc421c106bc2d2eb /themes
parentcef542bfde9285645663b2ab497384f08daa9c37 (diff)
downloaddanixxyz-a6a5e2d8b1a22e4a33a3f34255935f7fa5d7bc33.tar.gz
danixxyz-a6a5e2d8b1a22e4a33a3f34255935f7fa5d7bc33.zip
feat: create language switcher with persistence
Diffstat (limited to 'themes')
-rw-r--r--themes/danix-xyz-hacker/assets/js/language-switcher.js24
-rw-r--r--themes/danix-xyz-hacker/hugo.toml0
-rw-r--r--themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html1
3 files changed, 25 insertions, 0 deletions
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
--- /dev/null
+++ b/themes/danix-xyz-hacker/hugo.toml
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 }}
<a
+ data-lang-switch="{{ .Lang }}"
href="{{ .LanguagePrefix }}"
class="flex-1 py-2 px-3 text-center rounded transition-colors {{ if $current }}bg-accent text-white{{ else }}bg-surface hover:bg-surface/80{{ end }}"
>