From 6feb95eb68e895eeb4d49bc695ad347fed0ed304 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sat, 1 Dec 2018 18:19:32 -0800 Subject: try 2 --- cmd/site/html.go | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'cmd/site/html.go') diff --git a/cmd/site/html.go b/cmd/site/html.go index ba304c5..d85e817 100644 --- a/cmd/site/html.go +++ b/cmd/site/html.go @@ -7,6 +7,7 @@ import ( "net/http" "time" + "github.com/Unknwon/i18n" "github.com/Xe/ln" ) @@ -21,7 +22,32 @@ func (s *Site) renderTemplatePage(templateFname string, data interface{}) http.H s.tlock.RLock() defer s.tlock.RUnlock() - var t *template.Template + const fallbackLang = `en-US` + + getTranslation := func(group, key string, vals ...interface{}) string { + var lang string + locale, err := GetPreferredLocale(r) + if err != nil { + ln.Error(r.Context(), err) + lang = fallbackLang + goto skip + } + + if !i18n.IsExist(locale.Lang) { + lang = fallbackLang + goto skip + } + + lang = locale.Lang + skip: + return i18n.Tr(lang, group+"."+key, vals...) + } + + funcMap := template.FuncMap{ + "trans": getTranslation, + } + + var t = template.New(templateFname).Funcs(funcMap) var err error if s.templates[templateFname] == nil { -- cgit v1.2.3