Browse Source

Fix switch language (#14484)

Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lauris BH <lauris@nix.lv>
tags/v1.15.0-dev
Lunny Xiao GitHub 4 years ago
parent
commit
3851c7e8c5
1 changed files with 4 additions and 6 deletions
  1. +4
    -6
      modules/middlewares/locale.go

+ 4
- 6
modules/middlewares/locale.go View 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)


Loading…
Cancel
Save