mirror of
https://github.com/rjNemo/rentease.git
synced 2026-06-06 02:36:49 +00:00
41 lines
783 B
Go
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)
|
|
}
|
|
}
|