diff options
| -rw-r--r-- | web/controller/inbound.go | 66 | ||||
| -rw-r--r-- | web/controller/server.go | 20 | ||||
| -rw-r--r-- | web/controller/setting.go | 6 | ||||
| -rw-r--r-- | web/controller/util.go | 4 | ||||
| -rw-r--r-- | web/controller/xray_setting.go | 4 | ||||
| -rw-r--r-- | web/html/inbounds.html | 4 | ||||
| -rw-r--r-- | web/html/modals/warp_modal.html | 4 | ||||
| -rw-r--r-- | web/translation/translate.ar_EG.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.en_US.toml | 44 | ||||
| -rw-r--r-- | web/translation/translate.es_ES.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.fa_IR.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.id_ID.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.ja_JP.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.pt_BR.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.ru_RU.toml | 45 | ||||
| -rw-r--r-- | web/translation/translate.tr_TR.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.uk_UA.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.vi_VN.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.zh_CN.toml | 43 | ||||
| -rw-r--r-- | web/translation/translate.zh_TW.toml | 41 |
20 files changed, 536 insertions, 132 deletions
diff --git a/web/controller/inbound.go b/web/controller/inbound.go index c22ce192..6c38b4ac 100644 --- a/web/controller/inbound.go +++ b/web/controller/inbound.go @@ -71,7 +71,7 @@ func (a *InboundController) getClientTraffics(c *gin.Context) { email := c.Param("email") clientTraffics, err := a.inboundService.GetClientTrafficByEmail(email) if err != nil { - jsonMsg(c, "Error getting traffics", err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.trafficGetError"), err) return } jsonObj(c, clientTraffics, nil) @@ -81,7 +81,7 @@ func (a *InboundController) getClientTrafficsById(c *gin.Context) { id := c.Param("id") clientTraffics, err := a.inboundService.GetClientTrafficByID(id) if err != nil { - jsonMsg(c, "Error getting traffics", err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.trafficGetError"), err) return } jsonObj(c, clientTraffics, nil) @@ -91,7 +91,7 @@ func (a *InboundController) addInbound(c *gin.Context) { inbound := &model.Inbound{} err := c.ShouldBind(inbound) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.create"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundCreateSuccess"), err) return } user := session.GetLoginUser(c) @@ -104,7 +104,7 @@ func (a *InboundController) addInbound(c *gin.Context) { needRestart := false inbound, needRestart, err = a.inboundService.AddInbound(inbound) - jsonMsgObj(c, I18nWeb(c, "pages.inbounds.create"), inbound, err) + jsonMsgObj(c, I18nWeb(c, "pages.inbounds.toasts.inboundCreateSuccess"), inbound, err) if err == nil && needRestart { a.xrayService.SetToNeedRestart() } @@ -113,12 +113,12 @@ func (a *InboundController) addInbound(c *gin.Context) { func (a *InboundController) delInbound(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, I18nWeb(c, "delete"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundDeleteSuccess"), err) return } needRestart := true needRestart, err = a.inboundService.DelInbound(id) - jsonMsgObj(c, I18nWeb(c, "delete"), id, err) + jsonMsgObj(c, I18nWeb(c, "pages.inbounds.toasts.inboundDeleteSuccess"), id, err) if err == nil && needRestart { a.xrayService.SetToNeedRestart() } @@ -127,7 +127,7 @@ func (a *InboundController) delInbound(c *gin.Context) { func (a *InboundController) updateInbound(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } inbound := &model.Inbound{ @@ -135,12 +135,12 @@ func (a *InboundController) updateInbound(c *gin.Context) { } err = c.ShouldBind(inbound) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } needRestart := true inbound, needRestart, err = a.inboundService.UpdateInbound(inbound) - jsonMsgObj(c, I18nWeb(c, "pages.inbounds.update"), inbound, err) + jsonMsgObj(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), inbound, err) if err == nil && needRestart { a.xrayService.SetToNeedRestart() } @@ -163,17 +163,17 @@ func (a *InboundController) clearClientIps(c *gin.Context) { err := a.inboundService.ClearClientIps(email) if err != nil { - jsonMsg(c, "Update", err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.updateSuccess"), err) return } - jsonMsg(c, "Log Cleared", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.logCleanSuccess"), nil) } func (a *InboundController) addInboundClient(c *gin.Context) { data := &model.Inbound{} err := c.ShouldBind(data) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } @@ -181,10 +181,10 @@ func (a *InboundController) addInboundClient(c *gin.Context) { needRestart, err = a.inboundService.AddInboundClient(data) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } - jsonMsg(c, "Client(s) added", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundClientAddSuccess"), nil) if needRestart { a.xrayService.SetToNeedRestart() } @@ -193,7 +193,7 @@ func (a *InboundController) addInboundClient(c *gin.Context) { func (a *InboundController) delInboundClient(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } clientId := c.Param("clientId") @@ -202,10 +202,10 @@ func (a *InboundController) delInboundClient(c *gin.Context) { needRestart, err = a.inboundService.DelInboundClient(id, clientId) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } - jsonMsg(c, "Client deleted", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundClientDeleteSuccess"), nil) if needRestart { a.xrayService.SetToNeedRestart() } @@ -217,7 +217,7 @@ func (a *InboundController) updateInboundClient(c *gin.Context) { inbound := &model.Inbound{} err := c.ShouldBind(inbound) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } @@ -225,10 +225,10 @@ func (a *InboundController) updateInboundClient(c *gin.Context) { needRestart, err = a.inboundService.UpdateInboundClient(inbound, clientId) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } - jsonMsg(c, "Client updated", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundClientUpdateSuccess"), nil) if needRestart { a.xrayService.SetToNeedRestart() } @@ -237,17 +237,17 @@ func (a *InboundController) updateInboundClient(c *gin.Context) { func (a *InboundController) resetClientTraffic(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } email := c.Param("email") needRestart, err := a.inboundService.ResetClientTraffic(id, email) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } - jsonMsg(c, "Traffic has been reset", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.resetInboundClientTrafficSuccess"), nil) if needRestart { a.xrayService.SetToNeedRestart() } @@ -256,36 +256,36 @@ func (a *InboundController) resetClientTraffic(c *gin.Context) { func (a *InboundController) resetAllTraffics(c *gin.Context) { err := a.inboundService.ResetAllTraffics() if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } else { a.xrayService.SetToNeedRestart() } - jsonMsg(c, "all traffic has been reset", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.resetAllTrafficSuccess"), nil) } func (a *InboundController) resetAllClientTraffics(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } err = a.inboundService.ResetAllClientTraffics(id) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } else { a.xrayService.SetToNeedRestart() } - jsonMsg(c, "All traffic from the client has been reset.", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.resetAllClientTrafficSuccess"), nil) } func (a *InboundController) importInbound(c *gin.Context) { inbound := &model.Inbound{} err := json.Unmarshal([]byte(c.PostForm("data")), inbound) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } user := session.GetLoginUser(c) @@ -304,7 +304,7 @@ func (a *InboundController) importInbound(c *gin.Context) { needRestart := false inbound, needRestart, err = a.inboundService.AddInbound(inbound) - jsonMsgObj(c, I18nWeb(c, "pages.inbounds.create"), inbound, err) + jsonMsgObj(c, I18nWeb(c, "pages.inbounds.toasts.inboundCreateSuccess"), inbound, err) if err == nil && needRestart { a.xrayService.SetToNeedRestart() } @@ -313,15 +313,15 @@ func (a *InboundController) importInbound(c *gin.Context) { func (a *InboundController) delDepletedClients(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.inboundUpdateSuccess"), err) return } err = a.inboundService.DelDepletedClients(id) if err != nil { - jsonMsg(c, "Something went wrong!", err) + jsonMsg(c, I18nWeb(c, "somethingWentWrong"), err) return } - jsonMsg(c, "All depleted clients are deleted", nil) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.delDepletedClientsSuccess"), nil) } func (a *InboundController) onlines(c *gin.Context) { diff --git a/web/controller/server.go b/web/controller/server.go index 5d89e356..e00a1206 100644 --- a/web/controller/server.go +++ b/web/controller/server.go @@ -109,19 +109,19 @@ func (a *ServerController) stopXrayService(c *gin.Context) { a.lastGetStatusTime = time.Now() err := a.serverService.StopXrayService() if err != nil { - jsonMsg(c, "", err) + jsonMsg(c, I18nWeb(c, "pages.xray.stopError"), err) return } - jsonMsg(c, "Xray stopped", err) + jsonMsg(c, I18nWeb(c, "pages.xray.stopSuccess"), err) } func (a *ServerController) restartXrayService(c *gin.Context) { err := a.serverService.RestartXrayService() if err != nil { - jsonMsg(c, "", err) + jsonMsg(c, I18nWeb(c, "pages.xray.restartError"), err) return } - jsonMsg(c, "Xray restarted", err) + jsonMsg(c, I18nWeb(c, "pages.xray.restartSuccess"), err) } func (a *ServerController) getLogs(c *gin.Context) { @@ -135,7 +135,7 @@ func (a *ServerController) getLogs(c *gin.Context) { func (a *ServerController) getConfigJson(c *gin.Context) { configJson, err := a.serverService.GetConfigJson() if err != nil { - jsonMsg(c, "get config.json", err) + jsonMsg(c, I18nWeb(c, "pages.index.getConfigError"), err) return } jsonObj(c, configJson, nil) @@ -144,7 +144,7 @@ func (a *ServerController) getConfigJson(c *gin.Context) { func (a *ServerController) getDb(c *gin.Context) { db, err := a.serverService.GetDb() if err != nil { - jsonMsg(c, "get Database", err) + jsonMsg(c, I18nWeb(c, "pages.index.getDatabaseError"), err) return } @@ -172,7 +172,7 @@ func (a *ServerController) importDB(c *gin.Context) { // Get the file from the request body file, _, err := c.Request.FormFile("db") if err != nil { - jsonMsg(c, "Error reading db file", err) + jsonMsg(c, I18nWeb(c, "pages.index.readDatabaseError"), err) return } defer file.Close() @@ -184,16 +184,16 @@ func (a *ServerController) importDB(c *gin.Context) { // Import it err = a.serverService.ImportDB(file) if err != nil { - jsonMsg(c, "", err) + jsonMsg(c, I18nWeb(c, "pages.index.importDatabaseError"), err) return } - jsonObj(c, "Import DB", nil) + jsonObj(c, I18nWeb(c, "pages.index.importDatabaseSuccess"), nil) } func (a *ServerController) getNewX25519Cert(c *gin.Context) { cert, err := a.serverService.GetNewX25519Cert() if err != nil { - jsonMsg(c, "get x25519 certificate", err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.getNewX25519CertError"), err) return } jsonObj(c, cert, nil) diff --git a/web/controller/setting.go b/web/controller/setting.go index dd99e0f5..ddd9f55a 100644 --- a/web/controller/setting.go +++ b/web/controller/setting.go @@ -80,11 +80,11 @@ func (a *SettingController) updateUser(c *gin.Context) { } user := session.GetLoginUser(c) if user.Username != form.OldUsername || !crypto.CheckPasswordHash(user.Password, form.OldPassword) { - jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUser"), errors.New(I18nWeb(c, "pages.settings.toasts.originalUserPassIncorrect"))) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUserError"), errors.New(I18nWeb(c, "pages.settings.toasts.originalUserPassIncorrect"))) return } if form.NewUsername == "" || form.NewPassword == "" { - jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUser"), errors.New(I18nWeb(c, "pages.settings.toasts.userPassMustBeNotEmpty"))) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUserError"), errors.New(I18nWeb(c, "pages.settings.toasts.userPassMustBeNotEmpty"))) return } err = a.userService.UpdateUser(user.Id, form.NewUsername, form.NewPassword) @@ -98,7 +98,7 @@ func (a *SettingController) updateUser(c *gin.Context) { func (a *SettingController) restartPanel(c *gin.Context) { err := a.panelService.RestartPanel(time.Second * 3) - jsonMsg(c, I18nWeb(c, "pages.settings.restartPanel"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.restartPanelSuccess"), err) } func (a *SettingController) getDefaultXrayConfig(c *gin.Context) { diff --git a/web/controller/util.go b/web/controller/util.go index 40c7a8e9..a77d0e35 100644 --- a/web/controller/util.go +++ b/web/controller/util.go @@ -42,11 +42,11 @@ func jsonMsgObj(c *gin.Context, msg string, obj any, err error) { if err == nil { m.Success = true if msg != "" { - m.Msg = msg + " " + I18nWeb(c, "success") + m.Msg = msg } } else { m.Success = false - m.Msg = msg + " " + I18nWeb(c, "fail") + ": " + err.Error() + m.Msg = msg + " (" + err.Error() + ")" logger.Warning(msg+" "+I18nWeb(c, "fail")+": ", err) } c.JSON(http.StatusOK, m) diff --git a/web/controller/xray_setting.go b/web/controller/xray_setting.go index 3391ad3b..5b2d1036 100644 --- a/web/controller/xray_setting.go +++ b/web/controller/xray_setting.go @@ -93,7 +93,7 @@ func (a *XraySettingController) warp(c *gin.Context) { func (a *XraySettingController) getOutboundsTraffic(c *gin.Context) { outboundsTraffic, err := a.OutboundService.GetOutboundsTraffic() if err != nil { - jsonMsg(c, "Error getting traffics", err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getOutboundTrafficError"), err) return } jsonObj(c, outboundsTraffic, nil) @@ -103,7 +103,7 @@ func (a *XraySettingController) resetOutboundsTraffic(c *gin.Context) { tag := c.PostForm("tag") err := a.OutboundService.ResetOutboundTraffic(tag) if err != nil { - jsonMsg(c, "Error in reset outbound traffics", err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.resetOutboundTrafficError"), err) return } jsonObj(c, "", nil) diff --git a/web/html/inbounds.html b/web/html/inbounds.html index cadcb95a..f632a5cc 100644 --- a/web/html/inbounds.html +++ b/web/html/inbounds.html @@ -978,7 +978,7 @@ openAddInbound() { inModal.show({ title: '{{ i18n "pages.inbounds.addInbound"}}', - okText: '{{ i18n "pages.inbounds.create"}}', + okText: '{{ i18n "create"}}', cancelText: '{{ i18n "close" }}', confirm: async (inbound, dbInbound) => { await this.addInbound(inbound, dbInbound, inModal); @@ -991,7 +991,7 @@ const inbound = dbInbound.toInbound(); inModal.show({ title: '{{ i18n "pages.inbounds.modifyInbound"}}', - okText: '{{ i18n "pages.inbounds.update"}}', + okText: '{{ i18n "update"}}', cancelText: '{{ i18n "close" }}', inbound: inbound, dbInbound: dbInbound, diff --git a/web/html/modals/warp_modal.html b/web/html/modals/warp_modal.html index 14426472..4bfb7ca1 100644 --- a/web/html/modals/warp_modal.html +++ b/web/html/modals/warp_modal.html @@ -3,7 +3,7 @@ :confirm-loading="warpModal.confirmLoading" :closable="true" :mask-closable="true" :footer="null" :class="themeSwitcher.currentTheme"> <template v-if="ObjectUtil.isEmpty(warpModal.warpData)"> - <a-button icon="api" @click="register" :loading="warpModal.confirmLoading">{{ i18n "pages.inbounds.create" }}</a-button> + <a-button icon="api" @click="register" :loading="warpModal.confirmLoading">{{ i18n "create" }}</a-button> </template> <template v-else> <table :style="{ margin: '5px 0', width: '100%' }"> @@ -32,7 +32,7 @@ <a-form-item label="Key"> <a-input v-model="warpPlus"></a-input> <a-button @click="updateLicense(warpPlus)" :disabled="warpPlus.length<26" - :loading="warpModal.confirmLoading">{{ i18n "pages.inbounds.update" }}</a-button> + :loading="warpModal.confirmLoading">{{ i18n "update" }}</a-button> </a-form-item> </a-form> </a-collapse-panel> diff --git a/web/translation/translate.ar_EG.toml b/web/translation/translate.ar_EG.toml index 2bfe2216..f1ff5ac9 100644 --- a/web/translation/translate.ar_EG.toml +++ b/web/translation/translate.ar_EG.toml @@ -4,6 +4,8 @@ "confirm" = "تأكيد" "cancel" = "إلغاء" "close" = "إغلاق" +"create" = "إنشاء" +"update" = "تحديث" "copy" = "نسخ" "copied" = "اتنسخ" "download" = "تحميل" @@ -66,6 +68,7 @@ "emptyFakeDnsDesc" = "مفيش سيرفر Fake DNS مضاف." "emptyBalancersDesc" = "مفيش موازن تحميل مضاف." "emptyReverseDesc" = "مفيش بروكسي عكسي مضاف." +"somethingWentWrong" = "حدث خطأ ما" [menu] "theme" = "الثيم" @@ -88,7 +91,7 @@ "emptyUsername" = "اسم المستخدم مطلوب" "emptyPassword" = "الباسورد مطلوب" "wrongUsernameOrPassword" = "اسم المستخدم أو كلمة المرور أو كود المصادقة الثنائية غير صحيح." -"successLogin" = "تسجيل دخول ناجح" +"successLogin" = "لقد تم تسجيل الدخول إلى حسابك بنجاح." [pages.index] "title" = "نظرة عامة" @@ -137,6 +140,11 @@ "exportDatabaseDesc" = "اضغط عشان تحمل ملف .db يحتوي على نسخة احتياطية لقاعدة البيانات الحالية على جهازك." "importDatabase" = "استرجاع" "importDatabaseDesc" = "اضغط عشان تختار وتحمل ملف .db من جهازك لاسترجاع قاعدة البيانات من نسخة احتياطية." +"importDatabaseSuccess" = "تم استيراد قاعدة البيانات بنجاح" +"importDatabaseError" = "حدث خطأ أثناء استيراد قاعدة البيانات" +"readDatabaseError" = "حدث خطأ أثناء قراءة قاعدة البيانات" +"getDatabaseError" = "حدث خطأ أثناء استرجاع قاعدة البيانات" +"getConfigError" = "حدث خطأ أثناء استرجاع ملف الإعدادات" [pages.inbounds] "title" = "الإدخالات" @@ -157,14 +165,14 @@ "generalActions" = "إجراءات عامة" "autoRefresh" = "تحديث تلقائي" "autoRefreshInterval" = "الفاصل" -"create" = "إنشاء" -"update" = "تحديث" "modifyInbound" = "تعديل الإدخال" "deleteInbound" = "حذف الإدخال" "deleteInboundContent" = "متأكد إنك عايز تحذف الإدخال؟" "deleteClient" = "حذف العميل" "deleteClientContent" = "متأكد إنك عايز تحذف العميل؟" "resetTrafficContent" = "متأكد إنك عايز تعيد ضبط الترافيك؟" +"inboundUpdateSuccess" = "تم تحديث الوارد بنجاح." +"inboundCreateSuccess" = "تم إنشاء الوارد بنجاح." "copyLink" = "انسخ الرابط" "address" = "العنوان" "network" = "الشبكة" @@ -235,6 +243,21 @@ [pages.inbounds.toasts] "obtain" = "تم الحصول عليه" +"updateSuccess" = "تم التحديث بنجاح" +"logCleanSuccess" = "تم مسح السجل" +"inboundsUpdateSuccess" = "تم تحديث الواردات بنجاح" +"inboundUpdateSuccess" = "تم تحديث الوارد بنجاح" +"inboundCreateSuccess" = "تم إنشاء الوارد بنجاح" +"inboundDeleteSuccess" = "تم حذف الوارد بنجاح" +"inboundClientAddSuccess" = "تمت إضافة عميل(عملاء) وارد" +"inboundClientDeleteSuccess" = "تم حذف عميل وارد" +"inboundClientUpdateSuccess" = "تم تحديث عميل وارد" +"delDepletedClientsSuccess" = "تم حذف جميع العملاء المستنفذين" +"resetAllClientTrafficSuccess" = "تم إعادة تعيين كل حركة المرور من العميل" +"resetAllTrafficSuccess" = "تم إعادة تعيين كل حركة المرور" +"resetInboundClientTrafficSuccess" = "تم إعادة تعيين حركة المرور" +"trafficGetError" = "خطأ في الحصول على حركات المرور" +"getNewX25519CertError" = "حدث خطأ أثناء الحصول على شهادة X25519." [pages.inbounds.stream.general] "request" = "طلب" @@ -257,6 +280,7 @@ "infoDesc" = "كل تغيير هتعمله هنا لازم يتخزن. ياريت تعيد تشغيل البانل عشان التعديلات تتفعل." "restartPanel" = "إعادة تشغيل البانل" "restartPanelDesc" = "متأكد إنك عايز تعيد تشغيل البانل؟ لو ماقدرتش تدخل بعد إعادة التشغيل، شوف سجل البانل على السيرفر." +"restartPanelSuccess" = "تم إعادة تشغيل اللوحة بنجاح" "actions" = "إجراءات" "resetDefaultConfig" = "استرجاع الافتراضي" "panelSettings" = "عام" @@ -364,6 +388,10 @@ "title" = "إعدادات Xray" "save" = "احفظ" "restart" = "أعد تشغيل Xray" +"restartSuccess" = "تم إعادة تشغيل Xray بنجاح" +"stopSuccess" = "تم إيقاف Xray بنجاح" +"restartError" = "حدث خطأ أثناء إعادة تشغيل Xray." +"stopError" = "حدث خطأ أثناء إيقاف Xray." "basicTemplate" = "أساسي" "advancedTemplate" = "متقدم" "generalConfigs" = "إعدادات عامة" @@ -515,11 +543,14 @@ "twoFactorModalError" = "رمز خاطئ" [pages.settings.toasts] -"modifySettings" = "تعديل الإعدادات" -"getSettings" = "جلب الإعدادات" -"modifyUser" = "تعديل الأدمن" +"modifySettings" = "تم تغيير المعلمات." +"getSettings" = "حدث خطأ أثناء استرداد المعلمات." +"modifyUserError" = "حدث خطأ أثناء تغيير بيانات اعتماد المسؤول." +"modifyUser" = "لقد قمت بتغيير بيانات اعتماد المسؤول بنجاح." "originalUserPassIncorrect" = "اسم المستخدم أو الباسورد الحالي غير صحيح" "userPassMustBeNotEmpty" = "اسم المستخدم والباسورد الجديدين فاضيين" +"getOutboundTrafficError" = "خطأ في الحصول على حركات المرور الصادرة" +"resetOutboundTrafficError" = "خطأ في إعادة تعيين حركات المرور الصادرة" [tgbot] "keyboardClosed" = "❌ الكيبورد المخصص اتقفلت!" diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml index 0f93c9ed..ae2648b1 100644 --- a/web/translation/translate.en_US.toml +++ b/web/translation/translate.en_US.toml @@ -4,6 +4,8 @@ "confirm" = "Confirm" "cancel" = "Cancel" "close" = "Close" +"create" = "Create" +"update" = "Update" "copy" = "Copy" "copied" = "Copied" "download" = "Download" @@ -66,6 +68,7 @@ "emptyFakeDnsDesc" = "No added Fake DNS servers." "emptyBalancersDesc" = "No added balancers." "emptyReverseDesc" = "No added reverse proxies." +"somethingWentWrong" = "Something went wrong" [menu] "theme" = "Theme" @@ -88,7 +91,7 @@ "emptyUsername" = "Username is required" "emptyPassword" = "Password is required" "wrongUsernameOrPassword" = "Invalid username or password or two-factor code." -"successLogin" = "Login" +"successLogin" = " You have successfully logged into your account." [pages.index] "title" = "Overview" @@ -137,6 +140,11 @@ "exportDatabaseDesc" = "Click to download a .db file containing a backup of your current database to your device." "importDatabase" = "Restore" "importDatabaseDesc" = "Click to select and upload a .db file from your device to restore your database from a backup." +"importDatabaseSuccess" = "The database has been successfully imported." +"importDatabaseError" = "An error occurred while importing the database." +"readDatabaseError" = "An error occurred while reading the database." +"getDatabaseError" = "An error occurred while retrieving the database." +"getConfigError" = "An error occurred while retrieving the config file." [pages.inbounds] "title" = "Inbounds" @@ -157,8 +165,6 @@ "generalActions" = "General Actions" "autoRefresh" = "Auto-refresh" "autoRefreshInterval" = "Interval" -"create" = "Create" -"update" = "Update" "modifyInbound" = "Modify Inbound" "deleteInbound" = "Delete Inbound" "deleteInboundContent" = "Are you sure you want to delete inbound?" @@ -235,6 +241,22 @@ [pages.inbounds.toasts] "obtain" = "Obtain" +"updateSuccess" = "The update was successful." +"logCleanSuccess" = "The log has been cleared." +"inboundsUpdateSuccess" = "Inbounds have been successfully updated." +"inboundUpdateSuccess" = "Inbound has been successfully updated." +"inboundCreateSuccess" = "Inbound has been successfully created." +"inboundDeleteSuccess" = "Inbound has been successfully deleted." +"inboundClientAddSuccess" = "Inbound client(s) have been added." +"inboundClientDeleteSuccess" = "Inbound client has been deleted." +"inboundClientUpdateSuccess" = "Inbound client has been updated." +"delDepletedClientsSuccess" = "All depleted clients are deleted." +"resetAllClientTrafficSuccess" = "All traffic from the client has been reset." +"resetAllTrafficSuccess" = "All traffic has been reset." +"resetInboundClientTrafficSuccess" = "Traffic has been reset." +"trafficGetError" = "Error getting traffics." +"getNewX25519CertError" = "Error while obtaining the X25519 certificate." + [pages.inbounds.stream.general] "request" = "Request" @@ -257,6 +279,7 @@ "infoDesc" = "Every change made here needs to be saved. Please restart the panel to apply changes." "restartPanel" = "Restart Panel" "restartPanelDesc" = "Are you sure you want to restart the panel? If you cannot access the panel after restarting, please view the panel log info on the server." +"restartPanelSuccess" = "The panel was successfully restarted." "actions" = "Actions" "resetDefaultConfig" = "Reset to Default" "panelSettings" = "General" @@ -364,6 +387,10 @@ "title" = "Xray Configs" "save" = "Save" "restart" = "Restart Xray" +"restartSuccess" = "Xray has been successfully relaunched." +"stopSuccess" = "Xray has been successfully stopped." +"restartError" = "There was an error when rebooting the Xray." +"stopError" = "There was an error when stopping the Xray." "basicTemplate" = "Basics" "advancedTemplate" = "Advanced" "generalConfigs" = "General" @@ -515,11 +542,14 @@ "twoFactorModalError" = "Wrong code" [pages.settings.toasts] -"modifySettings" = "Modify Settings" -"getSettings" = "Get Settings" -"modifyUser" = "Modify Admin" -"originalUserPassIncorrect" = "The Current username or password is invalid" +"modifySettings" = "The parameters have been changed." +"getSettings" = "An error occurred while retrieving parameters." +"modifyUserError" = "An error occurred while changing administrator credentials." +"modifyUser" = "You have successfully changed the credentials of the administrator." +"originalUserPassIncorrect" = "The сurrent username or password is invalid" "userPassMustBeNotEmpty" = "The new username and password is empty" +"getOutboundTrafficError" = "Error getting traffics" +"resetOutboundTrafficError" = "Error in reset outbound traffics" [tgbot] "keyboardClosed" = "❌ Custom keyboard closed!" diff --git a/web/translation/translate.es_ES.toml b/web/translation/translate.es_ES.toml index 29c166a3..797eeaf9 100644 --- a/web/translation/translate.es_ES.toml +++ b/web/translation/translate.es_ES.toml @@ -4,6 +4,8 @@ "confirm" = "Confirmar"
"cancel" = "Cancelar"
"close" = "Cerrar"
+"create" = "Crear"
+"update" = "Actualizar"
"copy" = "Copiar"
"copied" = "Copiado"
"download" = "Descargar"
@@ -66,6 +68,7 @@ "emptyFakeDnsDesc" = "No hay servidores Fake DNS añadidos."
"emptyBalancersDesc" = "No hay balanceadores añadidos."
"emptyReverseDesc" = "No hay proxies inversos añadidos."
+"somethingWentWrong" = "Algo salió mal"
[menu]
"theme" = "Tema"
@@ -88,7 +91,7 @@ "emptyUsername" = "Por favor ingresa el nombre de usuario."
"emptyPassword" = "Por favor ingresa la contraseña."
"wrongUsernameOrPassword" = "Nombre de usuario, contraseña o código de dos factores incorrecto."
-"successLogin" = "Inicio de Sesión Exitoso"
+"successLogin" = "Has iniciado sesión en tu cuenta correctamente."
[pages.index]
"title" = "Estado del Sistema"
@@ -139,6 +142,11 @@ "exportDatabaseDesc" = "Haz clic para descargar un archivo .db que contiene una copia de seguridad de tu base de datos actual en tu dispositivo."
"importDatabase" = "Restaurar"
"importDatabaseDesc" = "Haz clic para seleccionar y cargar un archivo .db desde tu dispositivo para restaurar tu base de datos desde una copia de seguridad."
+"importDatabaseSuccess" = "La base de datos se ha importado correctamente"
+"importDatabaseError" = "Ocurrió un error al importar la base de datos"
+"readDatabaseError" = "Ocurrió un error al leer la base de datos"
+"getDatabaseError" = "Ocurrió un error al obtener la base de datos"
+"getConfigError" = "Ocurrió un error al obtener el archivo de configuración"
[pages.inbounds]
"title" = "Entradas"
@@ -159,14 +167,14 @@ "generalActions" = "Acciones Generales"
"autoRefresh" = "Auto-actualizar"
"autoRefreshInterval" = "Intervalo"
-"create" = "Crear"
-"update" = "Actualizar"
"modifyInbound" = "Modificar Entrada"
"deleteInbound" = "Eliminar Entrada"
"deleteInboundContent" = "¿Confirmar eliminación de entrada?"
"deleteClient" = "Eliminar cliente"
"deleteClientContent" = "¿Está seguro de que desea eliminar el cliente?"
"resetTrafficContent" = "¿Confirmar restablecimiento de tráfico?"
+"inboundUpdateSuccess" = "La entrada se ha actualizado correctamente."
+"inboundCreateSuccess" = "La entrada se ha creado correctamente."
"copyLink" = "Copiar Enlace"
"address" = "Dirección"
"network" = "Red"
@@ -237,6 +245,21 @@ [pages.inbounds.toasts]
"obtain" = "Recibir"
+"updateSuccess" = "La actualización fue exitosa"
+"logCleanSuccess" = "El registro ha sido limpiado"
+"inboundsUpdateSuccess" = "Entradas actualizadas correctamente"
+"inboundUpdateSuccess" = "Entrada actualizada correctamente"
+"inboundCreateSuccess" = "Entrada creada correctamente"
+"inboundDeleteSuccess" = "Entrada eliminada correctamente"
+"inboundClientAddSuccess" = "Cliente(s) de entrada añadido(s)"
+"inboundClientDeleteSuccess" = "Cliente de entrada eliminado"
+"inboundClientUpdateSuccess" = "Cliente de entrada actualizado"
+"delDepletedClientsSuccess" = "Todos los clientes agotados fueron eliminados"
+"resetAllClientTrafficSuccess" = "Todo el tráfico del cliente ha sido reiniciado"
+"resetAllTrafficSuccess" = "Todo el tráfico ha sido reiniciado"
+"resetInboundClientTrafficSuccess" = "El tráfico ha sido reiniciado"
+"trafficGetError" = "Error al obtener los tráficos"
+"getNewX25519CertError" = "Error al obtener el certificado X25519."
[pages.inbounds.stream.general]
"request" = "Pedido"
@@ -259,6 +282,7 @@ "infoDesc" = "Cada cambio realizado aquí debe ser guardado. Por favor, reinicie el panel para aplicar los cambios."
"restartPanel" = "Reiniciar Panel"
"restartPanelDesc" = "¿Está seguro de que desea reiniciar el panel? Haga clic en Aceptar para reiniciar después de 3 segundos. Si no puede acceder al panel después de reiniciar, por favor, consulte la información de registro del panel en el servidor."
+"restartPanelSuccess" = "El panel se reinició correctamente"
"actions" = "Acciones"
"resetDefaultConfig" = "Restablecer a Configuración Predeterminada"
"panelSettings" = "Configuraciones del Panel"
@@ -366,6 +390,10 @@ "title" = "Xray Configuración"
"save" = "Guardar configuración"
"restart" = "Reiniciar Xray"
+"restartSuccess" = "Xray se ha reiniciado correctamente"
+"stopSuccess" = "Xray se ha detenido correctamente"
+"restartError" = "Ocurrió un error al reiniciar Xray."
+"stopErro
|
