]> source.dussan.org Git - gitea.git/commitdiff
Fix switch language (#14484)
authorLunny Xiao <xiaolunwen@gmail.com>
Wed, 27 Jan 2021 14:20:42 +0000 (22:20 +0800)
committerGitHub <noreply@github.com>
Wed, 27 Jan 2021 14:20:42 +0000 (16:20 +0200)
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lauris BH <lauris@nix.lv>
modules/middlewares/locale.go

index 7cfba81bda6bfcbccff8a142dbc0eeb569297792..21980ad486e520df02e285eb547a97f340d96226 100644 (file)
@@ -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)