aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/http.go
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2025-07-23 20:01:32 +0200
committerThomas Voss <mail@thomasvoss.com> 2025-07-23 20:01:32 +0200
commit1593a094e1e9cf3006a084883539533856e1b535 (patch)
tree493e016c3d07f8428bc1d8a7ffb4b69190f8816d /src/http.go
parent5f1bd49cfef5852bbd539754fb31e8adada29ef3 (diff)
Use a semi-in-house translation system
Diffstat (limited to 'src/http.go')
-rw-r--r--src/http.go18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/http.go b/src/http.go
index 4a56430..097b8f8 100644
--- a/src/http.go
+++ b/src/http.go
@@ -10,12 +10,12 @@ import (
"net/http"
"slices"
"strconv"
- "strings"
. "git.thomasvoss.com/euro-cash.eu/pkg/try"
"git.thomasvoss.com/euro-cash.eu/src/dbx"
"git.thomasvoss.com/euro-cash.eu/src/email"
+ "git.thomasvoss.com/euro-cash.eu/src/i18n"
)
type middleware = func(http.Handler) http.Handler
@@ -87,19 +87,21 @@ func finalHandler(w http.ResponseWriter, r *http.Request) {
}
data := r.Context().Value("td").(*templateData)
- t.Execute(w, data)
+ if err := t.Execute(w, data); err != nil {
+ log.Println(err)
+ }
}
func i18nHandler(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- var p, pZero Printer
+ var p, pZero i18n.Printer
if c, err := r.Cookie("locale"); err == nil {
- p = printers[strings.ToLower(c.Value)]
+ p = i18n.Printers[c.Value]
}
td := r.Context().Value("td").(*templateData)
- td.Printer = cmp.Or(p, defaultPrinter)
+ td.Printer = cmp.Or(p, i18n.DefaultPrinter)
if p == pZero {
http.SetCookie(w, &http.Cookie{
@@ -124,14 +126,14 @@ func countryHandler(next http.Handler) http.Handler {
func mintageHandler(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
td := r.Context().Value("td").(*templateData)
- td.Code = strings.ToLower(r.FormValue("code"))
+ td.Code = r.FormValue("code")
if !slices.ContainsFunc(td.Countries, func(c country) bool {
return c.Code == td.Code
}) {
td.Code = td.Countries[0].Code
}
- td.Type = strings.ToLower(r.FormValue("type"))
+ td.Type = r.FormValue("type")
switch td.Type {
case "circ", "nifc", "proof":
default:
@@ -152,7 +154,7 @@ func mintageHandler(next http.Handler) http.Handler {
func setUserLanguage(w http.ResponseWriter, r *http.Request) {
loc := r.FormValue("locale")
- _, ok := printers[strings.ToLower(loc)]
+ _, ok := i18n.Printers[loc]
if !ok {
w.WriteHeader(http.StatusUnprocessableEntity)
fmt.Fprintf(w, "Locale ā€˜%s’ is invalid or unsupported", loc)