Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHamidreza Ghavami <hamid.r.gh.1998@gmail.com>2023-05-04 20:52:54 +0300
committerHamidreza Ghavami <hamid.r.gh.1998@gmail.com>2023-05-04 20:52:54 +0300
commit481d4beabb2625c51440c734654de24b18d9e1b1 (patch)
tree8c1cd095b31723d8a16c78c8e65089f841450c37
parent19c991014e9ede2890492208f2fc81c5a70fb99a (diff)
update translation
-rw-r--r--web/controller/inbound.go24
-rw-r--r--web/controller/setting.go30
-rw-r--r--web/controller/xui.go2
-rw-r--r--web/html/xui/client_bulk_modal.html2
-rw-r--r--web/html/xui/common_sider.html2
-rw-r--r--web/html/xui/form/client.html4
-rw-r--r--web/html/xui/form/inbound.html2
-rw-r--r--web/html/xui/form/protocol/socks.html1
-rw-r--r--web/html/xui/form/protocol/trojan.html2
-rw-r--r--web/html/xui/form/protocol/vless.html2
-rw-r--r--web/html/xui/form/protocol/vmess.html4
-rw-r--r--web/html/xui/form/stream/stream_kcp.html12
-rw-r--r--web/html/xui/form/stream/stream_quic.html12
-rw-r--r--web/html/xui/form/stream/stream_tcp.html2
-rw-r--r--web/html/xui/inbounds.html11
-rw-r--r--web/html/xui/index.html2
-rw-r--r--web/html/xui/settings.html8
-rw-r--r--web/translation/translate.en_US.toml296
-rw-r--r--web/translation/translate.fa_IR.toml82
-rw-r--r--web/translation/translate.zh_Hans.toml72
20 files changed, 295 insertions, 277 deletions
diff --git a/web/controller/inbound.go b/web/controller/inbound.go
index 4559f2a2..8360cf62 100644
--- a/web/controller/inbound.go
+++ b/web/controller/inbound.go
@@ -93,7 +93,7 @@ func (a *InboundController) addInbound(c *gin.Context) {
inbound := &model.Inbound{}
err := c.ShouldBind(inbound)
if err != nil {
- jsonMsg(c, I18n(c, "pages.inbounds.addTo"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.create"), err)
return
}
user := session.GetLoginUser(c)
@@ -101,7 +101,7 @@ func (a *InboundController) addInbound(c *gin.Context) {
inbound.Enable = true
inbound.Tag = fmt.Sprintf("inbound-%v", inbound.Port)
inbound, err = a.inboundService.AddInbound(inbound)
- jsonMsgObj(c, I18n(c, "pages.inbounds.addTo"), inbound, err)
+ jsonMsgObj(c, I18n(c, "pages.inbounds.create"), inbound, err)
if err == nil {
a.xrayService.SetToNeedRestart()
}
@@ -123,7 +123,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, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
inbound := &model.Inbound{
@@ -131,11 +131,11 @@ func (a *InboundController) updateInbound(c *gin.Context) {
}
err = c.ShouldBind(inbound)
if err != nil {
- jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
inbound, err = a.inboundService.UpdateInbound(inbound)
- jsonMsgObj(c, I18n(c, "pages.inbounds.revise"), inbound, err)
+ jsonMsgObj(c, I18n(c, "pages.inbounds.update"), inbound, err)
if err == nil {
a.xrayService.SetToNeedRestart()
}
@@ -156,7 +156,7 @@ func (a *InboundController) clearClientIps(c *gin.Context) {
err := a.inboundService.ClearClientIps(email)
if err != nil {
- jsonMsg(c, "Revise", err)
+ jsonMsg(c, "Update", err)
return
}
jsonMsg(c, "Log Cleared", nil)
@@ -165,7 +165,7 @@ func (a *InboundController) addInboundClient(c *gin.Context) {
data := &model.Inbound{}
err := c.ShouldBind(data)
if err != nil {
- jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
@@ -183,7 +183,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, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
clientId := c.Param("clientId")
@@ -205,7 +205,7 @@ func (a *InboundController) updateInboundClient(c *gin.Context) {
inbound := &model.Inbound{}
err := c.ShouldBind(inbound)
if err != nil {
- jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
@@ -223,7 +223,7 @@ 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, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
email := c.Param("email")
@@ -251,7 +251,7 @@ func (a *InboundController) resetAllTraffics(c *gin.Context) {
func (a *InboundController) resetAllClientTraffics(c *gin.Context) {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
- jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
@@ -266,7 +266,7 @@ func (a *InboundController) resetAllClientTraffics(c *gin.Context) {
func (a *InboundController) delDepletedClients(c *gin.Context) {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
- jsonMsg(c, I18n(c, "pages.inbounds.revise"), err)
+ jsonMsg(c, I18n(c, "pages.inbounds.update"), err)
return
}
err = a.inboundService.DelDepletedClients(id)
diff --git a/web/controller/setting.go b/web/controller/setting.go
index 2726c228..bd9c2a5f 100644
--- a/web/controller/setting.go
+++ b/web/controller/setting.go
@@ -49,7 +49,7 @@ func (a *SettingController) initRouter(g *gin.RouterGroup) {
func (a *SettingController) getAllSetting(c *gin.Context) {
allSetting, err := a.settingService.GetAllSetting()
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.getSettings"), err)
return
}
jsonObj(c, allSetting, nil)
@@ -58,7 +58,7 @@ func (a *SettingController) getAllSetting(c *gin.Context) {
func (a *SettingController) getDefaultJsonConfig(c *gin.Context) {
defaultJsonConfig, err := a.settingService.GetDefaultJsonConfig()
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.getSettings"), err)
return
}
jsonObj(c, defaultJsonConfig, nil)
@@ -67,22 +67,22 @@ func (a *SettingController) getDefaultJsonConfig(c *gin.Context) {
func (a *SettingController) getDefaultSettings(c *gin.Context) {
expireDiff, err := a.settingService.GetExpireDiff()
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.getSettings"), err)
return
}
trafficDiff, err := a.settingService.GetTrafficDiff()
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.getSettings"), err)
return
}
defaultCert, err := a.settingService.GetCertFile()
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.getSettings"), err)
return
}
defaultKey, err := a.settingService.GetKeyFile()
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.getSettings"), err)
return
}
result := map[string]interface{}{
@@ -98,27 +98,27 @@ func (a *SettingController) updateSetting(c *gin.Context) {
allSetting := &entity.AllSetting{}
err := c.ShouldBind(allSetting)
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifySetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifySettings"), err)
return
}
err = a.settingService.UpdateAllSetting(allSetting)
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifySetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifySettings"), err)
}
func (a *SettingController) updateUser(c *gin.Context) {
form := &updateUserForm{}
err := c.ShouldBind(form)
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifySetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifySettings"), err)
return
}
user := session.GetLoginUser(c)
if user.Username != form.OldUsername || user.Password != form.OldPassword {
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifyUser"), errors.New(I18n(c, "pages.setting.toasts.originalUserPassIncorrect")))
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifyUser"), errors.New(I18n(c, "pages.settings.toasts.originalUserPassIncorrect")))
return
}
if form.NewUsername == "" || form.NewPassword == "" {
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifyUser"), errors.New(I18n(c, "pages.setting.toasts.userPassMustBeNotEmpty")))
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifyUser"), errors.New(I18n(c, "pages.settings.toasts.userPassMustBeNotEmpty")))
return
}
err = a.userService.UpdateUser(user.Id, form.NewUsername, form.NewPassword)
@@ -127,19 +127,19 @@ func (a *SettingController) updateUser(c *gin.Context) {
user.Password = form.NewPassword
session.SetLoginUser(c, user)
}
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifyUser"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifyUser"), err)
}
func (a *SettingController) restartPanel(c *gin.Context) {
err := a.panelService.RestartPanel(time.Second * 3)
- jsonMsg(c, I18n(c, "pages.setting.restartPanel"), err)
+ jsonMsg(c, I18n(c, "pages.settings.restartPanel"), err)
}
func (a *SettingController) updateSecret(c *gin.Context) {
form := &updateSecretForm{}
err := c.ShouldBind(form)
if err != nil {
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifySetting"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifySettings"), err)
}
user := session.GetLoginUser(c)
err = a.userService.UpdateUserSecret(user.Id, form.LoginSecret)
@@ -147,7 +147,7 @@ func (a *SettingController) updateSecret(c *gin.Context) {
user.LoginSecret = form.LoginSecret
session.SetLoginUser(c, user)
}
- jsonMsg(c, I18n(c, "pages.setting.toasts.modifyUser"), err)
+ jsonMsg(c, I18n(c, "pages.settings.toasts.modifyUser"), err)
}
func (a *SettingController) getUserSecret(c *gin.Context) {
loginUser := session.GetLoginUser(c)
diff --git a/web/controller/xui.go b/web/controller/xui.go
index c836057a..1844181d 100644
--- a/web/controller/xui.go
+++ b/web/controller/xui.go
@@ -38,5 +38,5 @@ func (a *XUIController) inbounds(c *gin.Context) {
}
func (a *XUIController) settings(c *gin.Context) {
- html(c, "settings.html", "pages.setting.title", nil)
+ html(c, "settings.html", "pages.settings.title", nil)
}
diff --git a/web/html/xui/client_bulk_modal.html b/web/html/xui/client_bulk_modal.html
index 827fc951..274f8588 100644
--- a/web/html/xui/client_bulk_modal.html
+++ b/web/html/xui/client_bulk_modal.html
@@ -65,7 +65,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
diff --git a/web/html/xui/common_sider.html b/web/html/xui/common_sider.html
index c7765d60..d059e920 100644
--- a/web/html/xui/common_sider.html
+++ b/web/html/xui/common_sider.html
@@ -9,7 +9,7 @@
</a-menu-item>
<a-menu-item key="{{ .base_path }}xui/settings">
<a-icon type="setting"></a-icon>
- <span>{{ i18n "menu.setting"}}</span>
+ <span>{{ i18n "menu.settings"}}</span>
</a-menu-item>
<!--<a-menu-item key="{{ .base_path }}xui/clients">-->
<!-- <a-icon type="laptop"></a-icon>-->
diff --git a/web/html/xui/form/client.html b/web/html/xui/form/client.html
index b9d939d1..501861db 100644
--- a/web/html/xui/form/client.html
+++ b/web/html/xui/form/client.html
@@ -43,7 +43,7 @@
<a-icon type="question-circle" theme="filled"></a-icon>
</a-tooltip>
</span>
- <a-input-number v-model="client.limitIp" min="0" style="width: 70px;"></a-input-number>
+ <a-input-number v-model="client.limitIp" min="0" style="width: 70px;"></a-input-number>
</a-form-item>
<a-form-item v-if="client.email && client.limitIp > 0 && isEdit">
<span slot="label">
@@ -82,7 +82,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
diff --git a/web/html/xui/form/inbound.html b/web/html/xui/form/inbound.html
index 1cc4e2ea..603ca46a 100644
--- a/web/html/xui/form/inbound.html
+++ b/web/html/xui/form/inbound.html
@@ -29,7 +29,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
diff --git a/web/html/xui/form/protocol/socks.html b/web/html/xui/form/protocol/socks.html
index 2662f1d6..89cde72c 100644
--- a/web/html/xui/form/protocol/socks.html
+++ b/web/html/xui/form/protocol/socks.html
@@ -1,6 +1,5 @@
{{define "form/socks"}}
<a-form layout="inline">
- <!-- <a-form-item label="Password authentication">-->
<a-form-item label='{{ i18n "password" }}'>
<a-switch :checked="inbound.settings.auth === 'password'"
@change="checked => inbound.settings.auth = checked ? 'password' : 'noauth'"></a-switch>
diff --git a/web/html/xui/form/protocol/trojan.html b/web/html/xui/form/protocol/trojan.html
index 65344f11..e63943e6 100644
--- a/web/html/xui/form/protocol/trojan.html
+++ b/web/html/xui/form/protocol/trojan.html
@@ -43,7 +43,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
diff --git a/web/html/xui/form/protocol/vless.html b/web/html/xui/form/protocol/vless.html
index b05f2157..33e0c170 100644
--- a/web/html/xui/form/protocol/vless.html
+++ b/web/html/xui/form/protocol/vless.html
@@ -49,7 +49,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
diff --git a/web/html/xui/form/protocol/vmess.html b/web/html/xui/form/protocol/vmess.html
index 86ceead8..6471e20d 100644
--- a/web/html/xui/form/protocol/vmess.html
+++ b/web/html/xui/form/protocol/vmess.html
@@ -40,7 +40,7 @@
</a-form-item>
<a-form-item>
<span slot="label">
- <span >{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
+ <span >{{ i18n "pages.inbounds.totalFlow" }}</span> (GB)
<a-tooltip>
<template slot="title">
0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
@@ -67,7 +67,7 @@
</a-collapse-panel>
</a-collapse>
<a-collapse v-else>
- <a-collapse-panel :header="'{{ i18n "pages.client.clientCount"}} : ' + inbound.settings.vmesses.length">
+ <a-collapse-panel :header="'{{ i18n "pages.client.clientCount" }}: ' + inbound.settings.vmesses.length">
<table width="100%">
<tr class="client-table-header">
<th v-for="col in Object.keys(inbound.settings.vmesses[0]).slice(0, 3)">[[ col ]]</th>
diff --git a/web/html/xui/form/stream/stream_kcp.html b/web/html/xui/form/stream/stream_kcp.html
index 1dc6eb9d..52a930f9 100644
--- a/web/html/xui/form/stream/stream_kcp.html
+++ b/web/html/xui/form/stream/stream_kcp.html
@@ -2,12 +2,12 @@
<a-form layout="inline">
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="inbound.stream.kcp.type" style="width: 280px;">
- <a-select-option value="none">None(Not Camouflage)</a-select-option>
- <a-select-option value="srtp">SRTP(Camouflage Video Call)</a-select-option>
- <a-select-option value="utp">UTP(Camouflage BT Download)</a-select-option>
- <a-select-option value="wechat-video">Wechat-Video(Camouflage WeChat Video)</a-select-option>
- <a-select-option value="dtls">DTLS(Camouflage DTLS 1.2 Packages)</a-select-option>
- <a-select-option value="wireguard">Wireguard(Camouflage Wireguard Packages)</a-select-option>
+ <a-select-option value="none">None (Not Camouflage)</a-select-option>
+ <a-select-option value="srtp">SRTP (Camouflage Video Call)</a-select-option>
+ <a-select-option value="utp">UTP (Camouflage BT Download)</a-select-option>
+ <a-select-option value="wechat-video">Wechat-Video (Camouflage WeChat Video)</a-select-option>
+ <a-select-option value="dtls">DTLS (Camouflage DTLS 1.2 Packages)</a-select-option>
+ <a-select-option value="wireguard">Wireguard (Camouflage Wireguard Packages)</a-select-option>
</a-select>
</a-form-item>
<a-form-item label='{{ i18n "password" }}'>
diff --git a/web/html/xui/form/stream/stream_quic.html b/web/html/xui/form/stream/stream_quic.html
index 2a48af84..4d04587a 100644
--- a/web/html/xui/form/stream/stream_quic.html
+++ b/web/html/xui/form/stream/stream_quic.html
@@ -12,12 +12,12 @@
</a-form-item>
<a-form-item label='{{ i18n "camouflage" }}'>
<a-select v-model="inbound.stream.quic.type" style="width: 280px;" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
- <a-select-option value="none">none(not camouflage)</a-select-option>
- <a-select-option value="srtp">srtp(camouflage video call)</a-select-option>
- <a-select-option value="utp">utp(camouflage BT download)</a-select-option>
- <a-select-option value="wechat-video">wechat-video(camouflage WeChat video)</a-select-option>
- <a-select-option value="dtls">dtls(camouflage DTLS 1.2 packages)</a-select-option>
- <a-select-option value="wireguard">wireguard(camouflage wireguard packages)</a-select-option>
+ <a-select-option value="none">none (not camouflage)</a-select-option>
+ <a-select-option value="srtp">srtp (camouflage video call)</a-select-option>
+ <a-select-option value="utp">utp (camouflage BT download)</a-select-option>
+ <a-select-option value="wechat-video">wechat-video (camouflage WeChat video)</a-select-option>
+ <a-select-option value="dtls">dtls (camouflage DTLS 1.2 packages)</a-select-option>
+ <a-select-option value="wireguard">wireguard (camouflage wireguard packages)</a-select-option>
</a-select>
</a-form-item>
</a-form>
diff --git a/web/html/xui/form/stream/stream_tcp.html b/web/html/xui/form/stream/stream_tcp.html
index 958f8f25..993fb0d0 100644
--- a/web/html/xui/form/stream/stream_tcp.html
+++ b/web/html/xui/form/stream/stream_tcp.html
@@ -4,7 +4,7 @@
<a-form-item label="AcceptProxyProtocol">
<a-switch v-model="inbound.stream.tcp.acceptProxyProtocol"></a-switch>
</a-form-item>
- <a-form-item label="HTTP {{ i18n "camouflage" }}">
+ <a-form-item label='HTTP {{ i18n "camouflage" }}'>
<a-switch
:checked="inbound.stream.tcp.type === 'http'"
@change="checked => inbound.stream.tcp.type = checked ? 'http' : 'none'">
diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html
index 31e251f5..e697b8a1 100644
--- a/web/html/xui/inbounds.html
+++ b/web/html/xui/inbounds.html
@@ -93,12 +93,13 @@
</a-col>
<a-col :xs="24" :sm="24" :lg="12" style="text-align: right;">
<a-select v-model="refreshInterval"
+ style="width: 65px;"
v-if="isRefreshEnabled"
@change="changeRefreshInterval"
:dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
<a-select-option v-for="key in [5,10,30,60]" :value="key*1000">[[ key ]]s</a-select-option>
</a-select>
- <a-icon type="sync" :spin="isRefreshEnabled"></a-icon>
+ <a-icon type="sync" :spin="isRefreshEnabled" style="margin: 0 5px;"></a-icon>
<a-switch v-model="isRefreshEnabled" @change="toggleRefresh"></a-switch>
</a-col>
</a-row>
@@ -155,7 +156,7 @@
<a-icon type="retweet"></a-icon> {{ i18n "pages.inbounds.resetTraffic" }}
</a-menu-item>
<a-menu-item key="clone">
- <a-icon type="block"></a-icon> {{ i18n "pages.inbounds.Clone"}}
+ <a-icon type="block"></a-icon> {{ i18n "pages.inbounds.clone"}}
</a-menu-item>
<a-menu-item key="delete">
<span style="color: #FF4D4F">
@@ -478,7 +479,7 @@
},
openCloneInbound(dbInbound) {
this.$confirm({
- title: '{{ i18n "pages.inbounds.cloneInbound"}}' + dbInbound.remark,
+ title: '{{ i18n "pages.inbounds.cloneInbound"}} \"' + dbInbound.remark + '\"',
content: '{{ i18n "pages.inbounds.cloneInboundContent"}}',
okText: '{{ i18n "pages.inbounds.cloneInboundOk"}}',
cancelText: '{{ i18n "cancel" }}',
@@ -512,7 +513,7 @@
openAddInbound() {
inModal.show({
title: '{{ i18n "pages.inbounds.addInbound"}}',
- okText: '{{ i18n "pages.inbounds.addTo"}}',
+ okText: '{{ i18n "pages.inbounds.create"}}',
cancelText: '{{ i18n "close" }}',
confirm: async (inbound, dbInbound) => {
inModal.loading();
@@ -527,7 +528,7 @@
const inbound = dbInbound.toInbound();
inModal.show({
title: '{{ i18n "pages.inbounds.modifyInbound"}}',
- okText: '{{ i18n "pages.inbounds.revise"}}',
+ okText: '{{ i18n "pages.inbounds.update"}}',
cancelText: '{{ i18n "close" }}',
inbound: inbound,
dbInbound: dbInbound,
diff --git a/web/html/xui/index.html b/web/html/xui/index.html
index 320422e3..f2babcb0 100644
--- a/web/html/xui/index.html
+++ b/web/html/xui/index.html
@@ -382,7 +382,7 @@
cancelText: '{{ i18n "cancel"}}',
onOk: async () => {
versionModal.hide();
- this.loading(true, '{{ i18n "pages.index.dontRefreshh"}}');
+ this.loading(true, '{{ i18n "pages.index.dontRefresh"}}');
await HttpUtil.post(`/server/installXray/${version}`);
this.loading(false);
},
diff --git a/web/html/xui/settings.html b/web/html/xui/settings.html
index 3f4680fe..6a9d9509 100644
--- a/web/html/xui/settings.html
+++ b/web/html/xui/settings.html
@@ -141,8 +141,8 @@
<a-divider>{{ i18n "pages.settings.templates.title"}}</a-divider>
- <a-tabs default-active-key="tpl-1" :class="siderDrawer.isDarkTheme ? darkClass : ''">
- <a-tab-pane key="tpl-1" tab='{{ i18n "pages.settings.templates.basicTemplate"}}'>
+ <a-tabs default-active-key="tpl-1" :class="siderDrawer.isDarkTheme ? darkClass : ''" style="padding: 0 20px;">
+ <a-tab-pane key="tpl-1" tab='{{ i18n "pages.settings.templates.basicTemplate"}}' style="padding-top: 20px;">
<a-collapse>
<a-collapse-panel header='{{ i18n "pages.settings.templates.generalConfigs"}}'>
<a-row :xs="24" :sm="24" :lg="12">
@@ -194,7 +194,7 @@
</a-collapse-panel>
</a-collapse>
</a-tab-pane>
- <a-tab-pane key="tpl-2" tab='{{ i18n "pages.settings.templates.advancedTemplate"}}'>
+ <a-tab-pane key="tpl-2" tab='{{ i18n "pages.settings.templates.advancedTemplate"}}' style="padding-top: 20px;">
<a-collapse>
<a-collapse-panel header='{{ i18n "pages.settings.templates.xrayConfigInbounds"}}'>
<setting-list-item type="textarea" title='{{ i18n "pages.settings.templates.xrayConfigInbounds"}}' desc='{{ i18n "pages.settings.templates.xrayConfigInboundsDesc"}}' v-model="inboundSettings"></setting-list-item>
@@ -207,7 +207,7 @@
</a-collapse-panel>
</a-collapse>
</a-tab-pane>
- <a-tab-pane key="tpl-3" tab='{{ i18n "pages.settings.templates.completeTemplate"}}'>
+ <a-tab-pane key="tpl-3" tab='{{ i18n "pages.settings.templates.completeTemplate"}}' style="padding-top: 20px;">
<setting-list-item type="textarea" title='{{ i18n "pages.settings.templates.xrayConfigTemplate"}}' desc='{{ i18n "pages.settings.templates.xrayConfigTemplateDesc"}}' v-model="allSetting.xrayTemplateConfig"></setting-list-item>
</a-tab-pane>
</a-tabs>
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index d20a0157..bc5bb942 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -22,7 +22,7 @@
"unlimited" = "Unlimited"
"none" = "None"
"qrCode" = "QR Code"
-"info" = "More information"
+"info" = "More Information"
"edit" = "Edit"
"delete" = "Delete"
"reset" = "Reset"
@@ -43,29 +43,29 @@
"monitor" = "Listening IP"
"certificate" = "Certificate"
"fail" = "Fail"
-"success" = " Success"
+"success" = "Success"
"getVersion" = "Get version"
"install" = "Install"
"clients" = "Clients"
"usage" = "Usage"
-"secretToken" = "Secret token"
+"secretToken" = "Secret Token"
[menu]
"dashboard" = "System Status"
"inbounds" = "Inbounds"
-"setting" = "Panel Setting"
+"settings" = "Panel Settings"
"logout" = "Logout"
"link" = "Other"
[pages.login]
"title" = "Login"
-"loginAgain" = "The login time limit has expired, please log in again"
+"loginAgain" = "The login time limit has expired. Please log in again."
[pages.login.toasts]
-"invalidFormData" = "Input Data Format is Invalid"
-"emptyUsername" = "Please Enter Username"
-"emptyPassword" = "Please Enter Password"
-"wrongUsernameOrPassword" = "Invalid username or password"
+"invalidFormData" = "Input data format is invalid."
+"emptyUsername" = "Please enter username."
+"emptyPassword" = "Please enter password."
+"wrongUsernameOrPassword" = "Invalid username or password."
"successLogin" = "Login"
[pages.index]
@@ -81,21 +81,21 @@
"operationHours" = "Operation Hours"
"operationHoursDesc" = "System uptime: time since startup."
"systemLoad" = "System Load"
-"connectionCount" = "Number of connections"
-"connectionCountDesc" = "Total connections across all network cards"
-"upSpeed" = "Total upload speed for all network cards"
-"downSpeed" = "Total download speed for all network cards"
-"totalSent" = "Total upload traffic of all network cards since system startup"
-"totalReceive" = "Total download data across all network cards since system startup"
-"xraySwitchVersionDialog" = "Switch xray version"
-"xraySwitchVersionDialogDesc" = "Whether to switch the xray version to"
-"dontRefreshh" = "Installation is in progress, please do not refresh this page"
+"connectionCount" = "Number of Connections"
+"connectionCountDesc" = "Total connections across all network cards."
+"upSpeed" = "Total upload speed for all network cards."
+"downSpeed" = "Total download speed for all network cards."
+"totalSent" = "Total upload traffic of all network cards since system startup."
+"totalReceive" = "Total download data across all network cards since system startup."
+"xraySwitchVersionDialog" = "Switch Xray Version"
+"xraySwitchVersionDialogDesc" = "Are you sure you want to switch the Xray version to"
+"dontRefresh" = "Installation is in progress, please do not refresh this page."
[pages.inbounds]
"title" = "Inbounds"
-"totalDownUp" = "Total uploads/downloads"
-"totalUsage" = "Total usage"
-"inboundCount" = "Number of inbound"
+"totalDownUp" = "Total Uploads/Downloads"
+"totalUsage" = "Total Usage"
+"inboundCount" = "Number of Inbounds"
"operate" = "Menu"
"enable" = "Enable"
"remark" = "Remark"
@@ -104,77 +104,77 @@
"traffic" = "Traffic"
"details" = "Details"
"transportConfig" = "Transport"
-"expireDate" = "Expire date"
-"resetTraffic" = "Reset traffic"
+"expireDate" = "Expire Date"
+"resetTraffic" = "Reset Traffic"
"addInbound" = "Add Inbound"
"generalActions" = "General Actions"
-"addTo" = "Create"
-"revise" = "Update"
-"modifyInbound" = "Modify InBound"
+"create" = "Create"
+"update" = "Update"
+"modifyInbound" = "Modify Inbound"
"deleteInbound" = "Delete Inbound"
"deleteInboundContent" = "Confirm deletion of inbound?"
"resetTrafficContent" = "Confirm traffic reset?"
"copyLink" = "Copy Link"
"address" = "Address"
"network" = "Network"
-"destinationPort" = "Destination port"
-"targetAddress" = "Target address"
-"disableInsecureEncryption" = "Disable insecure encryption"
+"destinationPort" = "Destination Port"
+"targetAddress" = "Target Address"
+"disableInsecureEncryption" = "Disable Insecure Encryption"
"monitorDesc" = "Leave blank by default"
-"meansNoLimit" = "Means no limit"
-"totalFlow" = "Total flow"
-"leaveBlankToNeverExpire" = "Leave blank to set no expiration"
+"meansNoLimit" = "Means No Limit"
+"totalFlow" = "Total Flow"
+"leaveBlankToNeverExpire" = "Leave Blank to Never Expire"
"noRecommendKeepDefault" = "No special requirements to maintain default settings"
-"certificatePath" = "Certificate file path"
-"certificateContent" = "Certificate file content"
-"publicKeyPath" = "Public key path"
-"publicKeyContent" = "Public key content"
-"keyPath" = "Private Key path"
-"keyContent" = "Private Key content"
+"certificatePath" = "Certificate File Path"
+"certificateContent" = "Certificate File Content"
+"publicKeyPath" = "Public Key Path"
+"publicKeyContent" = "Public Key Content"
+"keyPath" = "Private Key Path"
+"keyContent" = "Private Key Content"
"clickOnQRcode" = "Click on QR Code to Copy"
"client" = "Client"
-"export" = "Export links"
-"Clone" = "Clone"
-"cloneInbound" = "Create"
-"cloneInboundContent" = "All settings of this inbound, except for Port, Listening IP, and Clients, will be applied to the clone"
-"cloneInboundOk" = "Creating a clone from"
+"export" = "Export Links"
+"clone" = "Clone"
+"cloneInbound" = "Clone"

contacts: admin@thfree.ru

mirrors for living