Updates for checking cookie status.

This commit is contained in:
kunw 2016-11-02 18:30:08 +08:00
parent e6b5714f7d
commit 0f553aa4e2
2 changed files with 21 additions and 26 deletions

View File

@ -42,10 +42,12 @@ var mappingLangNames map[string]string
func (b *BaseController) Prepare() { func (b *BaseController) Prepare() {
var lang string var lang string
var langHasChanged bool
langRequest := b.GetString("lang") langRequest := b.GetString("lang")
if langRequest != "" { if langRequest != "" {
lang = langRequest lang = langRequest
langHasChanged = true
} else { } else {
langCookie, err := b.Ctx.Request.Cookie("language") langCookie, err := b.Ctx.Request.Cookie("language")
if err != nil { if err != nil {
@ -53,12 +55,6 @@ func (b *BaseController) Prepare() {
} }
if langCookie != nil { if langCookie != nil {
lang = langCookie.Value lang = langCookie.Value
}
if lang == "" {
sessionLang := b.GetSession("lang")
if sessionLang != nil {
b.SetSession("lang", lang)
lang = sessionLang.(string)
} else { } else {
al := b.Ctx.Request.Header.Get("Accept-Language") al := b.Ctx.Request.Header.Get("Accept-Language")
if len(al) > 4 { if len(al) > 4 {
@ -67,14 +63,14 @@ func (b *BaseController) Prepare() {
lang = al lang = al
} }
} }
} langHasChanged = true
} }
} }
if langHasChanged {
if _, exist := supportLanguages[lang]; !exist { //Check if support the request language. if _, exist := supportLanguages[lang]; !exist { //Check if support the request language.
lang = defaultLang //Set default language if not supported. lang = defaultLang //Set default language if not supported.
} }
cookies := &http.Cookie{ cookies := &http.Cookie{
Name: "language", Name: "language",
Value: lang, Value: lang,
@ -82,8 +78,7 @@ func (b *BaseController) Prepare() {
Domain: "/", Domain: "/",
} }
http.SetCookie(b.Ctx.ResponseWriter, cookies) http.SetCookie(b.Ctx.ResponseWriter, cookies)
}
b.SetSession("lang", lang)
curLang := langType{ curLang := langType{
Lang: lang, Lang: lang,

View File

@ -25,7 +25,7 @@
</div> </div>
<!-- Collect the nav links, forms, and other content for toggling --> <!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-harbor-navbar-collapse-1"> <div class="collapse navbar-collapse" id="bs-harbor-navbar-collapse-1">
<optional-menu version="dev" language="{{ .Lang }}" login-status="//vm.loginStatus//"></optional-menu> <optional-menu version="{{.Version}}" language="{{.Lang}}" login-status="//vm.loginStatus//"></optional-menu>
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<navigation-header></navigation-header> <navigation-header></navigation-header>