diff --git a/internal/configloaders/admin_module.go b/internal/configloaders/admin_module.go index 90e508de..94684360 100644 --- a/internal/configloaders/admin_module.go +++ b/internal/configloaders/admin_module.go @@ -174,6 +174,17 @@ func FindAdminLang(adminId int64) string { return "" } +// UpdateAdminLang 修改某个管理员选择的语言 +func UpdateAdminLang(adminId int64, langCode string) { + locker.Lock() + defer locker.Unlock() + + list, ok := sharedAdminModuleMapping[adminId] + if ok { + list.Lang = langCode + } +} + func FindAdminLangForAction(actionPtr actions.ActionWrapper) (langCode langs.LangCode) { locker.Lock() defer locker.Unlock() diff --git a/internal/web/actions/default/settings/lang/switch.go b/internal/web/actions/default/settings/lang/switch.go index 008ff7a4..132e4928 100644 --- a/internal/web/actions/default/settings/lang/switch.go +++ b/internal/web/actions/default/settings/lang/switch.go @@ -3,8 +3,9 @@ package lang import ( + "github.com/TeaOSLab/EdgeAdmin/internal/configloaders" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "net/http" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" ) type SwitchAction struct { @@ -23,12 +24,13 @@ func (this *SwitchAction) RunPost(params struct{}) { langCode = "zh-cn" } - this.AddCookie(&http.Cookie{ - Name: "edgelang", - Value: langCode, - Path: "/", - MaxAge: 86400 * 365, - }) + configloaders.UpdateAdminLang(this.AdminId(), langCode) + + _, err := this.RPC().AdminRPC().UpdateAdminLang(this.AdminContext(), &pb.UpdateAdminLangRequest{LangCode: langCode}) + if err != nil { + this.ErrorPage(err) + return + } this.Success() }