aboutsummaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
authorC. Lente <7017340+clente@users.noreply.github.com>2023-02-10 16:31:47 -0300
committerC. Lente <7017340+clente@users.noreply.github.com>2023-02-10 16:31:47 -0300
commit17caeb985f606a7df18dd508aa1d15b74e8bfcdd (patch)
tree2e242ace8f37f6cd553a31c8b11961630b5de09e /layouts
parenta8c0f3734f184f5149756ad6aa39e29074d20dc2 (diff)
downloadhugo-bearcub-17caeb985f606a7df18dd508aa1d15b74e8bfcdd.tar.gz
hugo-bearcub-17caeb985f606a7df18dd508aa1d15b74e8bfcdd.tar.bz2
Generalize translation menus
Diffstat (limited to 'layouts')
-rw-r--r--layouts/partials/nav.html26
1 files changed, 17 insertions, 9 deletions
diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html
index b7e9f79..8e2dd90 100644
--- a/layouts/partials/nav.html
+++ b/layouts/partials/nav.html
@@ -1,15 +1,23 @@
{{ range .Site.Menus.main.ByWeight }}
- <a href="{{ .URL | absLangURL }}">{{ .Name }}</a>
+ <a href="{{ absLangURL .URL }}">{{ .Name }}</a>
{{ end }}
-<a href='mailto:{{ .Site.Params.email }}?subject={{ i18n "email-subject" }}"{{ .Page.Title | default .Site.Title }}"'>Email</a>
+<a href='mailto:{{ .Site.Params.email }}?subject={{ i18n "email-subject" }}"{{ default .Site.Title .Page.Title }}"'>Email</a>
<a href="/index.xml">RSS</a>
-{{ $pageLang := .Page.Lang }}
-{{ if .IsTranslated }}
- {{ range .Translations }}
- {{ if ne $pageLang .Lang }}
- <a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
+
+<!-- Convert this page's translations into a dict -->
+{{ $translations := dict }}
+{{ range .Translations }}
+ {{ $translations = merge $translations (dict .Language.Lang .) }}
+{{ end }}
+
+<!-- Create a link to every translation -->
+{{ range where .Site.Languages "Lang" "!=" .Page.Lang }}
+ {{ with (index $translations .Lang) }}
+ <a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
+ {{ else }}
+ <!-- The complicated setup was necessary to make a grayed out link -->
+ {{ if not .Params.hideUntranslated }}
+ <a class="disabled" href="">{{ .LanguageName }}</a>
{{ end }}
{{ end }}
-{{ else if not .Site.Params.hideUntranslated }}
- <a class="disabled" href="">{{ .Language.LanguageName }}</a>
{{ end }}