25 lines
1.7 KiB
HTML
25 lines
1.7 KiB
HTML
{{- /* Language badge for a tour. Params: code ("de", "en" or "deen"), class (optional; without it the badge is styled as an inline superscript).
|
|
The visible label ("DE/EN") is hidden from screen readers, which read a short text instead; the full sentence is a tooltip. */ -}}
|
|
{{- $code := .code | lower -}}
|
|
{{- $validCodes := slice "de" "en" "deen" -}}
|
|
{{- if not (in $validCodes $code) -}}
|
|
<span style="color: red; font-weight: bold;">Warning: Invalid or missing language code '{{ $code }}'. Use 'de', 'en', or 'deen'.</span>
|
|
{{- else -}}
|
|
{{- $de := eq site.Language.Name "de" -}}
|
|
{{- $label := cond (eq $code "de") "DE" (cond (eq $code "en") "EN" "DE/EN") -}}
|
|
{{- $title := "" -}}
|
|
{{- $spoken := "" -}}
|
|
{{- if eq $code "deen" -}}
|
|
{{- $title = cond $de "Diese Tour wird zweisprachig stattfinden (Deutsch und Englisch)" "This tour will be bilingual (German and English)" -}}
|
|
{{- $spoken = cond $de "Sprache: Deutsch und Englisch" "Language: German and English" -}}
|
|
{{- else if eq $code "de" -}}
|
|
{{- $title = cond $de "Diese Tour wird auf Deutsch stattfinden" "This tour will be held in German" -}}
|
|
{{- $spoken = cond $de "Sprache: Deutsch" "Language: German" -}}
|
|
{{- else if eq $code "en" -}}
|
|
{{- $title = cond $de "Diese Tour wird auf Englisch stattfinden" "This tour will be held in English" -}}
|
|
{{- $spoken = cond $de "Sprache: Englisch" "Language: English" -}}
|
|
{{- end -}}
|
|
{{- $style := "font-size: .65em; vertical-align: super;" -}}
|
|
{{- with .class }}{{ $style = "" }}{{ end -}}
|
|
<span{{ with .class }} class="{{ . }}"{{ end }}{{ with $style }} style="{{ . | safeCSS }}"{{ end }} title="{{ $title }}"><span aria-hidden="true">{{ $label }}</span><span class="visually-hidden">{{ $spoken }}</span></span>
|
|
{{- end -}}
|