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/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/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/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/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/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/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>

View File

@ -20,8 +20,12 @@ import (
// @Success 200 {object} model.CommonResponse[model.SettingResponse]
// @Router /setting [get]
func listConfig(c *gin.Context) (model.SettingResponse, error) {
_, isMember := c.Get(model.CtxKeyAuthorizedUser)
authorized := isMember // TODO || isViewPasswordVerfied
u, authorized := c.Get(model.CtxKeyAuthorizedUser)
var isAdmin bool
if authorized {
user := u.(*model.User)
isAdmin = user.Role == model.RoleAdmin
}
conf := model.SettingResponse{
Config: *singleton.Conf,
@ -29,7 +33,7 @@ func listConfig(c *gin.Context) (model.SettingResponse, error) {
FrontendTemplates: singleton.FrontendTemplates,
}
if !authorized {
if !authorized || !isAdmin {
conf = model.SettingResponse{
Config: model.Config{
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)
return conf, nil

View File

@ -8,6 +8,7 @@ import (
"golang.org/x/crypto/bcrypt"
"github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
"github.com/nezhahq/nezha/service/singleton"
)
@ -112,10 +113,13 @@ func createUser(c *gin.Context) (uint64, error) {
if uf.Username == "" {
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
u.Username = uf.Username
u.Role = model.RoleMember
u.Role = uf.Role
hash, err := bcrypt.GenerateFromPassword([]byte(uf.Password), bcrypt.DefaultCost)
if err != nil {
@ -205,7 +209,7 @@ func batchBlockOnlineUser(c *gin.Context) (any, error) {
return nil, err
}
if err := singleton.BlockByIPs(list); err != nil {
if err := singleton.BlockByIPs(utils.Unique(list)); err != nil {
return nil, newGormError("%v", err)
}

View File

@ -6,6 +6,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/nezhahq/nezha/model"
"github.com/nezhahq/nezha/pkg/utils"
"github.com/nezhahq/nezha/service/singleton"
)
@ -68,7 +69,7 @@ func batchDeleteBlockedAddress(c *gin.Context) (any, error) {
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)
}

View File

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

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,204 +17,248 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: cmd/dashboard/controller/alertrule.go:100
#: cmd/dashboard/controller/alertrule.go:103
#, c-format
msgid "alert id %d does not exist"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:107
#: 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"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:159
#: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:162
#: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:165
#: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value"
msgstr ""
#: cmd/dashboard/controller/alertrule.go:170
#: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule"
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"
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"
msgstr ""
#: cmd/dashboard/controller/cron.go:161
#: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format
msgid "task id %d does not exist"
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"
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"
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
msgid "profile id %d does not exist"
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"
msgstr ""
#: cmd/dashboard/controller/notification.go:67
#: cmd/dashboard/controller/notification.go:125
#: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:130
msgid "a test message"
msgstr ""
#: cmd/dashboard/controller/notification.go:106
#: cmd/dashboard/controller/notification.go:107
#, c-format
msgid "notification id %d does not exist"
msgstr ""
#: cmd/dashboard/controller/notification_group.go:80
#: cmd/dashboard/controller/notification_group.go:142
#: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id"
msgstr ""
#: cmd/dashboard/controller/notification_group.go:131
#: cmd/dashboard/controller/server_group.go:130
#: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:158
#, c-format
msgid "group id %d does not exist"
msgstr ""
#: cmd/dashboard/controller/server.go:60
#: cmd/dashboard/controller/server.go:72
#, c-format
msgid "server id %d does not exist"
msgstr ""
#: cmd/dashboard/controller/server_group.go:78
#: cmd/dashboard/controller/server_group.go:139
#: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id"
msgstr ""
#: cmd/dashboard/controller/service.go:79
#: cmd/dashboard/controller/service.go:155
#: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:164
msgid "server not found"
msgstr ""
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23
msgid "unauthorized"
msgstr ""
#: cmd/dashboard/controller/service.go:247
#: cmd/dashboard/controller/service.go:268
#, c-format
msgid "service id %d does not exist"
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"
msgstr ""
#: cmd/dashboard/controller/user.go:69
#: cmd/dashboard/controller/user.go:113
msgid "username can't be empty"
msgstr ""
#: service/rpc/io_stream.go:122
msgid "timeout: no connection established"
msgstr ""
#: service/rpc/io_stream.go:125
msgid "timeout: user connection not established"
#: cmd/dashboard/controller/user.go:152
msgid "can't delete yourself"
msgstr ""
#: 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"
msgstr ""
#: service/rpc/nezha.go:58
#: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully"
msgstr ""
#: service/rpc/nezha.go:62
#: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed"
msgstr ""
#: service/rpc/nezha.go:217
#: service/rpc/nezha.go:245
msgid "IP Changed"
msgstr ""
#: service/singleton/alertsentinel.go:159
#: service/singleton/alertsentinel.go:167
msgid "Incident"
msgstr ""
#: service/singleton/alertsentinel.go:169
#: service/singleton/alertsentinel.go:177
msgid "Resolved"
msgstr ""
#: service/singleton/crontask.go:53
#: service/singleton/crontask.go:54
msgid "Tasks failed to register: ["
msgstr ""
#: service/singleton/crontask.go:60
#: service/singleton/crontask.go:61
msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr ""
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171
#: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr ""
#: service/singleton/servicesentinel.go:439
#: service/singleton/servicesentinel.go:468
#, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr ""
#: service/singleton/servicesentinel.go:446
#: service/singleton/servicesentinel.go:475
#, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr ""
#: service/singleton/servicesentinel.go:472
#: service/singleton/servicesentinel.go:501
#, c-format
msgid "[%s] %s Reporter: %s, Error: %s"
msgstr ""
#: service/singleton/servicesentinel.go:515
#: service/singleton/servicesentinel.go:544
#, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr ""
#: service/singleton/servicesentinel.go:555
#: service/singleton/servicesentinel.go:584
#, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr ""
#: service/singleton/servicesentinel.go:568
#: service/singleton/servicesentinel.go:597
#, c-format
msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
"expires at %s"
msgstr ""
#: service/singleton/servicesentinel.go:604
#: service/singleton/servicesentinel.go:633
msgid "No Data"
msgstr ""
#: service/singleton/servicesentinel.go:606
#: service/singleton/servicesentinel.go:635
msgid "Good"
msgstr ""
#: service/singleton/servicesentinel.go:608
#: service/singleton/servicesentinel.go:637
msgid "Low Availability"
msgstr ""
#: service/singleton/servicesentinel.go:610
#: service/singleton/servicesentinel.go:639
msgid "Down"
msgstr ""
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr ""

View File

@ -7,11 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: German <https://hosted.weblate.org/projects/nezha/"
"nezha-dashboard/de/>\n"
"Language-Team: German <https://hosted.weblate.org/projects/nezha/nezha-"
"dashboard/de/>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,190 +19,230 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.9\n"
#: cmd/dashboard/controller/alertrule.go:100
#: cmd/dashboard/controller/alertrule.go:103
#, c-format
msgid "alert id %d does not exist"
msgstr "benachrichtigungs ID %d existiert nicht"
#: cmd/dashboard/controller/alertrule.go:107
#: 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"
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"
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"
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"
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"
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"
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"
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
msgid "task id %d does not exist"
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"
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"
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
msgid "profile id %d does not exist"
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"
msgstr "server nicht gefunden oder nicht verbunden"
#: cmd/dashboard/controller/notification.go:67
#: cmd/dashboard/controller/notification.go:125
#: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:130
msgid "a test message"
msgstr "testnachricht"
#: cmd/dashboard/controller/notification.go:106
#: cmd/dashboard/controller/notification.go:107
#, c-format
msgid "notification id %d does not exist"
msgstr "benachrichtigung ID %d existiert nicht"
#: cmd/dashboard/controller/notification_group.go:80
#: cmd/dashboard/controller/notification_group.go:142
#: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id"
msgstr "haben ungültige Benachrichtigungs ID"
#: cmd/dashboard/controller/notification_group.go:131
#: cmd/dashboard/controller/server_group.go:130
#: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:158
#, c-format
msgid "group id %d does not exist"
msgstr "gruppen ID %d existiert nicht"
#: cmd/dashboard/controller/server.go:60
#: cmd/dashboard/controller/server.go:72
#, c-format
msgid "server id %d does not exist"
msgstr "server ID %d existiert nicht"
#: cmd/dashboard/controller/server_group.go:78
#: cmd/dashboard/controller/server_group.go:139
#: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id"
msgstr "haben ungültige Server ID"
#: cmd/dashboard/controller/service.go:79
#: cmd/dashboard/controller/service.go:155
#: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:164
msgid "server not found"
msgstr "server nicht gefunden"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23
msgid "unauthorized"
msgstr "nicht autorisiert"
#: cmd/dashboard/controller/service.go:247
#: cmd/dashboard/controller/service.go:268
#, c-format
msgid "service id %d does not exist"
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"
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"
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"
msgstr "timeout: Keine Verbindung hergestellt"
#: service/rpc/io_stream.go:125
#: service/rpc/io_stream.go:131
msgid "timeout: user connection not established"
msgstr "timeout: Benutzerverbindung nicht etabliert"
#: service/rpc/io_stream.go:128
#: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established"
msgstr "timeout: Agent-Verbindung nicht etabliert"
#: service/rpc/nezha.go:58
#: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully"
msgstr "geplante Aufgabe erfolgreich ausgeführt"
#: service/rpc/nezha.go:62
#: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed"
msgstr "geplante Aufgabe fehlgeschlagen"
#: service/rpc/nezha.go:217
#: service/rpc/nezha.go:245
msgid "IP Changed"
msgstr "IP geändert"
#: service/singleton/alertsentinel.go:159
#: service/singleton/alertsentinel.go:167
msgid "Incident"
msgstr "Vorfall"
#: service/singleton/alertsentinel.go:169
#: service/singleton/alertsentinel.go:177
msgid "Resolved"
msgstr "Gelöst"
#: service/singleton/crontask.go:53
#: service/singleton/crontask.go:54
msgid "Tasks failed to register: ["
msgstr "Aufgaben konnten nicht registriert werden: ["
#: service/singleton/crontask.go:60
#: service/singleton/crontask.go:61
msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr ""
"] Diese Aufgaben werden nicht korrekt ausgeführt. Reparieren Sie diese im "
"Admin-Dashboard."
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171
#: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr ""
"[Aufgabe fehlgeschlagen] %s: Server %s ist offline und kann die Aufgabe "
"nicht ausführen"
#: service/singleton/servicesentinel.go:439
#: service/singleton/servicesentinel.go:468
#, c-format
msgid "[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
msgid "[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
msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s Reporter: %s, Fehler: %s"
#: service/singleton/servicesentinel.go:515
#: service/singleton/servicesentinel.go:544
#, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] Fetch cert info gescheitert, Reporter: %s, Fehler: %s"
#: service/singleton/servicesentinel.go:555
#: service/singleton/servicesentinel.go:584
#, c-format
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"
#: service/singleton/servicesentinel.go:568
#: service/singleton/servicesentinel.go:597
#, c-format
msgid ""
"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 "
"%s, läuft ab bei %s"
#: service/singleton/servicesentinel.go:604
#: service/singleton/servicesentinel.go:633
msgid "No Data"
msgstr "Keine Daten"
#: service/singleton/servicesentinel.go:606
#: service/singleton/servicesentinel.go:635
msgid "Good"
msgstr "Gut"
#: service/singleton/servicesentinel.go:608
#: service/singleton/servicesentinel.go:637
msgid "Low Availability"
msgstr "Niedere Verfügbarkeit"
#: service/singleton/servicesentinel.go:610
#: service/singleton/servicesentinel.go:639
msgid "Down"
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.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n"
"PO-Revision-Date: 2024-11-01 13:20+0800\n"
"Last-Translator: \n"
"Language-Team: \n"
"POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-22 04:33+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: English (United States) <https://hosted.weblate.org/projects/"
"nezha/nezha-dashboard/en_US/>\n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\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
msgid "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: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"
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"
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"
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"
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"
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"
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"
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
msgid "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"
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"
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
msgid "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"
msgstr "server not found or not connected"
#: cmd/dashboard/controller/notification.go:67
#: cmd/dashboard/controller/notification.go:125
#: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:130
msgid "a test message"
msgstr "a test message"
#: cmd/dashboard/controller/notification.go:106
#: cmd/dashboard/controller/notification.go:107
#, c-format
msgid "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:142
#: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id"
msgstr "have invalid notification id"
#: cmd/dashboard/controller/notification_group.go:131
#: cmd/dashboard/controller/server_group.go:130
#: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:158
#, c-format
msgid "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
msgid "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:139
#: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id"
msgstr "have invalid server id"
#: cmd/dashboard/controller/service.go:79
#: cmd/dashboard/controller/service.go:155
#: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:164
msgid "server not found"
msgstr "server not found"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23
msgid "unauthorized"
msgstr "unauthorized"
#: cmd/dashboard/controller/service.go:247
#: cmd/dashboard/controller/service.go:268
#, c-format
msgid "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"
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"
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"
msgstr "timeout: no connection established"
#: service/rpc/io_stream.go:125
#: service/rpc/io_stream.go:131
msgid "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"
msgstr "timeout: agent connection not established"
#: service/rpc/nezha.go:58
#: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully"
msgstr "Scheduled Task Executed Successfully"
#: service/rpc/nezha.go:62
#: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed"
msgstr "Scheduled Task Executed Failed"
#: service/rpc/nezha.go:217
#: service/rpc/nezha.go:245
msgid "IP Changed"
msgstr "IP Changed"
#: service/singleton/alertsentinel.go:159
#: service/singleton/alertsentinel.go:167
msgid "Incident"
msgstr "Incident"
#: service/singleton/alertsentinel.go:169
#: service/singleton/alertsentinel.go:177
msgid "Resolved"
msgstr "Resolved"
#: service/singleton/crontask.go:53
#: service/singleton/crontask.go:54
msgid "Tasks failed to register: ["
msgstr "Tasks failed to register: ["
#: service/singleton/crontask.go:60
#: service/singleton/crontask.go:61
msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr ""
"] 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
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"
#: service/singleton/servicesentinel.go:439
#: service/singleton/servicesentinel.go:468
#, c-format
msgid "[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
msgid "[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
msgid "[%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
msgid "[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
msgid "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
msgid ""
"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, "
"expires at %s"
#: service/singleton/servicesentinel.go:604
#: service/singleton/servicesentinel.go:633
msgid "No Data"
msgstr "No Data"
#: service/singleton/servicesentinel.go:606
#: service/singleton/servicesentinel.go:635
msgid "Good"
msgstr "Good"
#: service/singleton/servicesentinel.go:608
#: service/singleton/servicesentinel.go:637
msgid "Low Availability"
msgstr "Low Availability"
#: service/singleton/servicesentinel.go:610
#: service/singleton/servicesentinel.go:639
msgid "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 ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/nezha/"
"nezha-dashboard/es/>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/nezha/nezha-"
"dashboard/es/>\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,194 +19,235 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.9\n"
#: cmd/dashboard/controller/alertrule.go:100
#: cmd/dashboard/controller/alertrule.go:103
#, c-format
msgid "alert id %d does not exist"
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: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"
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"
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"
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"
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"
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"
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"
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
msgid "task id %d does not exist"
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"
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"
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
msgid "profile id %d does not exist"
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"
msgstr "servidor no encontrado o no conectado"
#: cmd/dashboard/controller/notification.go:67
#: cmd/dashboard/controller/notification.go:125
#: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:130
msgid "a test message"
msgstr "un mensaje de prueba"
#: cmd/dashboard/controller/notification.go:106
#: cmd/dashboard/controller/notification.go:107
#, c-format
msgid "notification id %d does not exist"
msgstr "el ID de notificación %d no existe"
#: cmd/dashboard/controller/notification_group.go:80
#: cmd/dashboard/controller/notification_group.go:142
#: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id"
msgstr "hay un ID de notificación no válido"
#: cmd/dashboard/controller/notification_group.go:131
#: cmd/dashboard/controller/server_group.go:130
#: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:158
#, c-format
msgid "group id %d does not exist"
msgstr "el ID de grupo %d no existe"
#: cmd/dashboard/controller/server.go:60
#: cmd/dashboard/controller/server.go:72
#, c-format
msgid "server id %d does not exist"
msgstr "el ID de servidor %d no existe"
#: cmd/dashboard/controller/server_group.go:78
#: cmd/dashboard/controller/server_group.go:139
#: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id"
msgstr "hay un ID de servidor no válido"
#: cmd/dashboard/controller/service.go:79
#: cmd/dashboard/controller/service.go:155
#: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:164
msgid "server not found"
msgstr "servidor no encontrado"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23
msgid "unauthorized"
msgstr "no autorizado"
#: cmd/dashboard/controller/service.go:247
#: cmd/dashboard/controller/service.go:268
#, c-format
msgid "service id %d does not exist"
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"
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"
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"
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"
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"
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"
msgstr "tarea programada ejecutada con éxito"
#: service/rpc/nezha.go:62
#: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed"
msgstr "falló la ejecución de la tarea programada"
#: service/rpc/nezha.go:217
#: service/rpc/nezha.go:245
msgid "IP Changed"
msgstr "IP cambiada"
#: service/singleton/alertsentinel.go:159
#: service/singleton/alertsentinel.go:167
msgid "Incident"
msgstr "Incidente"
#: service/singleton/alertsentinel.go:169
#: service/singleton/alertsentinel.go:177
msgid "Resolved"
msgstr "Resuelto"
#: service/singleton/crontask.go:53
#: service/singleton/crontask.go:54
msgid "Tasks failed to register: ["
msgstr "Las tareas no se pudieron registrar: ["
#: service/singleton/crontask.go:60
#: service/singleton/crontask.go:61
msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr ""
"] Estas tareas no se ejecutarán correctamente. Corríjalas en el dashboard de "
"administración."
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171
#: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr ""
"[Tarea fallida] %s: el servidor %s está fuera de línea y no puede ejecutar "
"la tarea"
#: service/singleton/servicesentinel.go:439
#: service/singleton/servicesentinel.go:468
#, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[Latencia] %s %2f > %2f, Reportado por: %s"
#: service/singleton/servicesentinel.go:446
#: service/singleton/servicesentinel.go:475
#, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[Latencia] %s %2f < %2f, Reportado por: %s"
#: service/singleton/servicesentinel.go:472
#: service/singleton/servicesentinel.go:501
#, c-format
msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s Reportado por: %s, Error: %s"
#: service/singleton/servicesentinel.go:515
#: service/singleton/servicesentinel.go:544
#, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr ""
"[TLS] Error al obtener información del certificado, Reportado por: %s, Error:"
" %s"
"[TLS] Error al obtener información del certificado, Reportado por: %s, "
"Error: %s"
#: service/singleton/servicesentinel.go:555
#: service/singleton/servicesentinel.go:584
#, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr ""
"El certificado TLS expirará en los próximos siete días. Fecha de expiración: "
"%s"
#: service/singleton/servicesentinel.go:568
#: service/singleton/servicesentinel.go:597
#, c-format
msgid ""
"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: "
"emisor %s, expira en %s"
#: service/singleton/servicesentinel.go:604
#: service/singleton/servicesentinel.go:633
msgid "No Data"
msgstr "Sin datos"
#: service/singleton/servicesentinel.go:606
#: service/singleton/servicesentinel.go:635
msgid "Good"
msgstr "Bueno"
#: service/singleton/servicesentinel.go:608
#: service/singleton/servicesentinel.go:637
msgid "Low Availability"
msgstr "Baja disponibilidad"
#: service/singleton/servicesentinel.go:610
#: service/singleton/servicesentinel.go:639
msgid "Down"
msgstr "Fallo"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n"
"PO-Revision-Date: 2024-12-08 13:27+0000\n"
"POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-22 04:33+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
"projects/nezha/nezha-dashboard/zh_Hans/>\n"
@ -17,188 +17,228 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid "alert id %d does not exist"
msgstr "告警 ID %d 不存在"
#: cmd/dashboard/controller/alertrule.go:107
#: 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"
msgstr "duration 至少为 3"
#: cmd/dashboard/controller/alertrule.go:159
#: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval 至少为 1"
#: cmd/dashboard/controller/alertrule.go:162
#: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set"
msgstr "cycle_start 未设置"
#: cmd/dashboard/controller/alertrule.go:165
#: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value"
msgstr "cycle_start 是未来值"
#: cmd/dashboard/controller/alertrule.go:170
#: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule"
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"
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"
msgstr "计划任务不能被告警触发"
#: cmd/dashboard/controller/cron.go:161
#: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format
msgid "task id %d does not exist"
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"
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"
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
msgid "profile id %d does not exist"
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"
msgstr "服务器未找到或仍未连接"
#: cmd/dashboard/controller/notification.go:67
#: cmd/dashboard/controller/notification.go:125
#: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:130
msgid "a test message"
msgstr "一条测试信息"
#: cmd/dashboard/controller/notification.go:106
#: cmd/dashboard/controller/notification.go:107
#, c-format
msgid "notification id %d does not exist"
msgstr "通知方式 id %d 不存在"
#: cmd/dashboard/controller/notification_group.go:80
#: cmd/dashboard/controller/notification_group.go:142
#: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id"
msgstr "通知方式 id 无效"
#: cmd/dashboard/controller/notification_group.go:131
#: cmd/dashboard/controller/server_group.go:130
#: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:158
#, c-format
msgid "group id %d does not exist"
msgstr "组 id %d 不存在"
#: cmd/dashboard/controller/server.go:60
#: cmd/dashboard/controller/server.go:72
#, c-format
msgid "server id %d does not exist"
msgstr "服务器 id %d 不存在"
#: cmd/dashboard/controller/server_group.go:78
#: cmd/dashboard/controller/server_group.go:139
#: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id"
msgstr "服务器 id 无效"
#: cmd/dashboard/controller/service.go:79
#: cmd/dashboard/controller/service.go:155
#: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:164
msgid "server not found"
msgstr "未找到服务器"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23
msgid "unauthorized"
msgstr "未授权"
#: cmd/dashboard/controller/service.go:247
#: cmd/dashboard/controller/service.go:268
#, c-format
msgid "service id %d does not exist"
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"
msgstr "密码长度必须大于 6"
#: cmd/dashboard/controller/user.go:69
#: cmd/dashboard/controller/user.go:113
msgid "username can't be empty"
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"
msgstr "超时:无连接建立"
#: service/rpc/io_stream.go:125
#: service/rpc/io_stream.go:131
msgid "timeout: user connection not established"
msgstr "超时:用户连接未建立"
#: service/rpc/io_stream.go:128
#: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established"
msgstr "超时agent 连接未建立"
#: service/rpc/nezha.go:58
#: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully"
msgstr "计划任务执行成功"
#: service/rpc/nezha.go:62
#: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed"
msgstr "计划任务执行失败"
#: service/rpc/nezha.go:217
#: service/rpc/nezha.go:245
msgid "IP Changed"
msgstr "IP 变更"
#: service/singleton/alertsentinel.go:159
#: service/singleton/alertsentinel.go:167
msgid "Incident"
msgstr "事件"
#: service/singleton/alertsentinel.go:169
#: service/singleton/alertsentinel.go:177
msgid "Resolved"
msgstr "恢复"
#: service/singleton/crontask.go:53
#: service/singleton/crontask.go:54
msgid "Tasks failed to register: ["
msgstr "注册失败的任务:["
#: service/singleton/crontask.go:60
#: service/singleton/crontask.go:61
msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "] 这些任务将无法正常执行,请进入后台重新修改保存。"
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171
#: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "[任务失败] %s服务器 %s 离线,无法执行"
#: service/singleton/servicesentinel.go:439
#: service/singleton/servicesentinel.go:468
#, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[延迟告警] %s %2f > %2f报告服务: %s"
#: service/singleton/servicesentinel.go:446
#: service/singleton/servicesentinel.go:475
#, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[延迟告警] %s %2f < %2f报告服务: %s"
#: service/singleton/servicesentinel.go:472
#: service/singleton/servicesentinel.go:501
#, c-format
msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s 报告服务:%s错误信息%s"
#: service/singleton/servicesentinel.go:515
#: service/singleton/servicesentinel.go:544
#, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] 获取证书信息失败,报告服务:%s错误信息%s"
#: service/singleton/servicesentinel.go:555
#: service/singleton/servicesentinel.go:584
#, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "TLS 证书将在 7 天内过期。过期时间为:%s"
#: service/singleton/servicesentinel.go:568
#: service/singleton/servicesentinel.go:597
#, c-format
msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -206,18 +246,22 @@ msgid ""
msgstr ""
"TLS 证书发生更改,旧值:颁发者 %s过期日 %s新值颁发者 %s过期日 %s"
#: service/singleton/servicesentinel.go:604
#: service/singleton/servicesentinel.go:633
msgid "No Data"
msgstr "无数据"
#: service/singleton/servicesentinel.go:606
#: service/singleton/servicesentinel.go:635
msgid "Good"
msgstr "正常"
#: service/singleton/servicesentinel.go:608
#: service/singleton/servicesentinel.go:637
msgid "Low Availability"
msgstr "低可用"
#: service/singleton/servicesentinel.go:610
#: service/singleton/servicesentinel.go:639
msgid "Down"
msgstr "故障"
#: service/singleton/user.go:53
msgid "user id not specified"
msgstr "用户 ID 未指定"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-23 23:56+0800\n"
"PO-Revision-Date: 2024-12-08 13:27+0000\n"
"POT-Creation-Date: 2024-12-22 11:55+0800\n"
"PO-Revision-Date: 2024-12-22 04:33+0000\n"
"Last-Translator: UUBulb <uub@kuzu.uk>\n"
"Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/"
"projects/nezha/nezha-dashboard/zh_Hant/>\n"
@ -17,188 +17,228 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid "alert id %d does not exist"
msgstr "告警 ID %d 不存在"
#: cmd/dashboard/controller/alertrule.go:107
#: 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"
msgstr "duration 至少為 3"
#: cmd/dashboard/controller/alertrule.go:159
#: cmd/dashboard/controller/alertrule.go:187
msgid "cycle_interval need to be at least 1"
msgstr "cycle_interval 至少為 1"
#: cmd/dashboard/controller/alertrule.go:162
#: cmd/dashboard/controller/alertrule.go:190
msgid "cycle_start is not set"
msgstr "cycle_start 未設定"
#: cmd/dashboard/controller/alertrule.go:165
#: cmd/dashboard/controller/alertrule.go:193
msgid "cycle_start is a future value"
msgstr "cycle_start 是未來值"
#: cmd/dashboard/controller/alertrule.go:170
#: cmd/dashboard/controller/alertrule.go:198
msgid "need to configure at least a single rule"
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"
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"
msgstr "排程任務不能被告警觸發"
#: cmd/dashboard/controller/cron.go:161
#: cmd/dashboard/controller/cron.go:131 cmd/dashboard/controller/cron.go:189
#, c-format
msgid "task id %d does not exist"
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"
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"
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
msgid "profile id %d does not exist"
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"
msgstr "伺服器未找到或仍未連線"
#: cmd/dashboard/controller/notification.go:67
#: cmd/dashboard/controller/notification.go:125
#: cmd/dashboard/controller/notification.go:68
#: cmd/dashboard/controller/notification.go:130
msgid "a test message"
msgstr "一條測試資訊"
#: cmd/dashboard/controller/notification.go:106
#: cmd/dashboard/controller/notification.go:107
#, c-format
msgid "notification id %d does not exist"
msgstr "通知方式 id %d 不存在"
#: cmd/dashboard/controller/notification_group.go:80
#: cmd/dashboard/controller/notification_group.go:142
#: cmd/dashboard/controller/notification_group.go:94
#: cmd/dashboard/controller/notification_group.go:175
msgid "have invalid notification id"
msgstr "通知方式 id 無效"
#: cmd/dashboard/controller/notification_group.go:131
#: cmd/dashboard/controller/server_group.go:130
#: cmd/dashboard/controller/notification_group.go:160
#: cmd/dashboard/controller/server_group.go:158
#, c-format
msgid "group id %d does not exist"
msgstr "組 id %d 不存在"
#: cmd/dashboard/controller/server.go:60
#: cmd/dashboard/controller/server.go:72
#, c-format
msgid "server id %d does not exist"
msgstr "伺服器 id %d 不存在"
#: cmd/dashboard/controller/server_group.go:78
#: cmd/dashboard/controller/server_group.go:139
#: cmd/dashboard/controller/server_group.go:92
#: cmd/dashboard/controller/server_group.go:172
msgid "have invalid server id"
msgstr "伺服器 id 無效"
#: cmd/dashboard/controller/service.go:79
#: cmd/dashboard/controller/service.go:155
#: cmd/dashboard/controller/service.go:88
#: cmd/dashboard/controller/service.go:164
msgid "server not found"
msgstr "未找到伺服器"
#: cmd/dashboard/controller/service.go:86 cmd/dashboard/controller/user.go:23
msgid "unauthorized"
msgstr "未授權"
#: cmd/dashboard/controller/service.go:247
#: cmd/dashboard/controller/service.go:268
#, c-format
msgid "service id %d does not exist"
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"
msgstr "密碼長度必須大於 6"
#: cmd/dashboard/controller/user.go:69
#: cmd/dashboard/controller/user.go:113
msgid "username can't be empty"
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"
msgstr "超時:無連線建立"
#: service/rpc/io_stream.go:125
#: service/rpc/io_stream.go:131
msgid "timeout: user connection not established"
msgstr "超時:使用者連線未建立"
#: service/rpc/io_stream.go:128
#: service/rpc/io_stream.go:134
msgid "timeout: agent connection not established"
msgstr "超時agent 連線未建立"
#: service/rpc/nezha.go:58
#: service/rpc/nezha.go:69
msgid "Scheduled Task Executed Successfully"
msgstr "排程任務執行成功"
#: service/rpc/nezha.go:62
#: service/rpc/nezha.go:73
msgid "Scheduled Task Executed Failed"
msgstr "排程任務執行失敗"
#: service/rpc/nezha.go:217
#: service/rpc/nezha.go:245
msgid "IP Changed"
msgstr "IP 變更"
#: service/singleton/alertsentinel.go:159
#: service/singleton/alertsentinel.go:167
msgid "Incident"
msgstr "事件"
#: service/singleton/alertsentinel.go:169
#: service/singleton/alertsentinel.go:177
msgid "Resolved"
msgstr "恢復"
#: service/singleton/crontask.go:53
#: service/singleton/crontask.go:54
msgid "Tasks failed to register: ["
msgstr "註冊失敗的任務:["
#: service/singleton/crontask.go:60
#: service/singleton/crontask.go:61
msgid ""
"] These tasks will not execute properly. Fix them in the admin dashboard."
msgstr "] 這些任務將無法正常執行,請進入後台重新修改儲存。"
#: service/singleton/crontask.go:146 service/singleton/crontask.go:171
#: service/singleton/crontask.go:144 service/singleton/crontask.go:169
#, c-format
msgid "[Task failed] %s: server %s is offline and cannot execute the task"
msgstr "[任務失敗] %s伺服器 %s 離線,無法執行"
#: service/singleton/servicesentinel.go:439
#: service/singleton/servicesentinel.go:468
#, c-format
msgid "[Latency] %s %2f > %2f, Reporter: %s"
msgstr "[延遲告警] %s %2f > %2f報告服務: %s"
#: service/singleton/servicesentinel.go:446
#: service/singleton/servicesentinel.go:475
#, c-format
msgid "[Latency] %s %2f < %2f, Reporter: %s"
msgstr "[延遲告警] %s %2f < %2f報告服務: %s"
#: service/singleton/servicesentinel.go:472
#: service/singleton/servicesentinel.go:501
#, c-format
msgid "[%s] %s Reporter: %s, Error: %s"
msgstr "[%s] %s 報告服務:%s錯誤資訊%s"
#: service/singleton/servicesentinel.go:515
#: service/singleton/servicesentinel.go:544
#, c-format
msgid "[TLS] Fetch cert info failed, Reporter: %s, Error: %s"
msgstr "[TLS] 獲取證書資訊失敗,報告服務:%s錯誤資訊%s"
#: service/singleton/servicesentinel.go:555
#: service/singleton/servicesentinel.go:584
#, c-format
msgid "The TLS certificate will expire within seven days. Expiration time: %s"
msgstr "TLS 證書將在 7 天內過期。過期時間為:%s"
#: service/singleton/servicesentinel.go:568
#: service/singleton/servicesentinel.go:597
#, c-format
msgid ""
"TLS certificate changed, old: issuer %s, expires at %s; new: issuer %s, "
@ -206,18 +246,22 @@ msgid ""
msgstr ""
"TLS 證書發生更改,舊值:頒發者 %s過期日 %s新值頒發者 %s過期日 %s"
#: service/singleton/servicesentinel.go:604
#: service/singleton/servicesentinel.go:633
msgid "No Data"
msgstr "無資料"
#: service/singleton/servicesentinel.go:606
#: service/singleton/servicesentinel.go:635
msgid "Good"
msgstr "正常"
#: service/singleton/servicesentinel.go:608
#: service/singleton/servicesentinel.go:637
msgid "Low Availability"
msgstr "低可用"
#: service/singleton/servicesentinel.go:610
#: service/singleton/servicesentinel.go:639
msgid "Down"
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))
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))
}
}
}