diff --git a/routers/user/auth.go b/routers/user/auth.go index fe49b7b12..dc5c5536b 100755 --- a/routers/user/auth.go +++ b/routers/user/auth.go @@ -535,17 +535,23 @@ func handleSignInFull(ctx *context.Context, u *models.User, remember bool, obeyR log.Error("Unable to store session: %v", err) } - // Language setting of the user use the one previously set - if len(ctx.GetCookie("lang")) != 0 { - u.Language = ctx.GetCookie("lang") - } // If the user does not have a locale set, we save the current one. if len(u.Language) == 0 { - u.Language = ctx.Locale.Language() + if len(ctx.GetCookie("lang")) != 0 { + u.Language = ctx.GetCookie("lang") + } else { + u.Language = ctx.Locale.Language() + } + if err := models.UpdateUserCols(u, "language"); err != nil { log.Error(fmt.Sprintf("Error updating user language [user: %d, locale: %s]", u.ID, u.Language)) return setting.AppSubURL + "/" } + } else { + // Language setting of the user use the one previously set + if len(ctx.GetCookie("lang")) != 0 { + u.Language = ctx.GetCookie("lang") + } } ctx.SetCookie("lang", u.Language, nil, setting.AppSubURL, setting.SessionConfig.Domain, setting.SessionConfig.Secure, true)