diff --git a/agent/i18n/i18n.go b/agent/i18n/i18n.go index aa1b83afb..420cc884f 100644 --- a/agent/i18n/i18n.go +++ b/agent/i18n/i18n.go @@ -2,6 +2,7 @@ package i18n import ( "embed" + "github.com/1Panel-dev/1Panel/agent/app/repo" "strings" "github.com/1Panel-dev/1Panel/agent/global" @@ -113,7 +114,7 @@ func UseI18n() gin.HandlerFunc { return func(context *gin.Context) { lang := context.GetHeader("Accept-Language") if lang == "" { - lang = "en" + lang = GetLanguageFromDB() } global.I18n = i18n.NewLocalizer(bundle, lang) } @@ -132,5 +133,17 @@ func Init() { _, _ = bundle.LoadMessageFileFS(fs, "lang/ru.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/ms.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/ko.yaml") - global.I18n = i18n.NewLocalizer(bundle, "en") + lang := GetLanguageFromDB() + global.I18n = i18n.NewLocalizer(bundle, lang) +} + +func GetLanguageFromDB() string { + if global.DB == nil { + return "en" + } + lang, _ := repo.NewISettingRepo().GetValueByKey("Language") + if lang == "" { + return "en" + } + return lang } diff --git a/agent/server/server.go b/agent/server/server.go index b88d44a57..bb94650b7 100644 --- a/agent/server/server.go +++ b/agent/server/server.go @@ -3,6 +3,8 @@ package server import ( "crypto/tls" "fmt" + "github.com/1Panel-dev/1Panel/agent/init/log" + "github.com/1Panel-dev/1Panel/agent/init/migration" "net" "net/http" "os" @@ -19,8 +21,6 @@ import ( "github.com/1Panel-dev/1Panel/agent/init/db" "github.com/1Panel-dev/1Panel/agent/init/dir" "github.com/1Panel-dev/1Panel/agent/init/hook" - "github.com/1Panel-dev/1Panel/agent/init/log" - "github.com/1Panel-dev/1Panel/agent/init/migration" "github.com/1Panel-dev/1Panel/agent/init/router" "github.com/1Panel-dev/1Panel/agent/init/validator" "github.com/1Panel-dev/1Panel/agent/init/viper" @@ -32,11 +32,11 @@ import ( func Start() { viper.Init() dir.Init() - i18n.Init() log.Init() db.Init() - cache.Init() migration.Init() + i18n.Init() + cache.Init() app.Init() validator.Init() gin.SetMode("debug")