summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-15 17:33:26 +0200
committerDanilo M. <danix@danix.xyz>2026-04-15 17:33:26 +0200
commitdfe3cc3b9850866202f0cfb20c9b9029c975a322 (patch)
treee31e41022a5ed9cda27bad2881f74ad7a61c285a /themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html
parentd6455752935d0beb710df9e428837a09d4c8fdc1 (diff)
downloaddanixxyz-dfe3cc3b9850866202f0cfb20c9b9029c975a322.tar.gz
danixxyz-dfe3cc3b9850866202f0cfb20c9b9029c975a322.zip
Fix language switcher to preserve current page path
- Update language switcher to translate current page path instead of redirecting to root - When switching languages, preserve the page you're on (e.g., /articles/ → /it/articles/) - Works for both desktop header and mobile hamburger menu - Uses Hugo's string functions to manipulate URL paths Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html')
-rw-r--r--themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html15
1 files changed, 13 insertions, 2 deletions
diff --git a/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html b/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html
index c22981b..ee80d20 100644
--- a/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html
+++ b/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html
@@ -38,14 +38,25 @@
<div class="text-sm text-text-dim mb-3">{{ i18n "language" }}</div>
<div class="flex gap-2">
{{ $currentLang := .Page.Language }}
+ {{ $currentPath := .RelPermalink }}
{{ range .Site.Languages }}
{{ $langCode := .Lang }}
{{ $langName := .LanguageName }}
{{ $current := eq $langCode $currentLang }}
- {{ $prefix := cond (eq $langCode "en") "" (printf "/%s" $langCode) }}
+ <!-- Build the translated URL by replacing language prefix -->
+ {{ $url := $currentPath }}
+ {{ if eq $langCode "en" }}
+ {{ if hasPrefix $currentPath "/it/" }}
+ {{ $url = strings.TrimPrefix "/it" $currentPath }}
+ {{ end }}
+ {{ else }}
+ {{ if not (hasPrefix $currentPath "/it/") }}
+ {{ $url = printf "/it%s" $currentPath }}
+ {{ end }}
+ {{ end }}
<a
data-lang-switch="{{ $langCode }}"
- href="{{ $prefix }}/"
+ href="{{ $url }}"
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 }}"
>
{{ $langName }}