-
-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Open
Milestone
Description
This is a pretty good idea from the forum, allowing you to get a translated language name from a language tag. One example (which may not be great) is a language switcher that displays "french" in three different languages on a three language site. For example:
Screencast.from.03-07-2024.12.32.25.PM.webm
Instead of using translation tables, use Go's language package that we already use for other things (no new dependencies).
Signature:
lang.LanguageName SOURCE [TARGET]
If TARGET is not provided, set to SRC.
{{ lang.LanguageName "pt-br" "en-US" }} → Brazilian Portuguese
{{ lang.LanguageName "pt" "en" }} → Portuguese
{{ lang.LanguageName "pt" }} → português
{{ lang.LanguageName "de-DE" "fr-FR" }} → allemand
{{ lang.LanguageName "de" "fr" }} → allemand
{{ lang.LanguageName "de" }} → Deutsch
A language switcher would look like this:
{{ if .Translations }}
{{ $targetLang := .Language.LanguageCode }}
<ul>
{{ range .AllTranslations }}
{{ $sourceLang := .Language.LanguageCode }}
<li><a href="{{ .RelPermalink }}">{{ lang.LanguageName $sourceLang $targetLang }}</a></li>
{{ end }}
</ul>
{{ end }}
Reference: https://discourse.gohugo.io/t/get-a-translated-language-name-from-its-code/48697/8