diff --git a/layouts/partials/GetMenu b/layouts/partials/GetMenu new file mode 100644 index 0000000000000000000000000000000000000000..f743ee705db93df4dc4802fa7cd5249becd12a34 --- /dev/null +++ b/layouts/partials/GetMenu @@ -0,0 +1,13 @@ +{{ $kind := . }} +{{ $menus := index site.Data.menus (printf "%s" site.Language) }} +{{ $menu := "" }} +// Try to get menus from the data/menus/<lang> directory +{{ if (and $menus (isset $menus $kind)) }} + // Menu found in data/menus/<lang> + {{ $menu = index $menus $kind }} +{{ else }} + // Fallback to menu in the data/menus directory + {{ $menu = index site.Data.menus $kind }} +{{ end }} + +{{ return $menu }} \ No newline at end of file diff --git a/layouts/partials/commons/lang-switch.html b/layouts/partials/commons/lang-switch.html new file mode 100644 index 0000000000000000000000000000000000000000..7c95fe1fd1e1b58d0c0aab1df2ca4d38054b6eef --- /dev/null +++ b/layouts/partials/commons/lang-switch.html @@ -0,0 +1,18 @@ +{{ $page := . }} +{{ $siteLang := "" }} +{{ $url := "" }} +{{ with site.Languages }} + <ul> + {{ range site.Languages }} + {{/* .Lang */}} + {{ $siteLang := . }} + {{ $url = printf "/%s/" .Lang }} + {{ range $page.Translations }} + {{ if eq .Lang $siteLang.Lang }} + {{ $url = .Permalink }} + {{ end }} + {{ end }} + <li><a href="{{ $url }}">{{ $siteLang.LanguageName }}</a></li> + {{ end }} + </ul> +{{ end }} diff --git a/layouts/partials/commons/menu.html b/layouts/partials/commons/menu.html index 767c06198974698a0b7d258c95fbfa6f82b01cdb..34174849906e043685fb9b70e9f06fa0a4bc4228 100644 --- a/layouts/partials/commons/menu.html +++ b/layouts/partials/commons/menu.html @@ -1,3 +1,8 @@ +{{- $kind := .kind -}} +{{ $items := .items }} +{{ if $kind }} + {{ $items = partial "GetMenu" $kind }} +{{ end }} {{- $level := .level -}} {{- $stop := .stop -}} {{- $dropdown := .dropdown }} @@ -7,7 +12,7 @@ {{- end -}} {{ $extern_link := i18n "commons.link.blank" }} <ul class="{{ $ulClass }}{{ if $level }}nav-level-{{ $level }}{{ end }}"> - {{ range .items -}} + {{ range $items -}} {{- $slug := urlize .title -}} {{- $itemClass := "" -}} {{- $linkClass := "" -}} diff --git a/layouts/partials/footer/footer-simple.html b/layouts/partials/footer/footer-simple.html index 01a5b6e083a726ef62af92d8bf930c8fa19bd452..2973a1cb4d03602185e38de51f42038e5f6cdfd9 100644 --- a/layouts/partials/footer/footer-simple.html +++ b/layouts/partials/footer/footer-simple.html @@ -6,6 +6,7 @@ {{ partial "footer/site.html" }} </div> </div> +{{ partial "footer/i18n.html" }} <div class="container"> <div class="footer-social"> {{ partial "footer/social.html" }} diff --git a/layouts/partials/footer/footer.html b/layouts/partials/footer/footer.html index 21183ce4fba865f7ba6c361de74049d086968d96..c736c8a8ae42a3d5189070e3571a2bbafb64164a 100644 --- a/layouts/partials/footer/footer.html +++ b/layouts/partials/footer/footer.html @@ -1,3 +1,3 @@ <footer id="document-footer"> - {{ partial "footer/footer-simple.html" }} + {{ partial "footer/footer-simple.html" . }} </footer> diff --git a/layouts/partials/footer/i18n.html b/layouts/partials/footer/i18n.html new file mode 100644 index 0000000000000000000000000000000000000000..718145da846cb9da95cc708a784ed9deee8ad6bc --- /dev/null +++ b/layouts/partials/footer/i18n.html @@ -0,0 +1,22 @@ +{{ $page := . }} +{{ $siteLang := "" }} +{{ $url := "" }} + +<div class="container"> + <div class="footer-i18n"> + {{ with site.Languages }} + <ul class="small"> + {{ range site.Languages }} + {{ $siteLang := . }} + {{ $url = printf "/%s/" .Lang }} + {{ range $page.Translations }} + {{ if eq .Lang $siteLang.Lang }} + {{ $url = .Permalink }} + {{ end }} + {{ end }} + <li><a href="{{ $url }}">{{ $siteLang.LanguageName }}</a></li> + {{ end }} + </ul> + {{ end }} + </div> +</div> diff --git a/layouts/partials/header/header.html b/layouts/partials/header/header.html index a37e6b1fd9f9681a3bf26540c4770d2acdd7c543..c047b7019fe3ac588a3fb0c3c07a3dd829209c30 100644 --- a/layouts/partials/header/header.html +++ b/layouts/partials/header/header.html @@ -2,17 +2,16 @@ <nav aria-label="{{ i18n "commons.menu.main" }}"> <div class="container"> {{ partial "header/logo.html" }} - {{ if isset site.Data.menus "primary"}} - {{ partial "header/button.html" }} - <div class="menu" id="navigation"> - {{ partial "commons/menu.html" - (dict - "items" site.Data.menus.primary - "dropdown" true - "level" 1 - )}} - </div> - {{ end }} + {{ $menu := partial "GetMenu" "primary" }} + {{ partial "header/button.html" }} + <div class="menu" id="navigation"> + {{ partial "commons/menu.html" + (dict + "kind" "primary" + "dropdown" true + "level" 1 + ) }} + </div> </div> </nav> </header>