Compare commits

...

9 Commits

Author SHA1 Message Date
naiba
7c8ac7ae5a refactor: improve performance
Some checks are pending
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
Contributors / contributors (push) Waiting to run
Sync / sync-to-jihulab (push) Waiting to run
Run Tests / tests (macos) (push) Waiting to run
Run Tests / tests (ubuntu) (push) Waiting to run
Run Tests / tests (windows) (push) Waiting to run
2024-12-22 17:23:55 +08:00
naiba
a550709c95 fix: install host 2024-12-22 16:25:00 +08:00
naiba
dc957a3b81 Merge branch 'master' of github.com:nezhahq/nezha 2024-12-22 16:17:19 +08:00
naiba
1395438dee fix: install host 2024-12-22 16:17:13 +08:00
github-actions[bot]
d05d0091c5 update contributors[no ci] 2024-12-22 15:52:07 +08:00
naiba
1a21abddcf fix: create user form 2024-12-22 15:51:37 +08:00
Weblate (bot)
75101d860f
Translated using Weblate (Chinese (Traditional Han script)) (#901)
Currently translated at 100.0% (49 of 49 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (49 of 49 strings)

Translated using Weblate (English (United States))

Currently translated at 100.0% (49 of 49 strings)

Update translation files

Updated by "Update PO files to match POT (msgmerge)" add-on in Weblate.



Translate-URL: https://hosted.weblate.org/projects/nezha/nezha-dashboard/
Translate-URL: https://hosted.weblate.org/projects/nezha/nezha-dashboard/en_US/
Translate-URL: https://hosted.weblate.org/projects/nezha/nezha-dashboard/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/nezha/nezha-dashboard/zh_Hant/
Translation: Nezha/Nezha Dashboard

Co-authored-by: UUBulb <uub@kuzu.uk>
2024-12-22 13:03:27 +08:00
UUBulb
d4c13a7c90
chore: update translation template (#900) 2024-12-22 12:24:39 +08:00
naiba
f10e048bec feat: enhance authorization check for settings access 2024-12-22 12:20:18 +08:00
16 changed files with 683 additions and 344 deletions

View File

@ -65,13 +65,13 @@ add your theme to [service/singleton/frontend-templates.yaml](service/singleton/
<a href="https://github.com/hhhkkk520" title="Kris"><img src="https://avatars.githubusercontent.com/u/52115472?v=4" width="50;" alt="Kris"/></a> <a href="https://github.com/hhhkkk520" title="Kris"><img src="https://avatars.githubusercontent.com/u/52115472?v=4" width="50;" alt="Kris"/></a>
<a href="https://github.com/1ridic" title="1ridic"><img src="https://avatars.githubusercontent.com/u/88495501?v=4" width="50;" alt="1ridic"/></a> <a href="https://github.com/1ridic" title="1ridic"><img src="https://avatars.githubusercontent.com/u/88495501?v=4" width="50;" alt="1ridic"/></a>
<a href="https://github.com/Mmx233" title="Mmx"><img src="https://avatars.githubusercontent.com/u/36563672?v=4" width="50;" alt="Mmx"/></a> <a href="https://github.com/Mmx233" title="Mmx"><img src="https://avatars.githubusercontent.com/u/36563672?v=4" width="50;" alt="Mmx"/></a>
<a href="https://github.com/weblate" title="Weblate (bot)"><img src="https://avatars.githubusercontent.com/u/1607653?v=4" width="50;" alt="Weblate (bot)"/></a>
<a href="https://github.com/rootmelo92118" title="rootmelo92118"><img src="https://avatars.githubusercontent.com/u/32770959?v=4" width="50;" alt="rootmelo92118"/></a> <a href="https://github.com/rootmelo92118" title="rootmelo92118"><img src="https://avatars.githubusercontent.com/u/32770959?v=4" width="50;" alt="rootmelo92118"/></a>
<a href="https://github.com/Moraxyc" title="Moraxyc"><img src="https://avatars.githubusercontent.com/u/69713071?v=4" width="50;" alt="Moraxyc"/></a> <a href="https://github.com/Moraxyc" title="Moraxyc"><img src="https://avatars.githubusercontent.com/u/69713071?v=4" width="50;" alt="Moraxyc"/></a>
<a href="https://github.com/zhucaidan" title="zhucaidan"><img src="https://avatars.githubusercontent.com/u/47970938?v=4" width="50;" alt="zhucaidan"/></a> <a href="https://github.com/zhucaidan" title="zhucaidan"><img src="https://avatars.githubusercontent.com/u/47970938?v=4" width="50;" alt="zhucaidan"/></a>
<a href="https://github.com/iilemon" title="Sean"><img src="https://avatars.githubusercontent.com/u/33201711?v=4" width="50;" alt="Sean"/></a> <a href="https://github.com/iilemon" title="Sean"><img src="https://avatars.githubusercontent.com/u/33201711?v=4" width="50;" alt="Sean"/></a>
<a href="https://github.com/fscarmen" title="fscarmen"><img src="https://avatars.githubusercontent.com/u/62703343?v=4" width="50;" alt="fscarmen"/></a> <a href="https://github.com/fscarmen" title="fscarmen"><img src="https://avatars.githubusercontent.com/u/62703343?v=4" width="50;" alt="fscarmen"/></a>
<a href="https://github.com/ch8o" title="no-name-now"><img src="https://avatars.githubusercontent.com/u/9103372?v=4" width="50;" alt="no-name-now"/></a> <a href="https://github.com/ch8o" title="no-name-now"><img src="https://avatars.githubusercontent.com/u/9103372?v=4" width="50;" alt="no-name-now"/></a>
<a href="https://github.com/weblate" title="Weblate (bot)"><img src="https://avatars.githubusercontent.com/u/1607653?v=4" width="50;" alt="Weblate (bot)"/></a>
<a href="https://github.com/HsukqiLee" title="HsukqiLee"><img src="https://avatars.githubusercontent.com/u/79034142?v=4" width="50;" alt="HsukqiLee"/></a> <a href="https://github.com/HsukqiLee" title="HsukqiLee"><img src="https://avatars.githubusercontent.com/u/79034142?v=4" width="50;" alt="HsukqiLee"/></a>
<a href="https://github.com/DarcJC" title="Darc Z."><img src="https://avatars.githubusercontent.com/u/53445798?v=4" width="50;" alt="Darc Z."/></a> <a href="https://github.com/DarcJC" title="Darc Z."><img src="https://avatars.githubusercontent.com/u/53445798?v=4" width="50;" alt="Darc Z."/></a>
<a href="https://github.com/Creling" title="Creling"><img src="https://avatars.githubusercontent.com/u/43109504?v=4" width="50;" alt="Creling"/></a> <a href="https://github.com/Creling" title="Creling"><img src="https://avatars.githubusercontent.com/u/43109504?v=4" width="50;" alt="Creling"/></a>

View File

@ -20,8 +20,12 @@ import (
// @Success 200 {object} model.CommonResponse[model.SettingResponse] // @Success 200 {object} model.CommonResponse[model.SettingResponse]
// @Router /setting [get] // @Router /setting [get]
func listConfig(c *gin.Context) (model.SettingResponse, error) { func listConfig(c *gin.Context) (model.SettingResponse, error) {
_, isMember := c.Get(model.CtxKeyAuthorizedUser) u, authorized := c.Get(model.CtxKeyAuthorizedUser)
authorized := isMember // TODO || isViewPasswordVerfied var isAdmin bool
if authorized {
user := u.(*model.User)
isAdmin = user.Role == model.RoleAdmin
}
conf := model.SettingResponse{ conf := model.SettingResponse{
Config: *singleton.Conf, Config: *singleton.Conf,
@ -29,7 +33,7 @@ func listConfig(c *gin.Context) (model.SettingResponse, error) {
FrontendTemplates: singleton.FrontendTemplates, FrontendTemplates: singleton.FrontendTemplates,
} }
if !authorized { if !authorized || !isAdmin {
conf = model.SettingResponse{ conf = model.SettingResponse{
Config: model.Config{ Config: model.Config{
SiteName: conf.SiteName, SiteName: conf.SiteName,
@ -40,6 +44,11 @@ func listConfig(c *gin.Context) (model.SettingResponse, error) {
} }
} }
if !isAdmin {
conf.Config.TLS = singleton.Conf.TLS
conf.Config.InstallHost = singleton.Conf.InstallHost
}
conf.Config.Language = strings.Replace(conf.Config.Language, "_", "-", -1) conf.Config.Language = strings.Replace(conf.Config.Language, "_", "-", -1)
return conf, nil return conf, nil

View File

@ -8,6 +8,7 @@ import (
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
"github.com/nezhahq/nezha/model" "github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
"github.com/nezhahq/nezha/service/singleton" "github.com/nezhahq/nezha/service/singleton"
) )
@ -112,10 +113,13 @@ func createUser(c *gin.Context) (uint64, error) {
if uf.Username == "" { if uf.Username == "" {
return 0, singleton.Localizer.ErrorT("username can't be empty") return 0, singleton.Localizer.ErrorT("username can't be empty")
} }
if uf.Role != model.RoleAdmin && uf.Role != model.RoleMember {
return 0, singleton.Localizer.ErrorT("invalid role")
}
var u model.User var u model.User
u.Username = uf.Username u.Username = uf.Username
u.Role = model.RoleMember u.Role = uf.Role
hash, err := bcrypt.GenerateFromPassword([]byte(uf.Password), bcrypt.DefaultCost) hash, err := bcrypt.GenerateFromPassword([]byte(uf.Password), bcrypt.DefaultCost)
if err != nil { if err != nil {
@ -205,7 +209,7 @@ func batchBlockOnlineUser(c *gin.Context) (any, error) {
return nil, err return nil, err
} }
if err := singleton.BlockByIPs(list); err != nil { if err := singleton.BlockByIPs(utils.Unique(list)); err != nil {
return nil, newGormError("%v", err) return nil, newGormError("%v", err)
} }

View File

@ -6,6 +6,7 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/nezhahq/nezha/model" "github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
"github.com/nezhahq/nezha/service/singleton" "github.com/nezhahq/nezha/service/singleton"
) )
@ -68,7 +69,7 @@ func batchDeleteBlockedAddress(c *gin.Context) (any, error) {
return nil, err return nil, err
} }
if err := model.BatchClearIP(singleton.DB, list); err != nil { if err := model.BatchClearIP(singleton.DB, utils.Unique(list)); err != nil {
return nil, newGormError("%v", err) return nil, newGormError("%v", err)
} }

View File

@ -1,6 +1,7 @@
package model package model
type UserForm struct { type UserForm struct {
Role uint8 `json:"role,omitempty"`
Username string `json:"username,omitempty"` Username string `json:"username,omitempty"`
Password string `json:"password,omitempty" gorm:"type:char(72)"` Password string `json:"password,omitempty" gorm:"type:char(72)"`
} }

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n" "POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,204 +17,248 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: cmd/dashboard/controller/alertrule.go:100 #: cmd/dashboard/controller/alertrule.go:103
#, c-format #, c-format
msgid "alert id %d does not exist" msgid "alert id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/alertrule.go:107
#: cmd/dashboard/controller/alertrule.go:155 #: cmd/dashboard/controller/alertrule.go:155
#: cmd/dashboard/controller/alertrule.go:175
#: cmd/dashboard/controller/controller.go:211
#: cmd/dashboard/controller/cron.go:57 cmd/dashboard/controller/cron.go:123
#: cmd/dashboard/controller/cron.go:135 cmd/dashboard/controller/cron.go:194
#: cmd/dashboard/controller/cron.go:223 cmd/dashboard/controller/ddns.go:130
#: cmd/dashboard/controller/ddns.go:191 cmd/dashboard/controller/fm.go:43
#: cmd/dashboard/controller/nat.go:58 cmd/dashboard/controller/nat.go:109
#: cmd/dashboard/controller/nat.go:120 cmd/dashboard/controller/nat.go:159
#: cmd/dashboard/controller/notification.go:111
#: cmd/dashboard/controller/notification.go:165
#: cmd/dashboard/controller/notification_group.go:76
#: cmd/dashboard/controller/notification_group.go:152
#: cmd/dashboard/controller/notification_group.go:164
#: cmd/dashboard/controller/notification_group.go:233
#: cmd/dashboard/controller/server.go:64 cmd/dashboard/controller/server.go:76
#: cmd/dashboard/controller/server.go:127
#: cmd/dashboard/controller/server.go:191
#: cmd/dashboard/controller/server_group.go:75
#: cmd/dashboard/controller/server_group.go:150
#: cmd/dashboard/controller/server_group.go:229
#: cmd/dashboard/controller/service.go:272
#: cmd/dashboard/controller/service.go:343
#: cmd/dashboard/controller/service.go:370
#: cmd/dashboard/controller/terminal.go:41
msgid "permission denied"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:183
msgid "duration need to be at least 3" msgid "duration need to be at least 3"
msgstr "" msgstr ""
#: cmd/dashboard/controller/alertrule.go:159 #: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1" msgid "cycle_interval need to be at least 1"
msgstr "" msgstr ""
#: cmd/dashboard/controller/alertrule.go:162 #: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set" msgid "cycle_start is not set"
msgstr "" msgstr ""
#: cmd/dashboard/controller/alertrule.go:165 #: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value" msgid "cycle_start is a future value"
msgstr "" msgstr ""
#: cmd/dashboard/controller/alertrule.go:170 #: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule" msgid "need to configure at least a single rule"
msgstr "" msgstr ""
#: cmd/dashboard/controller/controller.go:195 #: cmd/dashboard/controller/controller.go:205
#: cmd/dashboard/controller/server_group.go:162
#: cmd/dashboard/controller/service.go:95 cmd/dashboard/controller/user.go:26
#: cmd/dashboard/controller/user.go:53
msgid "unauthorized"
msgstr ""
#: cmd/dashboard/controller/controller.go:228
msgid "database error" msgid "database error"
msgstr "" msgstr ""
#: cmd/dashboard/controller/cron.go:63 cmd/dashboard/controller/cron.go:122 #: cmd/dashboard/controller/cron.go:74 cmd/dashboard/controller/cron.go:148
msgid "scheduled tasks cannot be triggered by alarms" msgid "scheduled tasks cannot be triggered by alarms"
msgstr "" msgstr ""
#: cmd/dashboard/controller/cron.go:161 #: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format #, c-format
msgid "task id %d does not exist" msgid "task id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:120 #: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:121
msgid "the retry count must be an integer between 1 and 10" msgid "the retry count must be an integer between 1 and 10"
msgstr "" msgstr ""
#: cmd/dashboard/controller/ddns.go:79 cmd/dashboard/controller/ddns.go:148 #: cmd/dashboard/controller/ddns.go:80 cmd/dashboard/controller/ddns.go:153
msgid "error parsing %s: %v" msgid "error parsing %s: %v"
msgstr "" msgstr ""
#: cmd/dashboard/controller/ddns.go:125 cmd/dashboard/controller/nat.go:95 #: cmd/dashboard/controller/ddns.go:126 cmd/dashboard/controller/nat.go:116
#, c-format #, c-format
msgid "profile id %d does not exist" msgid "profile id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/fm.go:45 cmd/dashboard/controller/terminal.go:43 #: cmd/dashboard/controller/fm.go:39 cmd/dashboard/controller/terminal.go:37
msgid "server not found or not connected" msgid "server not found or not connected"
msgstr "" msgstr ""
#: cmd/dashboard/controller/notification.go:67 #: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:125 #: cmd/dashboard/controller/notification.go:130
msgid "a test message" msgid "a test message"
msgstr "" msgstr ""
#: cmd/dashboard/controller/notification.go:106 #: cmd/dashboard/controller/notification.go:107
#, c-format #, c-format
msgid "notification id %d does not exist" msgid "notification id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/notification_group.go:80 #: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:142 #: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id" msgid "have invalid notification id"
msgstr "" msgstr ""
#: cmd/dashboard/controller/notification_group.go:131 #: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:130 #: cmd/dashboard/controller/server_group.go:158
#, c-format #, c-format
msgid "group id %d does not exist" msgid "group id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/server.go:60 #: cmd/dashboard/controller/server.go:72
#, c-format #, c-format
msgid "server id %d does not exist" msgid "server id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/server_group.go:78 #: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:139 #: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id" msgid "have invalid server id"
msgstr "" msgstr ""
#: cmd/dashboard/controller/service.go:79 #: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:155 #: cmd/dashboard/controller/service.go:164
msgid "server not found" msgid "server not found"
msgstr "" msgstr ""
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23 #: cmd/dashboard/controller/service.go:268
msgid "unauthorized"
msgstr ""
#: cmd/dashboard/controller/service.go:247
#, c-format #, c-format
msgid "service id %d does not exist" msgid "service id %d does not exist"
msgstr "" msgstr ""
#: cmd/dashboard/controller/user.go:66 #: cmd/dashboard/controller/user.go:58
msgid "incorrect password"
msgstr ""
#: cmd/dashboard/controller/user.go:110
msgid "password length must be greater than 6" msgid "password length must be greater than 6"
msgstr "" msgstr ""
#: cmd/dashboard/controller/user.go:69 #: cmd/dashboard/controller/user.go:113
msgid "username can't be empty" msgid "username can't be empty"
msgstr "" msgstr ""
#: service/rpc/io_stream.go:122 #: cmd/dashboard/controller/user.go:152
msgid "timeout: no connection established" msgid "can't delete yourself"
msgstr ""
#: service/rpc/io_stream.go:125
msgid "timeout: user connection not established"
msgstr "" msgstr ""
#: service/rpc/io_stream.go:128 #: service/rpc/io_stream.go:128
msgid "timeout: no connection established"
msgstr ""
#: service/rpc/io_stream.go:131
msgid "timeout: user connection not established"
msgstr ""
#: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established" msgid "timeout: agent connection not established"
msgstr "" msgstr ""
#: service/rpc/nezha.go:58 #: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully" msgid "Scheduled Task Executed Successfully"
msgstr "" msgstr ""
#: service/rpc/nezha.go:62 #: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed" msgid "Scheduled Task Executed Failed"
msgstr "" msgstr ""
#: service/rpc/nezha.go:217 #: service/rpc/nezha.go:245
msgid "IP Changed" msgid "IP Changed"
msgstr "" msgstr ""
#: service/singleton/alertsentinel.go:159 #: service/singleton/alertsentinel.go:167
msgid "Incident" msgid "Incident"
msgstr "" msgstr ""
#: service/singleton/alertsentinel.go:169 #: service/singleton/alertsentinel.go:177
msgid "Resolved" msgid "Resolved"
msgstr "" msgstr ""
#: service/singleton/crontask.go:53 #: service/singleton/crontask.go:54
msgid "Tasks failed to register: [" msgid "Tasks failed to register: ["
msgstr "" msgstr ""
#: service/singleton/crontask.go:60 #: service/singleton/crontask.go:61
msgid "" msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "" msgstr ""
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171 #: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format #, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task" msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:439 #: service/singleton/servicesentinel.go:468
#, c-format #, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s" msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:446 #: service/singleton/servicesentinel.go:475
#, c-format #, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s" msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:472 #: service/singleton/servicesentinel.go:501
#, c-format #, c-format
msgid "[%s] %s Reporter: %s, Error: %s" msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:515 #: service/singleton/servicesentinel.go:544
#, c-format #, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:555 #: service/singleton/servicesentinel.go:584
#, c-format #, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s" msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:568 #: service/singleton/servicesentinel.go:597
#, c-format #, c-format
msgid "" msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
"expires at %s" "expires at %s"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:604 #: service/singleton/servicesentinel.go:633
msgid "No Data" msgid "No Data"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:606 #: service/singleton/servicesentinel.go:635
msgid "Good" msgid "Good"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:608 #: service/singleton/servicesentinel.go:637
msgid "Low Availability" msgid "Low Availability"
msgstr "" msgstr ""
#: service/singleton/servicesentinel.go:610 #: service/singleton/servicesentinel.go:639
msgid "Down" msgid "Down"
msgstr "" msgstr ""
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr ""

View File

@ -7,11 +7,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n" "POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-17 04:52+0000\n" "PO-Revision-Date: 2024-12-17 04:52+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n" "Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: German <https://hosted.weblate.org/projects/nezha/" "Language-Team: German <https://hosted.weblate.org/projects/nezha/nezha-"
"nezha-dashboard/de/>\n" "dashboard/de/>\n"
"Language: de_DE\n" "Language: de_DE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -19,190 +19,230 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.9\n" "X-Generator: Weblate 5.9\n"
#: cmd/dashboard/controller/alertrule.go:100 #: cmd/dashboard/controller/alertrule.go:103
#, c-format #, c-format
msgid "alert id %d does not exist" msgid "alert id %d does not exist"
msgstr "benachrichtigungs ID %d existiert nicht" msgstr "benachrichtigungs ID %d existiert nicht"
#: cmd/dashboard/controller/alertrule.go:107
#: cmd/dashboard/controller/alertrule.go:155 #: cmd/dashboard/controller/alertrule.go:155
#: cmd/dashboard/controller/alertrule.go:175
#: cmd/dashboard/controller/controller.go:211
#: cmd/dashboard/controller/cron.go:57 cmd/dashboard/controller/cron.go:123
#: cmd/dashboard/controller/cron.go:135 cmd/dashboard/controller/cron.go:194
#: cmd/dashboard/controller/cron.go:223 cmd/dashboard/controller/ddns.go:130
#: cmd/dashboard/controller/ddns.go:191 cmd/dashboard/controller/fm.go:43
#: cmd/dashboard/controller/nat.go:58 cmd/dashboard/controller/nat.go:109
#: cmd/dashboard/controller/nat.go:120 cmd/dashboard/controller/nat.go:159
#: cmd/dashboard/controller/notification.go:111
#: cmd/dashboard/controller/notification.go:165
#: cmd/dashboard/controller/notification_group.go:76
#: cmd/dashboard/controller/notification_group.go:152
#: cmd/dashboard/controller/notification_group.go:164
#: cmd/dashboard/controller/notification_group.go:233
#: cmd/dashboard/controller/server.go:64 cmd/dashboard/controller/server.go:76
#: cmd/dashboard/controller/server.go:127
#: cmd/dashboard/controller/server.go:191
#: cmd/dashboard/controller/server_group.go:75
#: cmd/dashboard/controller/server_group.go:150
#: cmd/dashboard/controller/server_group.go:229
#: cmd/dashboard/controller/service.go:272
#: cmd/dashboard/controller/service.go:343
#: cmd/dashboard/controller/service.go:370
#: cmd/dashboard/controller/terminal.go:41
msgid "permission denied"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:183
msgid "duration need to be at least 3" msgid "duration need to be at least 3"
msgstr "dauer muss mindestens 3 sein" msgstr "dauer muss mindestens 3 sein"
#: cmd/dashboard/controller/alertrule.go:159 #: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1" msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval muss mindestens 1 sein" msgstr "cycle_interval muss mindestens 1 sein"
#: cmd/dashboard/controller/alertrule.go:162 #: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set" msgid "cycle_start is not set"
msgstr "cycle_start ist nicht eingestellt" msgstr "cycle_start ist nicht eingestellt"
#: cmd/dashboard/controller/alertrule.go:165 #: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value" msgid "cycle_start is a future value"
msgstr "cycle_start ist ein zukünftiger wert" msgstr "cycle_start ist ein zukünftiger wert"
#: cmd/dashboard/controller/alertrule.go:170 #: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule" msgid "need to configure at least a single rule"
msgstr "mindestens eine Regel muss konfiguriert sein" msgstr "mindestens eine Regel muss konfiguriert sein"
#: cmd/dashboard/controller/controller.go:195 #: cmd/dashboard/controller/controller.go:205
#: cmd/dashboard/controller/server_group.go:162
#: cmd/dashboard/controller/service.go:95 cmd/dashboard/controller/user.go:26
#: cmd/dashboard/controller/user.go:53
msgid "unauthorized"
msgstr "nicht autorisiert"
#: cmd/dashboard/controller/controller.go:228
msgid "database error" msgid "database error"
msgstr "datenbankfehler" msgstr "datenbankfehler"
#: cmd/dashboard/controller/cron.go:63 cmd/dashboard/controller/cron.go:122 #: cmd/dashboard/controller/cron.go:74 cmd/dashboard/controller/cron.go:148
msgid "scheduled tasks cannot be triggered by alarms" msgid "scheduled tasks cannot be triggered by alarms"
msgstr "geplante aufgaben können nicht durch Alarme ausgelöst werden" msgstr "geplante aufgaben können nicht durch Alarme ausgelöst werden"
#: cmd/dashboard/controller/cron.go:161 #: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format #, c-format
msgid "task id %d does not exist" msgid "task id %d does not exist"
msgstr "task ID %d existiert nicht" msgstr "task ID %d existiert nicht"
#: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:120 #: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:121
msgid "the retry count must be an integer between 1 and 10" msgid "the retry count must be an integer between 1 and 10"
msgstr "der retry_count muss eine Zahl zwischen 1 und 10 sein" msgstr "der retry_count muss eine Zahl zwischen 1 und 10 sein"
#: cmd/dashboard/controller/ddns.go:79 cmd/dashboard/controller/ddns.go:148 #: cmd/dashboard/controller/ddns.go:80 cmd/dashboard/controller/ddns.go:153
msgid "error parsing %s: %v" msgid "error parsing %s: %v"
msgstr "fehler beim parsen von %s: %v" msgstr "fehler beim parsen von %s: %v"
#: cmd/dashboard/controller/ddns.go:125 cmd/dashboard/controller/nat.go:95 #: cmd/dashboard/controller/ddns.go:126 cmd/dashboard/controller/nat.go:116
#, c-format #, c-format
msgid "profile id %d does not exist" msgid "profile id %d does not exist"
msgstr "profil ID %d existiert nicht" msgstr "profil ID %d existiert nicht"
#: cmd/dashboard/controller/fm.go:45 cmd/dashboard/controller/terminal.go:43 #: cmd/dashboard/controller/fm.go:39 cmd/dashboard/controller/terminal.go:37
msgid "server not found or not connected" msgid "server not found or not connected"
msgstr "server nicht gefunden oder nicht verbunden" msgstr "server nicht gefunden oder nicht verbunden"
#: cmd/dashboard/controller/notification.go:67 #: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:125 #: cmd/dashboard/controller/notification.go:130
msgid "a test message" msgid "a test message"
msgstr "testnachricht" msgstr "testnachricht"
#: cmd/dashboard/controller/notification.go:106 #: cmd/dashboard/controller/notification.go:107
#, c-format #, c-format
msgid "notification id %d does not exist" msgid "notification id %d does not exist"
msgstr "benachrichtigung ID %d existiert nicht" msgstr "benachrichtigung ID %d existiert nicht"
#: cmd/dashboard/controller/notification_group.go:80 #: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:142 #: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id" msgid "have invalid notification id"
msgstr "haben ungültige Benachrichtigungs ID" msgstr "haben ungültige Benachrichtigungs ID"
#: cmd/dashboard/controller/notification_group.go:131 #: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:130 #: cmd/dashboard/controller/server_group.go:158
#, c-format #, c-format
msgid "group id %d does not exist" msgid "group id %d does not exist"
msgstr "gruppen ID %d existiert nicht" msgstr "gruppen ID %d existiert nicht"
#: cmd/dashboard/controller/server.go:60 #: cmd/dashboard/controller/server.go:72
#, c-format #, c-format
msgid "server id %d does not exist" msgid "server id %d does not exist"
msgstr "server ID %d existiert nicht" msgstr "server ID %d existiert nicht"
#: cmd/dashboard/controller/server_group.go:78 #: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:139 #: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id" msgid "have invalid server id"
msgstr "haben ungültige Server ID" msgstr "haben ungültige Server ID"
#: cmd/dashboard/controller/service.go:79 #: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:155 #: cmd/dashboard/controller/service.go:164
msgid "server not found" msgid "server not found"
msgstr "server nicht gefunden" msgstr "server nicht gefunden"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23 #: cmd/dashboard/controller/service.go:268
msgid "unauthorized"
msgstr "nicht autorisiert"
#: cmd/dashboard/controller/service.go:247
#, c-format #, c-format
msgid "service id %d does not exist" msgid "service id %d does not exist"
msgstr "service ID %d existiert nicht" msgstr "service ID %d existiert nicht"
#: cmd/dashboard/controller/user.go:66 #: cmd/dashboard/controller/user.go:58
msgid "incorrect password"
msgstr ""
#: cmd/dashboard/controller/user.go:110
msgid "password length must be greater than 6" msgid "password length must be greater than 6"
msgstr "passwort muss länger als 6 Zeichen sein" msgstr "passwort muss länger als 6 Zeichen sein"
#: cmd/dashboard/controller/user.go:69 #: cmd/dashboard/controller/user.go:113
msgid "username can't be empty" msgid "username can't be empty"
msgstr "benutzername darf nicht leer sein" msgstr "benutzername darf nicht leer sein"
#: service/rpc/io_stream.go:122 #: cmd/dashboard/controller/user.go:152
msgid "can't delete yourself"
msgstr ""
#: service/rpc/io_stream.go:128
msgid "timeout: no connection established" msgid "timeout: no connection established"
msgstr "timeout: Keine Verbindung hergestellt" msgstr "timeout: Keine Verbindung hergestellt"
#: service/rpc/io_stream.go:125 #: service/rpc/io_stream.go:131
msgid "timeout: user connection not established" msgid "timeout: user connection not established"
msgstr "timeout: Benutzerverbindung nicht etabliert" msgstr "timeout: Benutzerverbindung nicht etabliert"
#: service/rpc/io_stream.go:128 #: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established" msgid "timeout: agent connection not established"
msgstr "timeout: Agent-Verbindung nicht etabliert" msgstr "timeout: Agent-Verbindung nicht etabliert"
#: service/rpc/nezha.go:58 #: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully" msgid "Scheduled Task Executed Successfully"
msgstr "geplante Aufgabe erfolgreich ausgeführt" msgstr "geplante Aufgabe erfolgreich ausgeführt"
#: service/rpc/nezha.go:62 #: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed" msgid "Scheduled Task Executed Failed"
msgstr "geplante Aufgabe fehlgeschlagen" msgstr "geplante Aufgabe fehlgeschlagen"
#: service/rpc/nezha.go:217 #: service/rpc/nezha.go:245
msgid "IP Changed" msgid "IP Changed"
msgstr "IP geändert" msgstr "IP geändert"
#: service/singleton/alertsentinel.go:159 #: service/singleton/alertsentinel.go:167
msgid "Incident" msgid "Incident"
msgstr "Vorfall" msgstr "Vorfall"
#: service/singleton/alertsentinel.go:169 #: service/singleton/alertsentinel.go:177
msgid "Resolved" msgid "Resolved"
msgstr "Gelöst" msgstr "Gelöst"
#: service/singleton/crontask.go:53 #: service/singleton/crontask.go:54
msgid "Tasks failed to register: [" msgid "Tasks failed to register: ["
msgstr "Aufgaben konnten nicht registriert werden: [" msgstr "Aufgaben konnten nicht registriert werden: ["
#: service/singleton/crontask.go:60 #: service/singleton/crontask.go:61
msgid "" msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "" msgstr ""
"] Diese Aufgaben werden nicht korrekt ausgeführt. Reparieren Sie diese im " "] Diese Aufgaben werden nicht korrekt ausgeführt. Reparieren Sie diese im "
"Admin-Dashboard." "Admin-Dashboard."
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171 #: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format #, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task" msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "" msgstr ""
"[Aufgabe fehlgeschlagen] %s: Server %s ist offline und kann die Aufgabe " "[Aufgabe fehlgeschlagen] %s: Server %s ist offline und kann die Aufgabe "
"nicht ausführen" "nicht ausführen"
#: service/singleton/servicesentinel.go:439 #: service/singleton/servicesentinel.go:468
#, c-format #, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s" msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[Latency] %s %2f > %2f, Reporter: %s" msgstr "[Latency] %s %2f > %2f, Reporter: %s"
#: service/singleton/servicesentinel.go:446 #: service/singleton/servicesentinel.go:475
#, c-format #, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s" msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[Latency] %s %2f < %2f, Reporter: %s" msgstr "[Latency] %s %2f < %2f, Reporter: %s"
#: service/singleton/servicesentinel.go:472 #: service/singleton/servicesentinel.go:501
#, c-format #, c-format
msgid "[%s] %s Reporter: %s, Error: %s" msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s Reporter: %s, Fehler: %s" msgstr "[%s] %s Reporter: %s, Fehler: %s"
#: service/singleton/servicesentinel.go:515 #: service/singleton/servicesentinel.go:544
#, c-format #, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] Fetch cert info gescheitert, Reporter: %s, Fehler: %s" msgstr "[TLS] Fetch cert info gescheitert, Reporter: %s, Fehler: %s"
#: service/singleton/servicesentinel.go:555 #: service/singleton/servicesentinel.go:584
#, c-format #, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s" msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "Das TLS-Zertifikat läuft innerhalb von sieben Tagen ab. Ablaufzeit: %s" msgstr "Das TLS-Zertifikat läuft innerhalb von sieben Tagen ab. Ablaufzeit: %s"
#: service/singleton/servicesentinel.go:568 #: service/singleton/servicesentinel.go:597
#, c-format #, c-format
msgid "" msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -211,18 +251,22 @@ msgstr ""
"TLS-Zertifikat geändert, alt: Emittent %s, läuft ab bei %s; neu: Emittent " "TLS-Zertifikat geändert, alt: Emittent %s, läuft ab bei %s; neu: Emittent "
"%s, läuft ab bei %s" "%s, läuft ab bei %s"
#: service/singleton/servicesentinel.go:604 #: service/singleton/servicesentinel.go:633
msgid "No Data" msgid "No Data"
msgstr "Keine Daten" msgstr "Keine Daten"
#: service/singleton/servicesentinel.go:606 #: service/singleton/servicesentinel.go:635
msgid "Good" msgid "Good"
msgstr "Gut" msgstr "Gut"
#: service/singleton/servicesentinel.go:608 #: service/singleton/servicesentinel.go:637
msgid "Low Availability" msgid "Low Availability"
msgstr "Niedere Verfügbarkeit" msgstr "Niedere Verfügbarkeit"
#: service/singleton/servicesentinel.go:610 #: service/singleton/servicesentinel.go:639
msgid "Down" msgid "Down"
msgstr "Unten" msgstr "Unten"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr ""

View File

@ -3,202 +3,243 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n" "POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-11-01 13:20+0800\n" "PO-Revision-Date: 2024-12-22 04:33+0000\n"
"Last-Translator: \n" "Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: \n" "Language-Team: English (United States) <https://hosted.weblate.org/projects/"
"nezha/nezha-dashboard/en_US/>\n"
"Language: en_US\n" "Language: en_US\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10-dev\n"
#: cmd/dashboard/controller/alertrule.go:100 #: cmd/dashboard/controller/alertrule.go:103
#, c-format #, c-format
msgid "alert id %d does not exist" msgid "alert id %d does not exist"
msgstr "alert id %d does not exist" msgstr "alert id %d does not exist"
#: cmd/dashboard/controller/alertrule.go:107
#: cmd/dashboard/controller/alertrule.go:155 #: cmd/dashboard/controller/alertrule.go:155
#: cmd/dashboard/controller/alertrule.go:175
#: cmd/dashboard/controller/controller.go:211
#: cmd/dashboard/controller/cron.go:57 cmd/dashboard/controller/cron.go:123
#: cmd/dashboard/controller/cron.go:135 cmd/dashboard/controller/cron.go:194
#: cmd/dashboard/controller/cron.go:223 cmd/dashboard/controller/ddns.go:130
#: cmd/dashboard/controller/ddns.go:191 cmd/dashboard/controller/fm.go:43
#: cmd/dashboard/controller/nat.go:58 cmd/dashboard/controller/nat.go:109
#: cmd/dashboard/controller/nat.go:120 cmd/dashboard/controller/nat.go:159
#: cmd/dashboard/controller/notification.go:111
#: cmd/dashboard/controller/notification.go:165
#: cmd/dashboard/controller/notification_group.go:76
#: cmd/dashboard/controller/notification_group.go:152
#: cmd/dashboard/controller/notification_group.go:164
#: cmd/dashboard/controller/notification_group.go:233
#: cmd/dashboard/controller/server.go:64 cmd/dashboard/controller/server.go:76
#: cmd/dashboard/controller/server.go:127
#: cmd/dashboard/controller/server.go:191
#: cmd/dashboard/controller/server_group.go:75
#: cmd/dashboard/controller/server_group.go:150
#: cmd/dashboard/controller/server_group.go:229
#: cmd/dashboard/controller/service.go:272
#: cmd/dashboard/controller/service.go:343
#: cmd/dashboard/controller/service.go:370
#: cmd/dashboard/controller/terminal.go:41
msgid "permission denied"
msgstr "permission denied"
#: cmd/dashboard/controller/alertrule.go:183
msgid "duration need to be at least 3" msgid "duration need to be at least 3"
msgstr "duration need to be at least 3" msgstr "duration need to be at least 3"
#: cmd/dashboard/controller/alertrule.go:159 #: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1" msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval need to be at least 1" msgstr "cycle_interval need to be at least 1"
#: cmd/dashboard/controller/alertrule.go:162 #: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set" msgid "cycle_start is not set"
msgstr "cycle_start is not set" msgstr "cycle_start is not set"
#: cmd/dashboard/controller/alertrule.go:165 #: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value" msgid "cycle_start is a future value"
msgstr "cycle_start is a future value" msgstr "cycle_start is a future value"
#: cmd/dashboard/controller/alertrule.go:170 #: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule" msgid "need to configure at least a single rule"
msgstr "need to configure at least a single rule" msgstr "need to configure at least a single rule"
#: cmd/dashboard/controller/controller.go:195 #: cmd/dashboard/controller/controller.go:205
#: cmd/dashboard/controller/server_group.go:162
#: cmd/dashboard/controller/service.go:95 cmd/dashboard/controller/user.go:26
#: cmd/dashboard/controller/user.go:53
msgid "unauthorized"
msgstr "unauthorized"
#: cmd/dashboard/controller/controller.go:228
msgid "database error" msgid "database error"
msgstr "database error" msgstr "database error"
#: cmd/dashboard/controller/cron.go:63 cmd/dashboard/controller/cron.go:122 #: cmd/dashboard/controller/cron.go:74 cmd/dashboard/controller/cron.go:148
msgid "scheduled tasks cannot be triggered by alarms" msgid "scheduled tasks cannot be triggered by alarms"
msgstr "scheduled tasks cannot be triggered by alarms" msgstr "scheduled tasks cannot be triggered by alarms"
#: cmd/dashboard/controller/cron.go:161 #: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format #, c-format
msgid "task id %d does not exist" msgid "task id %d does not exist"
msgstr "task id %d does not exist" msgstr "task id %d does not exist"
#: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:120 #: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:121
msgid "the retry count must be an integer between 1 and 10" msgid "the retry count must be an integer between 1 and 10"
msgstr "the retry count must be an integer between 1 and 10" msgstr "the retry count must be an integer between 1 and 10"
#: cmd/dashboard/controller/ddns.go:79 cmd/dashboard/controller/ddns.go:148 #: cmd/dashboard/controller/ddns.go:80 cmd/dashboard/controller/ddns.go:153
msgid "error parsing %s: %v" msgid "error parsing %s: %v"
msgstr "error parsing %s: %v" msgstr "error parsing %s: %v"
#: cmd/dashboard/controller/ddns.go:125 cmd/dashboard/controller/nat.go:95 #: cmd/dashboard/controller/ddns.go:126 cmd/dashboard/controller/nat.go:116
#, c-format #, c-format
msgid "profile id %d does not exist" msgid "profile id %d does not exist"
msgstr "profile id %d does not exist" msgstr "profile id %d does not exist"
#: cmd/dashboard/controller/fm.go:45 cmd/dashboard/controller/terminal.go:43 #: cmd/dashboard/controller/fm.go:39 cmd/dashboard/controller/terminal.go:37
msgid "server not found or not connected" msgid "server not found or not connected"
msgstr "server not found or not connected" msgstr "server not found or not connected"
#: cmd/dashboard/controller/notification.go:67 #: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:125 #: cmd/dashboard/controller/notification.go:130
msgid "a test message" msgid "a test message"
msgstr "a test message" msgstr "a test message"
#: cmd/dashboard/controller/notification.go:106 #: cmd/dashboard/controller/notification.go:107
#, c-format #, c-format
msgid "notification id %d does not exist" msgid "notification id %d does not exist"
msgstr "notification id %d does not exist" msgstr "notification id %d does not exist"
#: cmd/dashboard/controller/notification_group.go:80 #: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:142 #: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id" msgid "have invalid notification id"
msgstr "have invalid notification id" msgstr "have invalid notification id"
#: cmd/dashboard/controller/notification_group.go:131 #: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:130 #: cmd/dashboard/controller/server_group.go:158
#, c-format #, c-format
msgid "group id %d does not exist" msgid "group id %d does not exist"
msgstr "group id %d does not exist" msgstr "group id %d does not exist"
#: cmd/dashboard/controller/server.go:60 #: cmd/dashboard/controller/server.go:72
#, c-format #, c-format
msgid "server id %d does not exist" msgid "server id %d does not exist"
msgstr "server id %d does not exist" msgstr "server id %d does not exist"
#: cmd/dashboard/controller/server_group.go:78 #: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:139 #: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id" msgid "have invalid server id"
msgstr "have invalid server id" msgstr "have invalid server id"
#: cmd/dashboard/controller/service.go:79 #: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:155 #: cmd/dashboard/controller/service.go:164
msgid "server not found" msgid "server not found"
msgstr "server not found" msgstr "server not found"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23 #: cmd/dashboard/controller/service.go:268
msgid "unauthorized"
msgstr "unauthorized"
#: cmd/dashboard/controller/service.go:247
#, c-format #, c-format
msgid "service id %d does not exist" msgid "service id %d does not exist"
msgstr "service id %d does not exist" msgstr "service id %d does not exist"
#: cmd/dashboard/controller/user.go:66 #: cmd/dashboard/controller/user.go:58
msgid "incorrect password"
msgstr "incorrect password"
#: cmd/dashboard/controller/user.go:110
msgid "password length must be greater than 6" msgid "password length must be greater than 6"
msgstr "password length must be greater than 6" msgstr "password length must be greater than 6"
#: cmd/dashboard/controller/user.go:69 #: cmd/dashboard/controller/user.go:113
msgid "username can't be empty" msgid "username can't be empty"
msgstr "username can't be empty" msgstr "username can't be empty"
#: service/rpc/io_stream.go:122 #: cmd/dashboard/controller/user.go:152
msgid "can't delete yourself"
msgstr "can't delete yourself"
#: service/rpc/io_stream.go:128
msgid "timeout: no connection established" msgid "timeout: no connection established"
msgstr "timeout: no connection established" msgstr "timeout: no connection established"
#: service/rpc/io_stream.go:125 #: service/rpc/io_stream.go:131
msgid "timeout: user connection not established" msgid "timeout: user connection not established"
msgstr "timeout: user connection not established" msgstr "timeout: user connection not established"
#: service/rpc/io_stream.go:128 #: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established" msgid "timeout: agent connection not established"
msgstr "timeout: agent connection not established" msgstr "timeout: agent connection not established"
#: service/rpc/nezha.go:58 #: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully" msgid "Scheduled Task Executed Successfully"
msgstr "Scheduled Task Executed Successfully" msgstr "Scheduled Task Executed Successfully"
#: service/rpc/nezha.go:62 #: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed" msgid "Scheduled Task Executed Failed"
msgstr "Scheduled Task Executed Failed" msgstr "Scheduled Task Executed Failed"
#: service/rpc/nezha.go:217 #: service/rpc/nezha.go:245
msgid "IP Changed" msgid "IP Changed"
msgstr "IP Changed" msgstr "IP Changed"
#: service/singleton/alertsentinel.go:159 #: service/singleton/alertsentinel.go:167
msgid "Incident" msgid "Incident"
msgstr "Incident" msgstr "Incident"
#: service/singleton/alertsentinel.go:169 #: service/singleton/alertsentinel.go:177
msgid "Resolved" msgid "Resolved"
msgstr "Resolved" msgstr "Resolved"
#: service/singleton/crontask.go:53 #: service/singleton/crontask.go:54
msgid "Tasks failed to register: [" msgid "Tasks failed to register: ["
msgstr "Tasks failed to register: [" msgstr "Tasks failed to register: ["
#: service/singleton/crontask.go:60 #: service/singleton/crontask.go:61
msgid "" msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "" msgstr ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171 #: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format #, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task" msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "[Task failed] %s: server %s is offline and cannot execute the task" msgstr "[Task failed] %s: server %s is offline and cannot execute the task"
#: service/singleton/servicesentinel.go:439 #: service/singleton/servicesentinel.go:468
#, c-format #, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s" msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[Latency] %s %2f > %2f, Reporter: %s" msgstr "[Latency] %s %2f > %2f, Reporter: %s"
#: service/singleton/servicesentinel.go:446 #: service/singleton/servicesentinel.go:475
#, c-format #, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s" msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[Latency] %s %2f < %2f, Reporter: %s" msgstr "[Latency] %s %2f < %2f, Reporter: %s"
#: service/singleton/servicesentinel.go:472 #: service/singleton/servicesentinel.go:501
#, c-format #, c-format
msgid "[%s] %s Reporter: %s, Error: %s" msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s Reporter: %s, Error: %s" msgstr "[%s] %s Reporter: %s, Error: %s"
#: service/singleton/servicesentinel.go:515 #: service/singleton/servicesentinel.go:544
#, c-format #, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgstr "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
#: service/singleton/servicesentinel.go:555 #: service/singleton/servicesentinel.go:584
#, c-format #, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s" msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "The TLS certificate will expire within seven days. Expiration time: %s" msgstr "The TLS certificate will expire within seven days. Expiration time: %s"
#: service/singleton/servicesentinel.go:568 #: service/singleton/servicesentinel.go:597
#, c-format #, c-format
msgid "" msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -207,18 +248,22 @@ msgstr ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
"expires at %s" "expires at %s"
#: service/singleton/servicesentinel.go:604 #: service/singleton/servicesentinel.go:633
msgid "No Data" msgid "No Data"
msgstr "No Data" msgstr "No Data"
#: service/singleton/servicesentinel.go:606 #: service/singleton/servicesentinel.go:635
msgid "Good" msgid "Good"
msgstr "Good" msgstr "Good"
#: service/singleton/servicesentinel.go:608 #: service/singleton/servicesentinel.go:637
msgid "Low Availability" msgid "Low Availability"
msgstr "Low Availability" msgstr "Low Availability"
#: service/singleton/servicesentinel.go:610 #: service/singleton/servicesentinel.go:639
msgid "Down" msgid "Down"
msgstr "Down" msgstr "Down"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr "user id not specified"

View File

@ -7,11 +7,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n" "POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-17 04:52+0000\n" "PO-Revision-Date: 2024-12-17 04:52+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n" "Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/nezha/" "Language-Team: Spanish <https://hosted.weblate.org/projects/nezha/nezha-"
"nezha-dashboard/es/>\n" "dashboard/es/>\n"
"Language: es_ES\n" "Language: es_ES\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -19,194 +19,235 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.9\n" "X-Generator: Weblate 5.9\n"
#: cmd/dashboard/controller/alertrule.go:100 #: cmd/dashboard/controller/alertrule.go:103
#, c-format #, c-format
msgid "alert id %d does not exist" msgid "alert id %d does not exist"
msgstr "el ID de alerta %d no existe" msgstr "el ID de alerta %d no existe"
#: cmd/dashboard/controller/alertrule.go:107
#: cmd/dashboard/controller/alertrule.go:155 #: cmd/dashboard/controller/alertrule.go:155
#: cmd/dashboard/controller/alertrule.go:175
#: cmd/dashboard/controller/controller.go:211
#: cmd/dashboard/controller/cron.go:57 cmd/dashboard/controller/cron.go:123
#: cmd/dashboard/controller/cron.go:135 cmd/dashboard/controller/cron.go:194
#: cmd/dashboard/controller/cron.go:223 cmd/dashboard/controller/ddns.go:130
#: cmd/dashboard/controller/ddns.go:191 cmd/dashboard/controller/fm.go:43
#: cmd/dashboard/controller/nat.go:58 cmd/dashboard/controller/nat.go:109
#: cmd/dashboard/controller/nat.go:120 cmd/dashboard/controller/nat.go:159
#: cmd/dashboard/controller/notification.go:111
#: cmd/dashboard/controller/notification.go:165
#: cmd/dashboard/controller/notification_group.go:76
#: cmd/dashboard/controller/notification_group.go:152
#: cmd/dashboard/controller/notification_group.go:164
#: cmd/dashboard/controller/notification_group.go:233
#: cmd/dashboard/controller/server.go:64 cmd/dashboard/controller/server.go:76
#: cmd/dashboard/controller/server.go:127
#: cmd/dashboard/controller/server.go:191
#: cmd/dashboard/controller/server_group.go:75
#: cmd/dashboard/controller/server_group.go:150
#: cmd/dashboard/controller/server_group.go:229
#: cmd/dashboard/controller/service.go:272
#: cmd/dashboard/controller/service.go:343
#: cmd/dashboard/controller/service.go:370
#: cmd/dashboard/controller/terminal.go:41
msgid "permission denied"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:183
msgid "duration need to be at least 3" msgid "duration need to be at least 3"
msgstr "la duración debe ser al menos de 3" msgstr "la duración debe ser al menos de 3"
#: cmd/dashboard/controller/alertrule.go:159 #: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1" msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval debe ser al menos 1" msgstr "cycle_interval debe ser al menos 1"
#: cmd/dashboard/controller/alertrule.go:162 #: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set" msgid "cycle_start is not set"
msgstr "no se ha configurado el cycle_start" msgstr "no se ha configurado el cycle_start"
#: cmd/dashboard/controller/alertrule.go:165 #: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value" msgid "cycle_start is a future value"
msgstr "cycle_start es un valor futuro" msgstr "cycle_start es un valor futuro"
#: cmd/dashboard/controller/alertrule.go:170 #: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule" msgid "need to configure at least a single rule"
msgstr "es necesario configurar al menos una regla" msgstr "es necesario configurar al menos una regla"
#: cmd/dashboard/controller/controller.go:195 #: cmd/dashboard/controller/controller.go:205
#: cmd/dashboard/controller/server_group.go:162
#: cmd/dashboard/controller/service.go:95 cmd/dashboard/controller/user.go:26
#: cmd/dashboard/controller/user.go:53
msgid "unauthorized"
msgstr "no autorizado"
#: cmd/dashboard/controller/controller.go:228
msgid "database error" msgid "database error"
msgstr "error de base de datos" msgstr "error de base de datos"
#: cmd/dashboard/controller/cron.go:63 cmd/dashboard/controller/cron.go:122 #: cmd/dashboard/controller/cron.go:74 cmd/dashboard/controller/cron.go:148
msgid "scheduled tasks cannot be triggered by alarms" msgid "scheduled tasks cannot be triggered by alarms"
msgstr "las tareas programadas no pueden ser activadas por alarmas" msgstr "las tareas programadas no pueden ser activadas por alarmas"
#: cmd/dashboard/controller/cron.go:161 #: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format #, c-format
msgid "task id %d does not exist" msgid "task id %d does not exist"
msgstr "el ID de la tarea %d no existe" msgstr "el ID de la tarea %d no existe"
#: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:120 #: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:121
msgid "the retry count must be an integer between 1 and 10" msgid "the retry count must be an integer between 1 and 10"
msgstr "el número de reintentos debe ser un número entero entre 1 y 10" msgstr "el número de reintentos debe ser un número entero entre 1 y 10"
#: cmd/dashboard/controller/ddns.go:79 cmd/dashboard/controller/ddns.go:148 #: cmd/dashboard/controller/ddns.go:80 cmd/dashboard/controller/ddns.go:153
msgid "error parsing %s: %v" msgid "error parsing %s: %v"
msgstr "error al analizar %s: %v" msgstr "error al analizar %s: %v"
#: cmd/dashboard/controller/ddns.go:125 cmd/dashboard/controller/nat.go:95 #: cmd/dashboard/controller/ddns.go:126 cmd/dashboard/controller/nat.go:116
#, c-format #, c-format
msgid "profile id %d does not exist" msgid "profile id %d does not exist"
msgstr "el ID de perfil %d no existe" msgstr "el ID de perfil %d no existe"
#: cmd/dashboard/controller/fm.go:45 cmd/dashboard/controller/terminal.go:43 #: cmd/dashboard/controller/fm.go:39 cmd/dashboard/controller/terminal.go:37
msgid "server not found or not connected" msgid "server not found or not connected"
msgstr "servidor no encontrado o no conectado" msgstr "servidor no encontrado o no conectado"
#: cmd/dashboard/controller/notification.go:67 #: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:125 #: cmd/dashboard/controller/notification.go:130
msgid "a test message" msgid "a test message"
msgstr "un mensaje de prueba" msgstr "un mensaje de prueba"
#: cmd/dashboard/controller/notification.go:106 #: cmd/dashboard/controller/notification.go:107
#, c-format #, c-format
msgid "notification id %d does not exist" msgid "notification id %d does not exist"
msgstr "el ID de notificación %d no existe" msgstr "el ID de notificación %d no existe"
#: cmd/dashboard/controller/notification_group.go:80 #: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:142 #: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id" msgid "have invalid notification id"
msgstr "hay un ID de notificación no válido" msgstr "hay un ID de notificación no válido"
#: cmd/dashboard/controller/notification_group.go:131 #: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:130 #: cmd/dashboard/controller/server_group.go:158
#, c-format #, c-format
msgid "group id %d does not exist" msgid "group id %d does not exist"
msgstr "el ID de grupo %d no existe" msgstr "el ID de grupo %d no existe"
#: cmd/dashboard/controller/server.go:60 #: cmd/dashboard/controller/server.go:72
#, c-format #, c-format
msgid "server id %d does not exist" msgid "server id %d does not exist"
msgstr "el ID de servidor %d no existe" msgstr "el ID de servidor %d no existe"
#: cmd/dashboard/controller/server_group.go:78 #: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:139 #: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id" msgid "have invalid server id"
msgstr "hay un ID de servidor no válido" msgstr "hay un ID de servidor no válido"
#: cmd/dashboard/controller/service.go:79 #: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:155 #: cmd/dashboard/controller/service.go:164
msgid "server not found" msgid "server not found"
msgstr "servidor no encontrado" msgstr "servidor no encontrado"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23 #: cmd/dashboard/controller/service.go:268
msgid "unauthorized"
msgstr "no autorizado"
#: cmd/dashboard/controller/service.go:247
#, c-format #, c-format
msgid "service id %d does not exist" msgid "service id %d does not exist"
msgstr "el ID de servicio %d no existe" msgstr "el ID de servicio %d no existe"
#: cmd/dashboard/controller/user.go:66 #: cmd/dashboard/controller/user.go:58
msgid "incorrect password"
msgstr ""
#: cmd/dashboard/controller/user.go:110
msgid "password length must be greater than 6" msgid "password length must be greater than 6"
msgstr "la longitud de la contraseña debe ser mayor a 6" msgstr "la longitud de la contraseña debe ser mayor a 6"
#: cmd/dashboard/controller/user.go:69 #: cmd/dashboard/controller/user.go:113
msgid "username can't be empty" msgid "username can't be empty"
msgstr "el nombre de usuario no puede estar vacío" msgstr "el nombre de usuario no puede estar vacío"
#: service/rpc/io_stream.go:122 #: cmd/dashboard/controller/user.go:152
msgid "can't delete yourself"
msgstr ""
#: service/rpc/io_stream.go:128
msgid "timeout: no connection established" msgid "timeout: no connection established"
msgstr "tiempo de espera agotado: no se pudo establecer conexión" msgstr "tiempo de espera agotado: no se pudo establecer conexión"
#: service/rpc/io_stream.go:125 #: service/rpc/io_stream.go:131
msgid "timeout: user connection not established" msgid "timeout: user connection not established"
msgstr "tiempo de espera agotado: no se pudo establecer conexión con el usuario" msgstr ""
"tiempo de espera agotado: no se pudo establecer conexión con el usuario"
#: service/rpc/io_stream.go:128 #: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established" msgid "timeout: agent connection not established"
msgstr "tiempo de espera agotado: no se pudo establecer conexión con agent" msgstr "tiempo de espera agotado: no se pudo establecer conexión con agent"
#: service/rpc/nezha.go:58 #: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully" msgid "Scheduled Task Executed Successfully"
msgstr "tarea programada ejecutada con éxito" msgstr "tarea programada ejecutada con éxito"
#: service/rpc/nezha.go:62 #: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed" msgid "Scheduled Task Executed Failed"
msgstr "falló la ejecución de la tarea programada" msgstr "falló la ejecución de la tarea programada"
#: service/rpc/nezha.go:217 #: service/rpc/nezha.go:245
msgid "IP Changed" msgid "IP Changed"
msgstr "IP cambiada" msgstr "IP cambiada"
#: service/singleton/alertsentinel.go:159 #: service/singleton/alertsentinel.go:167
msgid "Incident" msgid "Incident"
msgstr "Incidente" msgstr "Incidente"
#: service/singleton/alertsentinel.go:169 #: service/singleton/alertsentinel.go:177
msgid "Resolved" msgid "Resolved"
msgstr "Resuelto" msgstr "Resuelto"
#: service/singleton/crontask.go:53 #: service/singleton/crontask.go:54
msgid "Tasks failed to register: [" msgid "Tasks failed to register: ["
msgstr "Las tareas no se pudieron registrar: [" msgstr "Las tareas no se pudieron registrar: ["
#: service/singleton/crontask.go:60 #: service/singleton/crontask.go:61
msgid "" msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "" msgstr ""
"] Estas tareas no se ejecutarán correctamente. Corríjalas en el dashboard de " "] Estas tareas no se ejecutarán correctamente. Corríjalas en el dashboard de "
"administración." "administración."
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171 #: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format #, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task" msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "" msgstr ""
"[Tarea fallida] %s: el servidor %s está fuera de línea y no puede ejecutar " "[Tarea fallida] %s: el servidor %s está fuera de línea y no puede ejecutar "
"la tarea" "la tarea"
#: service/singleton/servicesentinel.go:439 #: service/singleton/servicesentinel.go:468
#, c-format #, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s" msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[Latencia] %s %2f > %2f, Reportado por: %s" msgstr "[Latencia] %s %2f > %2f, Reportado por: %s"
#: service/singleton/servicesentinel.go:446 #: service/singleton/servicesentinel.go:475
#, c-format #, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s" msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[Latencia] %s %2f < %2f, Reportado por: %s" msgstr "[Latencia] %s %2f < %2f, Reportado por: %s"
#: service/singleton/servicesentinel.go:472 #: service/singleton/servicesentinel.go:501
#, c-format #, c-format
msgid "[%s] %s Reporter: %s, Error: %s" msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s Reportado por: %s, Error: %s" msgstr "[%s] %s Reportado por: %s, Error: %s"
#: service/singleton/servicesentinel.go:515 #: service/singleton/servicesentinel.go:544
#, c-format #, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "" msgstr ""
"[TLS] Error al obtener información del certificado, Reportado por: %s, Error:" "[TLS] Error al obtener información del certificado, Reportado por: %s, "
" %s" "Error: %s"
#: service/singleton/servicesentinel.go:555 #: service/singleton/servicesentinel.go:584
#, c-format #, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s" msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "" msgstr ""
"El certificado TLS expirará en los próximos siete días. Fecha de expiración: " "El certificado TLS expirará en los próximos siete días. Fecha de expiración: "
"%s" "%s"
#: service/singleton/servicesentinel.go:568 #: service/singleton/servicesentinel.go:597
#, c-format #, c-format
msgid "" msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -215,18 +256,22 @@ msgstr ""
"El certificado TLS ha cambiado. Antiguo: emisor %s, expira en %s; Nuevo: " "El certificado TLS ha cambiado. Antiguo: emisor %s, expira en %s; Nuevo: "
"emisor %s, expira en %s" "emisor %s, expira en %s"
#: service/singleton/servicesentinel.go:604 #: service/singleton/servicesentinel.go:633
msgid "No Data" msgid "No Data"
msgstr "Sin datos" msgstr "Sin datos"
#: service/singleton/servicesentinel.go:606 #: service/singleton/servicesentinel.go:635
msgid "Good" msgid "Good"
msgstr "Bueno" msgstr "Bueno"
#: service/singleton/servicesentinel.go:608 #: service/singleton/servicesentinel.go:637
msgid "Low Availability" msgid "Low Availability"
msgstr "Baja disponibilidad" msgstr "Baja disponibilidad"
#: service/singleton/servicesentinel.go:610 #: service/singleton/servicesentinel.go:639
msgid "Down" msgid "Down"
msgstr "Fallo" msgstr "Fallo"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n" "POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-08 13:27+0000\n" "PO-Revision-Date: 2024-12-22 04:33+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n" "Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/" "Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
"projects/nezha/nezha-dashboard/zh_Hans/>\n" "projects/nezha/nezha-dashboard/zh_Hans/>\n"
@ -17,188 +17,228 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.9-dev\n" "X-Generator: Weblate 5.10-dev\n"
#: cmd/dashboard/controller/alertrule.go:100 #: cmd/dashboard/controller/alertrule.go:103
#, c-format #, c-format
msgid "alert id %d does not exist" msgid "alert id %d does not exist"
msgstr "告警 ID %d 不存在" msgstr "告警 ID %d 不存在"
#: cmd/dashboard/controller/alertrule.go:107
#: cmd/dashboard/controller/alertrule.go:155 #: cmd/dashboard/controller/alertrule.go:155
#: cmd/dashboard/controller/alertrule.go:175
#: cmd/dashboard/controller/controller.go:211
#: cmd/dashboard/controller/cron.go:57 cmd/dashboard/controller/cron.go:123
#: cmd/dashboard/controller/cron.go:135 cmd/dashboard/controller/cron.go:194
#: cmd/dashboard/controller/cron.go:223 cmd/dashboard/controller/ddns.go:130
#: cmd/dashboard/controller/ddns.go:191 cmd/dashboard/controller/fm.go:43
#: cmd/dashboard/controller/nat.go:58 cmd/dashboard/controller/nat.go:109
#: cmd/dashboard/controller/nat.go:120 cmd/dashboard/controller/nat.go:159
#: cmd/dashboard/controller/notification.go:111
#: cmd/dashboard/controller/notification.go:165
#: cmd/dashboard/controller/notification_group.go:76
#: cmd/dashboard/controller/notification_group.go:152
#: cmd/dashboard/controller/notification_group.go:164
#: cmd/dashboard/controller/notification_group.go:233
#: cmd/dashboard/controller/server.go:64 cmd/dashboard/controller/server.go:76
#: cmd/dashboard/controller/server.go:127
#: cmd/dashboard/controller/server.go:191
#: cmd/dashboard/controller/server_group.go:75
#: cmd/dashboard/controller/server_group.go:150
#: cmd/dashboard/controller/server_group.go:229
#: cmd/dashboard/controller/service.go:272
#: cmd/dashboard/controller/service.go:343
#: cmd/dashboard/controller/service.go:370
#: cmd/dashboard/controller/terminal.go:41
msgid "permission denied"
msgstr "权限不够"
#: cmd/dashboard/controller/alertrule.go:183
msgid "duration need to be at least 3" msgid "duration need to be at least 3"
msgstr "duration 至少为 3" msgstr "duration 至少为 3"
#: cmd/dashboard/controller/alertrule.go:159 #: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1" msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval 至少为 1" msgstr "cycle_interval 至少为 1"
#: cmd/dashboard/controller/alertrule.go:162 #: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set" msgid "cycle_start is not set"
msgstr "cycle_start 未设置" msgstr "cycle_start 未设置"
#: cmd/dashboard/controller/alertrule.go:165 #: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value" msgid "cycle_start is a future value"
msgstr "cycle_start 是未来值" msgstr "cycle_start 是未来值"
#: cmd/dashboard/controller/alertrule.go:170 #: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule" msgid "need to configure at least a single rule"
msgstr "需要至少定义一条规则" msgstr "需要至少定义一条规则"
#: cmd/dashboard/controller/controller.go:195 #: cmd/dashboard/controller/controller.go:205
#: cmd/dashboard/controller/server_group.go:162
#: cmd/dashboard/controller/service.go:95 cmd/dashboard/controller/user.go:26
#: cmd/dashboard/controller/user.go:53
msgid "unauthorized"
msgstr "未授权"
#: cmd/dashboard/controller/controller.go:228
msgid "database error" msgid "database error"
msgstr "数据库错误" msgstr "数据库错误"
#: cmd/dashboard/controller/cron.go:63 cmd/dashboard/controller/cron.go:122 #: cmd/dashboard/controller/cron.go:74 cmd/dashboard/controller/cron.go:148
msgid "scheduled tasks cannot be triggered by alarms" msgid "scheduled tasks cannot be triggered by alarms"
msgstr "计划任务不能被告警触发" msgstr "计划任务不能被告警触发"
#: cmd/dashboard/controller/cron.go:161 #: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format #, c-format
msgid "task id %d does not exist" msgid "task id %d does not exist"
msgstr "任务 id %d 不存在" msgstr "任务 id %d 不存在"
#: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:120 #: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:121
msgid "the retry count must be an integer between 1 and 10" msgid "the retry count must be an integer between 1 and 10"
msgstr "重试次数必须为大于 1 且不超过 10 的整数" msgstr "重试次数必须为大于 1 且不超过 10 的整数"
#: cmd/dashboard/controller/ddns.go:79 cmd/dashboard/controller/ddns.go:148 #: cmd/dashboard/controller/ddns.go:80 cmd/dashboard/controller/ddns.go:153
msgid "error parsing %s: %v" msgid "error parsing %s: %v"
msgstr "解析 %s 时发生错误:%v" msgstr "解析 %s 时发生错误:%v"
#: cmd/dashboard/controller/ddns.go:125 cmd/dashboard/controller/nat.go:95 #: cmd/dashboard/controller/ddns.go:126 cmd/dashboard/controller/nat.go:116
#, c-format #, c-format
msgid "profile id %d does not exist" msgid "profile id %d does not exist"
msgstr "配置 id %d 不存在" msgstr "配置 id %d 不存在"
#: cmd/dashboard/controller/fm.go:45 cmd/dashboard/controller/terminal.go:43 #: cmd/dashboard/controller/fm.go:39 cmd/dashboard/controller/terminal.go:37
msgid "server not found or not connected" msgid "server not found or not connected"
msgstr "服务器未找到或仍未连接" msgstr "服务器未找到或仍未连接"
#: cmd/dashboard/controller/notification.go:67 #: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:125 #: cmd/dashboard/controller/notification.go:130
msgid "a test message" msgid "a test message"
msgstr "一条测试信息" msgstr "一条测试信息"
#: cmd/dashboard/controller/notification.go:106 #: cmd/dashboard/controller/notification.go:107
#, c-format #, c-format
msgid "notification id %d does not exist" msgid "notification id %d does not exist"
msgstr "通知方式 id %d 不存在" msgstr "通知方式 id %d 不存在"
#: cmd/dashboard/controller/notification_group.go:80 #: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:142 #: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id" msgid "have invalid notification id"
msgstr "通知方式 id 无效" msgstr "通知方式 id 无效"
#: cmd/dashboard/controller/notification_group.go:131 #: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:130 #: cmd/dashboard/controller/server_group.go:158
#, c-format #, c-format
msgid "group id %d does not exist" msgid "group id %d does not exist"
msgstr "组 id %d 不存在" msgstr "组 id %d 不存在"
#: cmd/dashboard/controller/server.go:60 #: cmd/dashboard/controller/server.go:72
#, c-format #, c-format
msgid "server id %d does not exist" msgid "server id %d does not exist"
msgstr "服务器 id %d 不存在" msgstr "服务器 id %d 不存在"
#: cmd/dashboard/controller/server_group.go:78 #: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:139 #: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id" msgid "have invalid server id"
msgstr "服务器 id 无效" msgstr "服务器 id 无效"
#: cmd/dashboard/controller/service.go:79 #: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:155 #: cmd/dashboard/controller/service.go:164
msgid "server not found" msgid "server not found"
msgstr "未找到服务器" msgstr "未找到服务器"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23 #: cmd/dashboard/controller/service.go:268
msgid "unauthorized"
msgstr "未授权"
#: cmd/dashboard/controller/service.go:247
#, c-format #, c-format
msgid "service id %d does not exist" msgid "service id %d does not exist"
msgstr "服务 id %d 不存在" msgstr "服务 id %d 不存在"
#: cmd/dashboard/controller/user.go:66 #: cmd/dashboard/controller/user.go:58
msgid "incorrect password"
msgstr "密码错误"
#: cmd/dashboard/controller/user.go:110
msgid "password length must be greater than 6" msgid "password length must be greater than 6"
msgstr "密码长度必须大于 6" msgstr "密码长度必须大于 6"
#: cmd/dashboard/controller/user.go:69 #: cmd/dashboard/controller/user.go:113
msgid "username can't be empty" msgid "username can't be empty"
msgstr "用户名不能为空" msgstr "用户名不能为空"
#: service/rpc/io_stream.go:122 #: cmd/dashboard/controller/user.go:152
msgid "can't delete yourself"
msgstr "无法删除自己"
#: service/rpc/io_stream.go:128
msgid "timeout: no connection established" msgid "timeout: no connection established"
msgstr "超时:无连接建立" msgstr "超时:无连接建立"
#: service/rpc/io_stream.go:125 #: service/rpc/io_stream.go:131
msgid "timeout: user connection not established" msgid "timeout: user connection not established"
msgstr "超时:用户连接未建立" msgstr "超时:用户连接未建立"
#: service/rpc/io_stream.go:128 #: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established" msgid "timeout: agent connection not established"
msgstr "超时agent 连接未建立" msgstr "超时agent 连接未建立"
#: service/rpc/nezha.go:58 #: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully" msgid "Scheduled Task Executed Successfully"
msgstr "计划任务执行成功" msgstr "计划任务执行成功"
#: service/rpc/nezha.go:62 #: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed" msgid "Scheduled Task Executed Failed"
msgstr "计划任务执行失败" msgstr "计划任务执行失败"
#: service/rpc/nezha.go:217 #: service/rpc/nezha.go:245
msgid "IP Changed" msgid "IP Changed"
msgstr "IP 变更" msgstr "IP 变更"
#: service/singleton/alertsentinel.go:159 #: service/singleton/alertsentinel.go:167
msgid "Incident" msgid "Incident"
msgstr "事件" msgstr "事件"
#: service/singleton/alertsentinel.go:169 #: service/singleton/alertsentinel.go:177
msgid "Resolved" msgid "Resolved"
msgstr "恢复" msgstr "恢复"
#: service/singleton/crontask.go:53 #: service/singleton/crontask.go:54
msgid "Tasks failed to register: [" msgid "Tasks failed to register: ["
msgstr "注册失败的任务:[" msgstr "注册失败的任务:["
#: service/singleton/crontask.go:60 #: service/singleton/crontask.go:61
msgid "" msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "] 这些任务将无法正常执行,请进入后台重新修改保存。" msgstr "] 这些任务将无法正常执行,请进入后台重新修改保存。"
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171 #: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format #, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task" msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "[任务失败] %s服务器 %s 离线,无法执行" msgstr "[任务失败] %s服务器 %s 离线,无法执行"
#: service/singleton/servicesentinel.go:439 #: service/singleton/servicesentinel.go:468
#, c-format #, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s" msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[延迟告警] %s %2f > %2f报告服务: %s" msgstr "[延迟告警] %s %2f > %2f报告服务: %s"
#: service/singleton/servicesentinel.go:446 #: service/singleton/servicesentinel.go:475
#, c-format #, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s" msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[延迟告警] %s %2f < %2f报告服务: %s" msgstr "[延迟告警] %s %2f < %2f报告服务: %s"
#: service/singleton/servicesentinel.go:472 #: service/singleton/servicesentinel.go:501
#, c-format #, c-format
msgid "[%s] %s Reporter: %s, Error: %s" msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s 报告服务:%s错误信息%s" msgstr "[%s] %s 报告服务:%s错误信息%s"
#: service/singleton/servicesentinel.go:515 #: service/singleton/servicesentinel.go:544
#, c-format #, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] 获取证书信息失败,报告服务:%s错误信息%s" msgstr "[TLS] 获取证书信息失败,报告服务:%s错误信息%s"
#: service/singleton/servicesentinel.go:555 #: service/singleton/servicesentinel.go:584
#, c-format #, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s" msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "TLS 证书将在 7 天内过期。过期时间为:%s" msgstr "TLS 证书将在 7 天内过期。过期时间为:%s"
#: service/singleton/servicesentinel.go:568 #: service/singleton/servicesentinel.go:597
#, c-format #, c-format
msgid "" msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -206,18 +246,22 @@ msgid ""
msgstr "" msgstr ""
"TLS 证书发生更改,旧值:颁发者 %s过期日 %s新值颁发者 %s过期日 %s" "TLS 证书发生更改,旧值:颁发者 %s过期日 %s新值颁发者 %s过期日 %s"
#: service/singleton/servicesentinel.go:604 #: service/singleton/servicesentinel.go:633
msgid "No Data" msgid "No Data"
msgstr "无数据" msgstr "无数据"
#: service/singleton/servicesentinel.go:606 #: service/singleton/servicesentinel.go:635
msgid "Good" msgid "Good"
msgstr "正常" msgstr "正常"
#: service/singleton/servicesentinel.go:608 #: service/singleton/servicesentinel.go:637
msgid "Low Availability" msgid "Low Availability"
msgstr "低可用" msgstr "低可用"
#: service/singleton/servicesentinel.go:610 #: service/singleton/servicesentinel.go:639
msgid "Down" msgid "Down"
msgstr "故障" msgstr "故障"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr "用户 ID 未指定"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n" "POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-08 13:27+0000\n" "PO-Revision-Date: 2024-12-22 04:33+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n" "Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/" "Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/"
"projects/nezha/nezha-dashboard/zh_Hant/>\n" "projects/nezha/nezha-dashboard/zh_Hant/>\n"
@ -17,188 +17,228 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.9-dev\n" "X-Generator: Weblate 5.10-dev\n"
#: cmd/dashboard/controller/alertrule.go:100 #: cmd/dashboard/controller/alertrule.go:103
#, c-format #, c-format
msgid "alert id %d does not exist" msgid "alert id %d does not exist"
msgstr "告警 ID %d 不存在" msgstr "告警 ID %d 不存在"
#: cmd/dashboard/controller/alertrule.go:107
#: cmd/dashboard/controller/alertrule.go:155 #: cmd/dashboard/controller/alertrule.go:155
#: cmd/dashboard/controller/alertrule.go:175
#: cmd/dashboard/controller/controller.go:211
#: cmd/dashboard/controller/cron.go:57 cmd/dashboard/controller/cron.go:123
#: cmd/dashboard/controller/cron.go:135 cmd/dashboard/controller/cron.go:194
#: cmd/dashboard/controller/cron.go:223 cmd/dashboard/controller/ddns.go:130
#: cmd/dashboard/controller/ddns.go:191 cmd/dashboard/controller/fm.go:43
#: cmd/dashboard/controller/nat.go:58 cmd/dashboard/controller/nat.go:109
#: cmd/dashboard/controller/nat.go:120 cmd/dashboard/controller/nat.go:159
#: cmd/dashboard/controller/notification.go:111
#: cmd/dashboard/controller/notification.go:165
#: cmd/dashboard/controller/notification_group.go:76
#: cmd/dashboard/controller/notification_group.go:152
#: cmd/dashboard/controller/notification_group.go:164
#: cmd/dashboard/controller/notification_group.go:233
#: cmd/dashboard/controller/server.go:64 cmd/dashboard/controller/server.go:76
#: cmd/dashboard/controller/server.go:127
#: cmd/dashboard/controller/server.go:191
#: cmd/dashboard/controller/server_group.go:75
#: cmd/dashboard/controller/server_group.go:150
#: cmd/dashboard/controller/server_group.go:229
#: cmd/dashboard/controller/service.go:272
#: cmd/dashboard/controller/service.go:343
#: cmd/dashboard/controller/service.go:370
#: cmd/dashboard/controller/terminal.go:41
msgid "permission denied"
msgstr "權限不夠"
#: cmd/dashboard/controller/alertrule.go:183
msgid "duration need to be at least 3" msgid "duration need to be at least 3"
msgstr "duration 至少為 3" msgstr "duration 至少為 3"
#: cmd/dashboard/controller/alertrule.go:159 #: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1" msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval 至少為 1" msgstr "cycle_interval 至少為 1"
#: cmd/dashboard/controller/alertrule.go:162 #: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set" msgid "cycle_start is not set"
msgstr "cycle_start 未設定" msgstr "cycle_start 未設定"
#: cmd/dashboard/controller/alertrule.go:165 #: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value" msgid "cycle_start is a future value"
msgstr "cycle_start 是未來值" msgstr "cycle_start 是未來值"
#: cmd/dashboard/controller/alertrule.go:170 #: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule" msgid "need to configure at least a single rule"
msgstr "需要至少定義一條規則" msgstr "需要至少定義一條規則"
#: cmd/dashboard/controller/controller.go:195 #: cmd/dashboard/controller/controller.go:205
#: cmd/dashboard/controller/server_group.go:162
#: cmd/dashboard/controller/service.go:95 cmd/dashboard/controller/user.go:26
#: cmd/dashboard/controller/user.go:53
msgid "unauthorized"
msgstr "未授權"
#: cmd/dashboard/controller/controller.go:228
msgid "database error" msgid "database error"
msgstr "資料庫錯誤" msgstr "資料庫錯誤"
#: cmd/dashboard/controller/cron.go:63 cmd/dashboard/controller/cron.go:122 #: cmd/dashboard/controller/cron.go:74 cmd/dashboard/controller/cron.go:148
msgid "scheduled tasks cannot be triggered by alarms" msgid "scheduled tasks cannot be triggered by alarms"
msgstr "排程任務不能被告警觸發" msgstr "排程任務不能被告警觸發"
#: cmd/dashboard/controller/cron.go:161 #: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format #, c-format
msgid "task id %d does not exist" msgid "task id %d does not exist"
msgstr "任務 id %d 不存在" msgstr "任務 id %d 不存在"
#: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:120 #: cmd/dashboard/controller/ddns.go:56 cmd/dashboard/controller/ddns.go:121
msgid "the retry count must be an integer between 1 and 10" msgid "the retry count must be an integer between 1 and 10"
msgstr "重試次數必須為大於 1 且不超過 10 的整數" msgstr "重試次數必須為大於 1 且不超過 10 的整數"
#: cmd/dashboard/controller/ddns.go:79 cmd/dashboard/controller/ddns.go:148 #: cmd/dashboard/controller/ddns.go:80 cmd/dashboard/controller/ddns.go:153
msgid "error parsing %s: %v" msgid "error parsing %s: %v"
msgstr "解析 %s 時發生錯誤:%v" msgstr "解析 %s 時發生錯誤:%v"
#: cmd/dashboard/controller/ddns.go:125 cmd/dashboard/controller/nat.go:95 #: cmd/dashboard/controller/ddns.go:126 cmd/dashboard/controller/nat.go:116
#, c-format #, c-format
msgid "profile id %d does not exist" msgid "profile id %d does not exist"
msgstr "配置 id %d 不存在" msgstr "配置 id %d 不存在"
#: cmd/dashboard/controller/fm.go:45 cmd/dashboard/controller/terminal.go:43 #: cmd/dashboard/controller/fm.go:39 cmd/dashboard/controller/terminal.go:37
msgid "server not found or not connected" msgid "server not found or not connected"
msgstr "伺服器未找到或仍未連線" msgstr "伺服器未找到或仍未連線"
#: cmd/dashboard/controller/notification.go:67 #: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:125 #: cmd/dashboard/controller/notification.go:130
msgid "a test message" msgid "a test message"
msgstr "一條測試資訊" msgstr "一條測試資訊"
#: cmd/dashboard/controller/notification.go:106 #: cmd/dashboard/controller/notification.go:107
#, c-format #, c-format
msgid "notification id %d does not exist" msgid "notification id %d does not exist"
msgstr "通知方式 id %d 不存在" msgstr "通知方式 id %d 不存在"
#: cmd/dashboard/controller/notification_group.go:80 #: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:142 #: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id" msgid "have invalid notification id"
msgstr "通知方式 id 無效" msgstr "通知方式 id 無效"
#: cmd/dashboard/controller/notification_group.go:131 #: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:130 #: cmd/dashboard/controller/server_group.go:158
#, c-format #, c-format
msgid "group id %d does not exist" msgid "group id %d does not exist"
msgstr "組 id %d 不存在" msgstr "組 id %d 不存在"
#: cmd/dashboard/controller/server.go:60 #: cmd/dashboard/controller/server.go:72
#, c-format #, c-format
msgid "server id %d does not exist" msgid "server id %d does not exist"
msgstr "伺服器 id %d 不存在" msgstr "伺服器 id %d 不存在"
#: cmd/dashboard/controller/server_group.go:78 #: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:139 #: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id" msgid "have invalid server id"
msgstr "伺服器 id 無效" msgstr "伺服器 id 無效"
#: cmd/dashboard/controller/service.go:79 #: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:155 #: cmd/dashboard/controller/service.go:164
msgid "server not found" msgid "server not found"
msgstr "未找到伺服器" msgstr "未找到伺服器"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23 #: cmd/dashboard/controller/service.go:268
msgid "unauthorized"
msgstr "未授權"
#: cmd/dashboard/controller/service.go:247
#, c-format #, c-format
msgid "service id %d does not exist" msgid "service id %d does not exist"
msgstr "服務 id %d 不存在" msgstr "服務 id %d 不存在"
#: cmd/dashboard/controller/user.go:66 #: cmd/dashboard/controller/user.go:58
msgid "incorrect password"
msgstr "密碼錯誤"
#: cmd/dashboard/controller/user.go:110
msgid "password length must be greater than 6" msgid "password length must be greater than 6"
msgstr "密碼長度必須大於 6" msgstr "密碼長度必須大於 6"
#: cmd/dashboard/controller/user.go:69 #: cmd/dashboard/controller/user.go:113
msgid "username can't be empty" msgid "username can't be empty"
msgstr "使用者名稱不能為空" msgstr "使用者名稱不能為空"
#: service/rpc/io_stream.go:122 #: cmd/dashboard/controller/user.go:152
msgid "can't delete yourself"
msgstr "無法刪除自己"
#: service/rpc/io_stream.go:128
msgid "timeout: no connection established" msgid "timeout: no connection established"
msgstr "超時:無連線建立" msgstr "超時:無連線建立"
#: service/rpc/io_stream.go:125 #: service/rpc/io_stream.go:131
msgid "timeout: user connection not established" msgid "timeout: user connection not established"
msgstr "超時:使用者連線未建立" msgstr "超時:使用者連線未建立"
#: service/rpc/io_stream.go:128 #: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established" msgid "timeout: agent connection not established"
msgstr "超時agent 連線未建立" msgstr "超時agent 連線未建立"
#: service/rpc/nezha.go:58 #: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully" msgid "Scheduled Task Executed Successfully"
msgstr "排程任務執行成功" msgstr "排程任務執行成功"
#: service/rpc/nezha.go:62 #: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed" msgid "Scheduled Task Executed Failed"
msgstr "排程任務執行失敗" msgstr "排程任務執行失敗"
#: service/rpc/nezha.go:217 #: service/rpc/nezha.go:245
msgid "IP Changed" msgid "IP Changed"
msgstr "IP 變更" msgstr "IP 變更"
#: service/singleton/alertsentinel.go:159 #: service/singleton/alertsentinel.go:167
msgid "Incident" msgid "Incident"
msgstr "事件" msgstr "事件"
#: service/singleton/alertsentinel.go:169 #: service/singleton/alertsentinel.go:177
msgid "Resolved" msgid "Resolved"
msgstr "恢復" msgstr "恢復"
#: service/singleton/crontask.go:53 #: service/singleton/crontask.go:54
msgid "Tasks failed to register: [" msgid "Tasks failed to register: ["
msgstr "註冊失敗的任務:[" msgstr "註冊失敗的任務:["
#: service/singleton/crontask.go:60 #: service/singleton/crontask.go:61
msgid "" msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard." "] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "] 這些任務將無法正常執行,請進入後台重新修改儲存。" msgstr "] 這些任務將無法正常執行,請進入後台重新修改儲存。"
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171 #: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format #, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task" msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "[任務失敗] %s伺服器 %s 離線,無法執行" msgstr "[任務失敗] %s伺服器 %s 離線,無法執行"
#: service/singleton/servicesentinel.go:439 #: service/singleton/servicesentinel.go:468
#, c-format #, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s" msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[延遲告警] %s %2f > %2f報告服務: %s" msgstr "[延遲告警] %s %2f > %2f報告服務: %s"
#: service/singleton/servicesentinel.go:446 #: service/singleton/servicesentinel.go:475
#, c-format #, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s" msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[延遲告警] %s %2f < %2f報告服務: %s" msgstr "[延遲告警] %s %2f < %2f報告服務: %s"
#: service/singleton/servicesentinel.go:472 #: service/singleton/servicesentinel.go:501
#, c-format #, c-format
msgid "[%s] %s Reporter: %s, Error: %s" msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s 報告服務:%s錯誤資訊%s" msgstr "[%s] %s 報告服務:%s錯誤資訊%s"
#: service/singleton/servicesentinel.go:515 #: service/singleton/servicesentinel.go:544
#, c-format #, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s" msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] 獲取證書資訊失敗,報告服務:%s錯誤資訊%s" msgstr "[TLS] 獲取證書資訊失敗,報告服務:%s錯誤資訊%s"
#: service/singleton/servicesentinel.go:555 #: service/singleton/servicesentinel.go:584
#, c-format #, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s" msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "TLS 證書將在 7 天內過期。過期時間為:%s" msgstr "TLS 證書將在 7 天內過期。過期時間為:%s"
#: service/singleton/servicesentinel.go:568 #: service/singleton/servicesentinel.go:597
#, c-format #, c-format
msgid "" msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, " "TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -206,18 +246,22 @@ msgid ""
msgstr "" msgstr ""
"TLS 證書發生更改,舊值:頒發者 %s過期日 %s新值頒發者 %s過期日 %s" "TLS 證書發生更改,舊值:頒發者 %s過期日 %s新值頒發者 %s過期日 %s"
#: service/singleton/servicesentinel.go:604 #: service/singleton/servicesentinel.go:633
msgid "No Data" msgid "No Data"
msgstr "無資料" msgstr "無資料"
#: service/singleton/servicesentinel.go:606 #: service/singleton/servicesentinel.go:635
msgid "Good" msgid "Good"
msgstr "正常" msgstr "正常"
#: service/singleton/servicesentinel.go:608 #: service/singleton/servicesentinel.go:637
msgid "Low Availability" msgid "Low Availability"
msgstr "低可用" msgstr "低可用"
#: service/singleton/servicesentinel.go:610 #: service/singleton/servicesentinel.go:639
msgid "Down" msgid "Down"
msgstr "故障" msgstr "故障"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr "使用者 ID 未指定"

View File

@ -152,3 +152,15 @@ func MapValuesToSlice[Map ~map[K]V, K comparable, V any](m Map) []V {
s := make([]V, 0, len(m)) s := make([]V, 0, len(m))
return slices.AppendSeq(s, maps.Values(m)) return slices.AppendSeq(s, maps.Values(m))
} }
func Unique[T comparable](s []T) []T {
m := make(map[T]struct{})
ret := make([]T, 0, len(s))
for _, v := range s {
if _, ok := m[v]; !ok {
m[v] = struct{}{}
ret = append(ret, v)
}
}
return ret
}

View File

@ -134,3 +134,49 @@ func TestBinaryToIPString(t *testing.T) {
} }
} }
} }
func TestUnique(t *testing.T) {
cases := []struct {
input []string
output []string
}{
{
input: []string{"a", "b", "c", "a", "b", "c"},
output: []string{"a", "b", "c"},
},
{
input: []string{"a", "b", "c"},
output: []string{"a", "b", "c"},
},
{
input: []string{"a", "a", "a"},
output: []string{"a"},
},
{
input: []string{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"},
output: []string{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"},
},
{
input: []string{"a", "b", "c", "d", "e", "f", "g", "h", "i", "a"},
output: []string{"a", "b", "c", "d", "e", "f", "g", "h", "i"},
},
{
input: []string{"a", "b", "c", "d", "e", "f", "g", "h", "i", "a", "b", "c", "d", "e", "f", "g", "h", "i"},
output: []string{"a", "b", "c", "d", "e", "f", "g", "h", "i"},
},
{
input: []string{},
output: []string{},
},
{
input: []string{"a"},
output: []string{"a"},
},
}
for _, c := range cases {
if !reflect.DeepEqual(Unique(c.input), c.output) {
t.Fatalf("Expected %v, but got %v", c.output, Unique(c.input))
}
}
}