mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-21 14:42:19 +07: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:
co-authored by
Claude Fable 5
parent
17e6b5a460
commit
ea35884390
@@ -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": "主机",
|
||||
@@ -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": "二维码",
|
||||
"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": "更新到开发通道(最新提交)",
|
||||
@@ -1455,13 +1343,8 @@
|
||||
"metricsListen": "指标端点",
|
||||
"metricsListenDesc": "在此 address:port 上暴露 Xray 的 Prometheus 风格指标(例如 127.0.0.1:11111)。留空则禁用。请绑定到本地回环并通过反向代理转发——它没有身份验证。",
|
||||
"metricsTag": "指标标签",
|
||||
"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