diff --git a/src/dashboard.py b/src/dashboard.py
index 3c15b90..0511708 100644
--- a/src/dashboard.py
+++ b/src/dashboard.py
@@ -760,7 +760,7 @@ class WireguardConfiguration:
return ResponseObject(False, "Failed to save configuration through WireGuard")
self.__getPeers()
- return ResponseObject(True, "Allow access successfully!")
+ return ResponseObject(True, "Allow access successfully")
def restrictPeers(self, listOfPublicKeys):
numOfRestrictedPeers = 0
@@ -1049,7 +1049,7 @@ class WireguardConfiguration:
with open(os.path.join(DashboardConfig.GetConfig("Server", "wg_conf_path")[1], f'{self.Name}.conf'), 'r') as f:
original = f.readlines()
original = [l.rstrip("\n") for l in original]
- allowEdit = ["Address", "PreUp", "PostUp", "PreDown", "PostDown", "ListenPost", "PrivateKey"]
+ allowEdit = ["Address", "PreUp", "PostUp", "PreDown", "PostDown", "ListenPost"]
start = original.index("[Interface]")
for line in range(start+1, len(original)):
if original[line] == "[Peer]":
@@ -1733,7 +1733,6 @@ def API_addWireguardConfiguration():
"Address")
if "Backup" in data.keys():
-
if not os.path.exists(os.path.join(
DashboardConfig.GetConfig("Server", "wg_conf_path")[1],
'WGDashboard_Backup',
@@ -1769,7 +1768,6 @@ def API_updateWireguardConfiguration():
for i in requiredKeys:
if i not in data.keys():
return ResponseObject(False, "Please provide these following field: " + ", ".join(requiredKeys))
-
name = data.get("Name")
if name not in WireguardConfigurations.keys():
return ResponseObject(False, "Configuration does not exist")
@@ -2080,7 +2078,7 @@ def API_addPeers(configName):
config = WireguardConfigurations.get(configName)
if not bulkAdd and (len(public_key) == 0 or len(allowed_ips) == 0):
- return ResponseObject(False, "Please provide at lease public_key and allowed_ips")
+ return ResponseObject(False, "Please provide at least public_key and allowed_ips")
if not config.getStatus():
config.toggleConfiguration()
diff --git a/src/static/app/src/components/configurationComponents/peer.vue b/src/static/app/src/components/configurationComponents/peer.vue
index 5811003..af9b3a3 100644
--- a/src/static/app/src/components/configurationComponents/peer.vue
+++ b/src/static/app/src/components/configurationComponents/peer.vue
@@ -67,7 +67,7 @@ export default {
- Public Key
+
{{Peer.id}}
diff --git a/src/static/app/src/components/settingsComponent/dashboardLanguage.vue b/src/static/app/src/components/settingsComponent/dashboardLanguage.vue
index 32dfaae..fa35176 100644
--- a/src/static/app/src/components/settingsComponent/dashboardLanguage.vue
+++ b/src/static/app/src/components/settingsComponent/dashboardLanguage.vue
@@ -29,7 +29,7 @@ export default {
this.store.Configuration.Server.dashboard_language = lang_id;
this.store.Locale = res.data
}else{
- this.store.newMessage("Server", "Dashboard language update failed", "danger")
+ this.store.newMessage("Server", "WGDashboard language update failed", "danger")
}
})
}
diff --git a/src/static/app/src/test.py b/src/static/app/src/test.py
deleted file mode 100644
index d79eb94..0000000
--- a/src/static/app/src/test.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import subprocess
-
-
-def _generateKeyPairs(amount: int) -> list[list[str]] | None:
- try:
- pairs = subprocess.check_output(
- f'''for ((i = 0 ; i<{amount} ; i++ ));do privateKey=$(wg genkey) presharedKey=$(wg genkey) publicKey=$(wg pubkey <<< "$privateKey") echo "$privateKey,$publicKey,$presharedKey"; done''', shell=True, stderr=subprocess.STDOUT
- )
- pairs = pairs.decode().split("\n")
- print(pairs)
- return [x.split(",") for x in pairs]
- except subprocess.CalledProcessError as exp:
- print(str(exp))
- return []
-
-
-_generateKeyPairs(20)
\ No newline at end of file
diff --git a/src/static/locale/zh-CN.json b/src/static/locale/zh-CN.json
index 39b6acd..9966d5b 100644
--- a/src/static/locale/zh-CN.json
+++ b/src/static/locale/zh-CN.json
@@ -296,5 +296,17 @@
"Download Finished": "下载完成",
"Done": "完成",
"Are you sure to delete": "您确定要删除",
- "Are you sure to delete this peer\\?": "您确定要删除此端点吗?"
+ "Are you sure to delete this peer\\?": "您确定要删除此端点吗?",
+ "Configuration deleted": "配置删除成功",
+ "Configuration saved": "",
+ "WGDashboard language update failed": "WGDashboard 语言更新失败",
+ "Configuration restored": "配置恢复成功",
+ "Allowed IP already taken by another peer": "允许的 IP 地址已经被别的端点占用",
+ "Failed to allow access of peer (.*)": "此端点解除限制访问失败:$1",
+ "Failed to save configuration through WireGuard": "使用 WireGuard 保存配置失败",
+ "Allow access successfully": "解除限制访问成功",
+ "Deleted ([0-9]{1,}) peer\\(s\\)": "删除了$1个端点",
+ "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "成功删除了$1个端点,失败删除了$2个端点",
+ "Restricted ([0-9]{1,}) peer\\(s\\)": "限制访问了$1个端点",
+ "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "成功限制访问了$1个端点,失败限制访问了$2个端点"
}
\ No newline at end of file
diff --git a/src/static/locale/zh-HK.json b/src/static/locale/zh-HK.json
index 921a980..e71edc5 100644
--- a/src/static/locale/zh-HK.json
+++ b/src/static/locale/zh-HK.json
@@ -3,76 +3,76 @@
"Username": "用戶名",
"Password": "密碼",
"OTP from your authenticator": "您多重身份驗證器的一次性驗證碼",
- "Sign In": "登錄",
- "Signing In\\.\\.\\.": "正在登錄...",
- "Access Remote Server": "訪問遠程服務器",
- "Server": "服務器",
+ "Sign In": "登入",
+ "Signing In\\.\\.\\.": "正在登入...",
+ "Access Remote Server": "訪問遠端伺服器",
+ "Server": "伺服器",
"Click": "點擊",
- "Pinging...": "嘗試連接中...",
- "to add your server": "添加您的服務器",
- "Server List": "服務器列表",
+ "Pinging...": "嘗試連線中...",
+ "to add your server": "添加您的伺服器",
+ "Server List": "伺服器列表",
"Sorry, your username or password is incorrect.": "對不起,您的用戶名或密碼不正確",
"Home": "主頁",
"Settings": "設定",
"Tools": "工具箱",
- "Sign Out": "退出登錄",
+ "Sign Out": "登出",
"Checking for update...": "正在檢查是否有新版本...",
"You're on the latest version": "已經是最新版本",
"WireGuard Configurations": "WireGuard 配置",
- "You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "您還沒有任何WireGuard配置。請檢查您的配置文件夾或前往設置更改路徑。默認文件夾是 /etc/wireguard",
+ "You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "您還沒有任何WireGuard配置。請檢查您的配置資料夾或前往設定更改路徑。預設資料夾是 /etc/wireguard",
"Configuration": "配置",
"Configurations": "配置",
- "Peers Default Settings": "端點默認設置",
+ "Peers Default Settings": "端點預設設定",
"Dashboard Theme": "面板主題",
"Light": "簡約白",
"Dark": "簡約黑",
- "This will be changed globally, and will be apply to all peer's QR code and configuration file.": "更改這個設定會應用到所有端點的配置文件和配置二維碼",
+ "This will be changed globally, and will be apply to all peer's QR code and configuration file.": "更改這個設定會應用到所有端點的配置檔案和配置二維碼",
"WireGuard Configurations Settings": "WireGuard 配置設定",
- "Configurations Directory": "配置文件路徑",
- "Remember to remove / at the end of your path. e.g /etc/wireguard": "請把路徑最後的 /(左斜槓)移除,例如:/etc/wireguard",
- "WGDashboard Account Settings": "WGDashboard 賬戶設定",
+ "Configurations Directory": "配置檔案路徑",
+ "Remember to remove / at the end of your path. e.g /etc/wireguard": "請把路徑最後的 /(左斜杠)移除,例如:/etc/wireguard",
+ "WGDashboard Account Settings": "WGDashboard 帳戶設定",
"Current Password": "當前密碼",
"New Password": "新密碼",
- "Repeat New Password": "重復新密碼",
+ "Repeat New Password": "重複新密碼",
"Update Password": "更新密碼",
"Multi-Factor Authentication \\(MFA\\)": "多重身份驗證 (MFA)",
"Reset": "重置",
- "Setup": "設置",
- "API Keys": "API 秘鑰",
- "API Key": "API 秘鑰",
- "Key": "秘鑰",
- "Enabled": "已啓用",
+ "Setup": "設定",
+ "API Keys": "API 金鑰",
+ "API Key": "API 金鑰",
+ "Key": "金鑰",
+ "Enabled": "已啟用",
"Disabled": "已停用",
- "No WGDashboard API Key": "沒有 WGDashboard API 秘鑰",
+ "No WGDashboard API Key": "沒有 WGDashboard API 金鑰",
"Expire At": "過期於",
- "Are you sure to delete this API key\\?": "確定刪除此 API 秘鑰?",
- "Create API Key": "創建 API 秘鑰",
- "When should this API Key expire\\?": "這個 API 秘鑰什麼時候過期呢?",
- "Never Expire": "從不過期",
+ "Are you sure to delete this API key\\?": "確定刪除此 API 金鑰?",
+ "Create API Key": "建立 API 金鑰",
+ "When should this API Key expire\\?": "這個 API 金鑰什麼時候過期呢?",
+ "Never Expire": "永不過期",
"Don't think that's a good idea": "我不覺得這是一個好主意",
- "Creating\\.\\.\\.": "創建中...",
- "Create": "創建",
+ "Creating\\.\\.\\.": "建立中...",
+ "Create": "建立",
"Status": "狀態",
- "On": "已啓用",
+ "On": "已啟用",
"Off": "已停用",
- "Turning On\\.\\.\\.": "啓用中...",
+ "Turning On\\.\\.\\.": "啟用中...",
"Turning Off\\.\\.\\.": "停用中...",
- "Address": "網絡地址",
+ "Address": "網路地址",
"Listen Port": "監聽端口",
"Public Key": "公鑰",
- "Connected Peers": "已連接端點",
+ "Connected Peers": "已連線端點",
"Total Usage": "總數據用量",
"Total Received": "總接收數據用量",
- "Total Sent": "總發送數據用量",
+ "Total Sent": "總傳送數據用量",
"Peers Data Usage": "端點的數據用量",
"Real Time Received Data Usage": "實時接收數據量",
- "Real Time Sent Data Usage": "實時發送數據量",
+ "Real Time Sent Data Usage": "實時傳送數據量",
"Peer": "端點",
"Peers": "端點",
"Peer Settings": "端點設定",
"Download All": "全部下載",
"Search Peers\\.\\.\\.": "搜索端點...",
- "Display": "顯示設置",
+ "Display": "顯示設定",
"Sort By": "排列方式",
"Refresh Interval": "刷新間隔",
"Name": "名稱",
@@ -82,21 +82,21 @@
"(.*) Minutes": "$1 分鐘",
"Configuration Settings": "配置設定",
"Peer Jobs": "端點任務",
- "Active Jobs": "未運行任務",
- "All Active Jobs": "所有未運行任務",
+ "Active Jobs": "未執行任務",
+ "All Active Jobs": "所有未執行任務",
"Logs": "日誌",
- "Private Key": "秘鑰",
- "\\(Required for QR Code and Download\\)": "(二維碼以及下載功能需要填寫秘鑰)",
+ "Private Key": "金鑰",
+ "\\(Required for QR Code and Download\\)": "(二維碼以及下載功能需要填寫金鑰)",
"\\(Required\\)": "(必填項)",
"Endpoint Allowed IPs": "終結點允許的 IP 地址",
"DNS": "域名系統(DNS)",
"Optional Settings": "可選設定",
- "Pre-Shared Key": "共享秘鑰",
+ "Pre-Shared Key": "共享金鑰",
"MTU": "最大傳輸單元",
"Persistent Keepalive": "持久保持活動",
"Reset Data Usage": "重置數據用量",
"Total": "總數據",
- "Sent": "發送數據",
+ "Sent": "傳送數據",
"Received": "接收數據",
"Revert": "撤銷更改",
"Save Peer": "保存端點",
@@ -118,7 +118,7 @@
"Deleting...": "刪除中...",
"Cancel": "取消",
"Save": "保存",
- "No active job at the moment\\.": "沒有未運行的任務",
+ "No active job at the moment\\.": "沒有未執行的任務",
"Jobs Logs": "任務日誌",
"Updated at": "更新於",
"Refresh": "刷新",
@@ -128,7 +128,7 @@
"Log ID": "任務 ID",
"Message": "消息",
"Share Peer": "分享端點",
- "Currently the peer is not sharing": "此端點未被共享",
+ "Currently the peer is not sharing": "此端點未被分享",
"Sharing\\.\\.\\.": "分享中...",
"Start Sharing": "開始分享",
"Stop Sharing\\.\\.\\.": "停止分享中...",
@@ -138,27 +138,27 @@
"Restricting\\.\\.\\.": "限制訪問中...",
"Allow Access": "解除限制訪問",
"Allowing Access\\.\\.\\.": "解除限制訪問中...",
- "Download \\& QR Code is not available due to no private key set for this peer": "下載以及二維碼功能不可用,需要填寫此端點的秘鑰",
- "Add Peers": "創建端點",
+ "Download \\& QR Code is not available due to no private key set for this peer": "下載以及二維碼功能不可用,需要填寫此端點的金鑰",
+ "Add Peers": "建立端點",
"Bulk Add": "批量添加",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "如果選擇批量添加端點,系統會自動生成每一個端點的名稱,並且會自動安排可用的 IP 地址。",
"How many peers you want to add\\?": "您想添加多少個端點?",
"You can add up to (.*) peers": "您最多可以添加 $1 個端點",
- "Use your own Private and Public Key": "使用您自己的秘鑰和公鑰",
+ "Use your own Private and Public Key": "使用您自己的金鑰和公鑰",
"Enter IP Address/CIDR": "輸入 IP 地址/前綴長度",
"IP Address/CIDR": "IP 地址/前綴長度",
"or": "或",
"Pick Available IP": "選擇可用的 IP 地址",
"No available IP containing": "沒有可用的 IP 地址含有 ",
- "Add": "創建",
- "Adding\\.\\.\\.": "創建中...",
+ "Add": "建立",
+ "Adding\\.\\.\\.": "建立中...",
"Failed to check available update": "獲取更新失敗",
"Nice to meet you!": "很高興見到您!",
- "Please fill in the following fields to finish setup": "請填入以下信息來完成初始化設置",
- "Create an account": "創建賬戶",
+ "Please fill in the following fields to finish setup": "請填入以下信息來完成初始化設定",
+ "Create an account": "建立帳戶",
"Enter an username you like": "輸入一個您喜歡的用戶名",
"Enter a password": "輸入密碼",
- "\\(At least 8 characters and make sure is strong enough!\\)": "(至少8個字符或以上並且確保它足夠複雜喲!)",
+ "\\(At least 8 characters and make sure is strong enough!\\)": "(至少8個字符或以上並且確保它足夠複雜哟!)",
"Confirm password": "確認密碼",
"Next": "下一步",
"Saving\\.\\.\\.": "保存中...",
@@ -173,18 +173,18 @@
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "噢不!此鏈接已過期或不正確。",
"Scan QR Code with the WireGuard App to add peer": "使用 WireGuard APP 掃描以下二維碼來添加端點",
"or click the button below to download the ": "或點擊下面的按鈕下載 ",
- " file": " 文件",
+ " file": " 檔案",
"FROM ": "來自 ",
- "(.*) is on": "$1 已啓用",
+ "(.*) is on": "$1 已啟用",
"(.*) is off": "$1 已停用",
"Allowed IPs is invalid": "允許的 IP 地址錯誤",
- "Peer created successfully": "成功創建端點",
+ "Peer created successfully": "成功建立端點",
"Please fill in all required box": "請填寫所有必填項",
"Please specify amount of peers you want to add": "請提供批量添加端點的數量",
"No more available IP can assign": "沒有更多可用的 IP 可以分配了",
"The maximum number of peers can add is (.*)": "最多只能添加$1個端點",
- "Generating key pairs by bulk failed": "生成公鑰秘鑰失敗了",
- "Failed to add peers in bulk": "批量創建端點失敗",
+ "Generating key pairs by bulk failed": "生成公鑰金鑰失敗了",
+ "Failed to add peers in bulk": "批量建立端點失敗",
"This peer already exist": "此端點已存在",
"This IP is not available: (.*)": "此 IP 地址不可用:$1",
"Configuration does not exist": "此配置不存在",
@@ -196,12 +196,12 @@
"DNS format is incorrect": "域名系統(DNS)格式不正確",
"MTU format is not correct": "最大傳輸單元格式不正確",
"Persistent Keepalive format is not correct": "持久保持活動格式不正確",
- "Private key does not match with the public key": "秘鑰與公鑰不匹配",
+ "Private key does not match with the public key": "金鑰與公鑰不匹配",
"Update peer failed when updating Pre-Shared Key": "更新共享密鑰失敗",
"Update peer failed when updating Allowed IPs": "更新允許的 IP 地址失敗",
"Update peer failed when saving the configuration": "配置保存端點失敗",
"Peer data usage reset successfully": "端點數據重置成功",
- "Peer download started": "端點文件下載開始",
+ "Peer download started": "端點檔案下載開始",
"Please specify one or more peers": "請提供一個或更多端點",
"Share link failed to create. Reason: (.*)": "端點分享鏈接生成失敗。原因:$1",
"Link expire date updated": "分享鏈接過期時間更新成功",
@@ -210,15 +210,15 @@
"Please specify job": "請提供任務",
"Please specify peer and configuration": "請提供配置名稱以及端點",
"Peer job deleted": "端點任務刪除成功",
- "API Keys function is successfully enabled": "API 秘鑰功能開啓成功",
- "API Keys function is successfully disabled": "API 秘鑰功能停用成功",
- "API Keys function is failed to enable": "API 秘鑰功能開啓失敗",
- "API Keys function is failed to disable": "API 秘鑰功能停用失敗",
- "WGDashboard API Keys function is disabled": "WGDashboard 的 API 秘鑰功能並未開啓",
+ "API Keys function is successfully enabled": "API 金鑰功能開啟成功",
+ "API Keys function is successfully disabled": "API 金鑰功能停用成功",
+ "API Keys function is failed to enable": "API 金鑰功能開啟失敗",
+ "API Keys function is failed to disable": "API 金鑰功能停用失敗",
+ "WGDashboard API Keys function is disabled": "WGDashboard 的 API 金鑰功能並未開啟",
"WireGuard configuration path saved": "WireGuard 配置路徑保存成功",
- "API Key deleted": "API 秘鑰刪除成功",
- "API Key created": "API 秘鑰創建成功",
- "Sign in session ended, please sign in again": "登錄已過期,請重新登錄",
+ "API Key deleted": "API 金鑰刪除成功",
+ "API Key created": "API 金鑰建立成功",
+ "Sign in session ended, please sign in again": "登入已過期,請重新登入",
"Please specify an IP Address (v4/v6)": "請提供一個 IP 地址 (v4或v6)",
"Please provide ipAddress and count": "請提供 ipAddress 和 count",
"Please provide ipAddress": "請提供 ipAddress",
@@ -229,18 +229,84 @@
"Configuration Name": "配置名稱",
"Configuration name is invalid. Possible reasons:": "配置名稱不正確。可能的原因:",
"Configuration name already exist\\.": "配置名稱已存在。",
- "Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "配置名稱只能含有15個小/大寫英文字母,數字,下划線,等於號,加號,小數點或短橫線。",
+ "Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "配置名稱只能含有15個小/大寫英文字母,數字,下劃線,等於號,加號,小數點或短橫線。",
"Invalid Port": "錯誤的端口",
"Save Configuration": "保存配置",
"IP Address/CIDR is invalid": "IP 地址/前綴長度格式錯誤",
"IP Address": "IP 地址",
- "Enter IP Address / Hostname": "输入 IP 地址 / 域名",
+ "Enter IP Address / Hostname": "輸入 IP 地址 / 域名",
"IP Address / Hostname": "IP 地址 / 域名",
+ "Dashboard IP Address \\& Listen Port": "面板 IP地址 & 監聽端口",
"Count": "數量",
"Geolocation": "地理位置",
"Is Alive": "在線",
- "Average / Min / Max Round Trip Time": "平均 / 最低 / 最高來回通信延遲",
- "Sent / Received / Lost Package": "發送 / 接收 / 遺失數據包",
- "Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "更改 IP 位址或監聽埠後需要手動重新啟動 WGDashboard 以使用最新的設置"
-
+ "Average / Min / Max Round Trip Time": "平均 / 最低 / 最高來回通訊延遲",
+ "Sent / Received / Lost Package": "傳送 / 接收 / 丟失數據包",
+ "Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "更改 IP 地址或監聽端口後需要手動重啟 WGDashboard 以使用最新的設定",
+ "Restore Configuration": "恢復配置",
+ "Step (.*)": "第$1步",
+ "Select a backup you want to restore": "選擇一個您想恢復的配置",
+ "Click to change a backup": "點擊更換備份",
+ "Selected Backup": "已選擇備份",
+ "You don't have any configuration to restore": "您沒有任何配置備份可以恢復",
+ "Help": "幫助",
+ "Backup": "備份",
+ "([0-9].*) Backups?": "$1個備份",
+ "Yes": "是",
+ "No": "否",
+ "Backup not selected": "沒有選擇備份",
+ "Confirm \\& edit restore information": "確認和編輯備份信息",
+ "(.*) Available IP Address": "$1個可用的 IP 地址",
+ "Database File": "資料庫檔案",
+ "Contain": "含有",
+ "Restricted Peers?": "已限制訪問端點",
+ "Restore": "恢復",
+ "Restoring": "恢復中...",
+ "WGDashboard Settings": "WGDashboard 設定",
+ "Peers Settings": "端點設定",
+ "WireGuard Configuration Settings": "WireGuard 配置設定",
+ "Appearance": "外觀",
+ "Theme": "主題",
+ "Language": "語言",
+ "Account Settings": "帳戶設定",
+ "Peer Default Settings": "端點預設設定",
+ "Toggle When Start Up": "運行後啟動配置",
+ "Other Settings": "其它設定",
+ "Select Peers": "選擇端點",
+ "Backup & Restore": "備份及恢復",
+ "Delete Configuration": "刪除配置",
+ "Create Backup": "建立備份",
+ "No backup yet, click the button above to create backup\\.": "還沒有任何備份,點擊上方按鈕建立",
+ "Are you sure to delete this backup\\?": "您確定要刪除此備份嗎?",
+ "Are you sure to restore this backup?\\": "您確定要恢復此備份嗎?",
+ "Backup Date": "備份日期",
+ "File": "檔案",
+ "Are you sure to delete this configuration\\?": "您確定要刪除此配置嗎?",
+ "Once you deleted this configuration\\:": "當您刪除了此配置後:",
+ "All connected peers will get disconnected": "所有已連線的端點會斷開",
+ "Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "配置檔案 (.conf) 以及相關的資料庫檔案會被刪除",
+ "Checking backups...": "檢查備份中...",
+ "This configuration have ([0-9].*) backups": "此配置有$1個備份",
+ "This configuration have no backup": "此配置沒有備份",
+ "If you're sure, please type in the configuration name below and click Delete": "如果您確定,請在下方輸入此配置的名稱並點擊刪除",
+ "Select All": "選擇所有",
+ "Clear Selection": "清除選擇",
+ "([0-9].*) Peers?": "$1 個端點",
+ "Downloading": "正在下載",
+ "Download Finished": "下載完成",
+ "Done": "完成",
+ "Are you sure to delete": "您確定要刪除",
+ "Are you sure to delete this peer\\?": "您確定要刪除此端點嗎?",
+ "Configuration deleted": "配置刪除成功",
+ "Configuration saved": "",
+ "WGDashboard language update failed": "WGDashboard 語言更新失敗",
+ "Configuration restored": "配置恢復成功",
+ "Allowed IP already taken by another peer": "允許的 IP 地址已經被別的端點佔用",
+ "Failed to allow access of peer (.*)": "此端點解除限制訪問失敗:$1",
+ "Failed to save configuration through WireGuard": "使用 WireGuard 保存配置失敗",
+ "Allow access successfully": "解除限制訪問成功",
+ "Deleted ([0-9]{1,}) peer\\(s\\)": "刪除了$1個端點",
+ "Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "成功刪除了$1個端點,失敗刪除了$2個端點",
+ "Restricted ([0-9]{1,}) peer\\(s\\)": "限制訪問了$1個端點",
+ "Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "成功限制訪問了$1個端點,失敗限制訪問了$2個端點"
}
\ No newline at end of file