diff options
author | C. Lente <7017340+clente@users.noreply.github.com> | 2023-02-10 16:31:47 -0300 |
---|---|---|
committer | C. Lente <7017340+clente@users.noreply.github.com> | 2023-02-10 16:31:47 -0300 |
commit | 17caeb985f606a7df18dd508aa1d15b74e8bfcdd (patch) | |
tree | 2e242ace8f37f6cd553a31c8b11961630b5de09e /layouts | |
parent | a8c0f3734f184f5149756ad6aa39e29074d20dc2 (diff) | |
download | hugo-bearcub-17caeb985f606a7df18dd508aa1d15b74e8bfcdd.tar.gz hugo-bearcub-17caeb985f606a7df18dd508aa1d15b74e8bfcdd.tar.bz2 |
Generalize translation menus
Diffstat (limited to 'layouts')
-rw-r--r-- | layouts/partials/nav.html | 26 |
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 }} |