diff --git a/.github/workflows/documents.yml b/.github/workflows/documents.yml index 6f0e7d27..5ba557ee 100644 --- a/.github/workflows/documents.yml +++ b/.github/workflows/documents.yml @@ -58,4 +58,4 @@ jobs: with: apiToken: ${{ secrets.CF_API_TOKEN }} accountId: ${{ secrets.CF_ACCOUNT_ID }} - command: pages deploy "docs/.vitepress/dist/" --branch=main --commit-dirty=true --project-name=nginxui + command: pages deploy "docs/.vitepress/dist/" --commit-dirty=true --project-name=nginxui diff --git a/.gitignore b/.gitignore index 6ab491f9..6dd5e8bb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ tmp node_modules .pnpm-store app.ini +app.*.ini dist *.exe *.po~ @@ -12,3 +13,5 @@ resources/development/nginx app/.env app/.status_hash casdoor.pub +.idea/deployment.xml +.idea/webServers.xml diff --git a/api/analytic/analytic.go b/api/analytic/analytic.go index 3551cf5c..918a3ee8 100644 --- a/api/analytic/analytic.go +++ b/api/analytic/analytic.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/0xJacky/Nginx-UI/internal/analytic" "github.com/0xJacky/Nginx-UI/internal/helper" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/host" "github.com/shirou/gopsutil/v3/load" diff --git a/api/analytic/nodes.go b/api/analytic/nodes.go index b880991c..4f698c3b 100644 --- a/api/analytic/nodes.go +++ b/api/analytic/nodes.go @@ -3,7 +3,7 @@ package analytic import ( "github.com/0xJacky/Nginx-UI/internal/analytic" "github.com/0xJacky/Nginx-UI/internal/helper" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "net/http" diff --git a/api/api.go b/api/api.go index e7237ddb..d5989690 100644 --- a/api/api.go +++ b/api/api.go @@ -2,7 +2,7 @@ package api import ( "errors" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/model" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" diff --git a/api/certificate/acme_user.go b/api/certificate/acme_user.go index 65928dc5..13431dd9 100644 --- a/api/certificate/acme_user.go +++ b/api/certificate/acme_user.go @@ -2,12 +2,12 @@ package certificate import ( "github.com/0xJacky/Nginx-UI/api" - "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" "net/http" ) @@ -31,7 +31,7 @@ func CreateAcmeUser(c *gin.Context) { "register_on_startup": "omitempty", }).BeforeExecuteHook(func(ctx *cosy.Ctx[model.AcmeUser]) { if ctx.Model.CADir == "" { - ctx.Model.CADir = settings.ServerSettings.GetCADir() + ctx.Model.CADir = settings.CertSettings.GetCADir() } err := ctx.Model.Register() if err != nil { @@ -50,7 +50,7 @@ func ModifyAcmeUser(c *gin.Context) { "register_on_startup": "omitempty", }).BeforeExecuteHook(func(ctx *cosy.Ctx[model.AcmeUser]) { if ctx.Model.CADir == "" { - ctx.Model.CADir = settings.ServerSettings.GetCADir() + ctx.Model.CADir = settings.CertSettings.GetCADir() } if ctx.OriginModel.Email != ctx.Model.Email || diff --git a/api/certificate/certificate.go b/api/certificate/certificate.go index a2dd0c68..f333cfc9 100644 --- a/api/certificate/certificate.go +++ b/api/certificate/certificate.go @@ -3,7 +3,6 @@ package certificate import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/cert" - "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/0xJacky/Nginx-UI/internal/notification" @@ -12,6 +11,7 @@ import ( "github.com/gin-gonic/gin" "github.com/go-acme/lego/v4/certcrypto" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" "net/http" "os" ) diff --git a/api/certificate/dns_credential.go b/api/certificate/dns_credential.go index 59df26d8..0fec35f4 100644 --- a/api/certificate/dns_credential.go +++ b/api/certificate/dns_credential.go @@ -3,11 +3,11 @@ package certificate import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/cert/dns" - "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/gin-gonic/gin" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" "net/http" ) diff --git a/api/certificate/issue.go b/api/certificate/issue.go index f5a7e78d..bd9b70e7 100644 --- a/api/certificate/issue.go +++ b/api/certificate/issue.go @@ -2,7 +2,7 @@ package certificate import ( "github.com/0xJacky/Nginx-UI/internal/cert" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/model" "github.com/gin-gonic/gin" "github.com/go-acme/lego/v4/certcrypto" diff --git a/api/cluster/environment.go b/api/cluster/environment.go index fb0686cb..ca9f5310 100644 --- a/api/cluster/environment.go +++ b/api/cluster/environment.go @@ -4,12 +4,12 @@ import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/analytic" "github.com/0xJacky/Nginx-UI/internal/cluster" - "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" "gorm.io/gorm" "net/http" ) diff --git a/api/cluster/node.go b/api/cluster/node.go index 57848efb..75c54f32 100644 --- a/api/cluster/node.go +++ b/api/cluster/node.go @@ -12,7 +12,7 @@ import ( ) func GetCurrentNode(c *gin.Context) { - if _, ok := c.Get("NodeSecret"); !ok { + if _, ok := c.Get("Secret"); !ok { c.JSON(http.StatusNotAcceptable, gin.H{ "message": "node secret not exist", }) diff --git a/api/config/list.go b/api/config/list.go index 44b31aa4..27e517d7 100644 --- a/api/config/list.go +++ b/api/config/list.go @@ -3,7 +3,7 @@ package config import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/config" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/gin-gonic/gin" "net/http" diff --git a/api/config/rename.go b/api/config/rename.go index f028833f..e90542a6 100644 --- a/api/config/rename.go +++ b/api/config/rename.go @@ -4,7 +4,7 @@ import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/config" "github.com/0xJacky/Nginx-UI/internal/helper" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/0xJacky/Nginx-UI/query" "github.com/gin-gonic/gin" diff --git a/api/nginx/nginx_log.go b/api/nginx/nginx_log.go index 2ac82319..22661ded 100644 --- a/api/nginx/nginx_log.go +++ b/api/nginx/nginx_log.go @@ -6,7 +6,7 @@ import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/cache" "github.com/0xJacky/Nginx-UI/internal/helper" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" diff --git a/api/notification/notification.go b/api/notification/notification.go index 1a3998d2..f0c02304 100644 --- a/api/notification/notification.go +++ b/api/notification/notification.go @@ -2,11 +2,11 @@ package notification import ( "github.com/0xJacky/Nginx-UI/api" - "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/gin-gonic/gin" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" "net/http" ) diff --git a/api/settings/settings.go b/api/settings/settings.go index 1c6ad46d..245ab690 100644 --- a/api/settings/settings.go +++ b/api/settings/settings.go @@ -1,39 +1,71 @@ package settings import ( + "fmt" "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/cron" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" + cSettings "github.com/uozi-tech/cosy/settings" "net/http" ) func GetServerName(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ - "name": settings.ServerSettings.Name, + "name": settings.NodeSettings.Name, }) } func GetSettings(c *gin.Context) { settings.NginxSettings.AccessLogPath = nginx.GetAccessLogPath() settings.NginxSettings.ErrorLogPath = nginx.GetErrorLogPath() + settings.NginxSettings.ConfigDir = nginx.GetConfPath() + settings.NginxSettings.PIDPath = nginx.GetPIDPath() + + if settings.NginxSettings.ReloadCmd == "" { + settings.NginxSettings.ReloadCmd = "nginx -s reload" + } + + if settings.NginxSettings.RestartCmd == "" { + pidPath := nginx.GetPIDPath() + daemon := nginx.GetSbinPath() + if daemon == "" { + settings.NginxSettings.RestartCmd = + fmt.Sprintf("start-stop-daemon --stop --quiet --oknodo --retry=TERM/30/KILL/5"+ + " --pidfile %s && nginx", pidPath) + return + } + + settings.NginxSettings.RestartCmd = + fmt.Sprintf("start-stop-daemon --start --quiet --pidfile %s --exec %s", pidPath, daemon) + } + c.JSON(http.StatusOK, gin.H{ - "server": settings.ServerSettings, + "app": cSettings.AppSettings, + "server": cSettings.ServerSettings, + "database": settings.DatabaseSettings, + "auth": settings.AuthSettings, + "casdoor": settings.CasdoorSettings, + "cert": settings.CertSettings, + "http": settings.HTTPSettings, + "logrotate": settings.LogrotateSettings, "nginx": settings.NginxSettings, + "node": settings.NodeSettings, "openai": settings.OpenAISettings, - "logrotate": settings.LogrotateSettings, - "auth": settings.AuthSettings, + "terminal": settings.TerminalSettings, + "webauthn": settings.WebAuthnSettings, }) } func SaveSettings(c *gin.Context) { var json struct { - Server settings.Server `json:"server"` - Nginx settings.Nginx `json:"nginx"` + Auth settings.Auth `json:"auth"` + Cert settings.Cert `json:"cert"` + Http settings.HTTP `json:"http"` + Node settings.Node `json:"node"` Openai settings.OpenAI `json:"openai"` Logrotate settings.Logrotate `json:"logrotate"` - Auth settings.Auth `json:"auth"` } if !api.BindAndValid(c, &json) { @@ -45,11 +77,12 @@ func SaveSettings(c *gin.Context) { go cron.RestartLogrotate() } - settings.ProtectedFill(&settings.ServerSettings, &json.Server) - settings.ProtectedFill(&settings.NginxSettings, &json.Nginx) - settings.ProtectedFill(&settings.OpenAISettings, &json.Openai) - settings.ProtectedFill(&settings.LogrotateSettings, &json.Logrotate) - settings.ProtectedFill(&settings.AuthSettings, &json.Auth) + cSettings.ProtectedFill(settings.AuthSettings, &json.Auth) + cSettings.ProtectedFill(settings.CertSettings, &json.Cert) + cSettings.ProtectedFill(settings.HTTPSettings, &json.Http) + cSettings.ProtectedFill(settings.NodeSettings, &json.Node) + cSettings.ProtectedFill(settings.OpenAISettings, &json.Openai) + cSettings.ProtectedFill(settings.LogrotateSettings, &json.Logrotate) err := settings.Save() if err != nil { diff --git a/api/sites/category.go b/api/sites/category.go new file mode 100644 index 00000000..d8ded05d --- /dev/null +++ b/api/sites/category.go @@ -0,0 +1,41 @@ +package sites + +import ( + "github.com/0xJacky/Nginx-UI/model" + "github.com/gin-gonic/gin" + "github.com/uozi-tech/cosy" +) + +func GetCategory(c *gin.Context) { + +} + +func GetCategoryList(c *gin.Context) { + cosy.Core[model.SiteCategory](c).PagingList() +} + +func AddCategory(c *gin.Context) { + cosy.Core[model.SiteCategory](c). + SetValidRules(gin.H{ + "name": "required", + "sync_node_ids": "omitempty", + }). + Create() +} + +func ModifyCategory(c *gin.Context) { + cosy.Core[model.SiteCategory](c). + SetValidRules(gin.H{ + "name": "required", + "sync_node_ids": "omitempty", + }). + Modify() +} + +func DeleteCategory(c *gin.Context) { + cosy.Core[model.SiteCategory](c).Destroy() +} + +func RecoverCategory(c *gin.Context) { + cosy.Core[model.SiteCategory](c).Recover() +} diff --git a/api/sites/domain.go b/api/sites/domain.go index 00b8c295..8956ffc6 100644 --- a/api/sites/domain.go +++ b/api/sites/domain.go @@ -3,9 +3,8 @@ package sites import ( "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/cert" - "github.com/0xJacky/Nginx-UI/internal/config" "github.com/0xJacky/Nginx-UI/internal/helper" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" @@ -13,68 +12,8 @@ import ( "github.com/sashabaranov/go-openai" "net/http" "os" - "strings" ) -func GetSiteList(c *gin.Context) { - name := c.Query("name") - enabled := c.Query("enabled") - orderBy := c.Query("order_by") - sort := c.DefaultQuery("sort", "desc") - - configFiles, err := os.ReadDir(nginx.GetConfPath("sites-available")) - if err != nil { - api.ErrHandler(c, err) - return - } - - enabledConfig, err := os.ReadDir(nginx.GetConfPath("sites-enabled")) - if err != nil { - api.ErrHandler(c, err) - return - } - - enabledConfigMap := make(map[string]bool) - for i := range enabledConfig { - enabledConfigMap[enabledConfig[i].Name()] = true - } - - var configs []config.Config - - for i := range configFiles { - file := configFiles[i] - fileInfo, _ := file.Info() - if !file.IsDir() { - // name filter - if name != "" && !strings.Contains(file.Name(), name) { - continue - } - // status filter - if enabled != "" { - if enabled == "true" && !enabledConfigMap[file.Name()] { - continue - } - if enabled == "false" && enabledConfigMap[file.Name()] { - continue - } - } - configs = append(configs, config.Config{ - Name: file.Name(), - ModifiedAt: fileInfo.ModTime(), - Size: fileInfo.Size(), - IsDir: fileInfo.IsDir(), - Enabled: enabledConfigMap[file.Name()], - }) - } - } - - configs = config.Sort(orderBy, sort, configs) - - c.JSON(http.StatusOK, gin.H{ - "data": configs, - }) -} - func GetSite(c *gin.Context) { rewriteName, ok := c.Get("rewriteConfigFileName") name := c.Param("name") diff --git a/api/sites/list.go b/api/sites/list.go new file mode 100644 index 00000000..1cb29c93 --- /dev/null +++ b/api/sites/list.go @@ -0,0 +1,70 @@ +package sites + +import ( + "github.com/0xJacky/Nginx-UI/api" + "github.com/0xJacky/Nginx-UI/internal/config" + "github.com/0xJacky/Nginx-UI/internal/nginx" + "github.com/gin-gonic/gin" + "net/http" + "os" + "strings" +) + +func GetSiteList(c *gin.Context) { + name := c.Query("name") + enabled := c.Query("enabled") + orderBy := c.Query("order_by") + sort := c.DefaultQuery("sort", "desc") + + configFiles, err := os.ReadDir(nginx.GetConfPath("sites-available")) + if err != nil { + api.ErrHandler(c, err) + return + } + + enabledConfig, err := os.ReadDir(nginx.GetConfPath("sites-enabled")) + if err != nil { + api.ErrHandler(c, err) + return + } + + enabledConfigMap := make(map[string]bool) + for i := range enabledConfig { + enabledConfigMap[enabledConfig[i].Name()] = true + } + + var configs []config.Config + + for i := range configFiles { + file := configFiles[i] + fileInfo, _ := file.Info() + if !file.IsDir() { + // name filter + if name != "" && !strings.Contains(file.Name(), name) { + continue + } + // status filter + if enabled != "" { + if enabled == "true" && !enabledConfigMap[file.Name()] { + continue + } + if enabled == "false" && enabledConfigMap[file.Name()] { + continue + } + } + configs = append(configs, config.Config{ + Name: file.Name(), + ModifiedAt: fileInfo.ModTime(), + Size: fileInfo.Size(), + IsDir: fileInfo.IsDir(), + Enabled: enabledConfigMap[file.Name()], + }) + } + } + + configs = config.Sort(orderBy, sort, configs) + + c.JSON(http.StatusOK, gin.H{ + "data": configs, + }) +} diff --git a/api/sites/router.go b/api/sites/router.go index 2a2f3381..a604e77c 100644 --- a/api/sites/router.go +++ b/api/sites/router.go @@ -14,3 +14,12 @@ func InitRouter(r *gin.RouterGroup) { r.POST("auto_cert/:name", AddDomainToAutoCert) r.DELETE("auto_cert/:name", RemoveDomainFromAutoCert) } + +func InitCategoryRouter(r *gin.RouterGroup) { + r.GET("site_categories", GetCategoryList) + r.GET("site_category/:id", GetCategory) + r.POST("site_category", AddCategory) + r.PUT("site_category/:id", ModifyCategory) + r.DELETE("site_category/:id", DeleteCategory) + r.POST("site_category/:id/recover", RecoverCategory) +} diff --git a/api/system/install.go b/api/system/install.go index 94fc52c7..533b39ea 100644 --- a/api/system/install.go +++ b/api/system/install.go @@ -8,12 +8,13 @@ import ( "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" "github.com/google/uuid" + cSettings "github.com/uozi-tech/cosy/settings" "golang.org/x/crypto/bcrypt" "net/http" ) func installLockStatus() bool { - return settings.ServerSettings.SkipInstallation || "" != settings.ServerSettings.JwtSecret + return settings.NodeSettings.SkipInstallation || "" != cSettings.AppSettings.JwtSecret } func InstallLockCheck(c *gin.Context) { @@ -43,11 +44,11 @@ func InstallNginxUI(c *gin.Context) { return } - settings.ServerSettings.JwtSecret = uuid.New().String() - settings.ServerSettings.NodeSecret = uuid.New().String() - settings.ServerSettings.Email = json.Email + cSettings.AppSettings.JwtSecret = uuid.New().String() + settings.NodeSettings.Secret = uuid.New().String() + settings.CertSettings.Email = json.Email if "" != json.Database { - settings.ServerSettings.Database = json.Database + settings.DatabaseSettings.Name = json.Database } err := settings.Save() diff --git a/api/system/upgrade.go b/api/system/upgrade.go index 1b245e69..3dbd3478 100644 --- a/api/system/upgrade.go +++ b/api/system/upgrade.go @@ -2,11 +2,11 @@ package system import ( "github.com/0xJacky/Nginx-UI/api" - "github.com/0xJacky/Nginx-UI/internal/logger" "github.com/0xJacky/Nginx-UI/internal/upgrader" "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" + "github.com/uozi-tech/cosy/logger" "net/http" "os" ) @@ -135,7 +135,7 @@ func PerformCoreUpgrade(c *gin.Context) { Message: "Performing core upgrade", }) // dry run - if control.DryRun || settings.ServerSettings.Demo { + if control.DryRun || settings.NodeSettings.Demo { return } diff --git a/api/terminal/pty.go b/api/terminal/pty.go index c8cde40b..c7abf154 100644 --- a/api/terminal/pty.go +++ b/api/terminal/pty.go @@ -1,7 +1,7 @@ package terminal import ( - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/pty" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" diff --git a/api/upstream/upstream.go b/api/upstream/upstream.go index 0839b10b..64a6ee86 100644 --- a/api/upstream/upstream.go +++ b/api/upstream/upstream.go @@ -2,7 +2,7 @@ package upstream import ( "github.com/0xJacky/Nginx-UI/internal/helper" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/upstream" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" diff --git a/api/user/auth.go b/api/user/auth.go index 28d618cd..d3565ceb 100644 --- a/api/user/auth.go +++ b/api/user/auth.go @@ -2,7 +2,7 @@ package user import ( "github.com/0xJacky/Nginx-UI/api" - "github.com/0xJacky/Nginx-UI/internal/logger" + "github.com/uozi-tech/cosy/logger" "github.com/0xJacky/Nginx-UI/internal/user" "github.com/0xJacky/Nginx-UI/query" "github.com/0xJacky/Nginx-UI/settings" diff --git a/api/user/otp.go b/api/user/otp.go index 26ee3356..368c211c 100644 --- a/api/user/otp.go +++ b/api/user/otp.go @@ -21,7 +21,7 @@ import ( func GenerateTOTP(c *gin.Context) { u := api.CurrentUser(c) - issuer := fmt.Sprintf("Nginx UI %s", settings.ServerSettings.Name) + issuer := fmt.Sprintf("Nginx UI %s", settings.NodeSettings.Name) issuer = strings.TrimSpace(issuer) otpOpts := totp.GenerateOpts{ @@ -70,7 +70,7 @@ func EnrollTOTP(c *gin.Context) { return } - if settings.ServerSettings.Demo { + if settings.NodeSettings.Demo { c.JSON(http.StatusBadRequest, gin.H{ "message": "This feature is disabled in demo mode", }) diff --git a/api/user/passkey.go b/api/user/passkey.go index a79174db..9df1d632 100644 --- a/api/user/passkey.go +++ b/api/user/passkey.go @@ -5,8 +5,6 @@ import ( "fmt" "github.com/0xJacky/Nginx-UI/api" "github.com/0xJacky/Nginx-UI/internal/cache" - "github.com/0xJacky/Nginx-UI/internal/cosy" - "github.com/0xJacky/Nginx-UI/internal/logger" "github.com/0xJacky/Nginx-UI/internal/passkey" "github.com/0xJacky/Nginx-UI/internal/user" "github.com/0xJacky/Nginx-UI/model" @@ -15,6 +13,8 @@ import ( "github.com/go-webauthn/webauthn/webauthn" "github.com/google/uuid" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" + "github.com/uozi-tech/cosy/logger" "gorm.io/gorm" "net/http" "strings" @@ -152,11 +152,13 @@ func FinishPasskeyLogin(c *gin.Context) { return } + secureSessionID := user.SetSecureSessionID(outUser.ID) + c.JSON(http.StatusOK, LoginResponse{ - Code: LoginSuccess, - Message: "ok", - Token: token, - // SecureSessionID: secureSessionID, + Code: LoginSuccess, + Message: "ok", + Token: token, + SecureSessionID: secureSessionID, }) } diff --git a/api/user/user.go b/api/user/user.go index 4080dce5..bfbe9ecc 100644 --- a/api/user/user.go +++ b/api/user/user.go @@ -2,12 +2,12 @@ package user import ( "github.com/0xJacky/Nginx-UI/api" - "github.com/0xJacky/Nginx-UI/internal/cosy" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/0xJacky/Nginx-UI/settings" "github.com/gin-gonic/gin" "github.com/spf13/cast" + "github.com/uozi-tech/cosy" "golang.org/x/crypto/bcrypt" "net/http" ) @@ -71,7 +71,7 @@ func AddUser(c *gin.Context) { func EditUser(c *gin.Context) { userId := cast.ToInt(c.Param("id")) - if settings.ServerSettings.Demo && userId == 1 { + if settings.NodeSettings.Demo && userId == 1 { c.JSON(http.StatusNotAcceptable, gin.H{ "message": "Changing user password is forbidden in demo mode", }) diff --git a/app/package.json b/app/package.json index d6cc5c7c..cac2c138 100644 --- a/app/package.json +++ b/app/package.json @@ -49,7 +49,7 @@ "devDependencies": { "@antfu/eslint-config-vue": "^0.43.1", "@simplewebauthn/types": "^10.0.0", - "@types/lodash": "^4.17.11", + "@types/lodash": "^4.17.12", "@types/nprogress": "^0.2.3", "@types/sortablejs": "^1.15.8", "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -58,7 +58,7 @@ "@vitejs/plugin-vue-jsx": "^4.0.1", "@vue/compiler-sfc": "^3.5.12", "@vue/tsconfig": "^0.5.1", - "ace-builds": "^1.36.2", + "ace-builds": "^1.36.3", "autoprefixer": "^10.4.20", "eslint": "^8.57.1", "eslint-import-resolver-alias": "^1.1.2", @@ -66,7 +66,7 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-regex": "^1.10.0", "eslint-plugin-sonarjs": "^0.23.0", - "eslint-plugin-vue": "^9.29.0", + "eslint-plugin-vue": "^9.29.1", "less": "^4.2.0", "postcss": "^8.4.47", "tailwindcss": "^3.4.14", diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index 1dc34cf2..0c5c7386 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -97,7 +97,7 @@ importers: version: 4.4.5(vue@3.5.12(typescript@5.3.3)) vue3-ace-editor: specifier: 2.2.4 - version: 2.2.4(ace-builds@1.36.2)(vue@3.5.12(typescript@5.3.3)) + version: 2.2.4(ace-builds@1.36.3)(vue@3.5.12(typescript@5.3.3)) vue3-apexcharts: specifier: 1.5.3 version: 1.5.3(apexcharts@3.54.1)(vue@3.5.12(typescript@5.3.3)) @@ -113,13 +113,13 @@ importers: devDependencies: '@antfu/eslint-config-vue': specifier: ^0.43.1 - version: 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3) + version: 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3) '@simplewebauthn/types': specifier: ^10.0.0 version: 10.0.0 '@types/lodash': - specifier: ^4.17.11 - version: 4.17.11 + specifier: ^4.17.12 + version: 4.17.12 '@types/nprogress': specifier: ^0.2.3 version: 0.2.3 @@ -134,10 +134,10 @@ importers: version: 6.21.0(eslint@8.57.1)(typescript@5.3.3) '@vitejs/plugin-vue': specifier: ^5.1.4 - version: 5.1.4(vite@5.4.9(@types/node@22.7.6)(less@4.2.0))(vue@3.5.12(typescript@5.3.3)) + version: 5.1.4(vite@5.4.9(@types/node@22.7.8)(less@4.2.0))(vue@3.5.12(typescript@5.3.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.1 - version: 4.0.1(vite@5.4.9(@types/node@22.7.6)(less@4.2.0))(vue@3.5.12(typescript@5.3.3)) + version: 4.0.1(vite@5.4.9(@types/node@22.7.8)(less@4.2.0))(vue@3.5.12(typescript@5.3.3)) '@vue/compiler-sfc': specifier: ^3.5.12 version: 3.5.12 @@ -145,8 +145,8 @@ importers: specifier: ^0.5.1 version: 0.5.1 ace-builds: - specifier: ^1.36.2 - version: 1.36.2 + specifier: ^1.36.3 + version: 1.36.3 autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -155,7 +155,7 @@ importers: version: 8.57.1 eslint-import-resolver-alias: specifier: ^1.1.2 - version: 1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)) + version: 1.1.2(eslint-plugin-import@2.31.0) eslint-import-resolver-typescript: specifier: ^3.6.3 version: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1) @@ -169,8 +169,8 @@ importers: specifier: ^0.23.0 version: 0.23.0(eslint@8.57.1) eslint-plugin-vue: - specifier: ^9.29.0 - version: 9.29.0(eslint@8.57.1) + specifier: ^9.29.1 + version: 9.29.1(eslint@8.57.1) less: specifier: ^4.2.0 version: 4.2.0 @@ -194,7 +194,7 @@ importers: version: 1.5.2(rollup@4.24.0)(vue@3.5.12(typescript@5.3.3))(webpack-sources@3.2.3) vite: specifier: ^5.4.9 - version: 5.4.9(@types/node@22.7.6)(less@4.2.0) + version: 5.4.9(@types/node@22.7.8)(less@4.2.0) vite-svg-loader: specifier: ^5.1.0 version: 5.1.0(vue@3.5.12(typescript@5.3.3)) @@ -746,8 +746,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/lodash@4.17.11': - resolution: {integrity: sha512-jzqWo/uQP/iqeGGTjhgFp2yaCrCYTauASQcpdzESNCkHjSprBJVcZP9KG9aQ0q+xcsXiKd/iuw/4dLjS3Odc7Q==} + '@types/lodash@4.17.12': + resolution: {integrity: sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==} '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -755,11 +755,11 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/node@20.16.12': - resolution: {integrity: sha512-LfPFB0zOeCeCNQV3i+67rcoVvoN5n0NVuR2vLG0O5ySQMgchuZlC4lgz546ZOJyDtj5KIgOxy+lacOimfqZAIA==} + '@types/node@20.16.14': + resolution: {integrity: sha512-vtgGzjxLF7QT88qRHtXMzCWpAAmwonE7fwgVjFtXosUva2oSpnIEc3gNO9P7uIfOxKnii2f79/xtOnfreYtDaA==} - '@types/node@22.7.6': - resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==} + '@types/node@22.7.8': + resolution: {integrity: sha512-a922jJy31vqR5sk+kAdIENJjHblqcZ4RmERviFsER4WJcEONqxKcjNOlk0q7OUfrF5sddT+vng070cdfMlrPLg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1033,8 +1033,8 @@ packages: '@yr/monotone-cubic-spline@1.0.3': resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==} - ace-builds@1.36.2: - resolution: {integrity: sha512-eqqfbGwx/GKjM/EnFu4QtQ+d2NNBu84MGgxoG8R5iyFpcVeQ4p9YlTL+ZzdEJqhdkASqoqOxCSNNGyB6lvMm+A==} + ace-builds@1.36.3: + resolution: {integrity: sha512-YcdwV2IIaJSfjkWAR1NEYN5IxBiXefTgwXsJ//UlaFrjXDX5hQpvPFvEePHz2ZBUfvO54RjHeRUQGX8MS5HaMQ==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -1181,8 +1181,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1478,8 +1478,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.41: - resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} + electron-to-chromium@1.5.42: + resolution: {integrity: sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1712,8 +1712,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@9.29.0: - resolution: {integrity: sha512-hamyjrBhNH6Li6R1h1VF9KHfshJlKgKEg3ARbGTn72CMNDSMhWbgC7NdkRDEh25AFW+4SDATzyNM+3gWuZii8g==} + eslint-plugin-vue@9.29.1: + resolution: {integrity: sha512-MH/MbVae4HV/tM8gKAVWMPJbYgW04CK7SuzYRrlNERpxbO0P3+Zdsa2oAcFBW6xNu7W6lIkGOsFAMCRTYmrlWQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -3403,14 +3403,14 @@ snapshots: '@ant-design/icons-svg': 4.4.2 vue: 3.5.12(typescript@5.3.3) - '@antfu/eslint-config-basic@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3)': + '@antfu/eslint-config-basic@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3)': dependencies: '@stylistic/eslint-plugin-js': 0.0.4 eslint: 8.57.1 eslint-plugin-antfu: 0.43.1(eslint@8.57.1)(typescript@5.3.3) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) eslint-plugin-html: 7.1.0 - eslint-plugin-import: eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsdoc: 46.10.1(eslint@8.57.1) eslint-plugin-jsonc: 2.16.0(eslint@8.57.1) eslint-plugin-markdown: 3.0.1(eslint@8.57.1) @@ -3430,9 +3430,9 @@ snapshots: - supports-color - typescript - '@antfu/eslint-config-ts@0.43.1(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3)': + '@antfu/eslint-config-ts@0.43.1(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3)': dependencies: - '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3) + '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3) '@stylistic/eslint-plugin-ts': 0.0.4(eslint@8.57.1)(typescript@5.3.3) '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3) '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.3.3) @@ -3445,12 +3445,12 @@ snapshots: - jest - supports-color - '@antfu/eslint-config-vue@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3)': + '@antfu/eslint-config-vue@0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3)': dependencies: - '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3) - '@antfu/eslint-config-ts': 0.43.1(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)(typescript@5.3.3) + '@antfu/eslint-config-basic': 0.43.1(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3) + '@antfu/eslint-config-ts': 0.43.1(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)(typescript@5.3.3) eslint: 8.57.1 - eslint-plugin-vue: 9.29.0(eslint@8.57.1) + eslint-plugin-vue: 9.29.1(eslint@8.57.1) local-pkg: 0.4.3 transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' @@ -3505,7 +3505,7 @@ snapshots: dependencies: '@babel/compat-data': 7.25.8 '@babel/helper-validator-option': 7.25.7 - browserslist: 4.24.0 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -3959,13 +3959,13 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.7.6 + '@types/node': 22.7.8 '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} - '@types/lodash@4.17.11': {} + '@types/lodash@4.17.12': {} '@types/mdast@3.0.15': dependencies: @@ -3973,11 +3973,11 @@ snapshots: '@types/minimatch@5.1.2': {} - '@types/node@20.16.12': + '@types/node@20.16.14': dependencies: undici-types: 6.19.8 - '@types/node@22.7.6': + '@types/node@22.7.8': dependencies: undici-types: 6.19.8 @@ -4124,19 +4124,19 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.9(@types/node@22.7.6)(less@4.2.0))(vue@3.5.12(typescript@5.3.3))': + '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.9(@types/node@22.7.8)(less@4.2.0))(vue@3.5.12(typescript@5.3.3))': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.25.8) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.8) - vite: 5.4.9(@types/node@22.7.6)(less@4.2.0) + vite: 5.4.9(@types/node@22.7.8)(less@4.2.0) vue: 3.5.12(typescript@5.3.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@22.7.6)(less@4.2.0))(vue@3.5.12(typescript@5.3.3))': + '@vitejs/plugin-vue@5.1.4(vite@5.4.9(@types/node@22.7.8)(less@4.2.0))(vue@3.5.12(typescript@5.3.3))': dependencies: - vite: 5.4.9(@types/node@22.7.6)(less@4.2.0) + vite: 5.4.9(@types/node@22.7.8)(less@4.2.0) vue: 3.5.12(typescript@5.3.3) '@volar/language-core@2.4.6': @@ -4325,7 +4325,7 @@ snapshots: '@yr/monotone-cubic-spline@1.0.3': {} - ace-builds@1.36.2: {} + ace-builds@1.36.3: {} acorn-jsx@5.3.2(acorn@8.13.0): dependencies: @@ -4475,7 +4475,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: - browserslist: 4.24.0 + browserslist: 4.24.2 caniuse-lite: 1.0.30001669 fraction.js: 4.3.7 normalize-range: 0.1.2 @@ -4514,12 +4514,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.0: + browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001669 - electron-to-chromium: 1.5.41 + electron-to-chromium: 1.5.42 node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.0) + update-browserslist-db: 1.1.1(browserslist@4.24.2) builtin-modules@3.3.0: {} @@ -4797,7 +4797,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.41: {} + electron-to-chromium@1.5.42: {} emoji-regex@8.0.0: {} @@ -4935,7 +4935,7 @@ snapshots: eslint: 8.57.1 semver: 7.6.3 - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0): dependencies: eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) @@ -4953,7 +4953,7 @@ snapshots: debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -4966,7 +4966,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: @@ -5002,13 +5002,13 @@ snapshots: dependencies: htmlparser2: 8.0.2 - eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: debug: 3.2.7 doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) get-tsconfig: 4.8.1 is-glob: 4.0.3 minimatch: 3.1.2 @@ -5031,7 +5031,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -5147,7 +5147,7 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.3.3))(eslint@8.57.1)(typescript@5.3.3) - eslint-plugin-vue@9.29.0(eslint@8.57.1): + eslint-plugin-vue@9.29.1(eslint@8.57.1): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) eslint: 8.57.1 @@ -6734,9 +6734,9 @@ snapshots: transitivePeerDependencies: - supports-color - update-browserslist-db@1.1.1(browserslist@4.24.0): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.24.0 + browserslist: 4.24.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -6753,7 +6753,7 @@ snapshots: vite-plugin-build-id@0.4.2: dependencies: - '@types/node': 20.16.12 + '@types/node': 20.16.14 isomorphic-git: 1.27.1 node-object-hash: 3.0.0 typescript: 5.6.3 @@ -6763,13 +6763,13 @@ snapshots: svgo: 3.3.2 vue: 3.5.12(typescript@5.3.3) - vite@5.4.9(@types/node@22.7.6)(less@4.2.0): + vite@5.4.9(@types/node@22.7.8)(less@4.2.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 22.7.6 + '@types/node': 22.7.8 fsevents: 2.3.3 less: 4.2.0 @@ -6809,9 +6809,9 @@ snapshots: is-plain-object: 3.0.1 vue: 3.5.12(typescript@5.3.3) - vue3-ace-editor@2.2.4(ace-builds@1.36.2)(vue@3.5.12(typescript@5.3.3)): + vue3-ace-editor@2.2.4(ace-builds@1.36.3)(vue@3.5.12(typescript@5.3.3)): dependencies: - ace-builds: 1.36.2 + ace-builds: 1.36.3 resize-observer-polyfill: 1.5.1 vue: 3.5.12(typescript@5.3.3) diff --git a/app/src/api/settings.ts b/app/src/api/settings.ts index bf27a158..f3404eaa 100644 --- a/app/src/api/settings.ts +++ b/app/src/api/settings.ts @@ -1,16 +1,114 @@ import http from '@/lib/http' +export interface AppSettings { + page_size: number + jwt_secret: string +} + +export interface ServerSettings { + host: string + port: number + run_mode: 'debug' | 'release' +} + +export interface DatabaseSettings { + name: string +} + +export interface AuthSettings { + ip_white_list: string[] + ban_threshold_minutes: number + max_attempts: number +} + +export interface CasdoorSettings { + endpoint: string + client_id: string + client_secret: string + certificate_path: string + organization: string + application: string + redirect_uri: string +} + +export interface CertSettings { + email: string + ca_dir: string + renewal_interval: number + recursive_nameservers: string[] + http_challenge_port: string +} + +export interface HTTPSettings { + github_proxy: string + insecure_skip_verify: boolean +} + +export interface LogrotateSettings { + enabled: boolean + cmd: string + interval: number +} + +export interface NginxSettings { + access_log_path: string + error_log_path: string + config_dir: string + log_dir_white_list: string[] + pid_path: string + reload_cmd: string + restart_cmd: string +} + +export interface NodeSettings { + name: string + secret: string +} + +export interface OpenaiSettings { + model: string + base_url: string + proxy: string + token: string +} + +export interface TerminalSettings { + start_cmd: string +} + +export interface WebauthnSettings { + rp_display_name: string + rpid: string + rp_origins: string[] +} + export interface BannedIP { ip: string attempts: number expired_at: string } +export interface Settings { + app: AppSettings + server: ServerSettings + database: DatabaseSettings + auth: AuthSettings + casdoor: CasdoorSettings + cert: CertSettings + http: HTTPSettings + logrotate: LogrotateSettings + nginx: NginxSettings + node: NodeSettings + openai: OpenaiSettings + terminal: TerminalSettings + webauthn: WebauthnSettings +} + const settings = { - get(): Promise { + get(): Promise { return http.get('/settings') }, - save(data: T) { + save(data: Settings) { return http.post('/settings', data) }, get_server_name(): Promise<{ name: string }> { diff --git a/app/src/components/StdDesign/types.d.ts b/app/src/components/StdDesign/types.d.ts index 05bc76bd..c8053e43 100644 --- a/app/src/components/StdDesign/types.d.ts +++ b/app/src/components/StdDesign/types.d.ts @@ -77,7 +77,6 @@ export interface Column extends TableColumnType { extra?: string | (() => string) pithy?: boolean search?: boolean | StdDesignEdit - sortable?: boolean handle?: boolean hiddenInTable?: boolean hiddenInTrash?: boolean diff --git a/app/src/components/TwoFA/Authorization.vue b/app/src/components/TwoFA/Authorization.vue index d572e552..c6b82388 100644 --- a/app/src/components/TwoFA/Authorization.vue +++ b/app/src/components/TwoFA/Authorization.vue @@ -46,7 +46,7 @@ async function passkeyAuthenticate() { passkeyLoading.value = true try { const begin = await twoFA.begin_start_secure_session_by_passkey() - const asseResp = await startAuthentication(begin.options.publicKey) + const asseResp = await startAuthentication({ optionsJSON: begin.options.publicKey }) const r = await twoFA.finish_start_secure_session_by_passkey({ session_id: begin.session_id, diff --git a/app/src/components/TwoFA/use2FAModal.ts b/app/src/components/TwoFA/use2FAModal.ts index c6be576e..07b39d54 100644 --- a/app/src/components/TwoFA/use2FAModal.ts +++ b/app/src/components/TwoFA/use2FAModal.ts @@ -1,6 +1,5 @@ import { createVNode, render } from 'vue' import { Modal, message } from 'ant-design-vue' -import { useCookies } from '@vueuse/integrations/useCookies' import Authorization from '@/components/TwoFA/Authorization.vue' import twoFA from '@/api/2fa' import { useUserStore } from '@/pinia' @@ -32,11 +31,8 @@ const use2FAModal = () => { return } - const cookies = useCookies(['nginx-ui-2fa']) - const ssid = cookies.get('secure_session_id') - if (ssid && secureSessionStatus) { - resolve(ssid) - secureSessionId.value = ssid + if (secureSessionId.value && secureSessionStatus) { + resolve(secureSessionId.value) return } @@ -51,7 +47,6 @@ const use2FAModal = () => { } const setSessionId = (sessionId: string) => { - cookies.set('secure_session_id', sessionId, { maxAge: 60 * 3 }) close() secureSessionId.value = sessionId resolve(sessionId) diff --git a/app/src/language/en/app.po b/app/src/language/en/app.po index e5b762c1..702547db 100644 --- a/app/src/language/en/app.po +++ b/app/src/language/en/app.po @@ -13,7 +13,7 @@ msgstr "" msgid "2FA" msgstr "" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "" @@ -37,14 +37,14 @@ msgstr "Username" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "Action" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -119,7 +119,7 @@ msgstr "" msgid "Arch" msgstr "" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 #, fuzzy msgid "Are you sure to delete this banned IP immediately?" msgstr "Are you sure you want to remove this directive?" @@ -164,7 +164,7 @@ msgstr "Are you sure you want to remove this directive?" msgid "Are you sure you want to remove this directive?" msgstr "Are you sure you want to remove this directive?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 #, fuzzy msgid "Are you sure you want to remove this item?" msgstr "Are you sure you want to remove this directive?" @@ -182,11 +182,11 @@ msgstr "" msgid "Assistant" msgstr "" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "" @@ -194,7 +194,7 @@ msgstr "" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -231,15 +231,15 @@ msgstr "Back" msgid "Back to list" msgstr "" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "" @@ -248,7 +248,7 @@ msgid "Base information" msgstr "Base information" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 #, fuzzy @@ -277,7 +277,7 @@ msgstr "Build with" msgid "CA Dir" msgstr "" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "" @@ -301,7 +301,11 @@ msgstr "" msgid "Cancel" msgstr "Cancel" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +msgid "Cert" +msgstr "" + +#: src/views/preference/CertSettings.vue:24 #, fuzzy msgid "Certificate Renewal Interval" msgstr "Certificate is valid" @@ -497,9 +501,9 @@ msgstr "" msgid "Custom" msgstr "" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "" @@ -512,7 +516,7 @@ msgstr "Dashboard" msgid "Database (Optional, default: database)" msgstr "Database (Optional, default: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "" @@ -914,12 +918,6 @@ msgstr "" msgid "File exists" msgstr "" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -#, fuzzy -msgid "File not found" -msgstr "File Not Found" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "File Not Found" @@ -938,7 +936,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "" @@ -978,7 +976,7 @@ msgstr "Base information" msgid "Getting the certificate, please wait..." msgstr "Getting the certificate, please wait..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "" @@ -990,15 +988,15 @@ msgstr "" msgid "Home" msgstr "Home" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "" @@ -1010,7 +1008,7 @@ msgstr "" msgid "If left blank, the default CA Dir will be used." msgstr "" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -1041,7 +1039,7 @@ msgstr "" msgid "Import Certificate" msgstr "Certificate Status" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 msgid "Incorrect username or password" msgstr "" @@ -1084,7 +1082,7 @@ msgstr "" msgid "Invalid" msgstr "Invalid E-mail!" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "" @@ -1098,11 +1096,11 @@ msgstr "Invalid E-mail!" msgid "Invalid folder name" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "" @@ -1125,7 +1123,7 @@ msgstr "Enabled successfully" msgid "Issuer: %{issuer}" msgstr "" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "" @@ -1213,11 +1211,11 @@ msgstr "Locations" msgid "Log" msgstr "Login" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "Login" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "Login successful" @@ -1225,7 +1223,7 @@ msgstr "Login successful" msgid "Logout successful" msgstr "Logout successful" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "" @@ -1271,7 +1269,7 @@ msgstr "Manage Users" msgid "Managed Certificate" msgstr "Certificate is valid" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "" @@ -1372,11 +1370,11 @@ msgstr "" msgid "Next" msgstr "Next" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "" @@ -1385,11 +1383,16 @@ msgstr "" msgid "Nginx Configuration Parse Error" msgstr "Configuration Name" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Configuration Name" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "" @@ -1401,11 +1404,27 @@ msgstr "" msgid "Nginx Log" msgstr "" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +msgid "Nginx PID Path" +msgstr "" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 #, fuzzy msgid "Nginx reloaded successfully" msgstr "Saved successfully" +#: src/views/preference/NginxSettings.vue:33 +msgid "Nginx Restart Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:42 #, fuzzy msgid "Nginx restarted successfully" @@ -1417,15 +1436,20 @@ msgstr "Saved successfully" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "No" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "Username" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "" @@ -1516,11 +1540,11 @@ msgstr "" msgid "Online" msgstr "" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1564,7 +1588,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "Password" @@ -1638,11 +1662,11 @@ msgstr "" msgid "Please input your E-mail!" msgstr "Please input your E-mail!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "Please input your password!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "Please input your username!" @@ -1666,7 +1690,7 @@ msgstr "" msgid "Pre-release" msgstr "" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "" @@ -1727,7 +1751,7 @@ msgstr "" msgid "Recovery Code:" msgstr "" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "" @@ -1794,11 +1818,11 @@ msgstr "" msgid "Reloading nginx" msgstr "" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 #, fuzzy msgid "Remove successfully" @@ -1891,7 +1915,19 @@ msgstr "" msgid "Restarting" msgstr "" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 #, fuzzy msgid "Run Mode" msgstr "Advance Mode" @@ -1904,7 +1940,7 @@ msgstr "" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1923,7 +1959,7 @@ msgstr "Save error %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 #, fuzzy msgid "Save successfully" msgstr "Saved successfully" @@ -1968,13 +2004,13 @@ msgstr "Send" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1984,11 +2020,6 @@ msgstr "Server error" msgid "Server Info" msgstr "Server Info" -#: src/views/preference/BasicSettings.vue:117 -#, fuzzy -msgid "Server Name" -msgstr "Server Info" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "server_name not found in directives" @@ -1997,7 +2028,7 @@ msgstr "server_name not found in directives" msgid "server_name parameter is required" msgstr "server_name parameter is required" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -2019,7 +2050,7 @@ msgstr "" msgid "Show" msgstr "" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -2056,7 +2087,7 @@ msgstr "Certificate Status" msgid "SSL Certificate Path" msgstr "Certificate Status" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 #, fuzzy msgid "SSO Login" msgstr "Login" @@ -2185,7 +2216,7 @@ msgstr "" msgid "Terminal" msgstr "Terminal" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "" @@ -2218,6 +2249,12 @@ msgid "" "dashes, and dots." msgstr "" +#: src/views/preference/BasicSettings.vue:45 +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" + #: src/views/certificate/CertificateEditor.vue:173 #, fuzzy msgid "The path exists, but the file is not a certificate" @@ -2239,12 +2276,6 @@ msgid "" "match the local version." msgstr "" -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 #, fuzzy msgid "" @@ -2254,8 +2285,8 @@ msgstr "" "Note: The server_name in the current configuration must be the domain name " "you need to get the certificate." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "" @@ -2291,7 +2322,11 @@ msgid "" "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2332,7 +2367,7 @@ msgstr "" msgid "Token is not valid" msgstr "" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "" @@ -2350,7 +2385,7 @@ msgstr "" msgid "Trash" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "" @@ -2425,11 +2460,11 @@ msgstr "" msgid "User" msgstr "Username" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "Username" @@ -2485,6 +2520,10 @@ msgid "" "Nginx. Are you sure you want to continue?" msgstr "" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2505,8 +2544,8 @@ msgstr "" msgid "Writing certificate to disk" msgstr "" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2530,6 +2569,14 @@ msgstr "" msgid "Your passkeys" msgstr "" +#, fuzzy +#~ msgid "File not found" +#~ msgstr "File Not Found" + +#, fuzzy +#~ msgid "Server Name" +#~ msgstr "Server Info" + #, fuzzy #~ msgid "Enable 2FA" #~ msgstr "Enabled" diff --git a/app/src/language/es/app.po b/app/src/language/es/app.po index b0598d00..ad7aa271 100644 --- a/app/src/language/es/app.po +++ b/app/src/language/es/app.po @@ -20,7 +20,7 @@ msgstr "" msgid "2FA" msgstr "2FA" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "Configuración de 2FA" @@ -43,14 +43,14 @@ msgstr "Usuario ACME" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "Acción" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -121,7 +121,7 @@ msgstr "Token de la API" msgid "Arch" msgstr "Arquitectura" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 msgid "Are you sure to delete this banned IP immediately?" msgstr "¿Está seguro de eliminar esta IP bloqueada inmediatamente?" @@ -159,7 +159,7 @@ msgstr "¿Está seguro de que quiere recuperar este elemento?" msgid "Are you sure you want to remove this directive?" msgstr "¿Está seguro de que quiere borrar esta directiva?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 msgid "Are you sure you want to remove this item?" msgstr "¿Está seguro de que desea eliminar este elemento?" @@ -175,11 +175,11 @@ msgstr "Preguntar por ayuda a ChatGPT" msgid "Assistant" msgstr "Asistente" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "Intentos" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "Autenticación" @@ -187,7 +187,7 @@ msgstr "Autenticación" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -223,15 +223,15 @@ msgstr "Volver al Inicio" msgid "Back to list" msgstr "Volver a la lista" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "Umbral de Prohibición en Minutos" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "IPs prohibidas" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "Bloqueado hasta" @@ -240,7 +240,7 @@ msgid "Base information" msgstr "Información general" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 msgid "Basic" @@ -267,7 +267,7 @@ msgstr "Desarrollado con" msgid "CA Dir" msgstr "Dir CA" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "Directorio CA" @@ -291,7 +291,12 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +#, fuzzy +msgid "Cert" +msgstr "Certificado automático" + +#: src/views/preference/CertSettings.vue:24 msgid "Certificate Renewal Interval" msgstr "Intervalo de renovación del Certificado" @@ -477,9 +482,10 @@ msgstr "Versión actual" msgid "Custom" msgstr "Personalizado" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 +#, fuzzy msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "" "Personalice el nombre del servidor local para que se muestre en el indicador " @@ -494,7 +500,7 @@ msgstr "Panel" msgid "Database (Optional, default: database)" msgstr "Base de datos (Opcional, default: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "Días" @@ -875,11 +881,6 @@ msgstr "Archivo" msgid "File exists" msgstr "El archivo existe" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -msgid "File not found" -msgstr "Archivo no Encontrado" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "Archivo no encontrado" @@ -898,7 +899,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "Para usuario chino: https://mirror.ghproxy.com/" @@ -934,7 +935,7 @@ msgstr "Obtener error de información de versión" msgid "Getting the certificate, please wait..." msgstr "Obteniendo el certificado, por favor espere..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "Proxy Github" @@ -946,15 +947,15 @@ msgstr "Ocultar" msgid "Home" msgstr "Inicio" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "Puerto de desafío HTTP" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "Host HTTP" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "Puerto HTTP" @@ -966,7 +967,7 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "Si se deja en blanco, se utilizará el directorio CA predeterminado." -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -1003,7 +1004,7 @@ msgstr "Importar" msgid "Import Certificate" msgstr "Importar Certificado" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 msgid "Incorrect username or password" msgstr "Nombre de usuario o contraseña incorrectos" @@ -1044,7 +1045,7 @@ msgstr "Intervalo" msgid "Invalid" msgstr "Inválido" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "Código 2FA o de recuperación inválido" @@ -1057,11 +1058,11 @@ msgstr "Nombre de archivo inválido" msgid "Invalid folder name" msgstr "Nombre de carpeta inválido" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "Código de acceso o código de recuperación inválido" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "IP" @@ -1081,7 +1082,7 @@ msgstr "Certificado emitido con éxito" msgid "Issuer: %{issuer}" msgstr "Emisor: %{issuer}" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "Secreto Jwt" @@ -1163,11 +1164,11 @@ msgstr "Ubicaciones" msgid "Log" msgstr "Registro" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "Acceso" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "Acceso exitoso" @@ -1175,7 +1176,7 @@ msgstr "Acceso exitoso" msgid "Logout successful" msgstr "Cierre de sesión exitoso" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "Rotación de logs" @@ -1225,7 +1226,7 @@ msgstr "Administrar usuarios" msgid "Managed Certificate" msgstr "Certificado Administrado" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "Intentos máximos" @@ -1319,11 +1320,11 @@ msgstr "Se liberó una nueva versión" msgid "Next" msgstr "Siguiente" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Ruta de registro de acceso de Nginx" @@ -1331,11 +1332,16 @@ msgstr "Ruta de registro de acceso de Nginx" msgid "Nginx Configuration Parse Error" msgstr "Error de análisis de configuración de Nginx" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Error de análisis de configuración de Nginx" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "Control de Nginx" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Ruta de registro de errores de Nginx" @@ -1347,10 +1353,28 @@ msgstr "" msgid "Nginx Log" msgstr "Registro Nginx" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Ruta de registro de errores de Nginx" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" msgstr "Nginx recargado con éxito" +#: src/views/preference/NginxSettings.vue:33 +#, fuzzy +msgid "Nginx Restart Command" +msgstr "Comando de inicio de terminal" + #: src/components/NginxControl/NginxControl.vue:42 msgid "Nginx restarted successfully" msgstr "Nginx reiniciado con éxito" @@ -1361,15 +1385,20 @@ msgstr "Nginx reiniciado con éxito" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "No" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "Nuevo nombre" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "Secreto del nodo" @@ -1459,11 +1488,11 @@ msgstr "Una vez que se complete la verificación, los registros se eliminarán." msgid "Online" msgstr "En línea" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1506,7 +1535,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "Contraseña" @@ -1586,11 +1615,11 @@ msgstr "" msgid "Please input your E-mail!" msgstr "¡Por favor ingrese su correo electrónico!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "¡Por favor ingrese su contraseña!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "¡Por favor ingrese su nombre de usuario!" @@ -1617,7 +1646,7 @@ msgstr "¡Seleccione al menos un nodo!" msgid "Pre-release" msgstr "Prelanzamiento" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "Configuración" @@ -1677,7 +1706,7 @@ msgstr "Código de Recuperación" msgid "Recovery Code:" msgstr "Código de Recuperación:" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "Servidores de nombres recursivos" @@ -1742,11 +1771,11 @@ msgstr "Recargando" msgid "Reloading nginx" msgstr "Recargando Nginx" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "Eliminar" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 msgid "Remove successfully" msgstr "Eliminado con éxito" @@ -1829,7 +1858,19 @@ msgstr "Reiniciar" msgid "Restarting" msgstr "Reiniciando" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 msgid "Run Mode" msgstr "Modo de ejecución" @@ -1841,7 +1882,7 @@ msgstr "Corriendo" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1860,7 +1901,7 @@ msgstr "Error al guardar %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 msgid "Save successfully" msgstr "Guardado con éxito" @@ -1906,13 +1947,13 @@ msgstr "Enviado" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1922,10 +1963,6 @@ msgstr "Error del servidor" msgid "Server Info" msgstr "Información del servidor" -#: src/views/preference/BasicSettings.vue:117 -msgid "Server Name" -msgstr "Nombre del servidor" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "No se encuentra server_name en las directivas" @@ -1934,7 +1971,7 @@ msgstr "No se encuentra server_name en las directivas" msgid "server_name parameter is required" msgstr "Se requiere el parámetro server_name" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -1958,7 +1995,7 @@ msgstr "Usando el proveedor de desafíos HTTP01" msgid "Show" msgstr "Mostrar" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -1990,7 +2027,7 @@ msgstr "Ruta de la llave del certificado SSL" msgid "SSL Certificate Path" msgstr "Ruta del certificado SSL" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 msgid "SSO Login" msgstr "Acceso SSO" @@ -2116,7 +2153,7 @@ msgstr "Objetivo" msgid "Terminal" msgstr "Terminal" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "Comando de inicio de terminal" @@ -2151,6 +2188,15 @@ msgstr "" "El nombre del modelo solo debe contener letras, unicode, números, guiones, " "rayas y puntos." +#: src/views/preference/BasicSettings.vue:45 +#, fuzzy +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" +"El nombre del modelo solo debe contener letras, unicode, números, guiones, " +"rayas y puntos." + #: src/views/certificate/CertificateEditor.vue:173 msgid "The path exists, but the file is not a certificate" msgstr "La ruta existe, pero el archivo no es un certificado" @@ -2176,14 +2222,6 @@ msgstr "" "local. Para evitar errores potenciales, por favor actualice la Nginx UI " "remota para que coincida con la versión local." -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "" -"El nombre del servidor solo debe contener letras, Unicode, números, guiones, " -"rayas y puntos." - #: src/views/site/cert/components/AutoCertStepOne.vue:45 msgid "" "The server_name in the current configuration must be the domain name you " @@ -2192,8 +2230,8 @@ msgstr "" "El server_name en la configuración actual debe ser el nombre de dominio que " "necesita para obtener el certificado, soporta dominios múltiples." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "La URL es inválida" @@ -2231,7 +2269,11 @@ msgstr "" "Esto actualizará o reinstalará la interfaz de usuario de Nginx en " "%{nodeNames} a %{version}." -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2278,7 +2320,7 @@ msgstr "" msgid "Token is not valid" msgstr "El token no es válido" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "" "Demasiados intentos fallidos de inicio de sesión, por favor intente " @@ -2300,7 +2342,7 @@ msgstr "" msgid "Trash" msgstr "Basura" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "Se requiere autenticación de dos factores" @@ -2371,11 +2413,11 @@ msgstr "Usar código de recuperación" msgid "User" msgstr "Usuario" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "El usuario está bloqueado" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "Nombre de usuario" @@ -2433,6 +2475,10 @@ msgstr "" "Eliminaremos la configuración de HTTPChallenge de este archivo y " "recargaremos Nginx. ¿Estás seguro de que quieres continuar?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2453,8 +2499,8 @@ msgstr "Escribir la clave privada del certificado a disco" msgid "Writing certificate to disk" msgstr "Escribir certificado a disco" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2478,6 +2524,19 @@ msgstr "" msgid "Your passkeys" msgstr "" +#~ msgid "File not found" +#~ msgstr "Archivo no Encontrado" + +#~ msgid "Server Name" +#~ msgstr "Nombre del servidor" + +#~ msgid "" +#~ "The server name should only contain letters, unicode, numbers, hyphens, " +#~ "dashes, and dots." +#~ msgstr "" +#~ "El nombre del servidor solo debe contener letras, Unicode, números, " +#~ "guiones, rayas y puntos." + #~ msgid "Enable 2FA" #~ msgstr "Habilitar 2FA" @@ -2485,9 +2544,6 @@ msgstr "" #~ msgid "Rename " #~ msgstr "Renombrar" -#~ msgid "Auto Cert" -#~ msgstr "Certificado automático" - #~ msgid "Certificate has expired" #~ msgstr "El certificado expiró" diff --git a/app/src/language/fr_FR/app.po b/app/src/language/fr_FR/app.po index 1782a779..68b1c1b3 100644 --- a/app/src/language/fr_FR/app.po +++ b/app/src/language/fr_FR/app.po @@ -15,7 +15,7 @@ msgstr "" msgid "2FA" msgstr "" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "" @@ -39,14 +39,14 @@ msgstr "Nom d'utilisateur" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "Action" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -123,7 +123,7 @@ msgstr "Jeton d'API" msgid "Arch" msgstr "Arch" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 #, fuzzy msgid "Are you sure to delete this banned IP immediately?" msgstr "Etes-vous sûr que vous voulez supprimer ?" @@ -166,7 +166,7 @@ msgstr "Voulez-vous vraiment supprimer cette directive ?" msgid "Are you sure you want to remove this directive?" msgstr "Voulez-vous vraiment supprimer cette directive ?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 #, fuzzy msgid "Are you sure you want to remove this item?" msgstr "Voulez-vous vraiment supprimer cette directive ?" @@ -184,11 +184,11 @@ msgstr "Modèle ChatGPT" msgid "Assistant" msgstr "" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 #, fuzzy msgid "Auth" msgstr "Autheur" @@ -197,7 +197,7 @@ msgstr "Autheur" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -233,15 +233,15 @@ msgstr "Retour au menu principal" msgid "Back to list" msgstr "" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "" @@ -250,7 +250,7 @@ msgid "Base information" msgstr "Information générale" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 msgid "Basic" @@ -279,7 +279,7 @@ msgstr "Build avec" msgid "CA Dir" msgstr "" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "" @@ -303,7 +303,12 @@ msgstr "" msgid "Cancel" msgstr "Annuler" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +#, fuzzy +msgid "Cert" +msgstr "Auto Cert" + +#: src/views/preference/CertSettings.vue:24 #, fuzzy msgid "Certificate Renewal Interval" msgstr "Le certificat est valide" @@ -497,9 +502,9 @@ msgstr "Version actuelle" msgid "Custom" msgstr "Custom" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "" @@ -512,7 +517,7 @@ msgstr "Dashboard" msgid "Database (Optional, default: database)" msgstr "Base de données (Facultatif, par défaut : database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "" @@ -917,12 +922,6 @@ msgstr "Fichier" msgid "File exists" msgstr "Le fichier existe" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -#, fuzzy -msgid "File not found" -msgstr "Fichier introuvable" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "Fichier introuvable" @@ -941,7 +940,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 #, fuzzy msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "Utilisateur chinois : https://mirror.ghproxy.com/" @@ -979,7 +978,7 @@ msgstr "Erreur d'obtention des informations sur la version" msgid "Getting the certificate, please wait..." msgstr "Obtention du certificat, veuillez patienter..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "Proxy Github" @@ -991,15 +990,15 @@ msgstr "" msgid "Home" msgstr "Menu principal" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "Port de challenge HTTP" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "Host HTTP" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "Port HTTP" @@ -1011,7 +1010,7 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -1043,7 +1042,7 @@ msgstr "Exporter" msgid "Import Certificate" msgstr "État du certificat" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 #, fuzzy msgid "Incorrect username or password" msgstr "Le pseudo ou mot de passe est incorect" @@ -1085,7 +1084,7 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "" @@ -1098,11 +1097,11 @@ msgstr "" msgid "Invalid folder name" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "" @@ -1124,7 +1123,7 @@ msgstr "Certificat délivré avec succès" msgid "Issuer: %{issuer}" msgstr "" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "Secret Jwt" @@ -1215,11 +1214,11 @@ msgstr "Localisations" msgid "Log" msgstr "Connexion" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "Connexion" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "Connexion réussie" @@ -1227,7 +1226,7 @@ msgstr "Connexion réussie" msgid "Logout successful" msgstr "Déconnexion réussie" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "" @@ -1273,7 +1272,7 @@ msgstr "Gérer les utilisateurs" msgid "Managed Certificate" msgstr "Changer de certificat" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "" @@ -1372,12 +1371,12 @@ msgstr "Nouvelle version publiée" msgid "Next" msgstr "Suivant" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 #, fuzzy msgid "Nginx" msgstr "Journal Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Chemin du journal d'accès Nginx" @@ -1385,11 +1384,16 @@ msgstr "Chemin du journal d'accès Nginx" msgid "Nginx Configuration Parse Error" msgstr "Erreur d'analyse de configuration Nginx" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Erreur d'analyse de configuration Nginx" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "Contrôle Nginx" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Chemin du journal des erreurs Nginx" @@ -1401,10 +1405,28 @@ msgstr "" msgid "Nginx Log" msgstr "Journal Nginx" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Chemin du journal des erreurs Nginx" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" msgstr "Nginx a été rechargé avec succès" +#: src/views/preference/NginxSettings.vue:33 +#, fuzzy +msgid "Nginx Restart Command" +msgstr "Commande de démarrage du terminal" + #: src/components/NginxControl/NginxControl.vue:42 msgid "Nginx restarted successfully" msgstr "Nginx a redémarré avec succès" @@ -1415,15 +1437,20 @@ msgstr "Nginx a redémarré avec succès" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "Non" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "Nom d'utilisateur" + +#: src/views/preference/BasicSettings.vue:23 #, fuzzy msgid "Node Secret" msgstr "Secret Jwt" @@ -1514,11 +1541,11 @@ msgstr "" msgid "Online" msgstr "" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1561,7 +1588,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "Mot de passe" @@ -1642,11 +1669,11 @@ msgstr "" msgid "Please input your E-mail!" msgstr "Veuillez saisir votre e-mail !" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "Veuillez saisir votre mot de passe !" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "Veuillez saisir votre nom d'utilisateur !" @@ -1670,7 +1697,7 @@ msgstr "" msgid "Pre-release" msgstr "" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "Préférence" @@ -1734,7 +1761,7 @@ msgstr "" msgid "Recovery Code:" msgstr "" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "" @@ -1803,11 +1830,11 @@ msgstr "Rechargement" msgid "Reloading nginx" msgstr "Rechargement de nginx" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 #, fuzzy msgid "Remove successfully" @@ -1901,7 +1928,19 @@ msgstr "Redémarrer" msgid "Restarting" msgstr "Redémarrage" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 msgid "Run Mode" msgstr "Mode d'exécution" @@ -1913,7 +1952,7 @@ msgstr "En cours d'éxécution" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1932,7 +1971,7 @@ msgstr "Enregistrer l'erreur %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 msgid "Save successfully" msgstr "Sauvegarde réussie" @@ -1976,13 +2015,13 @@ msgstr "Envoyer" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1992,11 +2031,6 @@ msgstr "Erreur du serveur" msgid "Server Info" msgstr "Informations sur le serveur" -#: src/views/preference/BasicSettings.vue:117 -#, fuzzy -msgid "Server Name" -msgstr "Informations sur le serveur" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "server_name introuvable dans les directives" @@ -2005,7 +2039,7 @@ msgstr "server_name introuvable dans les directives" msgid "server_name parameter is required" msgstr "Le paramètre server_name est obligatoire" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -2029,7 +2063,7 @@ msgstr "Utilisation du fournisseur de challenge HTTP01" msgid "Show" msgstr "" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -2063,7 +2097,7 @@ msgstr "Chemin de la clé du certificat SSL" msgid "SSL Certificate Path" msgstr "Chemin du certificat SSL" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 #, fuzzy msgid "SSO Login" msgstr "Connexion" @@ -2193,7 +2227,7 @@ msgstr "" msgid "Terminal" msgstr "Terminal" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "Commande de démarrage du terminal" @@ -2226,6 +2260,12 @@ msgid "" "dashes, and dots." msgstr "" +#: src/views/preference/BasicSettings.vue:45 +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" + #: src/views/certificate/CertificateEditor.vue:173 #, fuzzy msgid "The path exists, but the file is not a certificate" @@ -2247,12 +2287,6 @@ msgid "" "match the local version." msgstr "" -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 #, fuzzy msgid "" @@ -2263,8 +2297,8 @@ msgstr "" "dont vous avez besoin pour obtenir le certificat, prendre en charge " "plusieurs domaines." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "" @@ -2303,7 +2337,11 @@ msgid "" "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2348,7 +2386,7 @@ msgstr "" msgid "Token is not valid" msgstr "" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "" @@ -2366,7 +2404,7 @@ msgstr "" msgid "Trash" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "" @@ -2439,11 +2477,11 @@ msgstr "" msgid "User" msgstr "Nom d'utilisateur" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "Nom d'utilisateur" @@ -2502,6 +2540,10 @@ msgstr "" "Nous allons supprimer la configuration HTTPChallenge de ce fichier et " "recharger le Nginx. Êtes-vous sûr de vouloir continuer?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2522,8 +2564,8 @@ msgstr "Écriture de la clé privée du certificat sur le disque" msgid "Writing certificate to disk" msgstr "Écriture du certificat sur le disque" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2547,6 +2589,14 @@ msgstr "" msgid "Your passkeys" msgstr "" +#, fuzzy +#~ msgid "File not found" +#~ msgstr "Fichier introuvable" + +#, fuzzy +#~ msgid "Server Name" +#~ msgstr "Informations sur le serveur" + #, fuzzy #~ msgid "Enable 2FA" #~ msgstr "Activé" @@ -2555,9 +2605,6 @@ msgstr "" #~ msgid "Rename " #~ msgstr "Nom d'utilisateur" -#~ msgid "Auto Cert" -#~ msgstr "Auto Cert" - #~ msgid "Certificate has expired" #~ msgstr "Le certificat a expiré" diff --git a/app/src/language/ko_KR/app.po b/app/src/language/ko_KR/app.po index 621bac3a..70d6663c 100644 --- a/app/src/language/ko_KR/app.po +++ b/app/src/language/ko_KR/app.po @@ -18,7 +18,7 @@ msgstr "" msgid "2FA" msgstr "2FA" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "2FA 설정" @@ -41,14 +41,14 @@ msgstr "ACME 사용자" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "작업" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -119,7 +119,7 @@ msgstr "API 토큰" msgid "Arch" msgstr "아키텍처" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 msgid "Are you sure to delete this banned IP immediately?" msgstr "차단된 IP를 즉시 삭제하시겠습니까?" @@ -157,7 +157,7 @@ msgstr "이 항목을 복구하시겠습니까?" msgid "Are you sure you want to remove this directive?" msgstr "이 지시문을 정말로 제거하시겠습니까?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 msgid "Are you sure you want to remove this item?" msgstr "이 항목을 제거하시겠습니까?" @@ -173,11 +173,11 @@ msgstr "ChatGPT에게 도움 요청" msgid "Assistant" msgstr "조수" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "시도 횟수" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "인증" @@ -185,7 +185,7 @@ msgstr "인증" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -221,15 +221,15 @@ msgstr "홈으로" msgid "Back to list" msgstr "목록으로 돌아가기" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "차단 시간(분)" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "차단된 IP" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "차단될 시간" @@ -238,7 +238,7 @@ msgid "Base information" msgstr "기본 정보" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 msgid "Basic" @@ -265,7 +265,7 @@ msgstr "빌드 환경" msgid "CA Dir" msgstr "CA 디렉토리" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "CA 디렉토리" @@ -289,7 +289,12 @@ msgstr "" msgid "Cancel" msgstr "취소" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +#, fuzzy +msgid "Cert" +msgstr "자동 인증" + +#: src/views/preference/CertSettings.vue:24 msgid "Certificate Renewal Interval" msgstr "인증서 갱신 간격" @@ -476,9 +481,9 @@ msgstr "현재 버전" msgid "Custom" msgstr "사용자 정의" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "" @@ -491,7 +496,7 @@ msgstr "대시보드" msgid "Database (Optional, default: database)" msgstr "데이터베이스 (선택사항, 기본값: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "" @@ -876,12 +881,6 @@ msgstr "파일" msgid "File exists" msgstr "파일이 존재함" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -#, fuzzy -msgid "File not found" -msgstr "파일을 찾을 수 없음" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "파일을 찾을 수 없음" @@ -900,7 +899,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "중국 사용자를 위해: https://mirror.ghproxy.com/" @@ -940,7 +939,7 @@ msgstr "릴리스 정보 가져오기 오류" msgid "Getting the certificate, please wait..." msgstr "인증서를 가져오는 중입니다. 잠시 기다려 주세요..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "Github 프록시" @@ -952,15 +951,15 @@ msgstr "" msgid "Home" msgstr "홈" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "HTTP 검증 포트" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "HTTP 호스트" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "HTTP 포트" @@ -972,7 +971,7 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -1003,7 +1002,7 @@ msgstr "가져오기" msgid "Import Certificate" msgstr "인증서 상태" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 #, fuzzy msgid "Incorrect username or password" msgstr "사용자 이름 또는 비밀번호가 올바르지 않습니다" @@ -1047,7 +1046,7 @@ msgstr "간격" msgid "Invalid" msgstr "유효함" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "" @@ -1061,11 +1060,11 @@ msgstr "Invalid E-mail!" msgid "Invalid folder name" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "" @@ -1088,7 +1087,7 @@ msgstr "성공적으로 활성화됨" msgid "Issuer: %{issuer}" msgstr "" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "Jwt 토큰" @@ -1176,11 +1175,11 @@ msgstr "위치들" msgid "Log" msgstr "로그인" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "로그인" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "로그인 성공" @@ -1188,7 +1187,7 @@ msgstr "로그인 성공" msgid "Logout successful" msgstr "로그아웃 성공" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "로그관리" @@ -1239,7 +1238,7 @@ msgstr "사용자 관리" msgid "Managed Certificate" msgstr "인증서 유효" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "" @@ -1340,11 +1339,11 @@ msgstr "새 버전 출시" msgid "Next" msgstr "다음" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Nginx 접근 로그 경로" @@ -1353,11 +1352,16 @@ msgstr "Nginx 접근 로그 경로" msgid "Nginx Configuration Parse Error" msgstr "Nginx 구성 오류름" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Nginx 구성 오류름" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "Nginx 제어" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Nginx 오류 로그 경로" @@ -1369,11 +1373,29 @@ msgstr "" msgid "Nginx Log" msgstr "Nginx 로그" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Nginx 오류 로그 경로" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 #, fuzzy msgid "Nginx reloaded successfully" msgstr "Nginx가 성공적으로 리로드됨" +#: src/views/preference/NginxSettings.vue:33 +#, fuzzy +msgid "Nginx Restart Command" +msgstr "터미널 시작 명령" + #: src/components/NginxControl/NginxControl.vue:42 #, fuzzy msgid "Nginx restarted successfully" @@ -1385,15 +1407,20 @@ msgstr "Nginx가 성공적으로 재시작됨" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "아니요" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "이름 변경" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "노드 시크릿" @@ -1484,11 +1511,11 @@ msgstr "검증이 완료되면, 레코드는 제거됩니다." msgid "Online" msgstr "온라인" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "오픈AI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1532,7 +1559,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "비밀번호" @@ -1608,11 +1635,11 @@ msgstr "이름을 입력해주세요, 이것은 새 구성의 파일 이름으 msgid "Please input your E-mail!" msgstr "이메일을 입력해주세요!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "비밀번호를 입력해주세요!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "사용자 이름을 입력해주세요!" @@ -1637,7 +1664,7 @@ msgstr "적어도 하나의 노드를 선택해주세요!" msgid "Pre-release" msgstr "사전 출시" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "환경설정" @@ -1699,7 +1726,7 @@ msgstr "" msgid "Recovery Code:" msgstr "" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "" @@ -1769,11 +1796,11 @@ msgstr "리로딩 중" msgid "Reloading nginx" msgstr "Nginx 리로딩 중" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 #, fuzzy msgid "Remove successfully" @@ -1867,7 +1894,19 @@ msgstr "재시작" msgid "Restarting" msgstr "재시작 중" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 #, fuzzy msgid "Run Mode" msgstr "실행 모드" @@ -1880,7 +1919,7 @@ msgstr "실행 중" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1899,7 +1938,7 @@ msgstr "저장 오류 %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 #, fuzzy msgid "Save successfully" msgstr "성공적으로 저장됨" @@ -1944,13 +1983,13 @@ msgstr "보내기" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1960,11 +1999,6 @@ msgstr "서버 오류" msgid "Server Info" msgstr "서버 정보" -#: src/views/preference/BasicSettings.vue:117 -#, fuzzy -msgid "Server Name" -msgstr "Server Info" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "directives에서 server_name을 찾을 수 없습니다" @@ -1973,7 +2007,7 @@ msgstr "directives에서 server_name을 찾을 수 없습니다" msgid "server_name parameter is required" msgstr "server_name 매개변수가 필요합니다" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -1995,7 +2029,7 @@ msgstr "HTTP01 공급자 설정" msgid "Show" msgstr "" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -2031,7 +2065,7 @@ msgstr "SSL 인증서 키 경로" msgid "SSL Certificate Path" msgstr "SSL 인증서 경로" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 #, fuzzy msgid "SSO Login" msgstr "SSO 로그인" @@ -2160,7 +2194,7 @@ msgstr "대상" msgid "Terminal" msgstr "터미널" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "터미널 시작 명령" @@ -2193,6 +2227,12 @@ msgid "" "dashes, and dots." msgstr "" +#: src/views/preference/BasicSettings.vue:45 +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" + #: src/views/certificate/CertificateEditor.vue:173 #, fuzzy msgid "The path exists, but the file is not a certificate" @@ -2214,12 +2254,6 @@ msgid "" "match the local version." msgstr "" -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 #, fuzzy msgid "" @@ -2229,8 +2263,8 @@ msgstr "" "Note: The server_name in the current configuration must be the domain name " "you need to get the certificate." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 #, fuzzy msgid "The url is invalid" msgstr "유효한 URL이 아닙니다" @@ -2268,7 +2302,11 @@ msgid "" "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2312,7 +2350,7 @@ msgstr "" msgid "Token is not valid" msgstr "토큰이 유효하지 않습니다" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "" @@ -2330,7 +2368,7 @@ msgstr "" msgid "Trash" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "" @@ -2405,11 +2443,11 @@ msgstr "" msgid "User" msgstr "사용자 이름" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "사용자 이름" @@ -2471,6 +2509,10 @@ msgstr "" "이 파일에서 HTTPChallenge 구성을 제거하고 Nginx를 다시 로드할 예정입니다. 계" "속하시겠습니까?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2491,8 +2533,8 @@ msgstr "인증서 개인 키를 디스크에 쓰기" msgid "Writing certificate to disk" msgstr "인증서를 디스크에 쓰기" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2516,6 +2558,14 @@ msgstr "" msgid "Your passkeys" msgstr "" +#, fuzzy +#~ msgid "File not found" +#~ msgstr "파일을 찾을 수 없음" + +#, fuzzy +#~ msgid "Server Name" +#~ msgstr "Server Info" + #, fuzzy #~ msgid "Enable 2FA" #~ msgstr "활성화" @@ -2528,9 +2578,6 @@ msgstr "" #~ msgid "Rename " #~ msgstr "이름 변경" -#~ msgid "Auto Cert" -#~ msgstr "자동 인증" - #~ msgid "Certificate has expired" #~ msgstr "인증서가 만료되었습니다" diff --git a/app/src/language/messages.pot b/app/src/language/messages.pot index b2378bb0..4a99522b 100644 --- a/app/src/language/messages.pot +++ b/app/src/language/messages.pot @@ -6,7 +6,7 @@ msgstr "" msgid "2FA" msgstr "" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "" @@ -31,7 +31,7 @@ msgstr "" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 +#: src/views/preference/AuthSettings.vue:26 #: src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 #: src/views/user/userColumns.tsx:60 @@ -40,7 +40,7 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -114,7 +114,7 @@ msgstr "" msgid "Arch" msgstr "" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 msgid "Are you sure to delete this banned IP immediately?" msgstr "" @@ -152,7 +152,7 @@ msgstr "" msgid "Are you sure you want to remove this directive?" msgstr "" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 msgid "Are you sure you want to remove this item?" msgstr "" @@ -168,11 +168,11 @@ msgstr "" msgid "Assistant" msgstr "" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "" @@ -180,7 +180,7 @@ msgstr "" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -219,15 +219,15 @@ msgstr "" msgid "Back to list" msgstr "" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "" @@ -236,7 +236,7 @@ msgid "Base information" msgstr "" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 msgid "Basic" @@ -264,7 +264,7 @@ msgstr "" msgid "CA Dir" msgstr "" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "" @@ -288,7 +288,11 @@ msgstr "" msgid "Cancel" msgstr "" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +msgid "Cert" +msgstr "" + +#: src/views/preference/CertSettings.vue:24 msgid "Certificate Renewal Interval" msgstr "" @@ -472,8 +476,8 @@ msgstr "" msgid "Custom" msgstr "" -#: src/views/preference/BasicSettings.vue:121 -msgid "Customize the name of local server to be displayed in the environment indicator." +#: src/views/preference/BasicSettings.vue:46 +msgid "Customize the name of local node to be displayed in the environment indicator." msgstr "" #: src/routes/index.ts:39 @@ -487,7 +491,7 @@ msgstr "" msgid "Database (Optional, default: database)" msgstr "" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "" @@ -879,11 +883,6 @@ msgstr "" msgid "File exists" msgstr "" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -msgid "File not found" -msgstr "" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "" @@ -901,7 +900,7 @@ msgstr "" msgid "Follow the instructions in the dialog to complete the passkey registration process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "" @@ -938,7 +937,7 @@ msgstr "" msgid "Getting the certificate, please wait..." msgstr "" -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "" @@ -950,15 +949,15 @@ msgstr "" msgid "Home" msgstr "" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "" @@ -970,7 +969,7 @@ msgstr "" msgid "If left blank, the default CA Dir will be used." msgstr "" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time." msgstr "" @@ -995,7 +994,7 @@ msgstr "" msgid "Import Certificate" msgstr "" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 msgid "Incorrect username or password" msgstr "" @@ -1038,7 +1037,7 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "" @@ -1051,11 +1050,11 @@ msgstr "" msgid "Invalid folder name" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "" @@ -1075,7 +1074,7 @@ msgstr "" msgid "Issuer: %{issuer}" msgstr "" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "" @@ -1156,12 +1155,12 @@ msgid "Log" msgstr "" #: src/routes/index.ts:305 -#: src/views/other/Login.vue:247 +#: src/views/other/Login.vue:245 msgid "Login" msgstr "" -#: src/views/other/Login.vue:133 -#: src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 +#: src/views/other/Login.vue:64 msgid "Login successful" msgstr "" @@ -1169,7 +1168,7 @@ msgstr "" msgid "Logout successful" msgstr "" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "" @@ -1207,7 +1206,7 @@ msgstr "" msgid "Managed Certificate" msgstr "" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "" @@ -1306,11 +1305,11 @@ msgstr "" msgid "Next" msgstr "" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "" @@ -1319,11 +1318,15 @@ msgstr "" msgid "Nginx Configuration Parse Error" msgstr "" +#: src/views/preference/NginxSettings.vue:15 +msgid "Nginx Configurations Directory" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "" @@ -1336,10 +1339,26 @@ msgstr "" msgid "Nginx Log" msgstr "" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +msgid "Nginx PID Path" +msgstr "" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" msgstr "" +#: src/views/preference/NginxSettings.vue:33 +msgid "Nginx Restart Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:42 msgid "Nginx restarted successfully" msgstr "" @@ -1350,8 +1369,8 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 @@ -1359,7 +1378,11 @@ msgstr "" msgid "No" msgstr "" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +msgid "Node name" +msgstr "" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "" @@ -1447,12 +1470,12 @@ msgstr "" msgid "Online" msgstr "" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "" #: src/components/TwoFA/Authorization.vue:117 -#: src/views/other/Login.vue:256 +#: src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1492,7 +1515,7 @@ msgstr "" msgid "Passkeys are webauthn credentials that validate your identity using touch, facial recognition, a device password, or a PIN. They can be used as a password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 +#: src/views/other/Login.vue:206 #: src/views/user/userColumns.tsx:18 msgid "Password" msgstr "" @@ -1558,12 +1581,12 @@ msgid "Please input your E-mail!" msgstr "" #: src/views/other/Install.vue:44 -#: src/views/other/Login.vue:47 +#: src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "" #: src/views/other/Install.vue:38 -#: src/views/other/Login.vue:41 +#: src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "" @@ -1588,7 +1611,7 @@ msgid "Pre-release" msgstr "" #: src/routes/index.ts:260 -#: src/views/preference/Preference.vue:111 +#: src/views/preference/Preference.vue:142 msgid "Preference" msgstr "" @@ -1647,7 +1670,7 @@ msgstr "" msgid "Recovery Code:" msgstr "" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "" @@ -1708,11 +1731,11 @@ msgstr "" msgid "Reloading nginx" msgstr "" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 msgid "Remove successfully" msgstr "" @@ -1789,7 +1812,19 @@ msgstr "" msgid "Restarting" msgstr "" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 msgid "Run Mode" msgstr "" @@ -1801,7 +1836,7 @@ msgstr "" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 #: src/views/stream/StreamEdit.vue:252 @@ -1821,7 +1856,7 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 msgid "Save successfully" msgstr "" @@ -1867,13 +1902,13 @@ msgstr "" #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 #: src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 +#: src/views/preference/Preference.vue:114 #: src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 #: src/views/stream/StreamList.vue:81 @@ -1885,10 +1920,6 @@ msgstr "" msgid "Server Info" msgstr "" -#: src/views/preference/BasicSettings.vue:117 -msgid "Server Name" -msgstr "" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "" @@ -1897,7 +1928,7 @@ msgstr "" msgid "server_name parameter is required" msgstr "" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge." msgstr "" @@ -1917,7 +1948,7 @@ msgstr "" msgid "Show" msgstr "" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -1949,7 +1980,7 @@ msgstr "" msgid "SSL Certificate Path" msgstr "" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 msgid "SSO Login" msgstr "" @@ -2065,7 +2096,7 @@ msgstr "" msgid "Terminal" msgstr "" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "" @@ -2089,6 +2120,10 @@ msgstr "" msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots." msgstr "" +#: src/views/preference/BasicSettings.vue:45 +msgid "The node name should only contain letters, unicode, numbers, hyphens, dashes, and dots." +msgstr "" + #: src/views/certificate/CertificateEditor.vue:173 msgid "The path exists, but the file is not a certificate" msgstr "" @@ -2105,16 +2140,12 @@ msgstr "" msgid "The remote Nginx UI version is not compatible with the local Nginx UI version. To avoid potential errors, please upgrade the remote Nginx UI to match the local version." msgstr "" -#: src/views/preference/BasicSettings.vue:120 -msgid "The server name should only contain letters, unicode, numbers, hyphens, dashes, and dots." -msgstr "" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains." msgstr "" -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "" @@ -2149,7 +2180,11 @@ msgstr "" msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2179,7 +2214,7 @@ msgstr "" msgid "Token is not valid" msgstr "" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "" @@ -2195,7 +2230,7 @@ msgstr "" msgid "Trash" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "" @@ -2270,11 +2305,11 @@ msgstr "" msgid "User" msgstr "" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "" -#: src/views/other/Login.vue:198 +#: src/views/other/Login.vue:196 #: src/views/user/userColumns.tsx:9 msgid "Username" msgstr "" @@ -2326,6 +2361,10 @@ msgstr "" msgid "We will remove the HTTPChallenge configuration from this file and reload the Nginx. Are you sure you want to continue?" msgstr "" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "When Enabled, Nginx UI will automatically re-register users upon startup. Generally, do not enable this unless you are in a dev environment and using Pebble as CA." msgstr "" @@ -2343,8 +2382,8 @@ msgstr "" msgid "Writing certificate to disk" msgstr "" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" diff --git a/app/src/language/ru_RU/app.po b/app/src/language/ru_RU/app.po index f205aba4..e085c550 100644 --- a/app/src/language/ru_RU/app.po +++ b/app/src/language/ru_RU/app.po @@ -18,7 +18,7 @@ msgstr "" msgid "2FA" msgstr "2ФА" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "Настройки 2ФА" @@ -41,14 +41,14 @@ msgstr "Пользователь ACME" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "Действие" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -119,7 +119,7 @@ msgstr "API токен" msgid "Arch" msgstr "Архитектура" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 msgid "Are you sure to delete this banned IP immediately?" msgstr "Вы уверены, что хотите немедленно удалить этот заблокированный IP?" @@ -158,7 +158,7 @@ msgstr "Вы уверены, что хотите восстановить это msgid "Are you sure you want to remove this directive?" msgstr "Вы уверены, что хотите удалить эту директиву?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 msgid "Are you sure you want to remove this item?" msgstr "Вы уверены, что хотите удалить этот элемент?" @@ -175,11 +175,11 @@ msgstr "Обратитесь за помощью к ChatGPT" msgid "Assistant" msgstr "Ассистент" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "Попытки" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "Авторизация" @@ -187,7 +187,7 @@ msgstr "Авторизация" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -223,15 +223,15 @@ msgstr "Вернуться на главную" msgid "Back to list" msgstr "Возврат к списку" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "Порог блокировки в минутах" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "Заблокированные IP-адреса" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "Заблокирован до" @@ -240,7 +240,7 @@ msgid "Base information" msgstr "Основная информация" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 #, fuzzy @@ -268,7 +268,7 @@ msgstr "Собрать с" msgid "CA Dir" msgstr "Директория корневого сертификата" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "" @@ -292,7 +292,12 @@ msgstr "" msgid "Cancel" msgstr "Отмена" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +#, fuzzy +msgid "Cert" +msgstr "Авто Сертификат" + +#: src/views/preference/CertSettings.vue:24 msgid "Certificate Renewal Interval" msgstr "Интервал обновления сертификата" @@ -477,9 +482,10 @@ msgstr "Текущяя версия" msgid "Custom" msgstr "Пользовательский" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 +#, fuzzy msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "Настройте имя локального сервера для отображения в индикаторе среды." @@ -492,7 +498,7 @@ msgstr "Доска" msgid "Database (Optional, default: database)" msgstr "База данных (Опционально, по умолчанию: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "Дни" @@ -874,11 +880,6 @@ msgstr "Файл" msgid "File exists" msgstr "Файл существует" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -msgid "File not found" -msgstr "Файл не найден" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "Файл не найден" @@ -897,7 +898,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "Для китайских пользователей: https://mirror.ghproxy.com/" @@ -933,7 +934,7 @@ msgstr "Ошибка получения информации о выпуске" msgid "Getting the certificate, please wait..." msgstr "Получение сертификата, пожалуйста, подождите..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "Прокси Github" @@ -945,15 +946,15 @@ msgstr "Скрыть" msgid "Home" msgstr "Главная" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "Порт HTTP Challenge" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "Хостинг HTTP" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "Порт HTTP" @@ -965,7 +966,7 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "Если оставить пустым, будет использоваться каталог CA по умолчанию." -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -1002,7 +1003,7 @@ msgstr "Импорт" msgid "Import Certificate" msgstr "Импортировать сертификат" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 msgid "Incorrect username or password" msgstr "Неверное имя пользователя или пароль" @@ -1043,7 +1044,7 @@ msgstr "Интервал" msgid "Invalid" msgstr "Недействительно" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "Неверный 2FA или код восстановления" @@ -1056,11 +1057,11 @@ msgstr "Неверное имя файла" msgid "Invalid folder name" msgstr "Недопустимое имя папки" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "Неверный пароль или код восстановления" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "IP" @@ -1080,7 +1081,7 @@ msgstr "Сертификат успешно выдан" msgid "Issuer: %{issuer}" msgstr "Издатель: %{issuer}" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "Jwt секрет" @@ -1162,11 +1163,11 @@ msgstr "Locations" msgid "Log" msgstr "Журнал" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "Логин" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "Авторизация успешна" @@ -1174,7 +1175,7 @@ msgstr "Авторизация успешна" msgid "Logout successful" msgstr "Выход выполнен успешно" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "Прокрутка" @@ -1223,7 +1224,7 @@ msgstr "Пользователи" msgid "Managed Certificate" msgstr "Управление сертификатом" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "Максимальное количество попыток" @@ -1317,11 +1318,11 @@ msgstr "Вышла новая версия" msgid "Next" msgstr "Дальше" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Путь для Nginx Access Log" @@ -1329,11 +1330,16 @@ msgstr "Путь для Nginx Access Log" msgid "Nginx Configuration Parse Error" msgstr "Ошибка разбора конфигурации Nginx" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Ошибка разбора конфигурации Nginx" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "Управление Nginx" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Путь для Nginx Error Log" @@ -1345,10 +1351,28 @@ msgstr "" msgid "Nginx Log" msgstr "Журнал" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Путь для Nginx Error Log" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" msgstr "Nginx успешно перезагружен" +#: src/views/preference/NginxSettings.vue:33 +#, fuzzy +msgid "Nginx Restart Command" +msgstr "Терминальная команда запуска" + #: src/components/NginxControl/NginxControl.vue:42 msgid "Nginx restarted successfully" msgstr "Nginx успешно перезапущен" @@ -1359,15 +1383,20 @@ msgstr "Nginx успешно перезапущен" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "Нет" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "Новое имя" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "" @@ -1457,11 +1486,11 @@ msgstr "После завершения проверки записи будут msgid "Online" msgstr "Онлайн" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1504,7 +1533,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "Пароль" @@ -1584,11 +1613,11 @@ msgstr "" msgid "Please input your E-mail!" msgstr "Введите ваш E-mail!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "Введите ваш пароль!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "Введите ваше имя пользователя!" @@ -1615,7 +1644,7 @@ msgstr "Пожалуйста, выберите хотя бы один узел!" msgid "Pre-release" msgstr "Предварительный выпуск" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "Настройки" @@ -1674,7 +1703,7 @@ msgstr "Код восстановления" msgid "Recovery Code:" msgstr "Код восстановления:" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "Рекурсивные DNS" @@ -1739,11 +1768,11 @@ msgstr "Перезагружается" msgid "Reloading nginx" msgstr "Перезагружается nginx" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "Удалить" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 msgid "Remove successfully" msgstr "Удалено успешно" @@ -1827,7 +1856,19 @@ msgstr "Перезапуск" msgid "Restarting" msgstr "Перезапускается" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 msgid "Run Mode" msgstr "Режим работы" @@ -1839,7 +1880,7 @@ msgstr "Выполняется" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1858,7 +1899,7 @@ msgstr "Ошибка сохранения %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 msgid "Save successfully" msgstr "Сохранено успешно" @@ -1904,13 +1945,13 @@ msgstr "Отправлено" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1920,10 +1961,6 @@ msgstr "Ошибка сервера" msgid "Server Info" msgstr "Информация о сервере" -#: src/views/preference/BasicSettings.vue:117 -msgid "Server Name" -msgstr "Имя сервера" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "server_name не нашел в директивах" @@ -1932,7 +1969,7 @@ msgstr "server_name не нашел в директивах" msgid "server_name parameter is required" msgstr "server_name параметр обязателен" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -1956,7 +1993,7 @@ msgstr "" msgid "Show" msgstr "Показать" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -1988,7 +2025,7 @@ msgstr "Путь к ключу SSL-сертификата" msgid "SSL Certificate Path" msgstr "Путь к SSL сертификату" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 msgid "SSO Login" msgstr "SSO Вход" @@ -2113,7 +2150,7 @@ msgstr "Цель" msgid "Terminal" msgstr "Терминал" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "Терминальная команда запуска" @@ -2147,6 +2184,15 @@ msgstr "" "Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и " "точки." +#: src/views/preference/BasicSettings.vue:45 +#, fuzzy +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" +"Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и " +"точки." + #: src/views/certificate/CertificateEditor.vue:173 msgid "The path exists, but the file is not a certificate" msgstr "Путь существует, но файл не является сертификатом" @@ -2172,14 +2218,6 @@ msgstr "" "избежать потенциальных ошибок, пожалуйста, обновите удаленную версию Nginx " "UI до соответствия с локальной версией." -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "" -"Имя сервера должно содержать только буквы, юникод, цифры, дефисы, тире и " -"точки." - #: src/views/site/cert/components/AutoCertStepOne.vue:45 msgid "" "The server_name in the current configuration must be the domain name you " @@ -2188,8 +2226,8 @@ msgstr "" "server_name в текущей конфигурации должен быть доменным именем, для которого " "вам нужно получить сертификат, поддержка нескольких доменов." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "URL недействителен" @@ -2227,7 +2265,11 @@ msgstr "" "Это обновит или переустановит интерфейс Nginx на %{nodeNames} до версии " "%{version}." -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2274,7 +2316,7 @@ msgstr "" msgid "Token is not valid" msgstr "Токен недействителен" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "Слишком много неудачных попыток входа, попробуйте позже" @@ -2294,7 +2336,7 @@ msgstr "" msgid "Trash" msgstr "Корзина" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "Требуется двухфакторная аутентификация" @@ -2365,11 +2407,11 @@ msgstr "Использовать код восстановления" msgid "User" msgstr "Пользователь" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "Пользователь заблокирован" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "Имя пользователя" @@ -2428,6 +2470,10 @@ msgstr "" "Мы удалим конфигурацию HTTPChallenge из этого файла и перезагрузим Nginx. Вы " "уверены, что хотите продолжить?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2448,8 +2494,8 @@ msgstr "Запись закрытого ключа сертификата на msgid "Writing certificate to disk" msgstr "Запись сертификата на диск" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2473,6 +2519,19 @@ msgstr "" msgid "Your passkeys" msgstr "" +#~ msgid "File not found" +#~ msgstr "Файл не найден" + +#~ msgid "Server Name" +#~ msgstr "Имя сервера" + +#~ msgid "" +#~ "The server name should only contain letters, unicode, numbers, hyphens, " +#~ "dashes, and dots." +#~ msgstr "" +#~ "Имя сервера должно содержать только буквы, юникод, цифры, дефисы, тире и " +#~ "точки." + #~ msgid "Enable 2FA" #~ msgstr "Включить 2ФА" @@ -2480,9 +2539,6 @@ msgstr "" #~ msgid "Rename " #~ msgstr "Имя пользователя" -#~ msgid "Auto Cert" -#~ msgstr "Авто Сертификат" - #~ msgid "Certificate has expired" #~ msgstr "Срок действия сертификата истек" diff --git a/app/src/language/tr_TR/app.po b/app/src/language/tr_TR/app.po index 3f6edc41..ebc91a5e 100644 --- a/app/src/language/tr_TR/app.po +++ b/app/src/language/tr_TR/app.po @@ -5,7 +5,7 @@ msgstr "" "PO-Revision-Date: \n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" -"Language: tr\n" +"Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -17,7 +17,7 @@ msgstr "" msgid "2FA" msgstr "İki aşamalı kimlik doğrulaması" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 #, fuzzy msgid "2FA Settings" msgstr "2FA Ayarları" @@ -44,7 +44,7 @@ msgstr "ACME Kullanıcısı" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 #, fuzzy msgid "Action" @@ -52,7 +52,7 @@ msgstr "Eylem" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -112,7 +112,8 @@ msgstr "Gelişmiş Mod" #: src/views/preference/components/AddPasskey.vue:105 #, fuzzy msgid "Afterwards, refresh this page and click add passkey again." -msgstr "Daha sonra, bu sayfayı yenileyin ve tekrar geçiş anahtarı ekle'ye tıklayın." +msgstr "" +"Daha sonra, bu sayfayı yenileyin ve tekrar geçiş anahtarı ekle'ye tıklayın." #: src/views/preference/OpenAISettings.vue:44 #, fuzzy @@ -139,7 +140,7 @@ msgstr "API Token" msgid "Arch" msgstr "Mimari" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 #, fuzzy msgid "Are you sure to delete this banned IP immediately?" msgstr "Bu yasaklı IP'yi hemen sileceğinizden emin misiniz?" @@ -185,7 +186,7 @@ msgstr "Bu öğeyi kurtarmak istediğinizden emin misiniz?" msgid "Are you sure you want to remove this directive?" msgstr "Bu yönergeyi kaldırmak istediğinizden emin misiniz?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 #, fuzzy msgid "Are you sure you want to remove this item?" msgstr "Bu nesneyi kaldırmak istediğinizden emin misiniz?" @@ -205,12 +206,12 @@ msgstr "ChatGPT'den Yardım İsteyin" msgid "Assistant" msgstr "Asistan" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 #, fuzzy msgid "Attempts" msgstr "Girişim Sayısı" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 #, fuzzy msgid "Auth" msgstr "yetki" @@ -220,7 +221,7 @@ msgstr "yetki" msgid "Authenticate with a passkey" msgstr "Bir geçiş anahtarıyla kimlik doğrulama" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 #, fuzzy msgid "Authentication Settings" msgstr "Kimlik Doğrulama Ayarları" @@ -264,17 +265,17 @@ msgstr "Geri Dön" msgid "Back to list" msgstr "Listeye geri dön" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 #, fuzzy msgid "Ban Threshold Minutes" msgstr "Yasaklama Eşik Dakikası" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 #, fuzzy msgid "Banned IPs" msgstr "Yasaklı IP'ler" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 #, fuzzy msgid "Banned Until" msgstr "Yasaklanana Kadar" @@ -285,7 +286,7 @@ msgid "Base information" msgstr "Temel bilgiler" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 #, fuzzy @@ -318,7 +319,7 @@ msgstr "İle inşa edin" msgid "CA Dir" msgstr "CA Direktör" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 #, fuzzy msgid "CADir" msgstr "CADir" @@ -345,7 +346,11 @@ msgstr "Tarayamıyor musunuz? Metin tuşu ciltleme kullanın" msgid "Cancel" msgstr "İptal" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +msgid "Cert" +msgstr "" + +#: src/views/preference/CertSettings.vue:24 #, fuzzy msgid "Certificate Renewal Interval" msgstr "Sertifika Yenileme Aralığı" @@ -568,9 +573,11 @@ msgstr "Mevcut sürüm" msgid "Custom" msgstr "Özel" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 #, fuzzy -msgid "Customize the name of local server to be displayed in the environment indicator." +msgid "" +"Customize the name of local node to be displayed in the environment " +"indicator." msgstr "Ortam göstergesinde görüntülenecek yerel sunucu adını özelleştirin." #: src/routes/index.ts:39 src/views/config/ConfigEditor.vue:133 @@ -584,7 +591,7 @@ msgstr "Kontrol Paneli" msgid "Database (Optional, default: database)" msgstr "Veritabanı (İsteğe bağlı, varsayılan: veritabanı)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 #, fuzzy msgid "Days" msgstr "Gün" @@ -789,7 +796,9 @@ msgstr "Etki Alanı Yapılandırması Başarıyla Oluşturuldu" #: src/views/certificate/CertificateEditor.vue:106 #, fuzzy msgid "Domains list is empty, try to reopen Auto Cert for %{config}" -msgstr "Etki alanları listesi boş, %{config} için Otomatik Sertifikayı yeniden açmayı deneyin" +msgstr "" +"Etki alanları listesi boş, %{config} için Otomatik Sertifikayı yeniden " +"açmayı deneyin" #: src/language/constants.ts:26 #, fuzzy @@ -808,8 +817,12 @@ msgstr "Kuru çalışma modu etkin" #: src/views/preference/components/AddPasskey.vue:107 #, fuzzy -msgid "Due to the security policies of some browsers, you cannot use passkeys on non-HTTPS websites, except when running on localhost." -msgstr "Bazı tarayıcıların güvenlik politikaları nedeniyle, localhost'ta çalışmadığı sürece HTTPS olmayan web sitelerinde geçiş anahtarlarını kullanamazsınız." +msgid "" +"Due to the security policies of some browsers, you cannot use passkeys on " +"non-HTTPS websites, except when running on localhost." +msgstr "" +"Bazı tarayıcıların güvenlik politikaları nedeniyle, localhost'ta çalışmadığı " +"sürece HTTPS olmayan web sitelerinde geçiş anahtarlarını kullanamazsınız." #: src/views/site/components/SiteDuplicate.vue:122 #: src/views/site/SiteList.vue:147 @@ -1039,12 +1052,6 @@ msgstr "Dosya" msgid "File exists" msgstr "Dosya var" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -#, fuzzy -msgid "File not found" -msgstr "Dosya bulunamadı" - #: src/views/other/Error.vue:9 #, fuzzy msgid "File Not Found" @@ -1062,10 +1069,14 @@ msgstr "Bitmiş" #: src/views/preference/components/AddPasskey.vue:77 #, fuzzy -msgid "Follow the instructions in the dialog to complete the passkey registration process." -msgstr "Geçiş anahtarı kayıt işlemini tamamlamak için iletişim kutusundaki talimatları izleyin." +msgid "" +"Follow the instructions in the dialog to complete the passkey registration " +"process." +msgstr "" +"Geçiş anahtarı kayıt işlemini tamamlamak için iletişim kutusundaki " +"talimatları izleyin." -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 #, fuzzy msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "Çinli kullanıcı için: https://mirror.ghproxy.com/" @@ -1110,7 +1121,7 @@ msgstr "Sürüm bilgilerini al hatası" msgid "Getting the certificate, please wait..." msgstr "Sertifika alınıyor, lütfen bekleyin..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 #, fuzzy msgid "Github Proxy" msgstr "Github Proxy" @@ -1125,17 +1136,17 @@ msgstr "Gizle" msgid "Home" msgstr "Anasayfa" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 #, fuzzy msgid "HTTP Challenge Port" msgstr "HTTP Meydan Okuma Bağlantı Noktası" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 #, fuzzy msgid "HTTP Host" msgstr "HTTP ana bilgisayar" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 #, fuzzy msgid "HTTP Port" msgstr "HTTP bağlantı noktası" @@ -1150,25 +1161,39 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "Boş bırakılırsa, varsayılan CA Dir kullanılır." -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 #, fuzzy -msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time." -msgstr "Bir ip'den gelen oturum açma başarısız denemelerinin sayısı yasaklama eşiği dakikalarında maksimum denemeye ulaşırsa, ip bir süre için yasaklanacaktır." +msgid "" +"If the number of login failed attempts from a ip reach the max attempts in " +"ban threshold minutes, the ip will be banned for a period of time." +msgstr "" +"Bir ip'den gelen oturum açma başarısız denemelerinin sayısı yasaklama eşiği " +"dakikalarında maksimum denemeye ulaşırsa, ip bir süre için yasaklanacaktır." #: src/views/preference/components/TOTP.vue:111 #, fuzzy -msgid "If you lose your mobile phone, you can use the recovery code to reset your 2FA." -msgstr "Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu kullanabilirsiniz." +msgid "" +"If you lose your mobile phone, you can use the recovery code to reset your " +"2FA." +msgstr "" +"Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu " +"kullanabilirsiniz." #: src/views/preference/components/AddPasskey.vue:76 #, fuzzy msgid "If your browser supports WebAuthn Passkey, a dialog box will appear." -msgstr "Tarayıcınız WebAuthn Passkey'i destekliyorsa, bir iletişim kutusu görüntülenecektir." +msgstr "" +"Tarayıcınız WebAuthn Passkey'i destekliyorsa, bir iletişim kutusu " +"görüntülenecektir." #: src/views/site/cert/components/AutoCertStepOne.vue:109 #, fuzzy -msgid "If your domain has CNAME records and you cannot obtain certificates, you need to enable this option." -msgstr "Alan adınızda CNAME kayıtları varsa ve sertifika alamıyorsanız, bu seçeneği etkinleştirmeniz gerekir." +msgid "" +"If your domain has CNAME records and you cannot obtain certificates, you " +"need to enable this option." +msgstr "" +"Alan adınızda CNAME kayıtları varsa ve sertifika alamıyorsanız, bu seçeneği " +"etkinleştirmeniz gerekir." #: src/views/certificate/CertificateList/Certificate.vue:20 #, fuzzy @@ -1180,7 +1205,7 @@ msgstr "İçe Aktar" msgid "Import Certificate" msgstr "İthalat Sertifikası" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 #, fuzzy msgid "Incorrect username or password" msgstr "Yanlış kullanıcı adı ya da parola" @@ -1231,7 +1256,7 @@ msgstr "Aralık" msgid "Invalid" msgstr "Geçersiz" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 #, fuzzy msgid "Invalid 2FA or recovery code" msgstr "Geçersiz 2FA veya kurtarma kodu" @@ -1247,12 +1272,12 @@ msgstr "Geçersiz dosya ismi" msgid "Invalid folder name" msgstr "Geçersiz klasör adı" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 #, fuzzy msgid "Invalid passcode or recovery code" msgstr "Geçersiz parola veya kurtarma kodu" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 #, fuzzy msgid "IP" msgstr "IP" @@ -1277,7 +1302,7 @@ msgstr "Sertifika başarıyla verildi" msgid "Issuer: %{issuer}" msgstr "İhraççı: %{issuer}" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 #, fuzzy msgid "Jwt Secret" msgstr "Jwt Secret" @@ -1376,12 +1401,12 @@ msgstr "Konumlar" msgid "Log" msgstr "Günlük" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 #, fuzzy msgid "Login" msgstr "Giriş" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 #, fuzzy msgid "Login successful" msgstr "Giriş Başarılı" @@ -1391,20 +1416,36 @@ msgstr "Giriş Başarılı" msgid "Logout successful" msgstr "Çıkış başarılı" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 #, fuzzy msgid "Logrotate" msgstr "Logrotate" #: src/views/preference/LogrotateSettings.vue:12 #, fuzzy -msgid "Logrotate, by default, is enabled in most mainstream Linux distributions for users who install Nginx UI on the host machine, so you don't need to modify the parameters on this page. For users who install Nginx UI using Docker containers, you can manually enable this option. The crontab task scheduler of Nginx UI will execute the logrotate command at the interval you set in minutes." -msgstr "Logrotate, ana makineye Nginx UI yükleyen kullanıcılar için çoğu ana Linux dağıtımında varsayılan olarak etkindir, bu nedenle bu sayfadaki parametreleri değiştirmeniz gerekmez. Nginx UI'yi Docker konteynerleri kullanarak kuran kullanıcılar için bu seçeneği manuel olarak etkinleştirebilirsiniz. Nginx UI'nin crontab görev zamanlayıcısı, logrotate komutunu dakika olarak belirlediğiniz aralıkta çalıştıracaktır." +msgid "" +"Logrotate, by default, is enabled in most mainstream Linux distributions for " +"users who install Nginx UI on the host machine, so you don't need to modify " +"the parameters on this page. For users who install Nginx UI using Docker " +"containers, you can manually enable this option. The crontab task scheduler " +"of Nginx UI will execute the logrotate command at the interval you set in " +"minutes." +msgstr "" +"Logrotate, ana makineye Nginx UI yükleyen kullanıcılar için çoğu ana Linux " +"dağıtımında varsayılan olarak etkindir, bu nedenle bu sayfadaki " +"parametreleri değiştirmeniz gerekmez. Nginx UI'yi Docker konteynerleri " +"kullanarak kuran kullanıcılar için bu seçeneği manuel olarak " +"etkinleştirebilirsiniz. Nginx UI'nin crontab görev zamanlayıcısı, logrotate " +"komutunu dakika olarak belirlediğiniz aralıkta çalıştıracaktır." #: src/views/site/cert/components/AutoCertStepOne.vue:54 #, fuzzy -msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort before obtaining the certificate." -msgstr "Sertifikayı almadan önce .well-known dizini için HTTPChallengePort'a bir ters proxy yapılandırdığınızdan emin olun." +msgid "" +"Make sure you have configured a reverse proxy for .well-known directory to " +"HTTPChallengePort before obtaining the certificate." +msgstr "" +"Sertifikayı almadan önce .well-known dizini için HTTPChallengePort'a bir " +"ters proxy yapılandırdığınızdan emin olun." #: src/routes/index.ts:102 src/views/config/ConfigEditor.vue:138 #: src/views/config/ConfigEditor.vue:99 src/views/config/ConfigList.vue:70 @@ -1432,7 +1473,7 @@ msgstr "Kullanıcıları Yönet" msgid "Managed Certificate" msgstr "Yönetilen Sertifika" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 #, fuzzy msgid "Max Attempts" msgstr "Maksimum Deneme" @@ -1545,12 +1586,12 @@ msgstr "Yeni sürüm yayınlandı" msgid "Next" msgstr "Sonraki" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 #, fuzzy msgid "Nginx" msgstr "Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 #, fuzzy msgid "Nginx Access Log Path" msgstr "Nginx Erişim Günlüğü Yolu" @@ -1560,12 +1601,17 @@ msgstr "Nginx Erişim Günlüğü Yolu" msgid "Nginx Configuration Parse Error" msgstr "Nginx Yapılandırma Ayrıştırma Hatası" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Nginx Yapılandırma Ayrıştırma Hatası" + #: src/components/NginxControl/NginxControl.vue:68 #, fuzzy msgid "Nginx Control" msgstr "Nginx Kontrolü" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 #, fuzzy msgid "Nginx Error Log Path" msgstr "Nginx Hata Günlüğü Yolu" @@ -1580,11 +1626,29 @@ msgstr "Nginx çalışmıyor" msgid "Nginx Log" msgstr "Nginx Günlüğü" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Nginx Hata Günlüğü Yolu" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 #, fuzzy msgid "Nginx reloaded successfully" msgstr "Nginx başarıyla yeniden yüklendi" +#: src/views/preference/NginxSettings.vue:33 +#, fuzzy +msgid "Nginx Restart Command" +msgstr "Terminal Başlatma Komutu" + #: src/components/NginxControl/NginxControl.vue:42 #, fuzzy msgid "Nginx restarted successfully" @@ -1596,8 +1660,8 @@ msgstr "Nginx başarıyla yeniden başlatıldı" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 @@ -1605,7 +1669,12 @@ msgstr "Nginx başarıyla yeniden başlatıldı" msgid "No" msgstr "Hayır" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "Yeni Ad" + +#: src/views/preference/BasicSettings.vue:23 #, fuzzy msgid "Node Secret" msgstr "Düğüm Sırrı" @@ -1658,8 +1727,12 @@ msgstr "OCSP Zımbalanmalıdır" #: src/views/site/cert/components/AutoCertStepOne.vue:100 #, fuzzy -msgid "OCSP Must Staple may cause errors for some users on first access using Firefox." -msgstr "OCSP Must Staple, Firefox kullanarak ilk erişimde bazı kullanıcılar için hatalara neden olabilir." +msgid "" +"OCSP Must Staple may cause errors for some users on first access using " +"Firefox." +msgstr "" +"OCSP Must Staple, Firefox kullanarak ilk erişimde bazı kullanıcılar için " +"hatalara neden olabilir." #: src/components/NodeSelector/NodeSelector.vue:94 #: src/views/dashboard/Environments.vue:107 @@ -1707,12 +1780,12 @@ msgstr "Doğrulama tamamlandıktan sonra kayıtlar kaldırılacaktır." msgid "Online" msgstr "Çevrimiçi" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 #, fuzzy msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 #, fuzzy msgid "Or" msgstr "Veya" @@ -1758,10 +1831,16 @@ msgstr "Passkey" #: src/views/preference/components/Passkey.vue:68 #, fuzzy -msgid "Passkeys are webauthn credentials that validate your identity using touch, facial recognition, a device password, or a PIN. They can be used as a password replacement or as a 2FA method." -msgstr "Passkeys, dokunma, yüz tanıma, cihaz parolası veya PIN kullanarak kimliğinizi doğrulayan webauthn kimlik bilgileridir. Parola yerine veya 2FA yöntemi olarak kullanılabilirler." +msgid "" +"Passkeys are webauthn credentials that validate your identity using touch, " +"facial recognition, a device password, or a PIN. They can be used as a " +"password replacement or as a 2FA method." +msgstr "" +"Passkeys, dokunma, yüz tanıma, cihaz parolası veya PIN kullanarak " +"kimliğinizi doğrulayan webauthn kimlik bilgileridir. Parola yerine veya 2FA " +"yöntemi olarak kullanılabilirler." -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 #, fuzzy msgid "Password" msgstr "Şifre" @@ -1795,8 +1874,12 @@ msgstr "Çekirdek yükseltme gerçekleştirme" #: src/views/preference/components/AddPasskey.vue:75 #, fuzzy -msgid "Please enter a name for the passkey you wish to create and click the OK button below." -msgstr "Lütfen oluşturmak istediğiniz geçiş anahtarı için bir ad girin ve aşağıdaki Tamam düğmesine tıklayın." +msgid "" +"Please enter a name for the passkey you wish to create and click the OK " +"button below." +msgstr "" +"Lütfen oluşturmak istediğiniz geçiş anahtarı için bir ad girin ve aşağıdaki " +"Tamam düğmesine tıklayın." #: src/components/TwoFA/Authorization.vue:75 #, fuzzy @@ -1805,8 +1888,12 @@ msgstr "Lütfen OTP kodunu girin:" #: src/views/certificate/DNSCredential.vue:53 #, fuzzy -msgid "Please fill in the API authentication credentials provided by your DNS provider." -msgstr "Lütfen DNS sağlayıcınız tarafından sağlanan API kimlik doğrulama bilgilerini doldurun." +msgid "" +"Please fill in the API authentication credentials provided by your DNS " +"provider." +msgstr "" +"Lütfen DNS sağlayıcınız tarafından sağlanan API kimlik doğrulama bilgilerini " +"doldurun." #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:133 #, fuzzy @@ -1815,8 +1902,13 @@ msgstr "Lütfen zorunlu alanları doldurup tekrar deneyiniz" #: src/views/site/cert/components/AutoCertStepOne.vue:58 #, fuzzy -msgid "Please first add credentials in Certification > DNS Credentials, and then select one of the credentialsbelow to request the API of the DNS provider." -msgstr "Lütfen önce Sertifikasyon > DNS Kimlik Bilgileri bölümüne kimlik bilgilerini ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki kimlik bilgilerinden birini seçin." +msgid "" +"Please first add credentials in Certification > DNS Credentials, and then " +"select one of the credentialsbelow to request the API of the DNS provider." +msgstr "" +"Lütfen önce Sertifikasyon > DNS Kimlik Bilgileri bölümüne kimlik bilgilerini " +"ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki " +"kimlik bilgilerinden birini seçin." #: src/views/config/components/Rename.vue:64 #: src/views/config/ConfigEditor.vue:249 @@ -1832,28 +1924,34 @@ msgstr "Lütfen bir klasör adı girin" #: src/views/site/components/SiteDuplicate.vue:38 #: src/views/stream/components/StreamDuplicate.vue:38 #, fuzzy -msgid "Please input name, this will be used as the filename of the new configuration!" -msgstr "Lütfen isim girin, bu yeni yapılandırmanın dosya adı olarak kullanılacaktır!" +msgid "" +"Please input name, this will be used as the filename of the new " +"configuration!" +msgstr "" +"Lütfen isim girin, bu yeni yapılandırmanın dosya adı olarak kullanılacaktır!" #: src/views/other/Install.vue:32 #, fuzzy msgid "Please input your E-mail!" msgstr "Lütfen e-postanızı girin!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 #, fuzzy msgid "Please input your password!" msgstr "Lütfen şifrenizi girin!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 #, fuzzy msgid "Please input your username!" msgstr "Lütfen kullanıcı adınızı girin!" #: src/views/certificate/DNSCredential.vue:62 #, fuzzy -msgid "Please note that the unit of time configurations below are all in seconds." -msgstr "Lütfen aşağıdaki zaman birimi konfigürasyonlarının tümünün saniye cinsinden olduğunu unutmayın." +msgid "" +"Please note that the unit of time configurations below are all in seconds." +msgstr "" +"Lütfen aşağıdaki zaman birimi konfigürasyonlarının tümünün saniye cinsinden " +"olduğunu unutmayın." #: src/views/environment/Environment.vue:47 #, fuzzy @@ -1873,7 +1971,7 @@ msgstr "Lütfen en az bir düğüm seçin!" msgid "Pre-release" msgstr "Ön sürüm" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 #, fuzzy msgid "Preference" msgstr "Tercih" @@ -1946,7 +2044,7 @@ msgstr "Kurtarma Kodu" msgid "Recovery Code:" msgstr "Kurtarma Kodu:" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 #, fuzzy msgid "Recursive Nameservers" msgstr "Yinelemeli Ad Sunucuları" @@ -1963,8 +2061,12 @@ msgstr "Kayıt Ol" #: src/views/certificate/ACMEUser.vue:53 #, fuzzy -msgid "Register a user or use this account to issue a certificate through an HTTP proxy." -msgstr "Bir HTTP proxy'si aracılığıyla sertifika vermek için bir kullanıcı kaydedin veya bu hesabı kullanın." +msgid "" +"Register a user or use this account to issue a certificate through an HTTP " +"proxy." +msgstr "" +"Bir HTTP proxy'si aracılığıyla sertifika vermek için bir kullanıcı kaydedin " +"veya bu hesabı kullanın." #: src/views/certificate/ACMEUser.vue:98 #, fuzzy @@ -2022,12 +2124,12 @@ msgstr "Yeniden Yükleme" msgid "Reloading nginx" msgstr "Nginx'i yeniden yükleme" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 #, fuzzy msgid "Remove" msgstr "Kaldır" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 #, fuzzy msgid "Remove successfully" @@ -2047,18 +2149,26 @@ msgstr "Yeniden Adlandır" #: src/components/Notification/config.ts:31 #, fuzzy -msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade the remote Nginx UI to the latest version" -msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırmak başarısız oldu, lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin" +msgid "" +"Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade the " +"remote Nginx UI to the latest version" +msgstr "" +"2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırmak başarısız " +"oldu, lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin" #: src/components/Notification/config.ts:35 #, fuzzy -msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}" -msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırma başarısız oldu, yanıt: %{resp}" +msgid "" +"Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}" +msgstr "" +"2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırma başarısız " +"oldu, yanıt: %{resp}" #: src/components/Notification/config.ts:23 #, fuzzy msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully" -msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın" +msgstr "" +"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın" #: src/language/constants.ts:41 #, fuzzy @@ -2122,7 +2232,19 @@ msgstr "Yeniden başlat" msgid "Restarting" msgstr "Yeniden Başlatma" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 #, fuzzy msgid "Run Mode" msgstr "Çalışma Modu" @@ -2136,7 +2258,7 @@ msgstr "Çalışıyor" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 #, fuzzy @@ -2158,7 +2280,7 @@ msgstr "Hatayı kaydet %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 #, fuzzy msgid "Save successfully" msgstr "Başarıyla kaydedin" @@ -2209,13 +2331,13 @@ msgstr "Gönder" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 #, fuzzy @@ -2227,11 +2349,6 @@ msgstr "Server hatası" msgid "Server Info" msgstr "Sunucu Bilgisi" -#: src/views/preference/BasicSettings.vue:117 -#, fuzzy -msgid "Server Name" -msgstr "Sunucu Adı" - #: src/views/site/cert/components/ObtainCert.vue:102 #, fuzzy msgid "server_name not found in directives" @@ -2242,10 +2359,14 @@ msgstr "server_name yönergelerde bulunamadı" msgid "server_name parameter is required" msgstr "server_name parametresi gereklidir" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 #, fuzzy -msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge." -msgstr "Özyinelemeli ad sunucularını, DNS zorluğu adımı için sistem ad sunucularını geçersiz kılacak şekilde ayarlayın." +msgid "" +"Set the recursive nameservers to override the systems nameservers for the " +"step of DNS challenge." +msgstr "" +"Özyinelemeli ad sunucularını, DNS zorluğu adımı için sistem ad sunucularını " +"geçersiz kılacak şekilde ayarlayın." #: src/language/constants.ts:11 #, fuzzy @@ -2267,7 +2388,7 @@ msgstr "HTTP01 meydan okuma sağlayıcısını ayarlama" msgid "Show" msgstr "Göster" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 #, fuzzy msgid "Sign in with a passkey" msgstr "Bir geçiş anahtarı ile oturum açın" @@ -2307,7 +2428,7 @@ msgstr "SSL Sertifikası Anahtar Yolu" msgid "SSL Certificate Path" msgstr "SSL Sertifika Yolu" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 #, fuzzy msgid "SSO Login" msgstr "SSO Girişi" @@ -2371,13 +2492,19 @@ msgstr "Senkronizasyon Sertifikası" #: src/components/Notification/cert.ts:12 #, fuzzy -msgid "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the remote Nginx UI to the latest version" -msgstr "Sertifika %{cert_name}'dan %{env_name}'e senkronizasyon başarısız oldu, lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin" +msgid "" +"Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the " +"remote Nginx UI to the latest version" +msgstr "" +"Sertifika %{cert_name}'dan %{env_name}'e senkronizasyon başarısız oldu, " +"lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin" #: src/components/Notification/cert.ts:16 #, fuzzy msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}" -msgstr "Sertifika %{cert_name} ile %{env_name} arasında senkronizasyon başarısız oldu, yanıt: %{resp}" +msgstr "" +"Sertifika %{cert_name} ile %{env_name} arasında senkronizasyon başarısız " +"oldu, yanıt: %{resp}" #: src/components/Notification/cert.ts:4 #, fuzzy @@ -2396,13 +2523,19 @@ msgstr "Senkronizasyon Sertifikası Başarısı" #: src/components/Notification/config.ts:12 #, fuzzy -msgid "Sync config %{config_name} to %{env_name} failed, please upgrade the remote Nginx UI to the latest version" -msgstr "0] yapılandırmasını %{env_name} ile eşitleme başarısız oldu, lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin" +msgid "" +"Sync config %{config_name} to %{env_name} failed, please upgrade the remote " +"Nginx UI to the latest version" +msgstr "" +"0] yapılandırmasını %{env_name} ile eşitleme başarısız oldu, lütfen uzak " +"Nginx kullanıcı arayüzünü en son sürüme yükseltin" #: src/components/Notification/config.ts:16 #, fuzzy msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}" -msgstr "Yapılandırma %{config_name} ile %{env_name} arasında eşitleme başarısız oldu, yanıt: %{resp}" +msgstr "" +"Yapılandırma %{config_name} ile %{env_name} arasında eşitleme başarısız " +"oldu, yanıt: %{resp}" #: src/components/Notification/config.ts:4 #, fuzzy @@ -2445,15 +2578,21 @@ msgstr "Hedef" msgid "Terminal" msgstr "terminal" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 #, fuzzy msgid "Terminal Start Command" msgstr "Terminal Başlatma Komutu" #: src/views/site/cert/components/AutoCertStepOne.vue:50 #, fuzzy -msgid "The certificate for the domain will be checked 30 minutes, and will be renewed if it has been more than 1 week or the period you set in settings since it was last issued." -msgstr "Etki alanı için sertifika 30 dakikada bir kontrol edilecek ve en son verilmesinden bu yana 1 haftadan veya ayarlarda belirlediğiniz süreden fazla zaman geçtiyse yenilenecektir." +msgid "" +"The certificate for the domain will be checked 30 minutes, and will be " +"renewed if it has been more than 1 week or the period you set in settings " +"since it was last issued." +msgstr "" +"Etki alanı için sertifika 30 dakikada bir kontrol edilecek ve en son " +"verilmesinden bu yana 1 haftadan veya ayarlarda belirlediğiniz süreden fazla " +"zaman geçtiyse yenilenecektir." #: src/views/other/Install.vue:50 #, fuzzy @@ -2472,8 +2611,19 @@ msgstr "Girdi bir SSL Sertifika Anahtarı değil" #: src/views/preference/OpenAISettings.vue:35 #, fuzzy -msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots." -msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir." +msgid "" +"The model name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" +"Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir." + +#: src/views/preference/BasicSettings.vue:45 +#, fuzzy +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" +"Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir." #: src/views/certificate/CertificateEditor.vue:173 #, fuzzy @@ -2487,26 +2637,34 @@ msgstr "Yol var, ancak dosya bir özel anahtar değil" #: src/views/preference/components/TOTP.vue:112 #, fuzzy -msgid "The recovery code is only displayed once, please save it in a safe place." -msgstr "Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere kaydedin." +msgid "" +"The recovery code is only displayed once, please save it in a safe place." +msgstr "" +"Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere " +"kaydedin." #: src/views/dashboard/Environments.vue:148 #, fuzzy -msgid "The remote Nginx UI version is not compatible with the local Nginx UI version. To avoid potential errors, please upgrade the remote Nginx UI to match the local version." -msgstr "Uzak Nginx UI sürümü yerel Nginx UI sürümü ile uyumlu değil. Olası hataları önlemek için lütfen uzak Nginx kullanıcı arayüzünü yerel sürümle eşleşecek şekilde yükseltin." - -#: src/views/preference/BasicSettings.vue:120 -#, fuzzy -msgid "The server name should only contain letters, unicode, numbers, hyphens, dashes, and dots." -msgstr "Sunucu adı yalnızca harf, unicode, sayı, kısa çizgi, tire ve nokta içermelidir." +msgid "" +"The remote Nginx UI version is not compatible with the local Nginx UI " +"version. To avoid potential errors, please upgrade the remote Nginx UI to " +"match the local version." +msgstr "" +"Uzak Nginx UI sürümü yerel Nginx UI sürümü ile uyumlu değil. Olası hataları " +"önlemek için lütfen uzak Nginx kullanıcı arayüzünü yerel sürümle eşleşecek " +"şekilde yükseltin." #: src/views/site/cert/components/AutoCertStepOne.vue:45 #, fuzzy -msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains." -msgstr "Geçerli yapılandırmadaki sunucu_adı, sertifika almak için ihtiyacınız olan alan adı olmalıdır, birden çok alan adını destekler." +msgid "" +"The server_name in the current configuration must be the domain name you " +"need to get the certificate, supportmultiple domains." +msgstr "" +"Geçerli yapılandırmadaki sunucu_adı, sertifika almak için ihtiyacınız olan " +"alan adı olmalıdır, birden çok alan adını destekler." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 #, fuzzy msgid "The url is invalid" msgstr "URL geçersiz" @@ -2546,10 +2704,17 @@ msgstr "Bu alan boş bırakılmamalıdır" #: src/views/environment/BatchUpgrader.vue:186 #, fuzzy -msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." -msgstr "Bu, %{nodeNames} üzerindeki Nginx kullanıcı arayüzünü %{version}'e yükseltecek veya yeniden yükleyecektir." +msgid "" +"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." +msgstr "" +"Bu, %{nodeNames} üzerindeki Nginx kullanıcı arayüzünü %{version}'e " +"yükseltecek veya yeniden yükleyecektir." + +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 #, fuzzy @@ -2563,33 +2728,58 @@ msgstr "Başlık" #: src/views/preference/components/TOTP.vue:93 #, fuzzy -msgid "To enable it, you need to install the Google or Microsoft Authenticator app on your mobile phone." -msgstr "Bunu etkinleştirmek için cep telefonunuza Google veya Microsoft Authenticator uygulamasını yüklemeniz gerekir." +msgid "" +"To enable it, you need to install the Google or Microsoft Authenticator app " +"on your mobile phone." +msgstr "" +"Bunu etkinleştirmek için cep telefonunuza Google veya Microsoft " +"Authenticator uygulamasını yüklemeniz gerekir." #: src/views/preference/components/AddPasskey.vue:95 #, fuzzy -msgid "To ensure security, Webauthn configuration cannot be added through the UI. Please manually configure the following in the app.ini configuration file and restart Nginx UI." -msgstr "Güvenliği sağlamak için, Webauthn yapılandırması kullanıcı arayüzü üzerinden eklenemez. Lütfen app.ini yapılandırma dosyasında aşağıdakileri manuel olarak yapılandırın ve Nginx UI'yi yeniden başlatın." +msgid "" +"To ensure security, Webauthn configuration cannot be added through the UI. " +"Please manually configure the following in the app.ini configuration file " +"and restart Nginx UI." +msgstr "" +"Güvenliği sağlamak için, Webauthn yapılandırması kullanıcı arayüzü üzerinden " +"eklenemez. Lütfen app.ini yapılandırma dosyasında aşağıdakileri manuel " +"olarak yapılandırın ve Nginx UI'yi yeniden başlatın." #: src/views/site/ngx_conf/NgxConfigEditor.vue:45 #, fuzzy -msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?" -msgstr "Otomatik sertifika yenilemenin normal şekilde çalıştığından emin olmak için, otoriteden arka uca isteği proxyleyebilecek bir konum eklememiz ve bu dosyayı kaydedip Nginx'i yeniden yüklememiz gerekir. Devam etmek istediğinizden emin misiniz?" +msgid "" +"To make sure the certification auto-renewal can work normally, we need to " +"add a location which can proxy the request from authority to backend, and we " +"need to save this file and reload the Nginx. Are you sure you want to " +"continue?" +msgstr "" +"Otomatik sertifika yenilemenin normal şekilde çalıştığından emin olmak için, " +"otoriteden arka uca isteği proxyleyebilecek bir konum eklememiz ve bu " +"dosyayı kaydedip Nginx'i yeniden yüklememiz gerekir. Devam etmek " +"istediğinizden emin misiniz?" #: src/views/preference/OpenAISettings.vue:48 #, fuzzy -msgid "To use a local large model, deploy it with vllm or imdeploy. They provide an OpenAI-compatible API endpoint, so just set the baseUrl to your local API." -msgstr "Yerel bir büyük model kullanmak için, vllm veya imdeploy ile dağıtın. OpenAI uyumlu bir API uç noktası sağlarlar, bu nedenle baseUrl'yi yerel API'nize ayarlamanız yeterlidir." +msgid "" +"To use a local large model, deploy it with vllm or imdeploy. They provide an " +"OpenAI-compatible API endpoint, so just set the baseUrl to your local API." +msgstr "" +"Yerel bir büyük model kullanmak için, vllm veya imdeploy ile dağıtın. OpenAI " +"uyumlu bir API uç noktası sağlarlar, bu nedenle baseUrl'yi yerel API'nize " +"ayarlamanız yeterlidir." #: src/views/preference/OpenAISettings.vue:72 #, fuzzy msgid "Token is not valid" msgstr "Belirteç geçerli değil" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 #, fuzzy msgid "Too many login failed attempts, please try again later" -msgstr "Çok fazla oturum açma denemesi başarısız oldu, lütfen daha sonra tekrar deneyin" +msgstr "" +"Çok fazla oturum açma denemesi başarısız oldu, lütfen daha sonra tekrar " +"deneyin" #: src/views/preference/components/TOTP.vue:91 #, fuzzy @@ -2598,15 +2788,19 @@ msgstr "TOTP" #: src/views/preference/components/TOTP.vue:92 #, fuzzy -msgid "TOTP is a two-factor authentication method that uses a time-based one-time password algorithm." -msgstr "TOTP, zamana dayalı tek seferlik parola algoritması kullanan iki faktörlü bir kimlik doğrulama yöntemidir." +msgid "" +"TOTP is a two-factor authentication method that uses a time-based one-time " +"password algorithm." +msgstr "" +"TOTP, zamana dayalı tek seferlik parola algoritması kullanan iki faktörlü " +"bir kimlik doğrulama yöntemidir." #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:211 #, fuzzy msgid "Trash" msgstr "Çöp" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 #, fuzzy msgid "Two-factor authentication required" msgstr "İki faktörlü kimlik doğrulama gerekiyor" @@ -2691,12 +2885,12 @@ msgstr "Kurtarma kodunu kullanın" msgid "User" msgstr "Kullanıcı" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 #, fuzzy msgid "User is banned" msgstr "Kullanıcı yasaklandı" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 #, fuzzy msgid "Username" msgstr "Kullanıcı Adı" @@ -2749,18 +2943,36 @@ msgstr "Uyarı" #: src/views/certificate/DNSCredential.vue:56 #, fuzzy -msgid "We will add one or more TXT records to the DNS records of your domain for ownership verification." -msgstr "Sahiplik doğrulaması için alan adınızın DNS kayıtlarına bir veya daha fazla TXT kaydı ekleyeceğiz." +msgid "" +"We will add one or more TXT records to the DNS records of your domain for " +"ownership verification." +msgstr "" +"Sahiplik doğrulaması için alan adınızın DNS kayıtlarına bir veya daha fazla " +"TXT kaydı ekleyeceğiz." #: src/views/site/cert/components/ObtainCert.vue:134 #, fuzzy -msgid "We will remove the HTTPChallenge configuration from this file and reload the Nginx. Are you sure you want to continue?" -msgstr "HTTPChallenge yapılandırmasını bu dosyadan kaldıracağız ve Nginx'i yeniden yükleyeceğiz. Devam etmek istediğinizden emin misiniz?" +msgid "" +"We will remove the HTTPChallenge configuration from this file and reload the " +"Nginx. Are you sure you want to continue?" +msgstr "" +"HTTPChallenge yapılandırmasını bu dosyadan kaldıracağız ve Nginx'i yeniden " +"yükleyeceğiz. Devam etmek istediğinizden emin misiniz?" + +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" #: src/views/certificate/ACMEUser.vue:78 #, fuzzy -msgid "When Enabled, Nginx UI will automatically re-register users upon startup. Generally, do not enable this unless you are in a dev environment and using Pebble as CA." -msgstr "Etkinleştirildiğinde, Nginx UI başlangıçta kullanıcıları otomatik olarak yeniden kaydeder. Genel olarak, bir geliştirme ortamında değilseniz ve CA olarak Pebble kullanmıyorsanız bunu etkinleştirmeyin." +msgid "" +"When Enabled, Nginx UI will automatically re-register users upon startup. " +"Generally, do not enable this unless you are in a dev environment and using " +"Pebble as CA." +msgstr "" +"Etkinleştirildiğinde, Nginx UI başlangıçta kullanıcıları otomatik olarak " +"yeniden kaydeder. Genel olarak, bir geliştirme ortamında değilseniz ve CA " +"olarak Pebble kullanmıyorsanız bunu etkinleştirmeyin." #: src/views/dashboard/ServerAnalytic.vue:27 #: src/views/dashboard/ServerAnalytic.vue:368 @@ -2778,8 +2990,8 @@ msgstr "Sertifika özel anahtarını diske yazma" msgid "Writing certificate to disk" msgstr "Sertifikayı diske yazma" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 #, fuzzy @@ -2798,10 +3010,30 @@ msgstr "Nginx UI yükseltmesini bu sayfadan kontrol edebilirsiniz." #: src/views/preference/components/AddPasskey.vue:93 #, fuzzy -msgid "You have not configured the settings of Webauthn, so you cannot add a passkey." -msgstr "Webauthn ayarlarını yapılandırmadınız, bu nedenle bir geçiş anahtarı ekleyemezsiniz." +msgid "" +"You have not configured the settings of Webauthn, so you cannot add a " +"passkey." +msgstr "" +"Webauthn ayarlarını yapılandırmadınız, bu nedenle bir geçiş anahtarı " +"ekleyemezsiniz." #: src/views/preference/components/Passkey.vue:81 #, fuzzy msgid "Your passkeys" msgstr "Geçiş anahtarlarınız" + +#, fuzzy +#~ msgid "File not found" +#~ msgstr "Dosya bulunamadı" + +#, fuzzy +#~ msgid "Server Name" +#~ msgstr "Sunucu Adı" + +#, fuzzy +#~ msgid "" +#~ "The server name should only contain letters, unicode, numbers, hyphens, " +#~ "dashes, and dots." +#~ msgstr "" +#~ "Sunucu adı yalnızca harf, unicode, sayı, kısa çizgi, tire ve nokta " +#~ "içermelidir." diff --git a/app/src/language/vi_VN/app.po b/app/src/language/vi_VN/app.po index ed816e0e..02676327 100644 --- a/app/src/language/vi_VN/app.po +++ b/app/src/language/vi_VN/app.po @@ -13,7 +13,7 @@ msgstr "" msgid "2FA" msgstr "" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "" @@ -37,14 +37,14 @@ msgstr "Người dùng" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "Hành động" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -119,7 +119,7 @@ msgstr "" msgid "Arch" msgstr "" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 #, fuzzy msgid "Are you sure to delete this banned IP immediately?" msgstr "Bạn chắc chắn muốn xóa nó " @@ -164,7 +164,7 @@ msgstr "Bạn chắc chắn muốn xoá directive này ?" msgid "Are you sure you want to remove this directive?" msgstr "Bạn chắc chắn muốn xoá directive này ?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 #, fuzzy msgid "Are you sure you want to remove this item?" msgstr "Bạn chắc chắn muốn xoá directive này ?" @@ -182,11 +182,11 @@ msgstr "Hỏi ChatGPT" msgid "Assistant" msgstr "Trợ lý" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 #, fuzzy msgid "Auth" msgstr "Tác giả" @@ -195,7 +195,7 @@ msgstr "Tác giả" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -232,15 +232,15 @@ msgstr "Quay lại" msgid "Back to list" msgstr "" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "" @@ -249,7 +249,7 @@ msgid "Base information" msgstr "Thông tin" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 #, fuzzy @@ -279,7 +279,7 @@ msgstr "Xây dựng với" msgid "CA Dir" msgstr "" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "" @@ -303,7 +303,12 @@ msgstr "" msgid "Cancel" msgstr "Huỷ" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +#, fuzzy +msgid "Cert" +msgstr "Tự động ký chứng chỉ SSL" + +#: src/views/preference/CertSettings.vue:24 #, fuzzy msgid "Certificate Renewal Interval" msgstr "Chứng chỉ SSL hợp lệ" @@ -499,9 +504,9 @@ msgstr "Phiên bản hiện tại" msgid "Custom" msgstr "Tuỳ chỉnh" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "" @@ -514,7 +519,7 @@ msgstr "Bảng điều khiển" msgid "Database (Optional, default: database)" msgstr "Tên cơ sở dữ liệu (Tuỳ chọn, Mặc định là: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "" @@ -920,12 +925,6 @@ msgstr "Tệp tin" msgid "File exists" msgstr "Tệp tin đã tồn tại" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -#, fuzzy -msgid "File not found" -msgstr "Không tìm thấy tệp tin" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "Không tìm thấy tệp tin" @@ -944,7 +943,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 #, fuzzy msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "Người dùng Trung Quốc: https://mirror.ghproxy.com/" @@ -985,7 +984,7 @@ msgstr "Nhận lỗi thông tin phát hành" msgid "Getting the certificate, please wait..." msgstr "Đang lấy chứng chỉ, vui lòng đợi..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "" @@ -997,15 +996,15 @@ msgstr "" msgid "Home" msgstr "Trang chủ" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "" @@ -1017,7 +1016,7 @@ msgstr "" msgid "If left blank, the default CA Dir will be used." msgstr "" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -1049,7 +1048,7 @@ msgstr "Xuất" msgid "Import Certificate" msgstr "Chứng chỉ" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 #, fuzzy msgid "Incorrect username or password" msgstr "Tên người dùng hoặc mật khẩu không chính xác" @@ -1093,7 +1092,7 @@ msgstr "" msgid "Invalid" msgstr "Hợp lệ" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "" @@ -1107,11 +1106,11 @@ msgstr "E-mail không chính xác!" msgid "Invalid folder name" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "" @@ -1134,7 +1133,7 @@ msgstr "Cấp chứng chỉ thành công" msgid "Issuer: %{issuer}" msgstr "" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "" @@ -1223,11 +1222,11 @@ msgstr "Locations" msgid "Log" msgstr "Log" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "Đăng nhập" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "Đăng nhập thành công" @@ -1235,7 +1234,7 @@ msgstr "Đăng nhập thành công" msgid "Logout successful" msgstr "Đã đăng xuất" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "" @@ -1280,7 +1279,7 @@ msgstr "Người dùng" msgid "Managed Certificate" msgstr "" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "" @@ -1381,11 +1380,11 @@ msgstr "Đã có phiên bản mới" msgid "Next" msgstr "Tiếp theo" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Vị trí lưu log truy cập (Access log) của Nginx" @@ -1394,11 +1393,16 @@ msgstr "Vị trí lưu log truy cập (Access log) của Nginx" msgid "Nginx Configuration Parse Error" msgstr "Lỗi phân tích cú pháp cấu hình Nginx" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Lỗi phân tích cú pháp cấu hình Nginx" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Vị trí lưu log lỗi (Error log) của Nginx" @@ -1410,11 +1414,28 @@ msgstr "" msgid "Nginx Log" msgstr "" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Vị trí lưu log lỗi (Error log) của Nginx" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 #, fuzzy msgid "Nginx reloaded successfully" msgstr "Reload Nginx thành công" +#: src/views/preference/NginxSettings.vue:33 +msgid "Nginx Restart Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:42 #, fuzzy msgid "Nginx restarted successfully" @@ -1426,15 +1447,20 @@ msgstr "Restart Nginx thành công" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "Không" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "Username" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "" @@ -1525,11 +1551,11 @@ msgstr "Sau khi quá trình xác minh hoàn tất, bản ghi sẽ bị xóa." msgid "Online" msgstr "Trực tuyến" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1573,7 +1599,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "Mật khẩu" @@ -1651,11 +1677,11 @@ msgstr "" msgid "Please input your E-mail!" msgstr "Vui lòng nhập E-mail của bạn!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "Vui lòng nhập mật khẩu!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "Vui lòng nhập username!" @@ -1679,7 +1705,7 @@ msgstr "" msgid "Pre-release" msgstr "" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "Cài đặt" @@ -1740,7 +1766,7 @@ msgstr "" msgid "Recovery Code:" msgstr "" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "" @@ -1810,11 +1836,11 @@ msgstr "Đang tải lại" msgid "Reloading nginx" msgstr "Tải lại nginx" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 #, fuzzy msgid "Remove successfully" @@ -1908,7 +1934,19 @@ msgstr "Khởi động lại" msgid "Restarting" msgstr "Đang khởi động lại" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 #, fuzzy msgid "Run Mode" msgstr "Run Mode" @@ -1921,7 +1959,7 @@ msgstr "Running" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1940,7 +1978,7 @@ msgstr "Đã xảy ra lỗi khi lưu %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 #, fuzzy msgid "Save successfully" msgstr "Lưu thành công" @@ -1985,13 +2023,13 @@ msgstr "Gửi" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -2001,11 +2039,6 @@ msgstr "Lỗi máy chủ" msgid "Server Info" msgstr "Thông tin máy chủ" -#: src/views/preference/BasicSettings.vue:117 -#, fuzzy -msgid "Server Name" -msgstr "Thông tin máy chủ" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "không tìm thấy server_name trong directives" @@ -2014,7 +2047,7 @@ msgstr "không tìm thấy server_name trong directives" msgid "server_name parameter is required" msgstr "Tham số server_name là bắt buộc" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -2037,7 +2070,7 @@ msgstr "Sử dụng HTTP01 để xác thực SSL" msgid "Show" msgstr "" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -2070,7 +2103,7 @@ msgstr "" msgid "SSL Certificate Path" msgstr "" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 msgid "SSO Login" msgstr "" @@ -2198,7 +2231,7 @@ msgstr "Mục tiêu" msgid "Terminal" msgstr "Terminal" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "" @@ -2230,6 +2263,12 @@ msgid "" "dashes, and dots." msgstr "" +#: src/views/preference/BasicSettings.vue:45 +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "" + #: src/views/certificate/CertificateEditor.vue:173 msgid "The path exists, but the file is not a certificate" msgstr "" @@ -2250,12 +2289,6 @@ msgid "" "match the local version." msgstr "" -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 #, fuzzy msgid "" @@ -2264,8 +2297,8 @@ msgid "" msgstr "" "Lưu ý: server_name trong cấu hình hiện tại phải là tên miền bạn muốn ký SSL." -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "" @@ -2301,7 +2334,11 @@ msgid "" "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2346,7 +2383,7 @@ msgstr "" msgid "Token is not valid" msgstr "" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "" @@ -2364,7 +2401,7 @@ msgstr "" msgid "Trash" msgstr "" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "" @@ -2439,11 +2476,11 @@ msgstr "" msgid "User" msgstr "Người dùng" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "Username" @@ -2505,6 +2542,10 @@ msgstr "" "Chúng tôi sẽ xóa cấu hình HTTPChallenge khỏi tệp này và tải lại Nginx. Bạn " "có muốn tiếp tục không?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2525,8 +2566,8 @@ msgstr "Ghi Private Key vào disk" msgid "Writing certificate to disk" msgstr "Ghi chứng chỉ vào disk" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2550,6 +2591,14 @@ msgstr "" msgid "Your passkeys" msgstr "" +#, fuzzy +#~ msgid "File not found" +#~ msgstr "Không tìm thấy tệp tin" + +#, fuzzy +#~ msgid "Server Name" +#~ msgstr "Thông tin máy chủ" + #, fuzzy #~ msgid "Enable 2FA" #~ msgstr "Đã bật" @@ -2558,9 +2607,6 @@ msgstr "" #~ msgid "Rename " #~ msgstr "Username" -#~ msgid "Auto Cert" -#~ msgstr "Tự động ký chứng chỉ SSL" - #~ msgid "Certificate has expired" #~ msgstr "Chứng chỉ đã hết hạn" diff --git a/app/src/language/zh_CN/app.mo b/app/src/language/zh_CN/app.mo index 6fcf3522..fb6de448 100644 Binary files a/app/src/language/zh_CN/app.mo and b/app/src/language/zh_CN/app.mo differ diff --git a/app/src/language/zh_CN/app.po b/app/src/language/zh_CN/app.po index 48f709ab..8ff7ad33 100644 --- a/app/src/language/zh_CN/app.po +++ b/app/src/language/zh_CN/app.po @@ -17,7 +17,7 @@ msgstr "" msgid "2FA" msgstr "2FA" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "2FA 设置" @@ -40,14 +40,14 @@ msgstr "ACME 用户" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "操作" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -118,7 +118,7 @@ msgstr "API Token" msgid "Arch" msgstr "架构" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 msgid "Are you sure to delete this banned IP immediately?" msgstr "您确定要立即删除这个被禁用的 IP 吗?" @@ -155,7 +155,7 @@ msgstr "您确定要恢复这个项目吗?" msgid "Are you sure you want to remove this directive?" msgstr "您确定要删除这条指令?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 msgid "Are you sure you want to remove this item?" msgstr "您确定要删除这个项目吗?" @@ -171,11 +171,11 @@ msgstr "与ChatGPT聊天" msgid "Assistant" msgstr "助手" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "尝试次数" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "认证" @@ -183,7 +183,7 @@ msgstr "认证" msgid "Authenticate with a passkey" msgstr "通过 Passkey 认证" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "认证设置" @@ -219,15 +219,15 @@ msgstr "返回首页" msgid "Back to list" msgstr "返回列表" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "禁止阈值(分钟)" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "禁止 IP 列表" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "禁用至" @@ -236,7 +236,7 @@ msgid "Base information" msgstr "基本信息" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 msgid "Basic" @@ -263,7 +263,7 @@ msgstr "构建基于" msgid "CA Dir" msgstr "CA Dir" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "CADir" @@ -287,7 +287,11 @@ msgstr "无法扫描?使用文本密钥绑定" msgid "Cancel" msgstr "取消" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +msgid "Cert" +msgstr "证书" + +#: src/views/preference/CertSettings.vue:24 msgid "Certificate Renewal Interval" msgstr "证书续期间隔" @@ -467,9 +471,9 @@ msgstr "当前版本" msgid "Custom" msgstr "自定义" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "自定义显示在环境指示器中的本地服务器名称。" @@ -482,7 +486,7 @@ msgstr "仪表盘" msgid "Database (Optional, default: database)" msgstr "数据库 (可选,默认: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "天" @@ -860,11 +864,6 @@ msgstr "文件" msgid "File exists" msgstr "文件已存在" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -msgid "File not found" -msgstr "文件未找到" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "未找到文件" @@ -883,7 +882,7 @@ msgid "" "process." msgstr "按照对话框中的指示完成 Passkey 的注册过程。" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "中国用户:https://mirror.ghproxy.com/" @@ -919,7 +918,7 @@ msgstr "获取发布信息错误" msgid "Getting the certificate, please wait..." msgstr "正在获取证书,请稍等..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "Github代理" @@ -931,15 +930,15 @@ msgstr "隐藏" msgid "Home" msgstr "首页" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "HTTP Challenge 监听端口" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "HTTP 监听主机" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "HTTP 监听端口" @@ -951,7 +950,7 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "如果留空,则使用默认 CA Dir。" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -983,7 +982,7 @@ msgstr "导入" msgid "Import Certificate" msgstr "导入证书" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 msgid "Incorrect username or password" msgstr "用户名或密码错误" @@ -1024,7 +1023,7 @@ msgstr "间隔" msgid "Invalid" msgstr "无效的" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "无效的二步验证码或恢复密码" @@ -1037,11 +1036,11 @@ msgstr "文件名无效" msgid "Invalid folder name" msgstr "无效文件夹名" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "二次验证码或恢复代码无效" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "IP" @@ -1061,7 +1060,7 @@ msgstr "证书申请成功" msgid "Issuer: %{issuer}" msgstr "颁发者:%{issuer}" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "Jwt 密钥" @@ -1141,11 +1140,11 @@ msgstr "Locations" msgid "Log" msgstr "日志" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "登录" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "登录成功" @@ -1153,7 +1152,7 @@ msgstr "登录成功" msgid "Logout successful" msgstr "登出成功" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "Logrotate" @@ -1200,7 +1199,7 @@ msgstr "用户管理" msgid "Managed Certificate" msgstr "托管证书" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "最大尝试次数" @@ -1294,11 +1293,11 @@ msgstr "新版本发布" msgid "Next" msgstr "下一步" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Nginx 访问日志路径" @@ -1306,11 +1305,15 @@ msgstr "Nginx 访问日志路径" msgid "Nginx Configuration Parse Error" msgstr "Nginx 配置解析错误" +#: src/views/preference/NginxSettings.vue:15 +msgid "Nginx Configurations Directory" +msgstr "Nginx 配置目录" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "控制 Nginx" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Nginx 错误日志路径" @@ -1322,10 +1325,26 @@ msgstr "Nginx 未启动" msgid "Nginx Log" msgstr "Nginx 日志" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "Nginx 日志目录白名单" + +#: src/views/preference/NginxSettings.vue:27 +msgid "Nginx PID Path" +msgstr "Nginx PID 路径" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "Nginx 重载命令" + #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" msgstr "Nginx 重载成功" +#: src/views/preference/NginxSettings.vue:33 +msgid "Nginx Restart Command" +msgstr "Nginx 重启命令" + #: src/components/NginxControl/NginxControl.vue:42 msgid "Nginx restarted successfully" msgstr "Nginx 重启成功" @@ -1336,15 +1355,19 @@ msgstr "Nginx 重启成功" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "取消" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +msgid "Node name" +msgstr "节点名称" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "节点密钥" @@ -1432,11 +1455,11 @@ msgstr "一旦验证完成,这些记录将被删除。" msgid "Online" msgstr "在线" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "或" @@ -1481,7 +1504,7 @@ msgstr "" "Passkey 是一种网络认证凭据,可通过指纹、面部识别、设备密码或 PIN 码验证身份。" "它们可用作密码替代品或二步验证方法。" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "密码" @@ -1555,11 +1578,11 @@ msgstr "请输入名称,这将被用作新配置的文件名!" msgid "Please input your E-mail!" msgstr "请输入您的邮箱!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "请输入您的密码!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "请输入您的用户名!" @@ -1583,7 +1606,7 @@ msgstr "请至少选择一个节点!" msgid "Pre-release" msgstr "预发布" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "偏好设置" @@ -1642,7 +1665,7 @@ msgstr "恢复代码" msgid "Recovery Code:" msgstr "恢复代码:" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "递归域名服务器" @@ -1705,11 +1728,11 @@ msgstr "重载中" msgid "Reloading nginx" msgstr "正在重载 Nginx" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "删除" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 msgid "Remove successfully" msgstr "移除成功" @@ -1792,7 +1815,19 @@ msgstr "重启" msgid "Restarting" msgstr "重启中" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "依赖方显示名称" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "依赖方的源" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "依赖方 ID" + +#: src/views/preference/BasicSettings.vue:17 msgid "Run Mode" msgstr "运行模式" @@ -1804,7 +1839,7 @@ msgstr "运行中" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1823,7 +1858,7 @@ msgstr "保存错误 %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 msgid "Save successfully" msgstr "保存成功" @@ -1867,13 +1902,13 @@ msgstr "上传" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1883,10 +1918,6 @@ msgstr "服务器错误" msgid "Server Info" msgstr "服务器信息" -#: src/views/preference/BasicSettings.vue:117 -msgid "Server Name" -msgstr "服务器名称" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "未在指令集合中找到 server_name" @@ -1895,7 +1926,7 @@ msgstr "未在指令集合中找到 server_name" msgid "server_name parameter is required" msgstr "必须为 server_name 指令指明参数" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -1917,7 +1948,7 @@ msgstr "使用 HTTP01 challenge provider" msgid "Show" msgstr "显示" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "使用 Passkey 登录" @@ -1949,7 +1980,7 @@ msgstr "SSL证书密钥路径" msgid "SSL Certificate Path" msgstr "SSL证书路径" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 msgid "SSO Login" msgstr "SSO 登录" @@ -2068,7 +2099,7 @@ msgstr "目标" msgid "Terminal" msgstr "终端" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "终端启动命令" @@ -2099,6 +2130,12 @@ msgid "" "dashes, and dots." msgstr "模型只能包含字母、Unicode、数字、连词符、破折号和点。" +#: src/views/preference/BasicSettings.vue:45 +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "节点名称只能包含字母、统一码、数字、连字符、破折号和点。" + #: src/views/certificate/CertificateEditor.vue:173 msgid "The path exists, but the file is not a certificate" msgstr "路径存在,但文件不是证书" @@ -2121,20 +2158,14 @@ msgstr "" "远程 Nginx UI 版本与本地 Nginx UI版本不兼容。为避免意料之外的错误,请升级远" "程 Nginx UI,使其与本地版本一致。" -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "服务器名称只能包含字母、Unicode、数字、连词符、破折号和点。" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 msgid "" "The server_name in the current configuration must be the domain name you " "need to get the certificate, supportmultiple domains." msgstr "当前配置中的 server_name 必须是获取证书所需的域名,支持多个域名。" -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "URL无效" @@ -2170,7 +2201,11 @@ msgid "" "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "将 %{nodeNames} 上的 Nginx UI 升级或重新安装到 %{version} 版本。" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "限流" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2218,7 +2253,7 @@ msgstr "" msgid "Token is not valid" msgstr "Token 无效" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "登录失败次数过多,请稍后再试" @@ -2236,7 +2271,7 @@ msgstr "TOTP 是一种使用基于时间的一次性密码算法的双因素身 msgid "Trash" msgstr "回收站" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "需要两步验证" @@ -2306,11 +2341,11 @@ msgstr "使用恢复代码" msgid "User" msgstr "用户" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "用户被禁止" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "用户名" @@ -2365,6 +2400,10 @@ msgid "" msgstr "" "我们将从这个文件中删除HTTPChallenge的配置,并重新加载Nginx。你确定要继续吗?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "Webauthn" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2387,8 +2426,8 @@ msgstr "正在将证书私钥写入磁盘" msgid "Writing certificate to disk" msgstr "正在将证书写入磁盘" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2412,6 +2451,17 @@ msgstr "您尚未配置 Webauthn 的设置,因此无法添加 Passkey。" msgid "Your passkeys" msgstr "你的 Passkeys" +#~ msgid "File not found" +#~ msgstr "文件未找到" + +#~ msgid "Server Name" +#~ msgstr "服务器名称" + +#~ msgid "" +#~ "The server name should only contain letters, unicode, numbers, hyphens, " +#~ "dashes, and dots." +#~ msgstr "服务器名称只能包含字母、Unicode、数字、连词符、破折号和点。" + #~ msgid "Enable 2FA" #~ msgstr "启用二步验证" @@ -2422,9 +2472,6 @@ msgstr "你的 Passkeys" #~ msgid "Rename " #~ msgstr "重命名" -#~ msgid "Auto Cert" -#~ msgstr "自动更新" - #~ msgid "Certificate has expired" #~ msgstr "此证书已过期" diff --git a/app/src/language/zh_TW/app.po b/app/src/language/zh_TW/app.po index a1575888..79aa79ae 100644 --- a/app/src/language/zh_TW/app.po +++ b/app/src/language/zh_TW/app.po @@ -21,7 +21,7 @@ msgstr "" msgid "2FA" msgstr "多重要素驗證" -#: src/views/preference/AuthSettings.vue:58 +#: src/views/preference/AuthSettings.vue:57 msgid "2FA Settings" msgstr "多重要素驗證設定" @@ -44,14 +44,14 @@ msgstr "ACME 用戶" #: src/views/config/configColumns.ts:38 #: src/views/environment/envColumns.tsx:131 #: src/views/notification/notificationColumns.tsx:54 -#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54 +#: src/views/preference/AuthSettings.vue:26 src/views/site/SiteList.vue:54 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60 msgid "Action" msgstr "操作" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204 -#: src/views/preference/BasicSettings.vue:73 +#: src/views/preference/CertSettings.vue:42 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/site/ngx_conf/NgxServer.vue:162 #: src/views/site/ngx_conf/NgxUpstream.vue:152 @@ -122,7 +122,7 @@ msgstr "API Token" msgid "Arch" msgstr "架構" -#: src/views/preference/AuthSettings.vue:102 +#: src/views/preference/AuthSettings.vue:136 msgid "Are you sure to delete this banned IP immediately?" msgstr "您確定要刪除這個被禁用的 IP 嗎?" @@ -160,7 +160,7 @@ msgstr "您確定要恢復此項目嗎?" msgid "Are you sure you want to remove this directive?" msgstr "您確定要刪除這條指令嗎?" -#: src/views/preference/BasicSettings.vue:99 +#: src/views/preference/CertSettings.vue:68 msgid "Are you sure you want to remove this item?" msgstr "您確定要刪除此項目嗎?" @@ -176,11 +176,11 @@ msgstr "向 ChatGPT 尋求幫助" msgid "Assistant" msgstr "助理" -#: src/views/preference/AuthSettings.vue:18 +#: src/views/preference/AuthSettings.vue:17 msgid "Attempts" msgstr "嘗試次數" -#: src/views/preference/Preference.vue:122 +#: src/views/preference/Preference.vue:153 msgid "Auth" msgstr "身份驗證" @@ -188,7 +188,7 @@ msgstr "身份驗證" msgid "Authenticate with a passkey" msgstr "" -#: src/views/preference/AuthSettings.vue:63 +#: src/views/preference/AuthSettings.vue:62 msgid "Authentication Settings" msgstr "" @@ -224,15 +224,15 @@ msgstr "返回首頁" msgid "Back to list" msgstr "返回列表" -#: src/views/preference/AuthSettings.vue:76 +#: src/views/preference/AuthSettings.vue:103 msgid "Ban Threshold Minutes" msgstr "封禁閾值分鐘數" -#: src/views/preference/AuthSettings.vue:90 +#: src/views/preference/AuthSettings.vue:124 msgid "Banned IPs" msgstr "被禁止的 IP" -#: src/views/preference/AuthSettings.vue:21 +#: src/views/preference/AuthSettings.vue:20 msgid "Banned Until" msgstr "禁止至" @@ -241,7 +241,7 @@ msgid "Base information" msgstr "基本資訊" #: src/views/config/ConfigEditor.vue:241 -#: src/views/preference/Preference.vue:116 +#: src/views/preference/Preference.vue:147 #: src/views/site/components/RightSettings.vue:75 #: src/views/stream/components/RightSettings.vue:74 msgid "Basic" @@ -268,7 +268,7 @@ msgstr "構建基於" msgid "CA Dir" msgstr "CA Dir" -#: src/views/preference/BasicSettings.vue:47 +#: src/views/preference/CertSettings.vue:16 msgid "CADir" msgstr "CADir" @@ -292,7 +292,12 @@ msgstr "" msgid "Cancel" msgstr "取消" -#: src/views/preference/BasicSettings.vue:55 +#: src/views/preference/Preference.vue:159 +#, fuzzy +msgid "Cert" +msgstr "自動憑證" + +#: src/views/preference/CertSettings.vue:24 msgid "Certificate Renewal Interval" msgstr "憑證更新間隔" @@ -474,9 +479,10 @@ msgstr "目前版本" msgid "Custom" msgstr "自訂" -#: src/views/preference/BasicSettings.vue:121 +#: src/views/preference/BasicSettings.vue:46 +#, fuzzy msgid "" -"Customize the name of local server to be displayed in the environment " +"Customize the name of local node to be displayed in the environment " "indicator." msgstr "自訂本地伺服器名稱以顯示在環境指示器中。" @@ -489,7 +495,7 @@ msgstr "儀表板" msgid "Database (Optional, default: database)" msgstr "資料庫 (可選,預設: database)" -#: src/views/preference/BasicSettings.vue:60 +#: src/views/preference/CertSettings.vue:29 msgid "Days" msgstr "天" @@ -866,11 +872,6 @@ msgstr "檔案" msgid "File exists" msgstr "檔案已存在" -#: src/views/preference/NginxSettings.vue:14 -#: src/views/preference/NginxSettings.vue:23 -msgid "File not found" -msgstr "找不到檔案" - #: src/views/other/Error.vue:9 msgid "File Not Found" msgstr "找不到檔案" @@ -889,7 +890,7 @@ msgid "" "process." msgstr "" -#: src/views/preference/BasicSettings.vue:43 +#: src/views/preference/BasicSettings.vue:38 msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "中國使用者:https://mirror.ghproxy.com/" @@ -925,7 +926,7 @@ msgstr "取得發布資訊錯誤" msgid "Getting the certificate, please wait..." msgstr "正在取得憑證,請稍候..." -#: src/views/preference/BasicSettings.vue:35 +#: src/views/preference/BasicSettings.vue:30 msgid "Github Proxy" msgstr "Github 代理" @@ -937,15 +938,15 @@ msgstr "隱藏" msgid "Home" msgstr "首頁" -#: src/views/preference/BasicSettings.vue:31 +#: src/views/preference/CertSettings.vue:12 msgid "HTTP Challenge Port" msgstr "HTTP 挑戰埠" -#: src/views/preference/BasicSettings.vue:13 +#: src/views/preference/BasicSettings.vue:11 msgid "HTTP Host" msgstr "HTTP 監聽主機" -#: src/views/preference/BasicSettings.vue:16 +#: src/views/preference/BasicSettings.vue:14 msgid "HTTP Port" msgstr "HTTP 監聽埠" @@ -957,7 +958,7 @@ msgstr "HTTP01" msgid "If left blank, the default CA Dir will be used." msgstr "如果留空,將使用默認的 CA Dir。" -#: src/views/preference/AuthSettings.vue:68 +#: src/views/preference/AuthSettings.vue:119 msgid "" "If the number of login failed attempts from a ip reach the max attempts in " "ban threshold minutes, the ip will be banned for a period of time." @@ -989,7 +990,7 @@ msgstr "導入" msgid "Import Certificate" msgstr "導入憑證" -#: src/views/other/Login.vue:79 +#: src/views/other/Login.vue:77 msgid "Incorrect username or password" msgstr "使用者名稱或密碼不正確" @@ -1030,7 +1031,7 @@ msgstr "間隔" msgid "Invalid" msgstr "無效" -#: src/views/other/Login.vue:89 +#: src/views/other/Login.vue:87 msgid "Invalid 2FA or recovery code" msgstr "無效的多重因素驗證或恢復碼" @@ -1043,11 +1044,11 @@ msgstr "無效的檔案名" msgid "Invalid folder name" msgstr "無效的資料夾名稱" -#: src/components/TwoFA/use2FAModal.ts:65 +#: src/components/TwoFA/use2FAModal.ts:60 msgid "Invalid passcode or recovery code" msgstr "無效的密碼或恢復碼" -#: src/views/preference/AuthSettings.vue:15 +#: src/views/preference/AuthSettings.vue:14 msgid "IP" msgstr "IP" @@ -1067,7 +1068,7 @@ msgstr "成功頒發憑證" msgid "Issuer: %{issuer}" msgstr "發行者:%{issuer}" -#: src/views/preference/BasicSettings.vue:22 +#: src/views/preference/BasicSettings.vue:20 msgid "Jwt Secret" msgstr "Jwt Secret" @@ -1149,11 +1150,11 @@ msgstr "Locations" msgid "Log" msgstr "日誌" -#: src/routes/index.ts:305 src/views/other/Login.vue:247 +#: src/routes/index.ts:305 src/views/other/Login.vue:245 msgid "Login" msgstr "登入" -#: src/views/other/Login.vue:133 src/views/other/Login.vue:66 +#: src/views/other/Login.vue:131 src/views/other/Login.vue:64 msgid "Login successful" msgstr "登入成功" @@ -1161,7 +1162,7 @@ msgstr "登入成功" msgid "Logout successful" msgstr "登出成功" -#: src/views/preference/Preference.vue:140 +#: src/views/preference/Preference.vue:177 msgid "Logrotate" msgstr "Logrotate" @@ -1207,7 +1208,7 @@ msgstr "管理使用者" msgid "Managed Certificate" msgstr "受管理的憑證" -#: src/views/preference/AuthSettings.vue:82 +#: src/views/preference/AuthSettings.vue:109 msgid "Max Attempts" msgstr "最大嘗試次數" @@ -1301,11 +1302,11 @@ msgstr "新版本發布" msgid "Next" msgstr "下一步" -#: src/views/preference/Preference.vue:128 +#: src/views/preference/Preference.vue:165 msgid "Nginx" msgstr "Nginx" -#: src/views/preference/NginxSettings.vue:11 +#: src/views/preference/NginxSettings.vue:9 msgid "Nginx Access Log Path" msgstr "Nginx 存取日誌路徑" @@ -1313,11 +1314,16 @@ msgstr "Nginx 存取日誌路徑" msgid "Nginx Configuration Parse Error" msgstr "Nginx 設定解析錯誤" +#: src/views/preference/NginxSettings.vue:15 +#, fuzzy +msgid "Nginx Configurations Directory" +msgstr "Nginx 設定解析錯誤" + #: src/components/NginxControl/NginxControl.vue:68 msgid "Nginx Control" msgstr "Nginx 控制元件" -#: src/views/preference/NginxSettings.vue:20 +#: src/views/preference/NginxSettings.vue:12 msgid "Nginx Error Log Path" msgstr "Nginx 錯誤日誌路徑" @@ -1329,10 +1335,28 @@ msgstr "" msgid "Nginx Log" msgstr "Nginx 日誌" +#: src/views/preference/NginxSettings.vue:18 +msgid "Nginx Log Directory Whitelist" +msgstr "" + +#: src/views/preference/NginxSettings.vue:27 +#, fuzzy +msgid "Nginx PID Path" +msgstr "Nginx 錯誤日誌路徑" + +#: src/views/preference/NginxSettings.vue:30 +msgid "Nginx Reload Command" +msgstr "" + #: src/components/NginxControl/NginxControl.vue:26 msgid "Nginx reloaded successfully" msgstr "Nginx 重新載入成功" +#: src/views/preference/NginxSettings.vue:33 +#, fuzzy +msgid "Nginx Restart Command" +msgstr "終端機啟動指令" + #: src/components/NginxControl/NginxControl.vue:42 msgid "Nginx restarted successfully" msgstr "Nginx 重啟成功" @@ -1343,15 +1367,20 @@ msgstr "Nginx 重啟成功" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:561 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:575 #: src/views/notification/Notification.vue:38 -#: src/views/preference/AuthSettings.vue:104 -#: src/views/preference/BasicSettings.vue:101 +#: src/views/preference/AuthSettings.vue:138 +#: src/views/preference/CertSettings.vue:70 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/site/ngx_conf/LocationEditor.vue:90 #: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165 msgid "No" msgstr "取消" -#: src/views/preference/BasicSettings.vue:25 +#: src/views/preference/BasicSettings.vue:42 +#, fuzzy +msgid "Node name" +msgstr "新名稱" + +#: src/views/preference/BasicSettings.vue:23 msgid "Node Secret" msgstr "Node Secret" @@ -1439,11 +1468,11 @@ msgstr "驗證完成後,記錄將被刪除。" msgid "Online" msgstr "線上" -#: src/views/preference/Preference.vue:134 +#: src/views/preference/Preference.vue:171 msgid "OpenAI" msgstr "OpenAI" -#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256 +#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:254 msgid "Or" msgstr "" @@ -1486,7 +1515,7 @@ msgid "" "password replacement or as a 2FA method." msgstr "" -#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18 +#: src/views/other/Login.vue:206 src/views/user/userColumns.tsx:18 msgid "Password" msgstr "密碼" @@ -1561,11 +1590,11 @@ msgstr "請輸入名稱,這將作為新設定的檔名!" msgid "Please input your E-mail!" msgstr "請輸入您的電子郵件!" -#: src/views/other/Install.vue:44 src/views/other/Login.vue:47 +#: src/views/other/Install.vue:44 src/views/other/Login.vue:46 msgid "Please input your password!" msgstr "請輸入您的密碼!" -#: src/views/other/Install.vue:38 src/views/other/Login.vue:41 +#: src/views/other/Install.vue:38 src/views/other/Login.vue:40 msgid "Please input your username!" msgstr "請輸入您的使用者名稱!" @@ -1590,7 +1619,7 @@ msgstr "請至少選擇一個節點!" msgid "Pre-release" msgstr "預先發布" -#: src/routes/index.ts:260 src/views/preference/Preference.vue:111 +#: src/routes/index.ts:260 src/views/preference/Preference.vue:142 msgid "Preference" msgstr "偏好設定" @@ -1650,7 +1679,7 @@ msgstr "恢復碼" msgid "Recovery Code:" msgstr "恢復碼:" -#: src/views/preference/BasicSettings.vue:68 +#: src/views/preference/CertSettings.vue:37 msgid "Recursive Nameservers" msgstr "遞迴名稱伺服器" @@ -1715,11 +1744,11 @@ msgstr "重新載入中" msgid "Reloading nginx" msgstr "正在重新載入 Nginx" -#: src/views/preference/AuthSettings.vue:109 +#: src/views/preference/AuthSettings.vue:143 msgid "Remove" msgstr "移除" -#: src/views/preference/AuthSettings.vue:48 +#: src/views/preference/AuthSettings.vue:47 #: src/views/preference/components/Passkey.vue:50 msgid "Remove successfully" msgstr "移除成功" @@ -1802,7 +1831,19 @@ msgstr "重新啟動" msgid "Restarting" msgstr "正在重新啟動" -#: src/views/preference/BasicSettings.vue:19 +#: src/views/preference/AuthSettings.vue:81 +msgid "RP Display Name" +msgstr "" + +#: src/views/preference/AuthSettings.vue:87 +msgid "RP Origins" +msgstr "" + +#: src/views/preference/AuthSettings.vue:75 +msgid "RPID" +msgstr "" + +#: src/views/preference/BasicSettings.vue:17 msgid "Run Mode" msgstr "執行模式" @@ -1814,7 +1855,7 @@ msgstr "執行中" #: src/views/certificate/CertificateEditor.vue:256 #: src/views/config/ConfigEditor.vue:222 #: src/views/preference/components/Passkey.vue:136 -#: src/views/preference/Preference.vue:151 +#: src/views/preference/Preference.vue:188 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252 msgid "Save" @@ -1833,7 +1874,7 @@ msgstr "儲存錯誤 %{msg}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122 #: src/views/certificate/CertificateEditor.vue:46 -#: src/views/preference/Preference.vue:79 +#: src/views/preference/Preference.vue:110 msgid "Save successfully" msgstr "儲存成功" @@ -1877,13 +1918,13 @@ msgstr "傳送" #: src/views/config/ConfigEditor.vue:108 #: src/views/environment/BatchUpgrader.vue:59 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68 -#: src/views/preference/AuthSettings.vue:50 +#: src/views/preference/AuthSettings.vue:49 #: src/views/preference/components/Passkey.vue:26 #: src/views/preference/components/Passkey.vue:43 #: src/views/preference/components/Passkey.vue:56 #: src/views/preference/components/TOTP.vue:45 #: src/views/preference/components/TOTP.vue:58 -#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88 +#: src/views/preference/Preference.vue:114 src/views/site/SiteList.vue:88 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81 #: src/views/system/Upgrade.vue:42 msgid "Server error" @@ -1893,10 +1934,6 @@ msgstr "伺服器錯誤" msgid "Server Info" msgstr "伺服器資訊" -#: src/views/preference/BasicSettings.vue:117 -msgid "Server Name" -msgstr "伺服器名稱" - #: src/views/site/cert/components/ObtainCert.vue:102 msgid "server_name not found in directives" msgstr "在指令中未找到 server_name" @@ -1905,7 +1942,7 @@ msgstr "在指令中未找到 server_name" msgid "server_name parameter is required" msgstr "必須提供 server_name 參數" -#: src/views/preference/BasicSettings.vue:64 +#: src/views/preference/CertSettings.vue:33 msgid "" "Set the recursive nameservers to override the systems nameservers for the " "step of DNS challenge." @@ -1927,7 +1964,7 @@ msgstr "使用 HTTP01 挑戰提供者" msgid "Show" msgstr "顯示" -#: src/views/other/Login.vue:265 +#: src/views/other/Login.vue:263 msgid "Sign in with a passkey" msgstr "" @@ -1959,7 +1996,7 @@ msgstr "SSL 憑證金鑰路徑" msgid "SSL Certificate Path" msgstr "SSL 憑證路徑" -#: src/views/other/Login.vue:223 +#: src/views/other/Login.vue:221 msgid "SSO Login" msgstr "SSO 登錄" @@ -2078,7 +2115,7 @@ msgstr "目標" msgid "Terminal" msgstr "終端機" -#: src/views/preference/BasicSettings.vue:28 +#: src/views/preference/BasicSettings.vue:26 msgid "Terminal Start Command" msgstr "終端機啟動指令" @@ -2109,6 +2146,13 @@ msgid "" "dashes, and dots." msgstr "模型名稱應僅包含字母、Unicode、數字、連字號、破折號和點。" +#: src/views/preference/BasicSettings.vue:45 +#, fuzzy +msgid "" +"The node name should only contain letters, unicode, numbers, hyphens, " +"dashes, and dots." +msgstr "模型名稱應僅包含字母、Unicode、數字、連字號、破折號和點。" + #: src/views/certificate/CertificateEditor.vue:173 msgid "The path exists, but the file is not a certificate" msgstr "路徑存在,但檔案不是憑證" @@ -2131,20 +2175,14 @@ msgstr "" "遠端 Nginx UI 版本與本地 Nginx UI 版本不兼容。為避免潛在錯誤,請升級遠端 " "Nginx UI 以匹配本地版本。" -#: src/views/preference/BasicSettings.vue:120 -msgid "" -"The server name should only contain letters, unicode, numbers, hyphens, " -"dashes, and dots." -msgstr "伺服器名稱應僅包含字母、Unicode、數字、連字符、破折號和點。" - #: src/views/site/cert/components/AutoCertStepOne.vue:45 msgid "" "The server_name in the current configuration must be the domain name you " "need to get the certificate, supportmultiple domains." msgstr "當前配置中的 server_name 必須是您需要獲取憑證的網域,支持多個網域。" -#: src/views/preference/BasicSettings.vue:38 -#: src/views/preference/BasicSettings.vue:50 +#: src/views/preference/BasicSettings.vue:33 +#: src/views/preference/CertSettings.vue:19 msgid "The url is invalid" msgstr "網址無效" @@ -2180,7 +2218,11 @@ msgid "" "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgstr "這將在 %{nodeNames} 上升級或重新安裝 Nginx UI 到 %{version}。" -#: src/views/preference/AuthSettings.vue:67 +#: src/views/preference/AuthSettings.vue:98 +msgid "Throttle" +msgstr "" + +#: src/views/preference/AuthSettings.vue:118 #: src/views/preference/components/AddPasskey.vue:71 #: src/views/preference/LogrotateSettings.vue:11 msgid "Tips" @@ -2224,7 +2266,7 @@ msgstr "" msgid "Token is not valid" msgstr "令牌無效" -#: src/views/other/Login.vue:82 +#: src/views/other/Login.vue:80 msgid "Too many login failed attempts, please try again later" msgstr "登錄失敗次數過多,請稍後再試" @@ -2242,7 +2284,7 @@ msgstr "TOTP 是一種使用基於時間的一次性密碼算法的多重因素 msgid "Trash" msgstr "垃圾桶" -#: src/components/TwoFA/use2FAModal.ts:71 +#: src/components/TwoFA/use2FAModal.ts:66 msgid "Two-factor authentication required" msgstr "需要多重因素驗證" @@ -2313,11 +2355,11 @@ msgstr "使用恢復碼" msgid "User" msgstr "使用者名稱" -#: src/views/other/Login.vue:85 +#: src/views/other/Login.vue:83 msgid "User is banned" msgstr "用戶被禁止" -#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9 +#: src/views/other/Login.vue:196 src/views/user/userColumns.tsx:9 msgid "Username" msgstr "使用者名稱" @@ -2373,6 +2415,10 @@ msgstr "" "我們將從該檔案中刪除 HTTPChallenge 設定並重新載入 Nginx 設定檔案。你確定你要" "繼續嗎?" +#: src/views/preference/AuthSettings.vue:71 +msgid "Webauthn" +msgstr "" + #: src/views/certificate/ACMEUser.vue:78 msgid "" "When Enabled, Nginx UI will automatically re-register users upon startup. " @@ -2393,8 +2439,8 @@ msgstr "將憑證私鑰寫入磁碟" msgid "Writing certificate to disk" msgstr "將憑證寫入磁碟" -#: src/views/preference/AuthSettings.vue:103 -#: src/views/preference/BasicSettings.vue:100 +#: src/views/preference/AuthSettings.vue:137 +#: src/views/preference/CertSettings.vue:69 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/site/ngx_conf/LocationEditor.vue:89 msgid "Yes" @@ -2418,6 +2464,17 @@ msgstr "" msgid "Your passkeys" msgstr "" +#~ msgid "File not found" +#~ msgstr "找不到檔案" + +#~ msgid "Server Name" +#~ msgstr "伺服器名稱" + +#~ msgid "" +#~ "The server name should only contain letters, unicode, numbers, hyphens, " +#~ "dashes, and dots." +#~ msgstr "伺服器名稱應僅包含字母、Unicode、數字、連字符、破折號和點。" + #~ msgid "Enable 2FA" #~ msgstr "啟用多因素身份驗證" @@ -2425,9 +2482,6 @@ msgstr "" #~ msgid "Rename " #~ msgstr "使用者名稱" -#~ msgid "Auto Cert" -#~ msgstr "自動憑證" - #~ msgid "Certificate has expired" #~ msgstr "此憑證已過期" diff --git a/app/src/lib/http/index.ts b/app/src/lib/http/index.ts index 3543319c..fb3de769 100644 --- a/app/src/lib/http/index.ts +++ b/app/src/lib/http/index.ts @@ -1,6 +1,5 @@ import type { AxiosRequestConfig } from 'axios' import axios from 'axios' -import { useCookies } from '@vueuse/integrations/useCookies' import { storeToRefs } from 'pinia' import NProgress from 'nprogress' import { useSettingsStore, useUserStore } from '@/pinia' @@ -62,10 +61,9 @@ instance.interceptors.response.use( NProgress.done() const otpModal = use2FAModal() - const cookies = useCookies(['nginx-ui-2fa']) switch (error.response.status) { case 401: - cookies.remove('secure_session_id') + secureSessionId.value = '' await otpModal.open() break case 403: diff --git a/app/src/pinia/moudule/user.ts b/app/src/pinia/moudule/user.ts index c7c77acd..50b03807 100644 --- a/app/src/pinia/moudule/user.ts +++ b/app/src/pinia/moudule/user.ts @@ -1,34 +1,64 @@ import { defineStore } from 'pinia' +import { useCookies } from '@vueuse/integrations/useCookies' +import type { CookieChangeOptions } from 'universal-cookie' -export const useUserStore = defineStore('user', { - state: () => ({ - token: '', - unreadCount: 0, - secureSessionId: '', - passkeyRawId: '', - }), - getters: { - isLogin(state): boolean { - return !!state.token - }, - passkeyLoginAvailable(state): boolean { - return !!state.passkeyRawId - }, - }, - actions: { - passkeyLogin(rawId: string, token: string) { - this.passkeyRawId = rawId - this.login(token) - }, - login(token: string) { - this.token = token - }, - logout() { - this.token = '' - this.passkeyRawId = '' - this.secureSessionId = '' - this.unreadCount = 0 - }, - }, +export const useUserStore = defineStore('user', () => { + const cookies = useCookies(['nginx-ui']) + + const token = ref('') + + watch(token, v => { + cookies.set('token', v, { maxAge: 86400 }) + }) + + const secureSessionId = ref('') + + watch(secureSessionId, v => { + cookies.set('secure_session_id', v, { maxAge: 60 * 3 }) + }) + + function handleCookieChange({ name, value }: CookieChangeOptions) { + if (name === 'token') + token.value = value + else if (name === 'secure_session_id') + secureSessionId.value = value + } + + cookies.addChangeListener(handleCookieChange) + + const passkeyRawId = ref('') + + const unreadCount = ref(0) + const isLogin = computed(() => !!token.value) + const passkeyLoginAvailable = computed(() => !!passkeyRawId.value) + + function passkeyLogin(rawId: string, tokenValue: string) { + passkeyRawId.value = rawId + login(tokenValue) + } + + function login(tokenValue: string) { + token.value = tokenValue + } + + function logout() { + token.value = '' + passkeyRawId.value = '' + secureSessionId.value = '' + unreadCount.value = 0 + } + + return { + token, + unreadCount, + secureSessionId, + passkeyRawId, + isLogin, + passkeyLoginAvailable, + passkeyLogin, + login, + logout, + } +}, { persist: true, }) diff --git a/app/src/views/certificate/ACMEUser.vue b/app/src/views/certificate/ACMEUser.vue index 7c88efcc..3d7a38ca 100644 --- a/app/src/views/certificate/ACMEUser.vue +++ b/app/src/views/certificate/ACMEUser.vue @@ -12,7 +12,7 @@ const columns: Column[] = [ { title: () => $gettext('Name'), dataIndex: 'name', - sortable: true, + sorter: true, pithy: true, edit: { type: input, @@ -23,7 +23,7 @@ const columns: Column[] = [ }, { title: () => $gettext('Email'), dataIndex: 'email', - sortable: true, + sorter: true, pithy: true, edit: { type: input, @@ -34,7 +34,7 @@ const columns: Column[] = [ }, { title: () => $gettext('CA Dir'), dataIndex: 'ca_dir', - sortable: true, + sorter: true, pithy: true, edit: { type: input, @@ -66,7 +66,7 @@ const columns: Column[] = [ return {$gettext('Invalid')} }, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Register On Startup'), @@ -82,7 +82,7 @@ const columns: Column[] = [ title: () => $gettext('Updated at'), dataIndex: 'updated_at', customRender: datetime, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Action'), diff --git a/app/src/views/certificate/CertificateList/certColumns.tsx b/app/src/views/certificate/CertificateList/certColumns.tsx index 8211c5f5..289e10b4 100644 --- a/app/src/views/certificate/CertificateList/certColumns.tsx +++ b/app/src/views/certificate/CertificateList/certColumns.tsx @@ -9,7 +9,7 @@ import { PrivateKeyTypeMask } from '@/constants' const columns: Column[] = [{ title: () => $gettext('Name'), dataIndex: 'name', - sortable: true, + sorter: true, pithy: true, customRender: (args: customRender) => { const { text, record } = args @@ -48,13 +48,13 @@ const columns: Column[] = [{ return h('div', template) }, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Key Type'), dataIndex: 'key_type', customRender: mask(PrivateKeyTypeMask), - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Status'), @@ -83,7 +83,7 @@ const columns: Column[] = [{ title: () => $gettext('Not After'), dataIndex: ['certificate_info', 'not_after'], customRender: datetime, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Action'), diff --git a/app/src/views/certificate/DNSCredential.vue b/app/src/views/certificate/DNSCredential.vue index 10c7d41d..d9d080cf 100644 --- a/app/src/views/certificate/DNSCredential.vue +++ b/app/src/views/certificate/DNSCredential.vue @@ -10,7 +10,7 @@ import type { Column } from '@/components/StdDesign/types' const columns: Column[] = [{ title: () => $gettext('Name'), dataIndex: 'name', - sortable: true, + sorter: true, pithy: true, edit: { type: input, @@ -21,13 +21,13 @@ const columns: Column[] = [{ customRender: (args: customRender) => { return args.record.provider }, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Updated at'), dataIndex: 'updated_at', customRender: datetime, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Action'), diff --git a/app/src/views/environment/envColumns.tsx b/app/src/views/environment/envColumns.tsx index da594971..58f7af57 100644 --- a/app/src/views/environment/envColumns.tsx +++ b/app/src/views/environment/envColumns.tsx @@ -8,7 +8,7 @@ import { datetime } from '@/components/StdDesign/StdDataDisplay/StdTableTransfor const columns: Column[] = [{ title: () => $gettext('Name'), dataIndex: 'name', - sortable: true, + sorter: true, pithy: true, edit: { type: input, @@ -18,7 +18,7 @@ const columns: Column[] = [{ { title: () => $gettext('URL'), dataIndex: 'url', - sortable: true, + sorter: true, pithy: true, edit: { type: input, @@ -35,7 +35,7 @@ const columns: Column[] = [{ { title: () => 'NodeSecret', dataIndex: 'token', - sortable: true, + sorter: true, hiddenInTable: true, edit: { type: input, @@ -97,7 +97,7 @@ const columns: Column[] = [{ return h('div', template) }, - sortable: true, + sorter: true, pithy: true, }, { @@ -117,14 +117,14 @@ const columns: Column[] = [{ edit: { type: switcher, }, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Updated at'), dataIndex: 'updated_at', customRender: datetime, - sortable: true, + sorter: true, pithy: true, }, { diff --git a/app/src/views/notification/notificationColumns.tsx b/app/src/views/notification/notificationColumns.tsx index 3be96594..5a997994 100644 --- a/app/src/views/notification/notificationColumns.tsx +++ b/app/src/views/notification/notificationColumns.tsx @@ -30,7 +30,7 @@ const columns: Column[] = [{ } }, - sortable: true, + sorter: true, pithy: true, }, { title: () => $gettext('Title'), @@ -47,7 +47,7 @@ const columns: Column[] = [{ }, { title: () => $gettext('Created at'), dataIndex: 'created_at', - sortable: true, + sorter: true, customRender: datetime, pithy: true, }, { diff --git a/app/src/views/other/Login.vue b/app/src/views/other/Login.vue index 458beefb..1f6782b5 100644 --- a/app/src/views/other/Login.vue +++ b/app/src/views/other/Login.vue @@ -1,7 +1,6 @@ + + + + diff --git a/app/src/views/preference/LogrotateSettings.vue b/app/src/views/preference/LogrotateSettings.vue index 03a188ba..ac4dbd93 100644 --- a/app/src/views/preference/LogrotateSettings.vue +++ b/app/src/views/preference/LogrotateSettings.vue @@ -1,5 +1,5 @@ diff --git a/app/src/views/preference/NginxSettings.vue b/app/src/views/preference/NginxSettings.vue index 513eb9a5..b504d3f0 100644 --- a/app/src/views/preference/NginxSettings.vue +++ b/app/src/views/preference/NginxSettings.vue @@ -1,30 +1,38 @@ diff --git a/app/src/views/preference/OpenAISettings.vue b/app/src/views/preference/OpenAISettings.vue index 18fcee47..5f1bc50b 100644 --- a/app/src/views/preference/OpenAISettings.vue +++ b/app/src/views/preference/OpenAISettings.vue @@ -1,5 +1,5 @@