Hello - I’ve implemented a language switch dropdown menu, with this code in my sidebar partial:
<ul id="dropdown1" class="dropdown-content">
{{ $perma := .Permalink }}
{{ with .Params.alternatelocales }}
{{ range . }}
{{ $thelocale := . }}
{{ $currenturl := ( index $.Site.Data.translations $.Site.Params.locale ).languageurl }}
{{ $targeturl := ( index $.Site.Data.translations $thelocale ).languageurl }}
{{ $langurl := replace $perma $currenturl $targeturl }}
<li><a href="{{ $langurl }}">{{ ( index $.Site.Data.translations $thelocale ).languagename }}</a></li>
{{ end }}
{{ end }}
</ul>
This works, to find in the .Permalink http://acme.com/thepath
, the current url http://acme.com
and replace it with http://acme.jp
for example. It assumes the url path is the same, but in my case, that’s true.
With this, I just put the array of alternative languages available in my content.md file.
Later I’ll add a check whether the alternatelocale is in the frontmatter, and if not, don’t show the switcher.
I’m just wondering if there’s a more efficient or “better” way of doing this, in general.
Any comments appreciated.
Sincerely,
Rick