{ "common": { "appName": "VPN 管理平台", "confirm": "确认", "cancel": "取消", "save": "保存", "delete": "删除", "edit": "编辑", "add": "添加", "create": "创建", "close": "关闭", "search": "搜索", "refresh": "刷新", "back": "返回", "submit": "提交", "yes": "是", "no": "否", "enabled": "启用", "disabled": "禁用", "loading": "加载中", "operation": "操作", "status": "状态", "name": "名称", "description": "说明", "username": "用户名", "password": "密码", "email": "邮箱", "source": "来源", "local": "本地", "ldap": "LDAP", "remark": "备注", "protocol": "协议", "node": "节点", "time": "时间", "target": "对象", "action": "动作", "traffic": "流量 ↓ / ↑", "ipAddress": "IP 地址", "detail": "详情", "copy": "复制", "copied": "已复制", "download": "下载", "permanent": "永久", "saveSuccess": "已保存", "saveFailed": "保存失败", "deleteSuccess": "已删除", "deleteFailed": "删除失败", "loadFailed": "加载失败", "operationFailed": "操作失败", "deleteConfirm": "删除确认", "noData": "暂无数据", "never": "不", "copiedToClipboard": "已复制到剪贴板", "logout": "退出登录" }, "login": { "title": "VPN 专线管理平台", "subtitle": "统一管理多协议 VPN,配置简单、安全可控", "protocols": "WireGuard · IPSec · L2TP · FRP · OpenVPN · 自定义协议插件", "feature1Title": "多协议统一管理", "feature1Desc": "WireGuard / IPSec / L2TP / FRP / OpenVPN", "feature2Title": "企业级安全", "feature2Desc": "密钥 AES-GCM 加密 + 双因素认证", "feature3Title": "一键创建配置", "feature3Desc": "向导式生成,客户端配置秒级下载", "feature4Title": "轻量零依赖", "feature4Desc": "单二进制交付,无需 Docker", "welcome": "欢迎登录", "welcomeHint": "请输入账号密码登录管理平台", "usernameLabel": "用户名", "usernamePlaceholder": "请输入用户名", "passwordLabel": "密码", "passwordPlaceholder": "请输入密码", "loginButton": "登 录", "defaultAccount": "默认账号 admin / admin123,登录后请立即修改", "errorEmpty": "请输入用户名和密码", "loginSuccess": "登录成功", "changePasswordFirst": "首次登录请先修改密码", "loginFailed": "登录失败,请检查网络或联系管理员" }, "dashboard": { "welcomeTitle": "欢迎使用 VPN 管理平台", "welcomeDesc": "还没有专线,3 步即可创建第一条:选择协议 → 填写参数 → 自动生成配置", "createNow": "立即创建专线", "totalTunnels": "专线总数", "running": "运行中", "onlineUsers": "在线用户", "totalTraffic": "累计流量 ↓↑", "protocolDistribution": "协议分布", "protocolEngineStatus": "协议引擎状态", "depCheckResult": "系统依赖检测结果", "depReady": "已就绪", "demoMode": "演示模式", "deploy": "下载部署", "installCmd": "安装命令", "expiringTunnels": "即将到期的专线(7 天内)", "expiryTime": "到期时间", "noTunnels": "暂无专线", "deploySuccess": "{name} {version} 部署成功", "deployFailed": "{name} 部署失败", "contactAdmin": "请联系系统管理员安装", "recommendedCmd": "推荐命令", "otherDistros": "其他发行版", "copyRecommended": "复制推荐命令", "getInstallCmdFailed": "获取安装命令失败" }, "tunnels": { "searchPlaceholder": "搜索名称", "allProtocols": "全部协议", "allStates": "全部状态", "stateRunning": "运行中", "stateStopped": "已停止", "stateError": "异常", "stateUndeployed": "未部署", "createTunnel": "创建专线", "createFirst": "创建第一条专线", "noTunnels": "还没有专线", "expireTime": "到期时间", "localNode": "本机节点", "start": "启动", "stop": "停止", "started": "已启动", "startFailed": "启动失败", "stopped": "已停止", "more": "更多", "viewLogs": "查看日志", "downloadConfig": "下载配置", "showQrCode": "显示二维码", "ipsecTest": "IPSec 对接测试", "delete": "删除", "detail": "详情", "protocol": "协议", "createTime": "创建时间", "autoStart": "自动启动", "runningParams": "运行参数", "clientConfig": "客户端配置", "noClientConfig": "该协议暂无客户端配置", "downloadClientConfig": "下载客户端配置", "ipsecParamCheck": "IPSec 参数检查与连通性测试", "trafficPolicy": "流量策略", "quotaGB": "配额(GB)", "quotaUnlimited": "0 = 不限。已用:{used}", "rateLimitMbps": "限速(Mbps)", "rateUnlimited": "0 = 不限", "exceedAction": "超额动作", "actionWarn": "仅告警", "actionBlock": "自动停止", "actionThrottle": "限速至1Mbps", "resetCycle": "重置周期", "resetNone": "不重置", "resetDaily": "每天", "resetMonthly": "每月", "savePolicy": "保存策略", "policySaved": "流量策略已保存", "peerList": "Peer 列表", "addPeer": "添加 Peer", "peerId": "Peer ID", "address": "地址", "peerOnline": "在线", "peerOffline": "离线", "config": "配置", "qrCode": "二维码", "scanQrTitle": "扫码导入 WireGuard 客户端", "scanQrHint": "使用 WireGuard App「从二维码添加」", "addPeerTitle": "添加 WireGuard Peer", "autoGenId": "留空自动生成 client-N", "peerNamePlaceholder": "手机 / 笔记本", "clientAddress": "客户端地址", "defaultAllowedIPs": "留空使用隧道默认", "externalPublicKey": "外部公钥", "externalKeyHint": "留空则平台托管生成密钥;填写则为外部设备", "logTitle": "实例日志 — {name}", "liveOutput": "● 实时输出中", "logStopped": "已停止", "pause": "暂停", "resume": "继续", "clearScreen": "清屏", "waitingLog": "等待日志输出...", "fillClientAddress": "请填写客户端地址", "peerAdded": "Peer 已添加", "addFailed": "添加失败", "deletePeerConfirm": "删除 Peer「{id}」?", "downloadFailed": "下载失败", "qrFailed": "生成二维码失败", "noClientConfigWarn": "无客户端配置", "deleteTunnelConfirm": "确定删除专线「{name}」?配置与密钥将一并清除。", "peerAlreadyAdded": "Peer 已添加" }, "tunnelEditor": { "title": "编辑专线", "backToList": "返回列表", "sensitiveFieldHint": "密码、PSK、Token 等敏感字段不会回显;留空表示继续使用原值。", "tunnelName": "专线名称", "protocolType": "协议类型", "keepOriginal": "留空保持原值", "expireTime": "到期时间", "expirePlaceholder": "留空为永久", "autoStart": "自动启动", "saveConfig": "保存配置", "loadFailed": "加载专线失败", "fillName": "请填写专线名称", "configSaved": "配置已保存" }, "tunnelWizard": { "step1": "选择协议", "step2": "填写参数", "step3": "生成配置", "recommend": "推荐", "depReady": "✓ 依赖就绪", "notDeployed": "未部署", "oneClickInstall": "一键安装", "installCmd": "安装命令", "customPlugin": "自定义协议插件", "customScene": "自定义对接", "tunnelName": "专线名称", "namePlaceholder": "例如:总部-分支互联", "protocolType": "协议类型", "reselect": "重新选择", "advancedOptions": "高级选项", "expireTime": "到期时间", "expirePlaceholder": "留空为永久", "autoStartAfterCreate": "创建后自动启动", "previousStep": "上一步", "generateConfig": "生成配置", "createSuccess": "专线创建成功", "configGenerated": "「{name}」配置已生成", "clientConfig": "客户端配置", "downloadConfigFile": "下载配置文件", "showQrCode": "显示二维码", "goIpsecPeer": "前往 IPSec 对接页", "backToList": "返回列表", "installCmdTitle": "{name} 安装命令", "pkgManagerDetected": "检测到当前系统包管理器:{pm},推荐使用以下命令", "noPkgManager": "未检测到系统包管理器,以下是各平台安装命令供参考", "aptDefault": "apt (默认)", "recommended": "推荐", "copyThisCmd": "复制此命令", "otherDistros": "其他发行版", "fillName": "请填写专线名称", "fillRequired": "请填写必填项:{label}", "createFailed": "创建失败", "installSuccess": "{protocol} {version} 安装成功 {method}", "methodPackageManager": "(包管理器安装)", "methodDownload": "(一键安装)", "installFailed": "{protocol} 安装失败" }, "users": { "title": "管理用户", "batchImport": "批量导入", "ldapImport": "LDAP 导入", "addUser": "添加用户", "role": "角色", "roleAdmin": "管理员", "roleOperator": "运维", "roleViewer": "只读", "noUsers": "还没有用户", "ldapTitle": "LDAP 身份源", "ldapHint": "LDAP 用户可首次登录后自动同步,也可使用左侧「LDAP 导入」预先添加。", "ldapUrl": "LDAP URL", "bindDn": "Bind DN", "bindPassword": "Bind 密码", "keepOriginal": "留空保持原值", "baseDn": "Base DN", "userFilter": "用户过滤", "usernameAttr": "用户名属性", "testConnection": "测试连接", "editUser": "编辑用户", "loginUsername": "登录用户名", "keepUnchanged": "留空不修改", "min8Chars": "至少 8 位", "batchImportTitle": "批量导入用户", "batchHint": "每行一个用户,格式:用户名,密码 或仅用户名(自动生成密码)。密码至少 8 位。", "batchPlaceholder": "每行一个:用户名,密码(如 user1,Pass1234);或仅用户名自动生成密码", "defaultRole": "默认角色", "startImport": "开始导入", "ldapImportTitle": "从 LDAP 导入用户", "ldapNotEnabled": "LDAP 未启用,请先在右侧配置并测试连接", "refreshUserList": "刷新用户列表", "userCount": "共 {count} 个用户,已选 {selected} 个", "fullName": "姓名", "imported": "已导入", "pendingImport": "待导入", "clickRefreshHint": "点击上方刷新加载 LDAP 用户", "ldapDisabled": "LDAP 未启用", "importSelected": "导入入选中 ({count})", "updated": "已更新", "fillUsername": "请填写用户名", "passwordMin8": "密码至少 8 位", "userCreated": "用户已创建", "deleteUserConfirm": "确定删除用户「{username}」?", "enterAtLeastOne": "请输入至少一行用户数据", "importResult": "成功 {success},跳过 {skipped},失败 {failed}", "importResultTitle": "导入结果", "importFailed": "导入失败", "ldapLoadFailed": "LDAP 加载失败", "ldapConfigSaved": "LDAP 配置已保存", "ldapConnected": "LDAP 连接成功", "ldapConnectFailed": "连接失败" }, "vpnUsers": { "title": "VPN 拨号用户", "mfaHint": "OpenVPN 双因素认证(TOTP / 静态挑战 / PIN+OTP)", "addUser": "添加用户", "displayName": "姓名", "tunnel": "隧道", "otpMfa": "OTP / MFA", "bound": "已绑定", "unbound": "未绑定", "locked": "锁定", "lastOnline": "最近在线", "downloadConfig": "下载配置", "otpManagement": "OTP 管理", "addVpnUserTitle": "添加 VPN 拨号用户", "dialTunnel": "拨号隧道", "pickFromUsers": "从已有用户选", "displayNameLabel": "显示名", "authSource": "认证来源", "min8Chars": "至少 8 位", "ldapDn": "LDAP DN", "create": "创建", "pickUserTitle": "选择已有平台用户", "noPlatformUsers": "暂无平台用户", "clickRowHint": "点击行即选中并自动填充", "otpDialogTitle": "双因素认证 — {username}", "otpHint": "基于 TOTP 的双因素认证(SHA1 / base32 / 30s / 6 位),兼容主流 Authenticator 应用。支持静态挑战二次输入与 PIN+OTP 组合模式。", "bindStatus": "绑定状态", "boundTotp": "已绑定 TOTP", "staticPin": "静态 PIN", "pinSet": "已设置", "pinNotSet": "未设置", "failCount": "失败次数", "lockStatus": "锁定", "lockedUntil": "是(至 {time})", "lastOtpSuccess": "最近 OTP 成功", "compatible": "兼容", "bindAuthenticator": "绑定 Authenticator", "disableMfa": "关闭 MFA", "regenBackupCodes": "重新生成备用码", "setClearPin": "设置/清除 PIN", "unlock": "解锁", "exportKeys": "导出密钥", "scanHint": "使用 Google Authenticator / Microsoft Authenticator / FreeOTP 扫描", "base32Key": "base32 密钥:{key}", "input6DigitCode": "输入 6 位验证码确认绑定", "verifyAndEnable": "验证并启用", "clientConnectHint": "客户端连接方式:密码框填登录密码,第二因子填 6 位动态验证码(若设置了 PIN,则填 PIN+验证码,如 1234123456)。也支持密码后直接附加 6 位码。", "setPinTitle": "设置静态 PIN", "pinHint": "连接时第二因子需输入 PIN + 6 位动态验证码(无空格拼接)。留空保存可清除已设置的 PIN。", "pinPlaceholder": "4-32 位 PIN,留空清除", "userFilled": "已填充用户「{username}」信息", "vpnUserCreated": "拨号用户已创建", "createFailed": "创建失败", "downloadFailed": "下载失败", "mfaSetupFailed": "无法开始 MFA 设置", "inputCode": "请输入验证码", "mfaEnabledMsg": "双因素认证已启用。\n\n一次性备用码(请妥善保存,丢失手机时用于登录):\n{codes}\n\n客户端连接方式:密码框填登录密码,第二因子填 6 位动态验证码(若设置了 PIN 则填 PIN+验证码)。", "bindSuccess": "绑定成功", "verifyFailed": "验证失败", "disableMfaConfirm": "关闭 {username} 的 MFA?", "mfaClosed": "MFA 已关闭", "backupCodesTitle": "备用码", "newBackupCodes": "新备用码(旧码失效):\n\n{codes}", "generateFailed": "生成失败", "pinSetSuccess": "PIN 已设置", "pinCleared": "PIN 已清除", "unlocked": "已解锁", "unlockFailed": "解锁失败", "exportKeysTitle": "导出密钥", "otpSecretsMsg": "TOTP 密钥行(敏感信息,请勿泄露):\n\n{line}\n\n格式说明:{format}", "exportFailed": "导出失败", "deleteVpnUserConfirm": "删除拨号用户 {username}?" }, "sessions": { "title": "在线会话", "onlineCount": "{count} 个在线", "publicAddress": "公网地址", "vpnIp": "VPN IP", "connectedDuration": "已连接时长", "kickOffline": "踢下线", "noOnlineUsers": "当前无在线用户", "trafficAlert": "⚠ 异常流量告警", "userTunnel": "用户/隧道", "alertType": "类型", "rateAlert": "突发流量", "quotaExceed": "配额超额", "auditLog": "连接审计日志", "event": "事件", "eventConnect": "连接", "eventDisconnect": "断开", "eventAuthFail": "认证失败", "eventQuotaExceed": "配额超额", "eventRateAlert": "突发流量", "seconds": "{n}秒", "minutes": "{n}分钟", "hoursMinutes": "{h}小时{m}分", "loadDataFailed": "加载数据失败", "kickConfirm": "确定踢用户「{username}」下线?", "kicked": "已踢下线" }, "settings": { "mustChangePassword": "首次登录或密码已被管理员重置,必须修改密码后才能使用其他功能", "changePassword": "修改密码", "oldPassword": "原密码", "newPassword": "新密码", "min8Chars": "至少 8 位", "confirmNewPassword": "确认新密码", "change": "修改", "mfaTitle": "双因素认证(MFA)", "mfaHint": "使用 Microsoft Authenticator、Google Authenticator 等应用扫描二维码。备用码可在丢失手机时登录。", "setupMfa": "设置 MFA", "disableMfa": "关闭 MFA", "input6DigitCode": "输入 App 显示的 6 位验证码", "verifyAndEnable": "验证并启用", "deployTitle": "部署说明", "deliveryForm": "交付形态", "deliveryDesc": "单二进制(前端已内嵌),无需 Docker", "dataDir": "数据目录", "dataDirDesc": "./data(可用 VPN_DATA_DIR 覆盖)", "listenAddr": "监听地址", "listenAddrDesc": ":8080(VPN_LISTEN_ADDR 覆盖)", "keyStorage": "密钥存储", "keyStorageDesc": "PSK / 私钥 AES-GCM 加密落库,配置文件 0600 权限", "systemDeps": "系统依赖", "systemDepsDesc": "wireguard-tools / strongswan / xl2tpd / openvpn / frp", "prodSuggestion": "生产建议", "prodSuggestionDesc": "经 Nginx/Caddy 反向代理终止 TLS 后暴露", "auditTitle": "操作审计(最近 100 条)", "noAuditLogs": "暂无审计日志", "mfaEnabledTitle": "MFA 已启用 — 请保存备用码", "backupCodesHint": "这些备用码仅显示一次,丢失手机时用于登录。请立即复制保存!", "copyAll": "复制全部", "savedConfirm": "我已保存", "passwordMismatch": "两次新密码不一致", "passwordMin8": "新密码至少 8 位", "passwordChanged": "密码已修改", "changeFailed": "修改失败", "setupFailed": "设置失败", "verifyFailed": "验证失败", "mfaClosed": "MFA 已关闭", "closeFailed": "关闭失败", "mustChangeHint": "首次登录或密码已被重置,请先修改密码", "confirmChange": "确认修改", "strength": "强度:{level}", "strengthVeryWeak": "很弱", "strengthWeak": "弱", "strengthFair": "一般", "strengthStrong": "较强", "strengthVeryStrong": "强" }, "plugins": { "title": "自定义协议插件", "registerPlugin": "注册插件", "pluginHint": "插件通过命令钩子实现统一协议契约:平台将专线配置 JSON 通过 stdin 传给钩子命令。", "pluginContract": "契约:Create / Start / Stop / Status / Config;Status 钩子 stdout 输出 running 或 stopped;Config 钩子 stdout 输出客户端配置文本。", "protocolId": "协议标识", "enabled": "启用", "disabled": "停用", "noPlugins": "还没有自定义协议插件", "editPlugin": "编辑插件", "registerPluginTitle": "注册协议插件", "protocolIdPlaceholder": "如 myproto(字母数字)", "displayName": "显示名称", "optional": "可选", "protocolIdRequired": "协议标识与 Start 钩子必填" }, "nodes": { "title": "节点管理", "addNode": "添加节点", "nodeHint": "节点用于将专线部署到中继服务器。本机节点为内置默认节点;远程节点支持 SSH 凭证验证(密码/私钥),验证通过后状态显示为「已验证」。", "type": "类型", "typeLocal": "本机", "typeRemote": "远程", "sshUser": "SSH 用户", "authMethod": "认证方式", "authPassword": "密码", "authKey": "私钥", "statusReady": "就绪", "statusVerified": "已验证", "statusFailed": "验证失败", "statusUnverified": "未验证", "verify": "验证", "noNodes": "还没有远程节点,点击右上角添加", "editNode": "编辑节点", "namePlaceholder": "例如:北京中继节点", "addressPlaceholder": "IP 或域名,如 192.168.1.100", "sshPort": "SSH 端口", "remoteNode": "远程节点", "localNode": "本机节点", "defaultRoot": "默认 root", "keepUnchanged": "留空表示不修改", "sshPasswordPlaceholder": "SSH 登录密码", "privateKeyPlaceholder": "粘贴 OpenSSH/PEM 格式私钥内容", "testConnection": "测试连接", "determine": "确定", "fillAddressFirst": "请先填写地址", "requestFailed": "请求失败", "fillNameAndAddress": "请填写名称与地址", "added": "已添加", "updated": "已更新", "verifySuccess": "验证成功:{msg}", "verifyFailed": "验证失败:{msg}", "deleteNodeConfirm": "确定删除节点「{name}」?该操作不可撤销。" }, "notFound": { "title": "404", "subtitle": "您访问的页面不存在或已被移除", "backHome": "返回首页" }, "mfaVerify": { "title": "双因素认证", "hint": "请输入 Authenticator 应用中显示的 6 位动态验证码", "verifyAndLogin": "验证并登录", "backToLogin": "返回登录", "inputFullCode": "请输入完整的 6 位验证码", "sessionExpired": "登录会话已过期,请重新登录", "verifySuccess": "验证成功", "codeError": "验证码错误,请重试" }, "ipsecPeer": { "localParams": "本端 IPSec 参数", "loadTemplate": "载入设备模板", "localPublicIp": "本端公网 IP", "remoteGateway": "对端网关", "localSubnets": "本端网段", "remoteSubnets": "对端网段", "psk": "预共享密钥", "phase1": "Phase 1(IKE SA)", "ikeVersion": "IKE 版本", "proposal": "提议", "localId": "本端 ID", "remoteId": "对端 ID", "phase2": "Phase 2(IPSec SA)", "espProposal": "ESP 提议", "pfsGroup": "PFS 组", "dpdPolicy": "DPD 策略", "dpdRestart": "restart(断线重连)", "dpdClear": "clear(清除)", "dpdTrap": "trap(按需触发)", "createIpsecTunnel": "创建 IPSec 专线", "paramConsistency": "双方参数一致性检查", "peerIkeVersion": "对端 IKE 版本", "peerPhase1": "对端 Phase1", "peerPhase2": "对端 Phase2", "peerPfsGroup": "对端 PFS 组", "peerLocalSubnets": "对端本端网段", "peerIkePlaceholder": "对端的 IKE 提议", "peerEspPlaceholder": "对端的 ESP 提议", "peerSubnetsPlaceholder": "对端视角的 local(=我方 remote)", "startCompare": "开始对比检查", "paramsConsistent": "双方参数一致,可以建立隧道", "paramsInconsistent": "发现参数不一致:", "connectivityTest": "一键连通性测试", "selectIpsecTunnel": "选择已有 IPSec 专线", "testConnectivity": "测试与对端网关连通性", "reachable": "可达", "unreachable": "不可达", "latency": "耗时", "templateLoaded": "已载入「{name}」模板:{note}", "fillRequiredFields": "请填写完整的必填项(网关/网段/PSK)", "ipsecCreated": "IPSec 专线已创建并启动", "createFailed": "创建失败", "testFailed": "测试失败" }, "router": { "dashboard": "总览", "tunnels": "专线列表", "sessions": "在线会话", "createTunnel": "创建专线", "editTunnel": "编辑专线", "ipsecPeer": "IPSec 第三方对接", "nodes": "节点管理", "users": "用户管理", "vpnUsers": "VPN 拨号用户", "plugins": "协议插件", "settings": "系统设置", "notFound": "页面不存在", "sidebarOps": "专线运维", "sidebarResource": "资源管理", "sidebarSystem": "系统" }, "protocolIcon": { "custom": "自定义协议" } }