ots/translations.go
Knut Ahlers 7aaf7a7f53
Generate SRI integrity hashes into html
to prevent loading of scripts which were modified on the network
transport

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-05-05 19:08:02 +02:00

40 lines
916 B
Go

package main
import (
"net/http"
"strings"
"text/template"
"github.com/nicksnyder/go-i18n/i18n"
log "github.com/sirupsen/logrus"
)
func init() {
for _, filename := range AssetNames() {
if !strings.HasPrefix(filename, "frontend/locale") || !strings.HasSuffix(filename, ".all.json") {
continue
}
translationData, _ := Asset(filename)
if err := i18n.ParseTranslationFileBytes(filename, translationData); err != nil {
log.Fatalf("Unable to load translation data %q: %s", filename, err)
}
}
}
func addTranslateFunc(t template.FuncMap, r *http.Request) template.FuncMap {
cookie, _ := r.Cookie("lang")
cookieLang := ""
if cookie != nil {
cookieLang = cookie.Value
}
qpLang := r.URL.Query().Get("hl")
acceptLang := r.Header.Get("Accept-Language")
defaultLang := "en-US" // known valid language
T, _ := i18n.Tfunc(cookieLang, qpLang, acceptLang, defaultLang)
t["T"] = T
return t
}