mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-04 09:27:15 +00:00
chore(i18n): delete 230 dead translation keys and guard against new ones (#6132)
* chore(i18n): delete 230 dead translation keys and guard against new ones The 13 locale files carried 230 keys (11% of the set) that nothing in the frontend or Go sources references — leftovers of renamed features (the email notifier reuses tgbot.messages.* for subjects, the old email.subject*/title* set was orphaned; likewise menu.*, the clients bulk-copy strings, and the secAlert* family). Nothing detected this: a missing key falls back to en-US and an unused key fails nothing. A new test now fails the build when an en-US key has no reference in frontend/src or internal Go sources (dynamic keys are covered by harvesting concatenation and template-literal prefixes), and pins that all 13 locales carry exactly the en-US key set, so parity drift surfaces at test time instead of as a silent fallback. Each locale shrinks by the same 230 keys; net -2,900 lines across the translation set. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(i18n): restore the 29 live remarkVars keys, match whole tokens, unmask 9 more From review: the template-literal harvester required the prefix to end on a dot, so pages.hosts.remarkVars.desc${token} harvested nothing and all 29 desc* tooltip keys were wrongly deleted — and the guard shared the flawed logic, so CI stayed green while the Hosts page would have shown raw key names in 13 languages. Restored from the parent commit; the harvester now requires at least one dot but not a trailing one. Also from review: references are matched as whole dotted tokens instead of substrings (a dead key can no longer hide behind a longer sibling — that unmasked 9 more genuinely dead keys, each verified by hand before deletion), and the test excludes itself from the scan so its own prose cannot whitelist a subtree. Net: -210 keys per locale instead of the previous -230. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,7 +48,6 @@
|
||||
"copySuccess": "複製成功",
|
||||
"sure": "確定",
|
||||
"encryption": "加密",
|
||||
"useIPv4ForHost": "使用 IPv4 連接主機",
|
||||
"transmission": "傳輸",
|
||||
"host": "主機",
|
||||
"path": "路徑",
|
||||
@@ -74,18 +73,9 @@
|
||||
"twoFactorCode": "代碼",
|
||||
"remained": "剩餘",
|
||||
"security": "安全",
|
||||
"secAlertTitle": "安全警報",
|
||||
"secAlertSsl": "此連線不安全。在啟用 TLS 進行資料保護之前,請勿輸入敏感資訊。",
|
||||
"secAlertConf": "某些設定易受攻擊。建議加強安全協議以防止潛在漏洞。",
|
||||
"secAlertSSL": "面板缺少安全連線。請安裝 TLS 證書以保護資料安全。",
|
||||
"secAlertPanelPort": "面板預設埠存在安全風險。請配置隨機埠或特定埠。",
|
||||
"secAlertPanelURI": "面板預設 URI 路徑不安全。請配置複雜的 URI 路徑。",
|
||||
"secAlertSubURI": "訂閱預設 URI 路徑不安全。請配置複雜的 URI 路徑。",
|
||||
"secAlertSubJsonURI": "訂閱 JSON 預設 URI 路徑不安全。請配置複雜的 URI 路徑。",
|
||||
"emptyDnsDesc": "未添加 DNS 伺服器。",
|
||||
"emptyFakeDnsDesc": "未添加 Fake DNS 伺服器。",
|
||||
"emptyBalancersDesc": "未添加負載平衡器。",
|
||||
"emptyReverseDesc": "未添加反向代理。",
|
||||
"somethingWentWrong": "發生錯誤",
|
||||
"subscription": {
|
||||
"title": "訂閱資訊",
|
||||
@@ -106,8 +96,6 @@
|
||||
},
|
||||
"menu": {
|
||||
"theme": "主題",
|
||||
"dark": "深色",
|
||||
"ultraDark": "超深色",
|
||||
"dashboard": "系統狀態",
|
||||
"inbounds": "入站",
|
||||
"clients": "客戶端",
|
||||
@@ -118,7 +106,6 @@
|
||||
"routing": "路由",
|
||||
"outbounds": "出站",
|
||||
"apiDocs": "API 文件",
|
||||
"logout": "退出登入",
|
||||
"link": "管理",
|
||||
"donate": "捐贈",
|
||||
"hosts": "Hosts",
|
||||
@@ -139,7 +126,6 @@
|
||||
}
|
||||
},
|
||||
"index": {
|
||||
"title": "系統狀態",
|
||||
"cpu": "CPU",
|
||||
"logicalProcessors": "邏輯處理器",
|
||||
"frequency": "頻率",
|
||||
@@ -152,7 +138,6 @@
|
||||
"restartXray": "重新啟動",
|
||||
"xraySwitch": "版本",
|
||||
"xrayUpdates": "Xray 更新",
|
||||
"xraySwitchClick": "選擇你要切換到的版本",
|
||||
"xraySwitchClickDesk": "請謹慎選擇,因為較舊版本可能與當前配置不相容",
|
||||
"updatePanel": "更新面板",
|
||||
"panelUpdateDesc": "這將把 3X-UI 更新到最新版本並重新啟動面板服務。",
|
||||
@@ -164,12 +149,10 @@
|
||||
"currentCommit": "目前提交",
|
||||
"latestCommit": "最新提交",
|
||||
"updateChannelChanged": "更新通道已切換",
|
||||
"upToDate": "已是最新",
|
||||
"xrayStatusUnknown": "未知",
|
||||
"xrayStatusRunning": "運行中",
|
||||
"xrayStatusStop": "停止",
|
||||
"xrayStatusError": "錯誤",
|
||||
"xrayErrorPopoverTitle": "執行 Xray 時發生錯誤",
|
||||
"operationHours": "系統正常執行時間",
|
||||
"systemHistoryTitle": "系統歷史",
|
||||
"historyTitleCpu": "CPU 使用率",
|
||||
@@ -211,9 +194,6 @@
|
||||
"xrayObservatoryDead": "離線",
|
||||
"xrayObservatoryLastSeen": "最後在線",
|
||||
"xrayObservatoryLastTry": "最後嘗試",
|
||||
"trendLast2Min": "最近 2 分鐘",
|
||||
"systemLoad": "系統負載",
|
||||
"systemLoadDesc": "過去 1、5 和 15 分鐘的系統平均負載",
|
||||
"connectionCount": "連線數",
|
||||
"ipAddresses": "IP 地址",
|
||||
"toggleIpVisibility": "切換 IP 可見性",
|
||||
@@ -223,13 +203,11 @@
|
||||
"totalData": "總數據",
|
||||
"sent": "已發送",
|
||||
"received": "已接收",
|
||||
"documentation": "文件",
|
||||
"xraySwitchVersionDialog": "您確定要變更 Xray 版本嗎?",
|
||||
"xraySwitchVersionDialogDesc": "這將會把 Xray 版本變更為 #version#。",
|
||||
"xraySwitchVersionPopover": "Xray 更新成功",
|
||||
"panelUpdateDialog": "您確定要更新面板嗎?",
|
||||
"panelUpdateDialogDesc": "這將把 3X-UI 更新到 #version# 並重新啟動面板服務。",
|
||||
"panelUpdateCheckPopover": "面板更新檢查失敗",
|
||||
"panelUpdateStartedPopover": "面板更新已開始",
|
||||
"panelUpdateFailedTitle": "面板更新失敗",
|
||||
"panelUpdateFailedDesc": "更新未成功完成。請檢查伺服器日誌,或在命令列執行「x-ui update」。",
|
||||
@@ -258,7 +236,6 @@
|
||||
"accessLogs": "存取記錄",
|
||||
"autoUpdate": "自動更新",
|
||||
"config": "配置",
|
||||
"backup": "備份",
|
||||
"backupTitle": "備份和恢復",
|
||||
"exportDatabase": "備份",
|
||||
"exportDatabaseDesc": "點擊下載包含當前資料庫備份的 .db 文件到您的設備。同一檔案也可以還原到執行 PostgreSQL 的面板中。",
|
||||
@@ -276,7 +253,6 @@
|
||||
"migrationDownloadPgDesc": "點擊下載由 PostgreSQL 資料建立的 .db SQLite 資料庫,可用於在 SQLite 上執行本面板。"
|
||||
},
|
||||
"inbounds": {
|
||||
"title": "入站",
|
||||
"totalDownUp": "總上傳 / 下載",
|
||||
"totalUsage": "總用量",
|
||||
"inboundCount": "入站數量",
|
||||
@@ -288,21 +264,11 @@
|
||||
"localPanel": "本機面板",
|
||||
"fallbacks": {
|
||||
"title": "Fallbacks",
|
||||
"help": "當此入站的連線未匹配任何用戶時,將其路由到其他位置。在下方選擇一個子入站,可從其傳輸方式自動填入路由欄位(SNI / ALPN / Path / xver);或將選擇框留空並直接設定 Dest(例如 8080 或 127.0.0.1:8080),以路由到 Nginx 等外部伺服器。每個子入站應監聽 127.0.0.1,security=none。",
|
||||
"empty": "尚未新增回落",
|
||||
"add": "新增回落",
|
||||
"pickInbound": "選擇一個入站",
|
||||
"matchAny": "任何",
|
||||
"destPlaceholder": "自動(子入站 listen:port)",
|
||||
"rederive": "從子入站重新填入",
|
||||
"rederived": "已從子入站重新填入",
|
||||
"editAdvanced": "編輯路由欄位",
|
||||
"hideAdvanced": "隱藏進階",
|
||||
"quickAddAll": "一鍵新增所有符合的入站",
|
||||
"quickAdded": "已新增 {n} 個回落",
|
||||
"quickAddedNone": "沒有可新增的新入站",
|
||||
"routesWhen": "當條件成立時路由",
|
||||
"defaultCatchAll": "預設 — 兜底匹配其餘",
|
||||
"needsTls": "在「安全」分頁選擇 TLS 或 Reality 後即可設定回落(僅限 RAW 上的 VLESS/Trojan)。"
|
||||
},
|
||||
"protocol": "協議",
|
||||
@@ -310,8 +276,6 @@
|
||||
"portMap": "連接埠對應",
|
||||
"traffic": "流量",
|
||||
"speed": "速度",
|
||||
"details": "詳細資訊",
|
||||
"transportConfig": "傳輸",
|
||||
"expireDate": "到期時間",
|
||||
"createdAt": "建立時間",
|
||||
"updatedAt": "更新時間",
|
||||
@@ -319,8 +283,6 @@
|
||||
"addInbound": "新增入站",
|
||||
"generalActions": "通用操作",
|
||||
"modifyInbound": "修改入站",
|
||||
"deleteInbound": "刪除入站",
|
||||
"deleteInboundContent": "確定要刪除入站嗎?",
|
||||
"deleteConfirmTitle": "刪除入站「{remark}」?",
|
||||
"deleteConfirmContent": "將刪除此入站及其所有客戶端。此操作無法復原。",
|
||||
"resetConfirmTitle": "重置「{remark}」的流量?",
|
||||
@@ -364,8 +326,6 @@
|
||||
"exportAllLinksFileName": "所有入站",
|
||||
"exportAllSubsFileName": "所有入站-Subs",
|
||||
"inboundJsonTitle": "入站 JSON",
|
||||
"deleteClient": "刪除客戶端",
|
||||
"deleteClientContent": "確定要刪除客戶端嗎?",
|
||||
"resetTrafficContent": "確定要重置流量嗎?",
|
||||
"copyLink": "複製連結",
|
||||
"address": "地址",
|
||||
@@ -376,36 +336,19 @@
|
||||
"meansNoLimit": "= 無限制。(單位: GB)",
|
||||
"totalFlow": "總流量",
|
||||
"leaveBlankToNeverExpire": "留空表示永不過期",
|
||||
"noRecommendKeepDefault": "建議保留預設值",
|
||||
"certificatePath": "檔案路徑",
|
||||
"certificateContent": "檔案內容",
|
||||
"publicKey": "公鑰",
|
||||
"privatekey": "私鑰",
|
||||
"clickOnQRcode": "點選二維碼複製",
|
||||
"client": "客戶",
|
||||
"export": "匯出連結",
|
||||
"clone": "複製",
|
||||
"cloneInbound": "複製",
|
||||
"cloneInboundContent": "此入站規則除埠(Port)、監聽 IP(Listening IP)和客戶端(Clients)以外的所有配置都將應用於克隆",
|
||||
"cloneInboundOk": "建立克隆",
|
||||
"resetAllTraffic": "重置所有入站流量",
|
||||
"resetAllTrafficTitle": "重置所有入站流量",
|
||||
"resetAllTrafficContent": "確定要重置所有入站流量嗎?",
|
||||
"resetInboundClientTraffics": "重置客戶端流量",
|
||||
"resetInboundClientTrafficTitle": "重置所有客戶端流量",
|
||||
"resetInboundClientTrafficContent": "確定要重置此入站客戶端的所有流量嗎?",
|
||||
"resetAllClientTraffics": "重置所有客戶端流量",
|
||||
"resetAllClientTrafficTitle": "重置所有客戶端流量",
|
||||
"resetAllClientTrafficContent": "確定要重置所有客戶端的所有流量嗎?",
|
||||
"delDepletedClients": "刪除流量耗盡的客戶端",
|
||||
"delDepletedClientsTitle": "刪除流量耗盡的客戶端",
|
||||
"delDepletedClientsContent": "確定要刪除所有流量耗盡的客戶端嗎?",
|
||||
"email": "電子郵件",
|
||||
"emailDesc": "電子郵件必須完全唯一",
|
||||
"IPLimit": "IP 限制",
|
||||
"IPLimitDesc": "如果數量超過設定值,則禁用入站流量。(0 = 禁用)",
|
||||
"IPLimitlog": "IP 日誌",
|
||||
"IPLimitlogDesc": "IP 歷史日誌(要啟用被禁用的入站流量,請清除日誌)",
|
||||
"IPLimitlogclear": "清除日誌",
|
||||
"setDefaultCert": "從面板設定證書",
|
||||
"setDefaultCertEmpty": "面板尚未設定憑證。請先在「設定」中設定。",
|
||||
@@ -438,21 +381,15 @@
|
||||
"sniffing": "Sniffing",
|
||||
"sniffingHelp": "Xray sniffing 區塊包裝:",
|
||||
"stream": "Stream",
|
||||
"streamHelp": "Xray stream 區塊包裝:",
|
||||
"jsonErrorPrefix": "進階 JSON"
|
||||
"streamHelp": "Xray stream 區塊包裝:"
|
||||
},
|
||||
"telegramDesc": "請提供 Telegram 聊天 ID。(在機器人中使用'/id'命令)或({'@'}userinfobot",
|
||||
"subscriptionDesc": "要找到你的訂閱 URL,請導航到“詳細資訊”。此外,你可以為多個客戶端使用相同的名稱。",
|
||||
"subSortIndex": "訂閱排序",
|
||||
"same": "相同",
|
||||
"inboundInfo": "入站資訊",
|
||||
"exportInbound": "匯出入站規則",
|
||||
"import": "匯入",
|
||||
"importInbound": "匯入入站規則",
|
||||
"periodicTrafficResetTitle": "流量重置",
|
||||
"periodicTrafficResetDesc": "按指定間隔自動重置流量計數器",
|
||||
"periodicTrafficResetDay": "每月重置日",
|
||||
"lastReset": "上次重置",
|
||||
"periodicTrafficReset": {
|
||||
"never": "從不",
|
||||
"daily": "每日",
|
||||
@@ -464,7 +401,6 @@
|
||||
"obtain": "獲取",
|
||||
"updateSuccess": "更新成功",
|
||||
"logCleanSuccess": "日誌已清除",
|
||||
"inboundsUpdateSuccess": "入站連接已成功更新",
|
||||
"inboundUpdateSuccess": "入站連接已成功更新",
|
||||
"inboundCreateSuccess": "入站連接已成功建立",
|
||||
"bulkDeleted": "已刪除 {count} 個入站",
|
||||
@@ -474,7 +410,6 @@
|
||||
"inboundClientDeleteSuccess": "入站客戶端已刪除",
|
||||
"inboundClientUpdateSuccess": "入站客戶端已更新",
|
||||
"savedNodeOfflineWillSync": "已在本機儲存。某個支撐節點離線或已停用——重新連線後將同步此變更。",
|
||||
"delDepletedClientsSuccess": "所有耗盡客戶端已刪除",
|
||||
"resetAllClientTrafficSuccess": "客戶端所有流量已重置",
|
||||
"resetAllTrafficSuccess": "所有流量已重置",
|
||||
"resetInboundClientTrafficSuccess": "流量已重置",
|
||||
@@ -717,23 +652,6 @@
|
||||
"peerNumber": "Peer {n}",
|
||||
"peerNumberConfig": "Peer {n} 設定"
|
||||
},
|
||||
"stream": {
|
||||
"general": {
|
||||
"request": "請求",
|
||||
"response": "響應",
|
||||
"name": "名稱",
|
||||
"value": "值"
|
||||
},
|
||||
"tcp": {
|
||||
"version": "版本",
|
||||
"method": "方法",
|
||||
"path": "路徑",
|
||||
"status": "狀態",
|
||||
"statusDescription": "狀態說明",
|
||||
"requestHeader": "請求頭",
|
||||
"responseHeader": "響應頭"
|
||||
}
|
||||
},
|
||||
"sniffingDestOverride": "目標覆寫"
|
||||
},
|
||||
"clients": {
|
||||
@@ -747,24 +665,9 @@
|
||||
"addExternalSubscription": "新增外部訂閱",
|
||||
"noExternalLinks": "尚無外部連結。",
|
||||
"noExternalSubscriptions": "尚無外部訂閱。",
|
||||
"add": "新增客戶端",
|
||||
"edit": "編輯客戶端",
|
||||
"submitAdd": "新增客戶端",
|
||||
"submitEdit": "儲存變更",
|
||||
"clientCount": "客戶端數量",
|
||||
"bulk": "批次新增",
|
||||
"copyFromInbound": "從入站複製客戶端",
|
||||
"copyToInbound": "複製客戶端至",
|
||||
"copySelected": "複製所選",
|
||||
"copySource": "來源",
|
||||
"copyEmailPreview": "產生的信箱預覽",
|
||||
"copySelectSourceFirst": "請先選擇一個來源入站。",
|
||||
"copyResult": "複製結果",
|
||||
"copyResultSuccess": "複製成功",
|
||||
"copyResultNone": "沒有內容可複製:未選取客戶端或來源為空",
|
||||
"copyResultErrors": "複製錯誤",
|
||||
"copyFlowLabel": "新客戶端的 Flow (VLESS)",
|
||||
"copyFlowHint": "套用至所有被複製的客戶端。留空則略過。",
|
||||
"selectAll": "全選",
|
||||
"clearAll": "全部清除",
|
||||
"method": "方法",
|
||||
@@ -775,7 +678,6 @@
|
||||
"postfix": "後綴",
|
||||
"delayedStart": "首次使用後開始",
|
||||
"expireDays": "時長 (天)",
|
||||
"days": "天",
|
||||
"renew": "自動續期",
|
||||
"renewDesc": "到期後自動續期。(0 = 停用) (單位: 天)",
|
||||
"renewDays": "自動續期 (天)",
|
||||
@@ -798,7 +700,6 @@
|
||||
"sortExpiringSoonest": "即將到期",
|
||||
"has": "擁有",
|
||||
"hasNot": "不擁有",
|
||||
"title": "客戶端",
|
||||
"actions": "操作",
|
||||
"totalGB": "流量上限 (GB)",
|
||||
"totalGBDesc": "該客戶端的流量配額。0 = 不限制。",
|
||||
@@ -826,8 +727,6 @@
|
||||
"addClient": "新增客戶端",
|
||||
"qrCode": "QR 碼",
|
||||
"clientInfo": "客戶端資訊",
|
||||
"delete": "刪除",
|
||||
"reset": "重設流量",
|
||||
"editClient": "編輯客戶端",
|
||||
"client": "客戶端",
|
||||
"enabled": "已啟用",
|
||||
@@ -841,13 +740,11 @@
|
||||
"noLinks": "沒有可共享的連結 — 請先將此客戶端關聯至支援協定的入站。",
|
||||
"link": "連結",
|
||||
"resetNotPossible": "請先將此客戶端關聯至入站。",
|
||||
"general": "一般",
|
||||
"resetAllTraffics": "重設所有客戶端流量",
|
||||
"resetAllTrafficsTitle": "重設所有客戶端流量?",
|
||||
"resetAllTrafficsContent": "所有客戶端的上下行計數器將歸零。配額與到期時間不受影響。此操作無法復原。",
|
||||
"deleteConfirmTitle": "刪除客戶端 {email}?",
|
||||
"deleteConfirmContent": "將從所有關聯入站中移除該客戶端並刪除其流量紀錄。此操作無法復原。",
|
||||
"deleteSelected": "刪除 ({count})",
|
||||
"adjustSelected": "調整 ({count})",
|
||||
"subLinksSelected": "訂閱連結 ({count})",
|
||||
"addToGroupTitle": "將 {count} 個客戶端加入群組",
|
||||
@@ -869,12 +766,10 @@
|
||||
"bulkDisableConfirmTitle": "停用 {count} 個客戶端?",
|
||||
"bulkDisableConfirmContent": "在每個已附加的入站上停用所選的客戶端。他們將立即失去存取權限,但其記錄與流量將被保留。",
|
||||
"selectedCount": "已選 {count} 項",
|
||||
"attachSelected": "附加 ({count})",
|
||||
"attachToInboundsTitle": "將 {count} 個客戶端附加到入站",
|
||||
"attachToInboundsDesc": "將選取的 {count} 個客戶端(相同 UUID/密碼與共享流量)附加到選定入站。它們保留現有附加關係。",
|
||||
"attachToInboundsTargets": "目標入站",
|
||||
"attachToInboundsNoTargets": "沒有可供附加的多用戶入站。",
|
||||
"detachSelected": "分離 ({count})",
|
||||
"detach": "分離",
|
||||
"detachFromInboundsTitle": "從入站分離 {count} 個客戶端",
|
||||
"detachFromInboundsDesc": "從選定入站中移除選取的 {count} 個客戶端。客戶端未附加的配對會被靜默略過。客戶端記錄保留(用 Delete 完全移除)。",
|
||||
@@ -928,8 +823,6 @@
|
||||
"reverseTagPlaceholder": "選用 Reverse tag",
|
||||
"telegramId": "Telegram 使用者 ID",
|
||||
"telegramIdPlaceholder": "數字形式的 Telegram 使用者 ID (0 = 無)",
|
||||
"created": "建立時間",
|
||||
"updated": "更新時間",
|
||||
"ipLimit": "IP 限制",
|
||||
"toasts": {
|
||||
"deleted": "客戶端已刪除",
|
||||
@@ -952,7 +845,6 @@
|
||||
}
|
||||
},
|
||||
"groups": {
|
||||
"title": "群組",
|
||||
"name": "名稱",
|
||||
"clientCount": "客戶端",
|
||||
"totalGroups": "群組總數",
|
||||
@@ -994,7 +886,6 @@
|
||||
"removeFromGroupResult": "已從 {name} 移除 {count} 個客戶端。"
|
||||
},
|
||||
"nodes": {
|
||||
"title": "節點",
|
||||
"addNode": "新增節點",
|
||||
"editNode": "編輯節點",
|
||||
"totalNodes": "節點總數",
|
||||
@@ -1013,8 +904,6 @@
|
||||
"apiTokenPlaceholder": "遠端面板設定頁中的權杖",
|
||||
"apiTokenHint": "遠端面板在 安全設定 → API 權杖 中顯示其 API 權杖。",
|
||||
"apiTokenKeepHint": "留空以保留目前的權杖",
|
||||
"regenerate": "重新產生權杖",
|
||||
"regenerateConfirm": "重新產生會使目前的權杖失效。任何使用該權杖的中央面板將失去存取權,直到更新為止。是否繼續?",
|
||||
"allowPrivateAddress": "允許私有地址",
|
||||
"allowPrivateAddressHint": "僅對私有網路或 VPN 上的節點啟用。",
|
||||
"outboundTag": "連線出站",
|
||||
@@ -1046,7 +935,6 @@
|
||||
"updatePanel": "更新面板",
|
||||
"updateSelected": "更新所選 ({count})",
|
||||
"updateAvailable": "有可用更新",
|
||||
"upToDate": "已是最新",
|
||||
"updateConfirmTitle": "將 {count} 個節點更新到最新版本?",
|
||||
"updateConfirmContent": "每個所選節點會下載最新版本並重新啟動。僅更新已啟用且在線的節點。",
|
||||
"updateDevChannel": "更新到開發通道(最新提交)",
|
||||
@@ -1447,13 +1335,8 @@
|
||||
"secretClearUndo": "復原清除"
|
||||
},
|
||||
"xray": {
|
||||
"title": "Xray 配置",
|
||||
"save": "儲存",
|
||||
"restart": "重新啟動 Xray",
|
||||
"restartSuccess": "Xray 已成功重新啟動",
|
||||
"restartOutputTitle": "Xray 重新啟動輸出",
|
||||
"restartConfirmTitle": "重新啟動 xray?",
|
||||
"restartConfirmContent": "使用已儲存的設定重新載入 xray 服務。",
|
||||
"stopSuccess": "Xray 已成功停止",
|
||||
"restartError": "重新啟動 Xray 時發生錯誤。",
|
||||
"stopError": "停止 Xray 時發生錯誤。",
|
||||
@@ -1471,7 +1354,6 @@
|
||||
"generalConfigsDesc": "這些選項將決定常規配置",
|
||||
"logConfigs": "記錄",
|
||||
"logConfigsDesc": "日誌可能會影響伺服器的效能,建議僅在需要時啟用",
|
||||
"blockConfigsDesc": "這些選項將阻止使用者連線到特定協議和網站",
|
||||
"basicRouting": "基本路由",
|
||||
"blockConnectionsConfigsDesc": "這些選項將根據特定的請求國家阻止流量。",
|
||||
"directConnectionsConfigsDesc": "直接連線確保特定的流量不會通過其他伺服器路由。",
|
||||
@@ -1481,10 +1363,6 @@
|
||||
"directdomains": "直接域名",
|
||||
"ipv4Routing": "IPv4 路由",
|
||||
"ipv4RoutingDesc": "此選項將僅通過 IPv4 路由到目標域",
|
||||
"warpRouting": "WARP 路由",
|
||||
"warpRoutingDesc": "注意:在使用這些選項之前,請按照面板 GitHub 上的步驟在你的伺服器上以 socks5 代理模式安裝 WARP。WARP 將通過 Cloudflare 伺服器將流量路由到網站。",
|
||||
"nordRouting": "NordVPN 路由",
|
||||
"nordRoutingDesc": "這些選項將根據特定目的地通過 NordVPN 路由流量。",
|
||||
"Template": "高階 Xray 配置模板",
|
||||
"TemplateDesc": "最終的 Xray 配置檔案將基於此模板生成",
|
||||
"FreedomStrategy": "Freedom 協議策略",
|
||||
@@ -1498,10 +1376,7 @@
|
||||
"outboundTestUrlDesc": "測試出站連線時使用的 URL",
|
||||
"Torrent": "遮蔽 BitTorrent 協議",
|
||||
"Inbounds": "入站",
|
||||
"InboundsDesc": "接受來自特定客戶端的流量",
|
||||
"Outbounds": "出站",
|
||||
"OutboundSubscriptions": "出站訂閱",
|
||||
"OutboundSubscriptionsDesc": "從遠端訂閱 URL(vmess/vless/trojan/ss/...)匯入出站。標籤會保持穩定,以便在負載均衡與路由規則中使用。系統會自動更新。",
|
||||
"Balancers": "負載均衡",
|
||||
"balancerTagRequired": "標籤為必填",
|
||||
"balancerSelectorRequired": "至少選擇一個出站",
|
||||
@@ -1520,9 +1395,7 @@
|
||||
"routeTesterMatchedOutbound": "匹配出站",
|
||||
"routeTesterViaBalancer": "經由負載均衡器",
|
||||
"routeTesterDefaultOutbound": "無路由規則匹配 — 流量將導向預設(第一個)出站。",
|
||||
"OutboundsDesc": "設定出站流量傳出方式",
|
||||
"Routings": "路由規則",
|
||||
"RoutingsDesc": "每條規則的優先順序都很重要",
|
||||
"completeTemplate": "全部",
|
||||
"logLevel": "日誌級別",
|
||||
"logLevelDesc": "錯誤日誌的日誌級別,用於指示需要記錄的資訊",
|
||||
@@ -1536,13 +1409,9 @@
|
||||
"maskAddressDesc": "IP 地址掩碼,啟用時會自動替換日誌中出現的 IP 地址。",
|
||||
"statistics": "統計",
|
||||
"statsInboundUplink": "入站上傳統計",
|
||||
"statsInboundUplinkDesc": "啟用所有入站代理的上行流量統計收集。",
|
||||
"statsInboundDownlink": "入站下載統計",
|
||||
"statsInboundDownlinkDesc": "啟用所有入站代理的下行流量統計收集。",
|
||||
"statsOutboundUplink": "出站上傳統計",
|
||||
"statsOutboundUplinkDesc": "啟用所有出站代理的上行流量統計收集。",
|
||||
"statsOutboundDownlink": "出站下載統計",
|
||||
"statsOutboundDownlinkDesc": "啟用所有出站代理的下行流量統計收集。",
|
||||
"connectionLimits": "連線限制",
|
||||
"connectionLimitsDesc": "使用者等級 0 的連線層級原則。留空則使用 Xray 的預設值。",
|
||||
"connIdle": "閒置逾時",
|
||||
@@ -1552,18 +1421,10 @@
|
||||
"bufferSizePlaceholder": "自動",
|
||||
"seconds": "秒",
|
||||
"rules": {
|
||||
"first": "置頂",
|
||||
"last": "置底",
|
||||
"up": "向上",
|
||||
"down": "向下",
|
||||
"source": "來源",
|
||||
"dest": "目的地址",
|
||||
"inbound": "入站",
|
||||
"outbound": "出站",
|
||||
"balancer": "負載均衡",
|
||||
"info": "資訊",
|
||||
"add": "新增規則",
|
||||
"edit": "編輯規則",
|
||||
"useComma": "逗號分隔的項目"
|
||||
},
|
||||
"routing": {
|
||||
@@ -1604,7 +1465,6 @@
|
||||
"ruleN": "規則 {n}",
|
||||
"action": "動作",
|
||||
"redirect": "Redirect",
|
||||
"fragment": "Fragment",
|
||||
"finalRules": "最終規則",
|
||||
"overrideXrayPrivateIp": "覆寫 Xray 預設的私有 IP 封鎖",
|
||||
"blockDelay": "阻斷延遲 (ms)",
|
||||
@@ -1630,43 +1490,17 @@
|
||||
"keepAliveInterval": "keep alive 間隔",
|
||||
"markFwmark": "Mark (fwmark)",
|
||||
"interface": "介面",
|
||||
"ipv6Only": "僅 IPv6",
|
||||
"acceptProxyProtocol": "接受 proxy protocol",
|
||||
"proxyProtocol": "Proxy protocol",
|
||||
"tcpUserTimeoutMs": "TCP user timeout (ms)",
|
||||
"tcpKeepAliveIdleS": "TCP keep-alive idle (s)"
|
||||
},
|
||||
"outbound": {
|
||||
"addOutbound": "新增出站",
|
||||
"addReverse": "新增反向",
|
||||
"editOutbound": "編輯出站",
|
||||
"editReverse": "編輯反向",
|
||||
"reverseTag": "反向標籤",
|
||||
"reverseTagDesc": "VLESS 簡易反向代理出站標籤。留空則停用。設定後,此客戶端的連線可作為反向代理隧道。",
|
||||
"reverseTagPlaceholder": "出站標籤(留空則停用)",
|
||||
"tag": "標籤",
|
||||
"tagDesc": "唯一標籤",
|
||||
"address": "地址",
|
||||
"egress": "Egress",
|
||||
"egressHint": "Run an HTTP test to show egress IP and country.",
|
||||
"reverse": "反向",
|
||||
"domain": "網域",
|
||||
"type": "類型",
|
||||
"bridge": "Bridge",
|
||||
"portal": "Portal",
|
||||
"link": "連結",
|
||||
"intercon": "互連",
|
||||
"settings": "設定",
|
||||
"accountInfo": "帳戶資訊",
|
||||
"outboundStatus": "出站狀態",
|
||||
"sendThrough": "傳送通過",
|
||||
"targetStrategy": "目標解析策略",
|
||||
"test": "測試",
|
||||
"testResult": "測試結果",
|
||||
"testing": "正在測試連接...",
|
||||
"testSuccess": "測試成功",
|
||||
"testFailed": "測試失敗",
|
||||
"testError": "測試出站失敗",
|
||||
"modeRealDelay": "真實延遲",
|
||||
"testModeTooltip": "TCP: 快速 dial-only 探測。HTTP: 透過 xray 的完整請求。真實延遲: 含建立連線的總耗時。",
|
||||
"testAll": "全部測試",
|
||||
@@ -1674,14 +1508,10 @@
|
||||
"breakdownConnect": "代理連線",
|
||||
"breakdownTls": "經由出站的 TLS",
|
||||
"breakdownTtfb": "首位元組",
|
||||
"nordvpn": "NordVPN",
|
||||
"accessToken": "訪問令牌",
|
||||
"country": "國家",
|
||||
"server": "伺服器",
|
||||
"city": "城市",
|
||||
"allCities": "所有城市",
|
||||
"privateKey": "私密金鑰",
|
||||
"load": "負載",
|
||||
"moveToTop": "移到頂部"
|
||||
},
|
||||
"outboundSub": {
|
||||
@@ -1711,16 +1541,11 @@
|
||||
"active": "啟用中的訂閱",
|
||||
"empty": "尚無訂閱。請從上方新增。",
|
||||
"colRemark": "備註",
|
||||
"colPrefix": "前綴",
|
||||
"colInterval": "間隔",
|
||||
"colLastFetch": "上次抓取",
|
||||
"colEnabled": "啟用",
|
||||
"auto": "自動",
|
||||
"never": "從不",
|
||||
"yes": "是",
|
||||
"no": "否",
|
||||
"refreshNow": "立即重新整理",
|
||||
"lastError": "上次錯誤",
|
||||
"deleteConfirm": "確定要刪除此訂閱嗎?",
|
||||
"restartHint": "新增或重新整理後,請重新啟動 Xray(或等待下次自動重新載入),讓出站生效。",
|
||||
"fromSubsTitle": "來自出站訂閱(唯讀)",
|
||||
@@ -1737,8 +1562,6 @@
|
||||
"tabBalancerSettings": "負載平衡設定",
|
||||
"tabObservatory": "觀測器",
|
||||
"observatory": {
|
||||
"title": "觀測器",
|
||||
"burstTitle": "突發觀測器",
|
||||
"autoManaged": "觀測器會根據你的負載平衡器自動管理。可在下方調整探測方式;被觀測的出站會跟隨負載平衡器的選擇器。",
|
||||
"emptyHint": "目前沒有作用中的連線觀測器。當你建立 Least Ping 或 Least Load 負載平衡器,或帶有 fallback 的 Random / Round-robin 負載平衡器時,會自動新增一個,讓依賴觀測器的負載平衡器能在選擇目標前檢查出站健康狀態。",
|
||||
"mixedLegacy": "此設定同時包含 Observatory 與 Burst Observatory。Xray 只使用一個全域觀測器,因此不支援這種舊式混合狀態;儲存負載平衡器時會將其正規化為單一觀測器。",
|
||||
@@ -1772,12 +1595,8 @@
|
||||
"balancerRemoved": "負載平衡器 {tag} — 已移除(沒有剩餘目標)"
|
||||
},
|
||||
"balancer": {
|
||||
"addBalancer": "新增負載均衡",
|
||||
"editBalancer": "編輯負載均衡",
|
||||
"balancerStrategy": "策略",
|
||||
"balancerSelectors": "選擇器",
|
||||
"tag": "標籤",
|
||||
"tagDesc": "唯一標籤",
|
||||
"tagDuplicate": "該標籤已被其他均衡器使用",
|
||||
"tagPlaceholder": "唯一均衡器標籤",
|
||||
"selector": "選擇器",
|
||||
@@ -1789,7 +1608,6 @@
|
||||
"tolerance": "容差",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"balancerDesc": "無法同時使用 balancerTag 和 outboundTag。如果同時使用,則只有 outboundTag 會生效。",
|
||||
"costMatch": "標籤比對模式",
|
||||
"costValue": "權重",
|
||||
"costRegexp": "正規表示式比對",
|
||||
@@ -1804,14 +1622,10 @@
|
||||
"publicKey": "公鑰",
|
||||
"allowedIPs": "允許的 IP",
|
||||
"endpoint": "端點",
|
||||
"psk": "共享金鑰",
|
||||
"domainStrategy": "域策略"
|
||||
},
|
||||
"tun": {
|
||||
"nameDesc": "TUN 介面的名稱。預設值為 'xray0'",
|
||||
"mtuDesc": "最大傳輸單元。資料包的最大大小。預設值為 1500",
|
||||
"userLevel": "用戶級別",
|
||||
"userLevelDesc": "通過此入站的所有連接都將使用此用戶級別。預設值為 0"
|
||||
"userLevel": "用戶級別"
|
||||
},
|
||||
"nord": {
|
||||
"accessToken": "Access token",
|
||||
@@ -1896,7 +1710,6 @@
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "新增假 DNS",
|
||||
"edit": "編輯假 DNS",
|
||||
"ipPool": "IP 池子網",
|
||||
"poolSize": "池大小"
|
||||
},
|
||||
@@ -2032,7 +1845,6 @@
|
||||
"add": "添加",
|
||||
"month": "月",
|
||||
"months": "月",
|
||||
"day": "天",
|
||||
"days": "天",
|
||||
"hours": "小時",
|
||||
"minutes": "分鐘",
|
||||
@@ -2071,7 +1883,6 @@
|
||||
"userSaved": "✅ 電報使用者已儲存。",
|
||||
"loginSuccess": "✅ 成功登入到面板。\r\n",
|
||||
"loginFailed": "❗️ 面板登入失敗。\r\n",
|
||||
"2faFailed": "2FA 失敗",
|
||||
"report": "🕰 定時報告:{{ .RunTime }}\r\n",
|
||||
"datetime": "⏰ 日期時間:{{ .DateTime }}\r\n",
|
||||
"hostname": "💻 主機: {{ .Hostname }}\r\n",
|
||||
@@ -2104,7 +1915,6 @@
|
||||
"download": "🔽 下載: ↓{{ .Download }}\r\n",
|
||||
"total": "📊 總計: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
|
||||
"TGUser": "👤 電報使用者:{{ .TelegramID }}\r\n",
|
||||
"exhaustedMsg": "🚨 耗盡的 {{ .Type }}:\r\n",
|
||||
"exhaustedCount": "🚨 耗盡的 {{ .Type }} 數量:\r\n",
|
||||
"onlinesCount": "🌐 線上客戶:{{ .Count }}\r\n",
|
||||
"disabled": "🛑 禁用:{{ .Disabled }}\r\n",
|
||||
@@ -2113,16 +1923,10 @@
|
||||
"refreshedOn": "\r\n📋🔄 重新整理時間:{{ .Time }}\r\n\r\n",
|
||||
"yes": "✅ 是的",
|
||||
"no": "❌ 否",
|
||||
"received_id": "🔑📥 ID 已更新。",
|
||||
"received_password": "🔑📥 密碼已更新。",
|
||||
"received_email": "📧📥 電子郵件已更新。",
|
||||
"received_comment": "💬📥 評論已更新。",
|
||||
"id_prompt": "🔑 預設 ID: {{ .ClientId }}\n\n請輸入您的 ID。",
|
||||
"pass_prompt": "🔑 預設密碼: {{ .ClientPassword }}\n\n請輸入您的密碼。",
|
||||
"email_prompt": "📧 預設電子郵件: {{ .ClientEmail }}\n\n請輸入您的電子郵件。",
|
||||
"comment_prompt": "💬 預設評論: {{ .ClientComment }}\n\n請輸入您的評論。",
|
||||
"inbound_client_data_id": "🔄 入站: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 電子郵件: {{ .ClientEmail }}\n📊 流量: {{ .ClientTraffic }}\n📅 到期日: {{ .ClientExp }}\n🌐 IP 限制: {{ .IpLimit }}\n💬 備註: {{ .ClientComment }}\n\n你現在可以將客戶加入入站了!",
|
||||
"inbound_client_data_pass": "🔄 入站: {{ .InboundRemark }}\n\n🔑 密碼: {{ .ClientPass }}\n📧 電子郵件: {{ .ClientEmail }}\n📊 流量: {{ .ClientTraffic }}\n📅 到期日: {{ .ClientExp }}\n🌐 IP 限制: {{ .IpLimit }}\n💬 備註: {{ .ClientComment }}\n\n你現在可以將客戶加入入站了!",
|
||||
"cancel": "❌ 程序已取消!\n\n您可以隨時使用 /start 重新開始。 🔄",
|
||||
"error_add_client": "⚠️ 錯誤:\n\n {{ .error }}",
|
||||
"using_default_value": "好的,我會使用預設值。 😊",
|
||||
@@ -2139,8 +1943,6 @@
|
||||
"eventXrayCrashError": "錯誤:{{ .Error }}",
|
||||
"eventNodeDown": "節點 {{ .Name }} 已離線",
|
||||
"eventNodeUp": "節點 {{ .Name }} 已上線",
|
||||
"eventCPUHigh": "CPU 偏高",
|
||||
"eventCPUHighDetail": "CPU:{{ .Detail }}",
|
||||
"eventLoginFallback": "來自 {{ .Source }} 的登入失敗",
|
||||
"memoryThreshold": "記憶體使用率 {{ .Percent }}% 超過閾值 {{ .Threshold }}%"
|
||||
},
|
||||
@@ -2181,11 +1983,8 @@
|
||||
"submitDisable": "以停用方式送出 ☑️",
|
||||
"submitEnable": "以啟用方式送出 ✅",
|
||||
"use_default": "🏷️ 使用預設值",
|
||||
"change_id": "⚙️🔑 ID",
|
||||
"change_password": "⚙️🔑 密碼",
|
||||
"change_email": "⚙️📧 電子郵件",
|
||||
"change_comment": "⚙️💬 評論",
|
||||
"change_flow": "⚙️🚦 Flow",
|
||||
"ResetAllTraffics": "重設所有流量",
|
||||
"SortedTrafficUsageReport": "排序過的流量使用報告"
|
||||
},
|
||||
@@ -2214,31 +2013,16 @@
|
||||
}
|
||||
},
|
||||
"email": {
|
||||
"subjectOutboundDown": "出站 {{ .Tag }} 已中斷",
|
||||
"subjectOutboundUp": "出站 {{ .Tag }} 已恢復",
|
||||
"subjectXrayCrash": "Xray 已當機",
|
||||
"subjectCPUHigh": "CPU 偏高",
|
||||
"subjectLoginSuccess": "登入成功",
|
||||
"subjectLoginFailed": "登入失敗",
|
||||
"titleOutboundDown": "出站中斷",
|
||||
"titleOutboundUp": "出站恢復",
|
||||
"titleXrayCrash": "Xray 已當機",
|
||||
"titleCPUHigh": "CPU 偏高",
|
||||
"titleLoginSuccess": "登入成功",
|
||||
"titleLoginFailed": "登入失敗",
|
||||
"labelStatus": "狀態",
|
||||
"labelOutbound": "出站",
|
||||
"labelNode": "節點",
|
||||
"labelError": "錯誤",
|
||||
"labelDelay": "延遲",
|
||||
"labelDetail": "詳細資訊",
|
||||
"labelUsername": "使用者名稱",
|
||||
"labelIP": "IP",
|
||||
"labelReason": "原因",
|
||||
"labelSource": "來源",
|
||||
"labelTime": "時間",
|
||||
"statusCrashed": "已當機",
|
||||
"statusRunning": "執行中",
|
||||
"statusHigh": "偏高",
|
||||
"statusSuccess": "成功",
|
||||
"statusFailed": "失敗",
|
||||
|
||||
Reference in New Issue
Block a user