summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/assets/js/language-switcher.js
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/danix-xyz-hacker/assets/js/language-switcher.js
parentcef542bfde9285645663b2ab497384f08daa9c37 (diff)
downloaddanixxyz-a6a5e2d8b1a22e4a33a3f34255935f7fa5d7bc33.tar.gz
danixxyz-a6a5e2d8b1a22e4a33a3f34255935f7fa5d7bc33.zip
feat: create language switcher with persistence
Diffstat (limited to 'themes/danix-xyz-hacker/assets/js/language-switcher.js')
-rw-r--r--themes/danix-xyz-hacker/assets/js/language-switcher.js24
1 files changed, 24 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;
+ });
+ });
+});