rentease/internal/server/handle_language.go
Ruidy 584d81f7bd
Some checks failed
CI / checks (push) Has been cancelled
feat(i18n): add language toggle and localize views
2026-01-09 16:09:20 -04:00

41 lines
783 B
Go

package server
import (
"net/http"
"github.com/go-chi/chi/v5"
ri18n "github.com/rjNemo/rentease/internal/i18n"
)
func handleLanguage() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
locale := chi.URLParam(r, "locale")
if locale != "fr" {
locale = "en"
}
// Set preference cookie (1 year)
http.SetCookie(w, &http.Cookie{
Name: ri18n.CookieName,
Value: locale,
Path: "/",
MaxAge: 31536000,
HttpOnly: false,
SameSite: http.SameSiteLaxMode,
})
// Redirect back to referer or home
referer := r.Header.Get("Referer")
if referer == "" {
referer = "/"
}
if hxRequest(r) {
_ = hxRedirect(w, http.StatusSeeOther, referer)
return
}
http.Redirect(w, r, referer, http.StatusSeeOther)
}
}