From 669ff8e9b1c15d24dd30852588c2dbb3d82e0cd9 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 27 Jan 2021 22:20:42 +0800 Subject: [PATCH] Fix switch language (#14484) Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH --- modules/middlewares/locale.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/middlewares/locale.go b/modules/middlewares/locale.go index 7cfba81bda..21980ad486 100644 --- a/modules/middlewares/locale.go +++ b/modules/middlewares/locale.go @@ -15,24 +15,22 @@ import ( // Locale handle locale func Locale(resp http.ResponseWriter, req *http.Request) translation.Locale { - hasCookie := false - // 1. Check URL arguments. lang := req.URL.Query().Get("lang") + var changeLang = lang != "" // 2. Get language information from cookies. if len(lang) == 0 { ck, _ := req.Cookie("lang") if ck != nil { lang = ck.Value - hasCookie = true } } // Check again in case someone modify by purpose. if lang != "" && !i18n.IsExist(lang) { lang = "" - hasCookie = false + changeLang = false } // 3. Get language information from 'Accept-Language'. @@ -43,8 +41,8 @@ func Locale(resp http.ResponseWriter, req *http.Request) translation.Locale { lang = tag.String() } - if !hasCookie { - req.AddCookie(NewCookie("lang", lang, 1<<31-1)) + if changeLang { + SetCookie(resp, "lang", lang, 1<<31-1) } return translation.NewLocale(lang)