1
0
mirror of https://github.com/donaldzou/WGDashboard.git synced 2024-11-22 07:10:09 +01:00

Update both Chinese languague

This commit is contained in:
Donald Zou 2024-11-03 17:36:03 +08:00
parent d1ea8081e4
commit eaac12ddc8
6 changed files with 155 additions and 96 deletions

View File

@ -760,7 +760,7 @@ class WireguardConfiguration:
return ResponseObject(False, "Failed to save configuration through WireGuard") return ResponseObject(False, "Failed to save configuration through WireGuard")
self.__getPeers() self.__getPeers()
return ResponseObject(True, "Allow access successfully!") return ResponseObject(True, "Allow access successfully")
def restrictPeers(self, listOfPublicKeys): def restrictPeers(self, listOfPublicKeys):
numOfRestrictedPeers = 0 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: with open(os.path.join(DashboardConfig.GetConfig("Server", "wg_conf_path")[1], f'{self.Name}.conf'), 'r') as f:
original = f.readlines() original = f.readlines()
original = [l.rstrip("\n") for l in original] 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]") start = original.index("[Interface]")
for line in range(start+1, len(original)): for line in range(start+1, len(original)):
if original[line] == "[Peer]": if original[line] == "[Peer]":
@ -1733,7 +1733,6 @@ def API_addWireguardConfiguration():
"Address") "Address")
if "Backup" in data.keys(): if "Backup" in data.keys():
if not os.path.exists(os.path.join( if not os.path.exists(os.path.join(
DashboardConfig.GetConfig("Server", "wg_conf_path")[1], DashboardConfig.GetConfig("Server", "wg_conf_path")[1],
'WGDashboard_Backup', 'WGDashboard_Backup',
@ -1769,7 +1768,6 @@ def API_updateWireguardConfiguration():
for i in requiredKeys: for i in requiredKeys:
if i not in data.keys(): if i not in data.keys():
return ResponseObject(False, "Please provide these following field: " + ", ".join(requiredKeys)) return ResponseObject(False, "Please provide these following field: " + ", ".join(requiredKeys))
name = data.get("Name") name = data.get("Name")
if name not in WireguardConfigurations.keys(): if name not in WireguardConfigurations.keys():
return ResponseObject(False, "Configuration does not exist") return ResponseObject(False, "Configuration does not exist")
@ -2080,7 +2078,7 @@ def API_addPeers(configName):
config = WireguardConfigurations.get(configName) config = WireguardConfigurations.get(configName)
if not bulkAdd and (len(public_key) == 0 or len(allowed_ips) == 0): 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(): if not config.getStatus():
config.toggleConfiguration() config.toggleConfiguration()

View File

@ -67,7 +67,7 @@ export default {
</h6> </h6>
<div class="mb-1"> <div class="mb-1">
<small class="text-muted"> <small class="text-muted">
Public Key <LocaleText t="Public Key"></LocaleText>
</small> </small>
<small class="d-block"> <small class="d-block">
<samp>{{Peer.id}}</samp> <samp>{{Peer.id}}</samp>

View File

@ -29,7 +29,7 @@ export default {
this.store.Configuration.Server.dashboard_language = lang_id; this.store.Configuration.Server.dashboard_language = lang_id;
this.store.Locale = res.data this.store.Locale = res.data
}else{ }else{
this.store.newMessage("Server", "Dashboard language update failed", "danger") this.store.newMessage("Server", "WGDashboard language update failed", "danger")
} }
}) })
} }

View File

@ -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)

View File

@ -296,5 +296,17 @@
"Download Finished": "下载完成", "Download Finished": "下载完成",
"Done": "完成", "Done": "完成",
"Are you sure to delete": "您确定要删除", "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个端点"
} }

View File

@ -3,76 +3,76 @@
"Username": "用戶名", "Username": "用戶名",
"Password": "密碼", "Password": "密碼",
"OTP from your authenticator": "您多重身份驗證器的一次性驗證碼", "OTP from your authenticator": "您多重身份驗證器的一次性驗證碼",
"Sign In": "登", "Sign In": "登",
"Signing In\\.\\.\\.": "正在登...", "Signing In\\.\\.\\.": "正在登...",
"Access Remote Server": "訪問遠程服務器", "Access Remote Server": "訪問遠端伺服器",
"Server": "器", "Server": "服器",
"Click": "點擊", "Click": "點擊",
"Pinging...": "嘗試連中...", "Pinging...": "嘗試連中...",
"to add your server": "添加您的器", "to add your server": "添加您的服器",
"Server List": "器列表", "Server List": "服器列表",
"Sorry, your username or password is incorrect.": "對不起,您的用戶名或密碼不正確", "Sorry, your username or password is incorrect.": "對不起,您的用戶名或密碼不正確",
"Home": "主頁", "Home": "主頁",
"Settings": "設定", "Settings": "設定",
"Tools": "工具箱", "Tools": "工具箱",
"Sign Out": "退出登錄", "Sign Out": "登出",
"Checking for update...": "正在檢查是否有新版本...", "Checking for update...": "正在檢查是否有新版本...",
"You're on the latest version": "已經是最新版本", "You're on the latest version": "已經是最新版本",
"WireGuard Configurations": "WireGuard 配置", "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": "配置", "Configuration": "配置",
"Configurations": "配置", "Configurations": "配置",
"Peers Default Settings": "端點默認設置", "Peers Default Settings": "端點預設設定",
"Dashboard Theme": "面板主題", "Dashboard Theme": "面板主題",
"Light": "簡約白", "Light": "簡約白",
"Dark": "簡約黑", "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 配置設定", "WireGuard Configurations Settings": "WireGuard 配置設定",
"Configurations Directory": "配置文件路徑", "Configurations Directory": "配置檔案路徑",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "請把路徑最後的 /(左斜)移除,例如:/etc/wireguard", "Remember to remove / at the end of your path. e.g /etc/wireguard": "請把路徑最後的 /(左斜)移除,例如:/etc/wireguard",
"WGDashboard Account Settings": "WGDashboard 戶設定", "WGDashboard Account Settings": "WGDashboard 戶設定",
"Current Password": "當前密碼", "Current Password": "當前密碼",
"New Password": "新密碼", "New Password": "新密碼",
"Repeat New Password": "重新密碼", "Repeat New Password": "重新密碼",
"Update Password": "更新密碼", "Update Password": "更新密碼",
"Multi-Factor Authentication \\(MFA\\)": "多重身份驗證 (MFA)", "Multi-Factor Authentication \\(MFA\\)": "多重身份驗證 (MFA)",
"Reset": "重置", "Reset": "重置",
"Setup": "設", "Setup": "設",
"API Keys": "API 鑰", "API Keys": "API 鑰",
"API Key": "API 鑰", "API Key": "API 鑰",
"Key": "鑰", "Key": "鑰",
"Enabled": "已用", "Enabled": "已用",
"Disabled": "已停用", "Disabled": "已停用",
"No WGDashboard API Key": "沒有 WGDashboard API 鑰", "No WGDashboard API Key": "沒有 WGDashboard API 鑰",
"Expire At": "過期於", "Expire At": "過期於",
"Are you sure to delete this API key\\?": "確定刪除此 API 鑰?", "Are you sure to delete this API key\\?": "確定刪除此 API 鑰?",
"Create API Key": "創建 API 秘鑰", "Create API Key": "建立 API 金鑰",
"When should this API Key expire\\?": "這個 API 鑰什麼時候過期呢?", "When should this API Key expire\\?": "這個 API 鑰什麼時候過期呢?",
"Never Expire": "不過期", "Never Expire": "不過期",
"Don't think that's a good idea": "我不覺得這是一個好主意", "Don't think that's a good idea": "我不覺得這是一個好主意",
"Creating\\.\\.\\.": "建中...", "Creating\\.\\.\\.": "中...",
"Create": "建", "Create": "",
"Status": "狀態", "Status": "狀態",
"On": "已用", "On": "已用",
"Off": "已停用", "Off": "已停用",
"Turning On\\.\\.\\.": "用中...", "Turning On\\.\\.\\.": "用中...",
"Turning Off\\.\\.\\.": "停用中...", "Turning Off\\.\\.\\.": "停用中...",
"Address": "網地址", "Address": "網地址",
"Listen Port": "監聽端口", "Listen Port": "監聽端口",
"Public Key": "公鑰", "Public Key": "公鑰",
"Connected Peers": "已連端點", "Connected Peers": "已連端點",
"Total Usage": "總數據用量", "Total Usage": "總數據用量",
"Total Received": "總接收數據用量", "Total Received": "總接收數據用量",
"Total Sent": "總送數據用量", "Total Sent": "總送數據用量",
"Peers Data Usage": "端點的數據用量", "Peers Data Usage": "端點的數據用量",
"Real Time Received Data Usage": "實時接收數據量", "Real Time Received Data Usage": "實時接收數據量",
"Real Time Sent Data Usage": "實時送數據量", "Real Time Sent Data Usage": "實時送數據量",
"Peer": "端點", "Peer": "端點",
"Peers": "端點", "Peers": "端點",
"Peer Settings": "端點設定", "Peer Settings": "端點設定",
"Download All": "全部下載", "Download All": "全部下載",
"Search Peers\\.\\.\\.": "搜索端點...", "Search Peers\\.\\.\\.": "搜索端點...",
"Display": "顯示設", "Display": "顯示設",
"Sort By": "排列方式", "Sort By": "排列方式",
"Refresh Interval": "刷新間隔", "Refresh Interval": "刷新間隔",
"Name": "名稱", "Name": "名稱",
@ -82,21 +82,21 @@
"(.*) Minutes": "$1 分鐘", "(.*) Minutes": "$1 分鐘",
"Configuration Settings": "配置設定", "Configuration Settings": "配置設定",
"Peer Jobs": "端點任務", "Peer Jobs": "端點任務",
"Active Jobs": "未行任務", "Active Jobs": "未行任務",
"All Active Jobs": "所有未行任務", "All Active Jobs": "所有未行任務",
"Logs": "日誌", "Logs": "日誌",
"Private Key": "鑰", "Private Key": "鑰",
"\\(Required for QR Code and Download\\)": "(二維碼以及下載功能需要填寫鑰)", "\\(Required for QR Code and Download\\)": "(二維碼以及下載功能需要填寫鑰)",
"\\(Required\\)": "(必填項)", "\\(Required\\)": "(必填項)",
"Endpoint Allowed IPs": "終結點允許的 IP 地址", "Endpoint Allowed IPs": "終結點允許的 IP 地址",
"DNS": "域名系統DNS", "DNS": "域名系統DNS",
"Optional Settings": "可選設定", "Optional Settings": "可選設定",
"Pre-Shared Key": "共享鑰", "Pre-Shared Key": "共享鑰",
"MTU": "最大傳輸單元", "MTU": "最大傳輸單元",
"Persistent Keepalive": "持久保持活動", "Persistent Keepalive": "持久保持活動",
"Reset Data Usage": "重置數據用量", "Reset Data Usage": "重置數據用量",
"Total": "總數據", "Total": "總數據",
"Sent": "送數據", "Sent": "送數據",
"Received": "接收數據", "Received": "接收數據",
"Revert": "撤銷更改", "Revert": "撤銷更改",
"Save Peer": "保存端點", "Save Peer": "保存端點",
@ -118,7 +118,7 @@
"Deleting...": "刪除中...", "Deleting...": "刪除中...",
"Cancel": "取消", "Cancel": "取消",
"Save": "保存", "Save": "保存",
"No active job at the moment\\.": "沒有未行的任務", "No active job at the moment\\.": "沒有未行的任務",
"Jobs Logs": "任務日誌", "Jobs Logs": "任務日誌",
"Updated at": "更新於", "Updated at": "更新於",
"Refresh": "刷新", "Refresh": "刷新",
@ -128,7 +128,7 @@
"Log ID": "任務 ID", "Log ID": "任務 ID",
"Message": "消息", "Message": "消息",
"Share Peer": "分享端點", "Share Peer": "分享端點",
"Currently the peer is not sharing": "此端點未被享", "Currently the peer is not sharing": "此端點未被享",
"Sharing\\.\\.\\.": "分享中...", "Sharing\\.\\.\\.": "分享中...",
"Start Sharing": "開始分享", "Start Sharing": "開始分享",
"Stop Sharing\\.\\.\\.": "停止分享中...", "Stop Sharing\\.\\.\\.": "停止分享中...",
@ -138,27 +138,27 @@
"Restricting\\.\\.\\.": "限制訪問中...", "Restricting\\.\\.\\.": "限制訪問中...",
"Allow Access": "解除限制訪問", "Allow Access": "解除限制訪問",
"Allowing Access\\.\\.\\.": "解除限制訪問中...", "Allowing Access\\.\\.\\.": "解除限制訪問中...",
"Download \\& QR Code is not available due to no private key set for this peer": "下載以及二維碼功能不可用,需要填寫此端點的鑰", "Download \\& QR Code is not available due to no private key set for this peer": "下載以及二維碼功能不可用,需要填寫此端點的鑰",
"Add Peers": "建端點", "Add Peers": "端點",
"Bulk Add": "批量添加", "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 地址。", "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\\?": "您想添加多少個端點?", "How many peers you want to add\\?": "您想添加多少個端點?",
"You can add up to (.*) peers": "您最多可以添加 $1 個端點", "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 地址/前綴長度", "Enter IP Address/CIDR": "輸入 IP 地址/前綴長度",
"IP Address/CIDR": "IP 地址/前綴長度", "IP Address/CIDR": "IP 地址/前綴長度",
"or": "或", "or": "或",
"Pick Available IP": "選擇可用的 IP 地址", "Pick Available IP": "選擇可用的 IP 地址",
"No available IP containing": "沒有可用的 IP 地址含有 ", "No available IP containing": "沒有可用的 IP 地址含有 ",
"Add": "建", "Add": "",
"Adding\\.\\.\\.": "建中...", "Adding\\.\\.\\.": "中...",
"Failed to check available update": "獲取更新失敗", "Failed to check available update": "獲取更新失敗",
"Nice to meet you!": "很高興見到您!", "Nice to meet you!": "很高興見到您!",
"Please fill in the following fields to finish setup": "請填入以下信息來完成初始化設", "Please fill in the following fields to finish setup": "請填入以下信息來完成初始化設",
"Create an account": "創建賬戶", "Create an account": "建立帳戶",
"Enter an username you like": "輸入一個您喜歡的用戶名", "Enter an username you like": "輸入一個您喜歡的用戶名",
"Enter a password": "輸入密碼", "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": "確認密碼", "Confirm password": "確認密碼",
"Next": "下一步", "Next": "下一步",
"Saving\\.\\.\\.": "保存中...", "Saving\\.\\.\\.": "保存中...",
@ -173,18 +173,18 @@
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "噢不!此鏈接已過期或不正確。", "Oh no\\.\\.\\. This link is either expired or invalid\\.": "噢不!此鏈接已過期或不正確。",
"Scan QR Code with the WireGuard App to add peer": "使用 WireGuard APP 掃描以下二維碼來添加端點", "Scan QR Code with the WireGuard App to add peer": "使用 WireGuard APP 掃描以下二維碼來添加端點",
"or click the button below to download the ": "或點擊下面的按鈕下載 ", "or click the button below to download the ": "或點擊下面的按鈕下載 ",
" file": " 文件", " file": " 檔案",
"FROM ": "來自 ", "FROM ": "來自 ",
"(.*) is on": "$1 已用", "(.*) is on": "$1 已用",
"(.*) is off": "$1 已停用", "(.*) is off": "$1 已停用",
"Allowed IPs is invalid": "允許的 IP 地址錯誤", "Allowed IPs is invalid": "允許的 IP 地址錯誤",
"Peer created successfully": "成功建端點", "Peer created successfully": "成功端點",
"Please fill in all required box": "請填寫所有必填項", "Please fill in all required box": "請填寫所有必填項",
"Please specify amount of peers you want to add": "請提供批量添加端點的數量", "Please specify amount of peers you want to add": "請提供批量添加端點的數量",
"No more available IP can assign": "沒有更多可用的 IP 可以分配了", "No more available IP can assign": "沒有更多可用的 IP 可以分配了",
"The maximum number of peers can add is (.*)": "最多只能添加$1個端點", "The maximum number of peers can add is (.*)": "最多只能添加$1個端點",
"Generating key pairs by bulk failed": "生成公鑰鑰失敗了", "Generating key pairs by bulk failed": "生成公鑰鑰失敗了",
"Failed to add peers in bulk": "批量建端點失敗", "Failed to add peers in bulk": "批量端點失敗",
"This peer already exist": "此端點已存在", "This peer already exist": "此端點已存在",
"This IP is not available: (.*)": "此 IP 地址不可用:$1", "This IP is not available: (.*)": "此 IP 地址不可用:$1",
"Configuration does not exist": "此配置不存在", "Configuration does not exist": "此配置不存在",
@ -196,12 +196,12 @@
"DNS format is incorrect": "域名系統DNS格式不正確", "DNS format is incorrect": "域名系統DNS格式不正確",
"MTU format is not correct": "最大傳輸單元格式不正確", "MTU format is not correct": "最大傳輸單元格式不正確",
"Persistent Keepalive 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 Pre-Shared Key": "更新共享密鑰失敗",
"Update peer failed when updating Allowed IPs": "更新允許的 IP 地址失敗", "Update peer failed when updating Allowed IPs": "更新允許的 IP 地址失敗",
"Update peer failed when saving the configuration": "配置保存端點失敗", "Update peer failed when saving the configuration": "配置保存端點失敗",
"Peer data usage reset successfully": "端點數據重置成功", "Peer data usage reset successfully": "端點數據重置成功",
"Peer download started": "端點文件下載開始", "Peer download started": "端點檔案下載開始",
"Please specify one or more peers": "請提供一個或更多端點", "Please specify one or more peers": "請提供一個或更多端點",
"Share link failed to create. Reason: (.*)": "端點分享鏈接生成失敗。原因:$1", "Share link failed to create. Reason: (.*)": "端點分享鏈接生成失敗。原因:$1",
"Link expire date updated": "分享鏈接過期時間更新成功", "Link expire date updated": "分享鏈接過期時間更新成功",
@ -210,15 +210,15 @@
"Please specify job": "請提供任務", "Please specify job": "請提供任務",
"Please specify peer and configuration": "請提供配置名稱以及端點", "Please specify peer and configuration": "請提供配置名稱以及端點",
"Peer job deleted": "端點任務刪除成功", "Peer job deleted": "端點任務刪除成功",
"API Keys function is successfully enabled": "API 秘鑰功能開啓成功", "API Keys function is successfully enabled": "API 金鑰功能開啟成功",
"API Keys function is successfully disabled": "API 鑰功能停用成功", "API Keys function is successfully disabled": "API 鑰功能停用成功",
"API Keys function is failed to enable": "API 秘鑰功能開啓失敗", "API Keys function is failed to enable": "API 金鑰功能開啟失敗",
"API Keys function is failed to disable": "API 鑰功能停用失敗", "API Keys function is failed to disable": "API 鑰功能停用失敗",
"WGDashboard API Keys function is disabled": "WGDashboard 的 API 秘鑰功能並未開啓", "WGDashboard API Keys function is disabled": "WGDashboard 的 API 金鑰功能並未開啟",
"WireGuard configuration path saved": "WireGuard 配置路徑保存成功", "WireGuard configuration path saved": "WireGuard 配置路徑保存成功",
"API Key deleted": "API 鑰刪除成功", "API Key deleted": "API 鑰刪除成功",
"API Key created": "API 秘鑰創建成功", "API Key created": "API 金鑰建立成功",
"Sign in session ended, please sign in again": "登錄已過期,請重新登錄", "Sign in session ended, please sign in again": "登入已過期,請重新登入",
"Please specify an IP Address (v4/v6)": "請提供一個 IP 地址 v4或v6", "Please specify an IP Address (v4/v6)": "請提供一個 IP 地址 v4或v6",
"Please provide ipAddress and count": "請提供 ipAddress 和 count", "Please provide ipAddress and count": "請提供 ipAddress 和 count",
"Please provide ipAddress": "請提供 ipAddress", "Please provide ipAddress": "請提供 ipAddress",
@ -229,18 +229,84 @@
"Configuration Name": "配置名稱", "Configuration Name": "配置名稱",
"Configuration name is invalid. Possible reasons:": "配置名稱不正確。可能的原因:", "Configuration name is invalid. Possible reasons:": "配置名稱不正確。可能的原因:",
"Configuration name already exist\\.": "配置名稱已存在。", "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": "錯誤的端口", "Invalid Port": "錯誤的端口",
"Save Configuration": "保存配置", "Save Configuration": "保存配置",
"IP Address/CIDR is invalid": "IP 地址/前綴長度格式錯誤", "IP Address/CIDR is invalid": "IP 地址/前綴長度格式錯誤",
"IP Address": "IP 地址", "IP Address": "IP 地址",
"Enter IP Address / Hostname": "入 IP 地址 / 域名", "Enter IP Address / Hostname": "入 IP 地址 / 域名",
"IP Address / Hostname": "IP 地址 / 域名", "IP Address / Hostname": "IP 地址 / 域名",
"Dashboard IP Address \\& Listen Port": "面板 IP地址 & 監聽端口",
"Count": "數量", "Count": "數量",
"Geolocation": "地理位置", "Geolocation": "地理位置",
"Is Alive": "在線", "Is Alive": "在線",
"Average / Min / Max Round Trip Time": "平均 / 最低 / 最高來回通信延遲", "Average / Min / Max Round Trip Time": "平均 / 最低 / 最高來回通訊延遲",
"Sent / Received / Lost Package": "發送 / 接收 / 遺失數據包", "Sent / Received / Lost Package": "傳送 / 接收 / 丟失數據包",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "更改 IP 位址或監聽埠後需要手動重新啟動 WGDashboard 以使用最新的設置" "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個端點"
} }