fix: use FuncMap for translations in admin template

This commit is contained in:
Claus Lohmar 2026-07-08 15:54:57 +01:00
parent 207f7532be
commit 3f3e929374

19
main.go
View file

@ -280,9 +280,11 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
return return
} }
funcMap := template.FuncMap{"t": func(key string) string { funcMap := template.FuncMap{
return T(settings.Company.Language, key) "t": func(key string) string {
}} return T(settings.Company.Language, key)
},
}
tmpl := template.Must(template.New("admin").Funcs(funcMap).Parse(adminHTML)) tmpl := template.Must(template.New("admin").Funcs(funcMap).Parse(adminHTML))
w.Header().Set("Content-Type", "text/html; charset=utf-8") w.Header().Set("Content-Type", "text/html; charset=utf-8")
@ -297,7 +299,6 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
"Domain": domain, "Domain": domain,
"AdminEmail": adminEmail, "AdminEmail": adminEmail,
"AutheliaUp": autheliaUp, "AutheliaUp": autheliaUp,
"T": func(key string) string { return T(settings.Company.Language, key) },
}) })
case http.MethodPost: case http.MethodPost:
@ -919,12 +920,12 @@ const adminHTML = `<!DOCTYPE html>
<form id="global-form" onsubmit="return saveGlobal(event)"> <form id="global-form" onsubmit="return saveGlobal(event)">
<div class="card"> <div class="card">
<h3>Company</h3> <h3>Company</h3>
<div class="field"><label>{{.T "company_name"}}</label><input type="text" name="company_name" value="{{.Settings.Company.Name}}"></div> <div class="field"><label>{{t "company_name"}}</label><input type="text" name="company_name" value="{{.Settings.Company.Name}}"></div>
<div class="field"><label>{{.T "company_subtitle"}}</label><input type="text" name="company_subtitle" value="{{.Settings.Company.Subtitle}}"></div> <div class="field"><label>{{t "company_subtitle"}}</label><input type="text" name="company_subtitle" value="{{.Settings.Company.Subtitle}}"></div>
<div class="field"><label>{{.T "company_logo"}}</label><input type="url" name="company_logo" value="{{.Settings.Company.Logo}}" placeholder="https://example.com/logo.png"></div> <div class="field"><label>{{t "company_logo"}}</label><input type="url" name="company_logo" value="{{.Settings.Company.Logo}}" placeholder="https://example.com/logo.png"></div>
<div class="field-row"> <div class="field-row">
<div class="field"><label>{{.T "language"}}</label><select name="language"><option value="en" {{if eq .Settings.Company.Language "en"}}selected{{end}}>English</option><option value="de" {{if eq .Settings.Company.Language "de"}}selected{{end}}>Deutsch</option></select></div> <div class="field"><label>{{t "language"}}</label><select name="language"><option value="en" {{if eq .Settings.Company.Language "en"}}selected{{end}}>English</option><option value="de" {{if eq .Settings.Company.Language "de"}}selected{{end}}>Deutsch</option></select></div>
<div class="field"><label>{{.T "timezone"}}</label><select name="timezone">{{$tz := .Settings.Company.Timezone}}<option value="UTC" {{if eq $tz "UTC"}}selected{{end}}>UTC</option><option value="Europe/London" {{if eq $tz "Europe/London"}}selected{{end}}>Europe/London</option><option value="Europe/Berlin" {{if eq $tz "Europe/Berlin"}}selected{{end}}>Europe/Berlin</option><option value="America/New_York" {{if eq $tz "America/New_York"}}selected{{end}}>America/New_York</option><option value="Asia/Tokyo" {{if eq $tz "Asia/Tokyo"}}selected{{end}}>Asia/Tokyo</option></select></div> <div class="field"><label>{{t "timezone"}}</label><select name="timezone">{{$tz := .Settings.Company.Timezone}}<option value="UTC" {{if eq $tz "UTC"}}selected{{end}}>UTC</option><option value="Europe/London" {{if eq $tz "Europe/London"}}selected{{end}}>Europe/London</option><option value="Europe/Berlin" {{if eq $tz "Europe/Berlin"}}selected{{end}}>Europe/Berlin</option><option value="America/New_York" {{if eq $tz "America/New_York"}}selected{{end}}>America/New_York</option><option value="Asia/Tokyo" {{if eq $tz "Asia/Tokyo"}}selected{{end}}>Asia/Tokyo</option></select></div>
</div> </div>
</div> </div>
<div class="card"> <div class="card">