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) } }