import { settingsUiZh } from './settings-ui' export default { settingsUi: settingsUiZh, hidGuide: { driver_ch9329_otg: 'CH9329 + OTG 复合模式', compositeHelp: 'CH9329 负责键盘和鼠标,OTG 负责虚拟磁盘、USB 网络和 USB 音频。高级功能需在各自设置中启用。', wiring_ch9329_otg: 'CH9329 接 KVM 专用键鼠口,OTG 接通用 USB 口。请使用同时切换视频、键鼠和通用 USB 的操作。', keyboardChannel: 'CH9329 键鼠', otgChannel: 'OTG 高级功能', kvmSwitch: 'KVM 切换器', dedicatedHidPort: '专用键鼠口', generalUsbPort: '通用 USB 口', advancedFunctions: 'OTG 高级 USB 功能', otgInactive: '未启用', otgConfigured: '主机已配置 USB', otgWaiting: '已绑定,等待主机连接', missingDevice: '原设备 {device} 已不可用,请检查当前选择。', connectionTimeout: '等待连接超时,请检查数据线及被控机 USB 端口。可稍后连接或重新配置。', "deviceTitle": "驱动与设备", "features": "功能配置", "saveFeatures": "保存功能配置", "configure": "配置驱动", "reconfigure": "重新配置", "driver": "HID 驱动", "wiringHelp": "接线示意", "refreshDevices": "刷新 HID 设备", "driver_otg": "USB OTG", "driver_ch9329": "CH9329", "driver_bluetooth": "蓝牙 HID", "driver_none": "禁用", "device_otg": "UDC", "device_ch9329": "串口", "device_bluetooth": "本机蓝牙适配器", "host": "被控机", "hostUsb": "被控机 USB", "otgPort": "One-KVM OTG USB", "serialLink": "CH340 → 串口连接 → CH9329", "integratedCable": "CH340 + CH9329 一体线", "dataCable": "USB 数据线", "wireless": "蓝牙无线连接", "wiring_otg": "One-KVM 的 OTG USB 端口 → USB 数据线 → 被控机 USB 端口。", "wiring_ch9329": "One-KVM 通过串口连接 CH9329,CH9329 的 USB 连接被控机。", "wiring_bluetooth": "在被控机打开系统设置 → 添加蓝牙设备 → 选择广播的 HID 设备名称。", "disabledHelp": "禁用后 One-KVM 无法发送键盘和鼠标输入。", "selectDevice": "请选择具体设备", "noDevices": "未找到可用设备,请检查连接后刷新。", "nameInvalid": "名称须为 1–64 个 UTF-8 字节,且不能含控制字符。", "unconfigured": "尚未配置 HID", "disabled": "HID 已禁用", "legacyAuto": "自动选择(旧配置)", "unknown": "状态未知或读取失败", "ready": "HID 可用", "preparing": "已连接,HID 准备中", "paired": "已配对,等待连接", "pairing": "等待配对", "waiting": "已应用,等待连接", "initializing": "正在初始化", "appliedHelp": "配置已应用。关闭引导会保留配置和已完成的配对。", "draftHelp": "选择驱动和设备,点击应用后才会更改当前配置。", "dirty": "功能配置有未保存的修改。请返回保存,或放弃修改后继续。", "returnSave": "返回保存", "discard": "放弃修改并继续", "pairInstructions": "请在被控机的系统设置中添加蓝牙设备,选择“{name}”。配对窗口为 120 秒。", "pairTimeout": "配对窗口已结束,可重新开启。", "reopenPairing": "重新开启配对", "resetWarning": "将清除原 One-KVM HID 绑定;请在被控机中删除旧设备后重新添加。", "disableUsb": "切换驱动将关闭:{functions}。", "msd": "虚拟磁盘", "network": "USB 网络", "audio": "USB 音频", "done": "完成", "later": "稍后连接", "configureLater": "稍后配置", "useConfiguration": "使用此配置", "repair": "重新配对", "uncertain": "上次请求结果不明。可先检查连接;再次应用将重新清除绑定。", "checkConnection": "检查已应用配置", "resumeRetry": "已读取当前配置,与待应用选择不一致。请检查选择后重试。" }, bluetoothHid: { paired: '已配对,等待电脑建立键鼠连接', "description": "经典蓝牙键盘和相对鼠标。", "adapter": "蓝牙适配器", "name": "设备名称", "peer": "被控电脑地址(可选)", "peerHelp": "留空时复用唯一的已绑定设备,或在配对时选择电脑。", "ready": "键盘和鼠标已就绪", "pairing": "配对窗口剩余 {seconds} 秒", "connected": "已连接,等待 HID 通道建立", "waiting": "等待已配对电脑连接", "unavailable": "蓝牙不可用或正在启动", "openPairing": "开启配对(2 分钟)", "closePairing": "关闭配对", "disconnect": "断开连接", "forget": "忘记电脑", "windows": "Windows 11:设置 → 蓝牙和其他设备 → 添加设备 → 蓝牙。忘记设备后,请同时在 Windows 删除设备再重新配对。", "applyFirst": "先应用 HID 设置,再开启配对。" }, videoInput: { format: '输入格式', resolution: '分辨率', frameRate: '帧率', noSignal: '无信号', unavailable: '无法读取输入状态', refresh: '刷新输入状态', selectFormat: '选择格式...', selectResolution: '选择分辨率...', selectFps: '选择帧率...', }, shortcuts: { close: "关闭快捷键", unavailable: "HID 未连接", releaseKeys: "请先释放已按下的键", stopped: "已停止快捷键发送", failed: "快捷键发送中断,请检查 HID 连接", sysrqHelp: "SysRq 对应 PrintScreen;被控 Linux 需已启用。查看内核文档", actions: { 'ctrl-alt-delete': "Ctrl+Alt+Del", 'task-manager': "任务管理器", 'switch-window': "切换窗口", 'close-window': "关闭窗口", 'lock-windows': "锁定 Windows", 'run': "运行", 'tty1': "切换到虚拟终端 1", 'tty2': "切换到虚拟终端 2", 'restart-x': "重启 X 服务", 'force-quit': "强制退出应用", 'sysrq-h': "显示帮助", 'sysrq-f': "调用 OOM killer", 'sysrq-m': "显示内存信息", 'sysrq-t': "显示任务信息", 'sysrq-r': "恢复键盘模式", 'sysrq-e': "终止所有进程(除 init)", 'sysrq-i': "强制终止所有进程(除 init)", 'sysrq-s': "同步磁盘", 'sysrq-u': "重新挂载为只读", 'sysrq-b': "立即重启,不先同步磁盘", }, }, common: { loading: '加载中...', save: '保存', cancel: '取消', confirm: '确认', delete: '删除', refresh: '刷新', success: '成功', error: '错误', warning: '警告', info: '信息', yes: '是', no: '否', on: '开', off: '关', enabled: '已启用', later: '稍后', restartNow: '立即重启', disabled: '已禁用', connected: '已连接', disconnected: '已断开', connecting: '连接中...', unknown: '未知', back: '上一步', next: '下一步', apply: '应用', menu: '菜单', optional: '可选', notSupportedYet: '(尚未支持)', create: '创建', creating: '创建中...', deleting: '删除中...', toggleTheme: '切换主题', toggleLanguage: '切换语言', retry: '重试', }, toast: { closeNotification: '关闭通知', notificationsRegion: '通知', }, api: { operationFailed: '操作失败', operationFailedDesc: '操作失败', parseResponseFailed: '解析响应失败', networkError: '网络错误', networkErrorDesc: '无法连接到服务器,请检查网络连接。', }, nav: { openwrtSystemManagement: 'OpenWRT 系统管理', logout: '退出登录', }, auth: { login: '登录', logout: '退出登录', username: '用户名', password: '密码', enterUsername: '请输入用户名', enterPassword: '请输入密码', loginFailed: '登录失败', invalidPassword: '用户名或密码错误', systemNotInitialized: '系统尚未初始化,请先完成向导设置。', changePassword: '修改密码', currentPassword: '当前密码', currentPasswordPlaceholder: '请输入当前密码', newPassword: '新密码', newPasswordPlaceholder: '请输入新密码', confirmPassword: '确认密码', confirmPasswordPlaceholder: '请再次输入新密码', passwordRequired: '请填写所有密码字段', passwordMismatch: '两次输入的密码不一致', passwordTooShort: '密码至少需要4个字符', sessionExpired: '会话已过期', loggedInElsewhere: '已在别处登录', forgotPassword: '忘记密码', forgotPasswordHint: '忘记密码?在运行本服务的设备上打开终端,执行 one-kvm user set-password,按提示输入并确认新密码即可重置。', totpPrompt: '请输入认证器应用中的验证码', totpCode: '认证器验证码', totpCodePlaceholder: '6 位验证码', enterTotpCode: '请输入 6 位认证器验证码', invalidTotpCode: '认证器验证码错误', totpChallengeExpired: '本次登录验证已过期,请重新输入密码。', totpRateLimited: '错误次数过多,请等待一分钟后重新登录。', verifyAndLogin: '验证并登录', backToPassword: '返回密码登录', }, status: { no_signal: '无信号', busy: '设备占用中', connected: '已连接', connecting: '连接中', disconnected: '已断开', error: '错误', }, actionbar: { muted: '已静音', more: '更多操作', collapseToolbar: '收起工具栏', expandToolbar: '展开工具栏', paste: '粘贴文本', micStart: '开始传声', micStop: '停止传声', microphoneTransfer: '音频传声设置', grantMicrophonePermission: '允许访问麦克风', noMicrophoneDevices: '未发现音频输入设备', micState: { idle: '未传输', starting: '启动中', streaming: '传输中', stopping: '停止中', error: '异常', }, micError: { 'secure-context-required': '浏览器仅允许 HTTPS 页面访问麦克风,请通过 HTTPS 打开控制台。', unsupported: '当前浏览器不支持 Opus 麦克风传输,请使用支持 WebCodecs 的浏览器。', 'permission-denied': '麦克风权限被拒绝,请在浏览器站点权限中允许访问。', 'device-unavailable': '所选麦克风不可用,请检查设备连接或选择其他输入设备。', 'connection-failed': '无法连接 USB 麦克风传输服务,请确认 UAC 已启用且没有其他会话占用。', 'encoder-failed': '浏览器音频编码器异常,传输已停止。', unknown: '麦克风传输启动失败,请检查设备和浏览器权限。', }, virtualMedia: '虚拟媒体', virtualMediaTip: '管理虚拟媒体设备', power: '电源', keyboard: '虚拟键盘', keyboardTip: '显示虚拟键盘', shortcuts: '快捷键', webTerminal: '网页终端', stats: '连接统计', statsTip: '查看连接状态', settings: '设置', settingsTip: '系统设置', fullscreen: '全屏', fullscreenTip: '切换全屏模式', actualSizeAria: '按视频原始像素显示', actualSizeTip: '按原始像素显示', fitSizeAria: '使视频适应窗口', fitSizeTip: '恢复适应窗口', videoConfig: '视频配置', streamSettings: '流设置', deviceSettings: '设备配置', videoMode: '视频模式', videoRotation: '视频旋转', selectMode: '选择模式...', videoModeHint: 'HTTP 对带宽占用较大但模式兼容性好;WebRTC 对网络要求较高但带宽占用低', videoDevice: '视频设备', videoFormat: '视频格式', videoResolution: '分辨率', videoFps: '帧率', selectDevice: '选择设备...', selectFormat: '选择格式...', selectResolution: '选择分辨率...', selectFps: '选择帧率...', bitratePreset: '码率', bitrateSpeed: '速度优先', bitrateBalanced: '均衡', bitrateQuality: '质量优先', browserUnsupported: '浏览器不支持', backendSoftware: '软件编码', backendAuto: '自动', recommended: '推荐', notRecommended: '不推荐', multiSourceCodecLocked: '{sources} 已启用,当前编码已锁定', multiSourceVideoParamsWarning: '{sources} 已启用,修改视频设备和输入参数将导致流中断', hidConfig: '鼠键配置', mouseSettings: '鼠标设置', mouseCompatibility: '鼠标兼容性', macosDragRequiresBoth: '请先在系统设置 → HID 设置中启用并保存相对鼠标和绝对鼠标接口。', hidDeviceSettings: 'HID 设备设置', positioningMode: '定位模式', sendInterval: '发送间隔', showCursor: '显示指针', mouseJiggler: '鼠标抖动', mouseJigglerHelp: '空闲时自动小幅移动鼠标,帮助防止目标主机息屏或休眠。操作键鼠或按住按键时暂停。关闭网页后仍生效,重启后保留设置。', jigglerInterval: '抖动间隔', jigglerSeconds: '秒', jigglerIntervalInvalid: '请输入 10–3600 之间的整数秒数。', jigglerNoMouse: '请先在 HID 设备设置中启用鼠标接口。', backend: '后端类型', devicePath: '设备路径', baudrate: '波特率', absolute: '绝对定位', relative: '相对定位', applying: '应用中...', audioConfig: '音频', playbackControl: '音频播放设置', volume: '音量', audioDeviceSettings: '设备配置', audioEnabled: '启用音频', audioDevice: '音频输入设备', audioQuality: '音频质量', qualityVoice: '语音', qualityBalanced: '均衡', qualityHigh: '高品质', selectAudioDevice: '选择设备...', }, infobar: { pointerCaptured: '鼠标已捕获 · Esc 释放', keys: '按键', pointer: '指针', caps: 'Caps', num: 'Num', scroll: 'Scroll', keyboardLedUnavailable: '键盘状态灯功能未开启或不支持', toggleLock: '切换 {key}', toggleLockFailed: '切换键盘锁定状态失败', }, paste: { title: '粘贴文本', placeholder: '在此输入要粘贴的文本...', hint: '按 Ctrl+Enter 快速发送', confirm: '发送', typing: '正在输入...', escToCancel: '按 Esc 取消', stop: '停止', untypableWarning: '部分字符无法通过键盘输入', untypableChars: '无法输入的字符: {chars}', }, atx: { title: '电源控制', powerState: '电源状态', hddState: '硬盘活动', stateOn: '已开机', stateOff: '已关机', stateUnknown: '未知', hddActive: '活动', hddInactive: '空闲', shortPress: '短按电源', longPress: '长按电源 (强制关机)', reset: '重启', wol: '网络唤醒', macAddress: 'MAC 地址', invalidMac: 'MAC 地址格式无效', recentMac: '最近使用', wolFailed: 'WOL 发送失败', }, setup: { welcome: '欢迎使用 One-KVM', description: '请完成初始设置以开始使用', stepAccount: '账号设置', stepAudioVideo: '音视频设置', stepHid: '鼠键设置', setUsername: '设置管理员用户名', usernameHint: '用户名至少2个字符', setPassword: '设置管理员密码', passwordHint: '密码至少4个字符', confirmPassword: '确认密码', passwordMismatch: '两次输入的密码不一致', videoDevice: '视频设备', selectVideoDevice: '选择视频采集设备', videoFormat: '画面格式', selectFormat: '选择画面格式', resolution: '分辨率', selectResolution: '选择分辨率', fps: '帧率', selectFps: '选择帧率', noVideoDevices: '未检测到视频设备', noSignalDetected: '未检测到 HDMI 信号,请连接 HDMI 线缆后刷新。', refreshDevices: '刷新设备', audioDevice: '音频设备', selectAudioDevice: '选择音频采集设备', noAudio: '不使用音频', noAudioDevices: '未检测到音频设备', audioDeviceHelp: '选择用于捕获远程主机音频的设备。通常与视频采集卡在同一 USB 设备上。', hidBackend: 'HID 后端', serialHid: '串口 HID', serialPort: '串口设备', selectSerialPort: '选择串口设备', noSerialDevices: '未检测到串口设备', baudRate: '波特率', udc: 'USB 设备控制器', selectUdc: '选择 UDC', noUdcDevices: '未检测到 UDC 设备', complete: '完成设置', setupFailed: '设置失败', advancedEncoder: '高级选项:编码器后端', encoderHint: '默认的"自动"选项适用于大多数情况。仅在需要特定编码器后端时更改。', autoRecommended: '自动(推荐)', hardware: '硬件', software: '软件', progress: '步骤 {current} / {total}', ch9329Help: 'CH9329 是一款串口转 HID 芯片,通过串口连接到主机。适用于大多数硬件配置。', otgHelp: 'USB OTG 模式通过 USB 设备控制器直接模拟 HID 设备。需要硬件支持 USB OTG 功能。', videoDeviceHelp: '选择用于捕获远程主机画面的视频采集设备。通常是 HDMI 采集卡。', videoFormatHelp: 'MJPEG 格式兼容性最好,H.264/H.265 带宽占用更低但需要编码支持。', stepExtensions: '扩展设置', extensionsDescription: '选择要自动启动的扩展服务', ttydTitle: 'Web 终端 (ttyd)', ttydDescription: '在浏览器中访问设备的命令行终端', extensionsHint: '这些设置可以在设置页面中随时更改', notInstalled: '未安装', passwordStrength: '密码强度', passwordWeak: '弱', passwordMedium: '中', passwordStrong: '强', passwordVeryStrong: '很强', }, console: { videoAlt: 'KVM 视频', mjpeg: 'MJPEG', webrtc: 'WebRTC', reconnect: '刷新网页', connecting: '正在连接...', connectionFailed: '连接失败', connectionFailedDesc: '无法连接到视频流,请刷新网页或检查设备状态', videoRestarting: '视频流正在重启', streamError: '视频流错误', // 四档视频状态(对应后端 StreamStateChanged:streaming / no_signal / // device_lost / device_busy). `reason` 子键可选,用于在副文案中补充细节。 signal: { noSignal: { title: '暂无视频信号', detail: '未检测到视频信号', }, deviceLost: { title: '视频设备已断开', detail: '采集卡离线,正在尝试重新识别…', }, audioDeviceLost: { title: '音频设备已断开', detail: '正在尝试重新连接音频采集设备…', }, deviceBusy: { title: '视频通道忙', detail: '正在切换配置或被其他组件占用,请稍候…', }, uvc_usb_error: { title: 'USB 采集传输异常', detail: 'USB 采集卡遇到协议错误(EPROTO),可在 设置 → 其他 → USB 设备复位 中尝试复位。', }, uvc_capture_stall: { title: 'UVC 采集超时', detail: '检查设备连接,若设备已连接,可尝试修改采集格式并复位设备。', }, reason: { no_cable: '未检测到 HDMI 线缆,请检查连接或被控机是否已开机', no_sync: '无信号或信号不稳定,无法锁定时序', out_of_range: '分辨率或刷新率超出采集卡能力,建议切换到 1080p60 以内', no_signal: '采集卡已就绪,正在等待画面…', recovering: '正在自动重连视频设备', device_lost: '视频节点丢失,等待驱动恢复', config_changing: '正在应用新配置', mode_switching: '正在切换视频模式', audio_device_lost: '音频采集不可用,正在自动恢复', audio_reconnecting: '正在重试连接音频设备', uvc_usb_error: '可尝试更换 USB 口或线、避免 HUB、或重新插拔设备;也可在 设置 → 其他 → USB 设备复位 中复位。', uvc_capture_stall: '', }, }, webrtcConnected: 'WebRTC 已连接', webrtcFailed: 'WebRTC 连接失败', webrtcPhaseIceServers: '正在加载 ICE 服务器...', webrtcPhaseCreatePeer: '正在创建点对点连接...', webrtcPhaseCreateChannel: '正在创建数据通道...', webrtcPhaseCreateOffer: '正在创建本地会话描述...', webrtcPhaseWaitAnswer: '正在等待远端应答...', webrtcPhaseSetRemote: '正在应用远端会话描述...', webrtcPhaseApplyIce: '正在应用 ICE 候选...', webrtcPhaseNegotiating: '正在协商安全连接...', mjpegPhaseWebsocket: '正在连接控制通道...', mjpegPhaseStream: '正在请求视频流...', mjpegPhaseFirstFrame: '正在等待首帧...', stepProgress: '第 {current}/{total} 步', pointerLockFailed: '鼠标锁定失败', deviceLost: '视频设备丢失', deviceLostDesc: '{device}: {reason}', pleaseWait: '请稍候...', errorDetails: '错误详情', }, hid: { keyboard: '键盘', errorHints: { udcNotConfigured: 'OTG 已就绪,等待被控机连接并完成 USB 枚举', disabled: 'HID 后端已禁用', hidDeviceMissing: '未找到 HID 设备节点,可尝试重启 HID 服务', notOpened: 'HID 设备尚未打开,可尝试重启 HID 服务', portNotFound: '找不到串口设备,请检查 CH9329 接线与设备路径', noResponse: 'CH9329 无响应,请检查波特率与供电', noResponseWithCmd: 'CH9329 无响应,请检查波特率与供电(命令 {cmd})', invalidConfig: '串口参数无效,请检查设备路径与波特率配置', protocolError: 'CH9329 返回了无效协议数据', deviceDisconnected: 'HID 设备已断开,请检查线缆与接口', ioError: '检测到 I/O 通信异常', otgIoError: 'OTG 链路不稳定,请检查 USB 线和被控机接口', ch9329IoError: 'CH9329 串口链路不稳定,请检查接线与供电', serialError: '串口通信异常,请检查 CH9329 接线与配置', initFailed: 'CH9329 初始化失败,请检查串口参数与供电', shutdown: 'HID 后端已停止', reconnecting: 'CH9329 正在重连,请稍后重试', workerStopped: 'CH9329 后台通信已停止,请检查设备连接后重启 HID 服务或重新保存 HID 设置', backendError: '{backend} HID 后端异常,请检查设备连接与配置', }, }, audio: { deviceLost: '音频设备丢失', deviceLostDesc: '{device}: {reason}', }, msd: { title: '虚拟媒体', images: 'ISO/IMG 挂载', drive: '虚拟U盘', imageList: '镜像列表', uploadImage: '上传镜像', noImages: '暂无镜像', connect: '连接', disconnect: '断开', cdrom: 'CD-ROM', flash: 'Flash', storageMode: '存储模式', accessMode: '访问模式', readOnly: '只读', readWrite: '读写', createFolder: '新建文件夹', driveNotInitialized: '虚拟驱动器未初始化', initializeDrive: '初始化驱动器', driveSize: '驱动器大小', usedSpace: '已用', freeSpace: '剩余', deleteDrive: '删除驱动器', confirmDeleteDrive: '确定要删除虚拟驱动器吗?所有文件将被清除。', systemAvailable: '系统可用', emptyFolder: '空文件夹', confirmDelete: '确定要删除 "{name}" 吗?', folderName: '文件夹名称', downloadFromUrl: '从 URL 下载', downloadFromUrlDesc: '输入镜像文件的 URL 地址,支持 ISO/IMG 格式', url: 'URL 地址', filename: '文件名', filenameAutoDetect: '自动从 URL 获取', download: '下载', downloadComplete: '下载完成', largeFileWarning: '>2.2GB', largeFileTooltip: '若内核未启用 DVD 镜像支持,挂载后仅前 2.2 GB 可访问。', operationInProgress: '操作进行中,请稍候', selectDriveSize: '选择虚拟驱动器大小', driveSpaceUnknown: '无法读取 MSD 目录所在储存空间的剩余可用空间', driveSpaceUnavailable: 'MSD 目录所在储存空间不足,无法创建虚拟U盘', driveSpaceTooSmall: '剩余可用空间不足 {min} MB,无法创建虚拟U盘', driveCreateFailed: '虚拟U盘创建失败', driveFileTooLarge: 'MSD 目录所在文件系统不支持这么大的单个虚拟盘文件', driveReadOnly: 'MSD 目录所在文件系统为只读', drivePermissionDenied: 'One-KVM 没有写入 MSD 目录的权限', driveConnectedBlocked: '请先断开连接,再操作文件', driveConnectedFilesHidden: '已连接到被控机,文件列表暂不可用', uploadFailed: '文件上传失败', driveUnreadable: '格式不支持', driveUnreadableTooltip: '无法解析 exFAT 文件系统,可能已被格式化为不支持的格式。', driveFilesystemUnsupportedHint: '网页暂不支持浏览此文件系统,但仍可连接到被控机使用。', reinitializeDrive: '重新初始化', diskMode: '驱动器模式', singleDiskMode: '单驱动器', multiDiskMode: '多驱动器', diskModeHint: '单驱动器提供 1 个介质槽位,多驱动器提供 8 个;切换模式会清空已挂载介质并重新枚举 USB。', mountImage: '挂载镜像', mediaCount: '介质 {count}/{capacity}', mediaSlotsFull: '介质槽已满,无法挂载更多介质', reenumerating: 'USB 正在重新枚举', operations: { loadStatus: '虚拟媒体状态加载失败', loadImages: '镜像列表加载失败', uploadImage: '镜像上传失败', deleteImage: '镜像删除失败', mountImage: '镜像挂载失败', unmountImage: '镜像卸载失败', mountDrive: '虚拟盘挂载失败', unmountDrive: '虚拟盘卸载失败', changeMode: '驱动器模式切换失败', initializeDrive: '虚拟盘初始化失败', deleteDrive: '虚拟盘删除失败', loadDriveFiles: '虚拟盘文件列表加载失败', uploadDriveFile: '虚拟盘文件上传失败', deleteDriveFile: '虚拟盘文件删除失败', createDirectory: '文件夹创建失败', startDownload: '镜像下载启动失败', cancelDownload: '镜像下载取消失败', downloadImage: '镜像下载失败', }, errors: { unavailable: '虚拟媒体服务当前不可用。', operationInProgress: '另一项虚拟媒体操作正在进行中,请稍候。', operationFailed: '虚拟媒体操作失败。', invalidRequest: '虚拟媒体请求无效。', resourceNotFound: '未找到请求的虚拟媒体资源。', resourceAlreadyExists: '虚拟媒体资源已存在。', mediaSlotsFull: '虚拟媒体槽位已全部占用。', mediaAlreadyMounted: '该虚拟介质已经挂载。', mediaInUse: '该虚拟介质正在使用中。', imageTooLarge: '虚拟媒体镜像过大。', invalidUrl: '下载 URL 无效。', remoteDownloadFailed: '远程镜像下载失败。', downloadIncomplete: '远程镜像下载不完整。', driveNotInitialized: '虚拟盘尚未初始化。', driveConnected: '虚拟盘已连接到被控机,请先断开连接再操作文件。', driveFilesystemUnsupported: '网页文件管理不支持此格式,但仍可挂载到被控机使用。', driveSizeInvalid: '虚拟盘大小无效。', storageSpaceUnavailable: '无法获取虚拟媒体存储空间信息。', storageFull: '虚拟媒体存储空间不足。', storageReadOnly: '虚拟媒体存储为只读。', storagePermissionDenied: '没有访问虚拟媒体存储的权限。', mediumRemovalPrevented: '被控机正在使用该虚拟介质,并拒绝移除。请先在被控机中弹出或卸载该介质,然后重试。', disconnectFailed: '虚拟介质断开失败,请重试或检查系统日志。', }, }, settings: { title: '系统设置', appearance: '外观', accountSubtitle: '管理控制台登录账户与安全验证', account: '账户', video: '视频', encoder: '编码器', hid: 'HID', msd: 'MSD', atx: 'ATX', environment: '环境', networkSubtitle: '配置 Web 服务端口、监听地址与 HTTPS', network: '网络', hardware: '硬件', system: '系统', other: '其他', extensions: '扩展', about: '关于', appearanceSubtitle: '自定义界面外观与显示语言', videoSubtitle: '配置采集设备、视频编码器与 WebRTC 信令服务器', hidSubtitle: '配置 HID 后端、设备、描述符与 USB Gadget 功能', atxSubtitle: '配置远程电源控制硬件与网络唤醒', environmentSubtitle: '诊断 USB OTG 与视频编码环境', otherSubtitle: '其他系统硬件控制与 USB 设备维护', aboutSubtitle: '在线升级与版本信息', extTtydSubtitle: '在浏览器中打开本机 Shell 终端', thirdPartyAccessSubtitle: '集中配置 RustDesk、VNC、RTSP 与 Redfish 外部接入', extRemoteAccessSubtitle: '通过内网穿透服务实现远程访问', extFrpcSubtitle: '通过 FRP 客户端实现内网穿透', watchdog: { title: '硬件看门狗', description: '硬件 Watchdog 可在系统死机或程序退出时自动触发硬件复位信号', status: { running: '运行中', closed: '已关闭', unsupported: '不支持', error: '异常', }, loadFailed: '无法加载硬件 Watchdog 状态', toggleFailed: '无法更新硬件 Watchdog', enableFailed: '无法开启硬件 Watchdog。', unsupportedReason: '未发现支持的硬件 Watchdog。', discoveryFailed: '无法发现硬件 Watchdog。', openFailed: '无法打开硬件 Watchdog。', feedFailed: '硬件 Watchdog 当前未能正常喂狗。', disableFailed: '硬件 Watchdog 无法安全停用,将继续喂狗。', abnormalReason: '硬件 Watchdog 状态异常。', }, deviceInfo: '设备信息', deviceInfoDesc: '主机系统信息', hostname: '主机名', cpuModel: '处理器 / 平台', cpuUsage: 'CPU 利用率', memoryUsage: '内存使用', networkAddresses: '网络地址', language: '语言', theme: '主题', consoleLayout: '控制台布局', consoleLayoutDesc: '选择控制台操作区的排列方式,设置将保存在当前浏览器。', consoleLayoutHints: { current: '完整状态与文字工具栏,适合配置和排障。', sidebar: '精简状态与固定图标入口,适合频繁操作。', floating: '常用操作悬浮显示,可收起以专注画面。', }, consoleLayoutOptions: { current: '顶栏', floating: '浮动栏', sidebar: '侧边栏', }, lightMode: '浅色模式', darkMode: '深色模式', systemMode: '跟随系统', changePassword: '修改密码', currentPassword: '当前密码', newPassword: '新密码', usernameDesc: '修改控制台登录用户名', passwordDesc: '修改控制台登录密码', totp: { title: '双重身份验证', description: '登录 Web 控制台时要求输入认证器验证码', serverTime: '服务器时间', localTime: '本地时间', clockOffset: '时钟偏差:{seconds} 秒', clockDriftWarning: '服务器与当前设备的时间相差至少 30 秒,校准时钟前验证码可能无法通过。', enable: '启用 2FA', disable: '关闭 2FA', enableTitle: '设置双重身份验证', disableTitle: '关闭双重身份验证', manualSecret: '手动设置密钥', secretOneTime: '此密钥仅在设置期间显示,请立即添加到认证器。', enterSixDigitCode: '请输入 6 位认证器验证码', currentPasswordIncorrect: '当前密码错误', invalidCode: '认证器验证码错误', enrollmentExpired: '设置已过期,请重新输入密码开始。', rateLimited: '错误次数过多,请等待一分钟后重试。', alreadyEnabled: '双重身份验证已经启用', notEnabled: '双重身份验证尚未启用', operationFailed: '无法更新双重身份验证', loadFailed: '无法加载双重身份验证状态', }, httpPort: 'HTTP 端口', httpsPort: 'HTTPS 端口', bindAddress: '绑定地址', bindMode: '监听地址', bindModeAll: '所有地址', bindModeLocal: '仅本地 (127.0.0.1)', bindModeCustom: '自定义地址列表', bindIpv6: '启用 IPv6', bindAddressList: '地址列表', addBindAddress: '添加地址', bindAddressListEmpty: '请至少填写一个 IP 地址。', httpsEnabled: '启用 HTTPS', portConfig: '端口与协议', portConfigDesc: '服务一次仅监听一个端口,由 HTTPS 开关决定生效端口', redfishTitle: 'Redfish', redfishDesc: 'DMTF Redfish 标准管理接口', redfishEnabled: '启用 Redfish API', redfishEndpoint: 'Redfish 入口', portActive: '当前生效', portReserved: '备用', previewUrl: '访问地址预览', copyUrl: '复制访问地址', openInBrowser: '在浏览器中打开', listenAddress: '监听地址', listenAddressDesc: '配置 Web 服务监听的网络接口', effectiveAddresses: '生效监听地址', sslCertificate: 'SSL 证书', sslCertificateDesc: '上传自定义 PEM 证书替换自签名证书,保存后需重启服务生效', sslCertCustom: '自定义证书', sslCertSelfSigned: '自签名证书', sslCertActive: '自定义证书已启用', sslCertClear: '恢复自签名', sslCertSave: '保存证书', sslCertPem: '证书内容 (.crt / .pem)', sslKeyPem: '私钥内容 (.key)', sslCertPemPlaceholder: '-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----', sslKeyPemPlaceholder: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----', restartRequired: '需要重启', restartRequiredHint: '保存后将自动重启服务以应用新配置', unsavedChangesHint: '点击右侧按钮保存当前配置', restartMessage: 'Web 服务器配置已保存,需要重启程序才能生效。', restarting: '正在重启...', autoRestarting: '正在自动重启', autoRestartingDesc: '配置已保存,服务恢复后将自动跳转到新地址...', autoRestartingHttpsDesc: '服务即将重启,{sec} 秒后将显示跳转链接...', autoRestartFailed: '自动重启超时,请手动刷新页面或检查服务状态。', httpsManualRedirectTitle: '请点击下方链接前往新地址', httpsManualRedirectDesc: 'HTTPS 自签名证书需要在浏览器中手动接受,点击链接后在安全警告页选择"继续访问"即可。', onlineUpgrade: '在线升级', onlineUpgradeDesc: '检查并升级 One-KVM', onlineUpgradeUnsupported: '当前平台暂不支持在线升级,请下载新版本并手动替换程序。', updateChannel: '升级通道', currentVersion: '当前版本', latestVersion: '最新版本', updateStatus: '升级状态', releaseNotes: '更新说明', noUpdates: '当前通道暂无可升级新版本', updateOverviewLoadFailed: '获取版本更新信息失败', startUpgrade: '开始升级', updatePhaseIdle: '空闲', updatePhaseChecking: '检查中', updatePhaseDownloading: '下载中', updatePhaseVerifying: '校验中', updatePhaseInstalling: '安装中', updatePhaseRestarting: '重启中', updatePhaseSuccess: '成功', updatePhaseFailed: '失败', updateMsgChecking: '检查更新中', updateMsgDownloading: '下载中', updateMsgVerifying: '校验中(SHA256)', updateMsgInstalling: '替换程序中', updateMsgRestarting: '服务重启中', auth: '访问控制', authSettings: '会话策略', authSettingsDesc: '配置单用户登录与并发会话规则', allowMultipleSessions: '允许多个 Web 会话并存', username: '用户名', password: '密码', msdDir: 'MSD 目录', msdFlashInquiryString: 'Flash 设备名称', msdCdromInquiryString: 'CD-ROM 设备名称', atxPowerButton: '电源按钮', atxResetButton: '重启按钮', atxPowerManagement: '电源管理', atxDriver: '驱动类型', atxDriverNone: '禁用', atxDriverGpio: 'GPIO', atxDriverUsbRelay: 'USB LCUS HID继电器', atxDriverSerial: 'USB LCUS 串口继电器', atxDevice: '设备', atxGpioChip: 'GPIO 芯片', atxPin: 'GPIO 引脚', atxChannel: '继电器通道', atxActiveLevel: '触发电平', atxLevelHigh: '高电平触发', atxLevelLow: '低电平触发', atxLedSensing: 'LED 状态检测', atxHddSensing: 'HDD 活动检测', atxWolSettings: '网络唤醒设置', atxWolSettingsDesc: '配置 Wake-on-LAN 魔术包发送选项', atxWolInterface: '网络接口', atxWolInterfacePlaceholder: '例如: eth0, enp0s3', themeDesc: '选择界面颜色方案', languageDesc: '选择界面显示语言', featureVisibility: '功能展示', featureVisibilityDesc: '控制控制台页面显示的功能入口', pasteText: '粘贴文本', videoSettings: '视频采集', videoSettingsDesc: '选择视频采集设备;输入跟随型设备会自动显示当前输入模式', videoDevice: '视频设备', selectDevice: '选择设备...', videoFormat: '视频格式', selectFormat: '选择格式...', resolution: '分辨率', frameRate: '帧率', encoderBackend: '视频编码器', encoderBackendDesc: '选择 WebRTC 输出使用的视频编码器后端', backend: '后端', autoRecommended: '自动(推荐)', software: '软件', supportedFormats: '支持的编码格式', hidSettings: 'HID 设置', hidSettingsDesc: '按后端、设备、描述符和功能顺序配置', hidBackend: 'HID 后端', serialDevice: '串口设备', baudRate: '波特率', otgUdc: 'OTG 设备控制器', ch9329Options: 'CH9329 选项', ch9329OptionsDesc: '配置 CH9329 串口 HID 芯片的运行兼容性', ch9329HybridMouse: 'Linux 绝对鼠标兼容模式', ch9329HybridMouseDesc: '绝对移动仍使用绝对鼠标包,点击和滚轮改用相对鼠标包发送', mouseMacosDrag: 'macOS 拖拽兼容模式', mouseMacosDragRequiresBoth: 'macOS 拖拽兼容模式需要同时启用相对鼠标和绝对鼠标接口。请保留两个接口,或先在控制台鼠键配置中关闭该模式。', mouseMacosDragDesc: '实验性缓解 macOS 绝对鼠标模式下的拖拽中断', ch9329Descriptor: 'CH9329 USB 设备描述符', ch9329DescriptorDesc: '先从 CH9329 芯片读取 USB 标识信息,读取成功后再修改', ch9329DescriptorLoading: '正在读取 CH9329 描述符...', ch9329DescriptorLoadFailed: '读取 CH9329 描述符失败', ch9329ConfigModeUnavailable: 'CH9329 配置模式不可用。读取或写入芯片参数需要将 SET 拉低;当前显示上次保存的描述符。', ch9329DescriptorReadRequired: '需要先成功读取 CH9329 描述符才能保存', ch9329DescriptorWarning: '保存会写入 CH9329 参数;需要重新上电或重新插拔后才会变化', ch9329StringLengthWarning: 'CH9329 字符串最长为 23 字节', otgHidProfile: 'OTG 功能', otgFunctionKeyboard: '标准键盘', otgKeyboardLeds: '键盘状态灯', otgFunctionMouseRelative: '相对定位鼠标', otgFunctionMouseAbsolute: '绝对定位鼠标', otgFunctionConsumer: '多媒体键盘', otgFunctionMsd: '虚拟媒体(MSD)', otgProfileWarning: '保存后 USB 设备会重新连接;若控制器不支持当前组合,将显示失败并恢复原配置', otgFunctionMinWarning: '请至少启用一个 HID 功能后再保存', otgNetwork: 'USB 虚拟网卡桥接', otgRuntimeDegraded: 'OTG 运行时处于降级状态', otgNetworkDriver: '目标机驱动模式', otgNetworkInterface: '桥接网卡', otgNetworkNone: '无', otgNetworkInterfacesLoadFailed: '无法获取桥接网卡列表', uacMic: 'USB 麦克风', otgDescriptor: 'USB 设备描述符', vendorId: '厂商 ID (VID)', productId: '产品 ID (PID)', manufacturer: '制造商', productName: '产品名称', serialNumber: '序列号', serialNumberAuto: '自动生成', descriptorWarning: '修改这些设置将导致 USB 设备重新连接', otgSelfCheck: { title: 'OTG 自检', desc: '检查 UDC、gadget 绑定和连接状态', run: '运行自检', failed: '执行 OTG 自检失败', overall: '总体状态', ok: '正常', hasIssues: '存在问题', counts: '错误 {errors},警告 {warnings}', groupCounts: '通过 {ok},警告 {warnings},错误 {errors}', notRun: '未执行', status: { ok: '正常', warn: '告警', error: '异常', skipped: '跳过', }, groups: { udc: 'UDC 基础', gadgetConfig: 'gadget 配置', oneKvm: 'one-kvm gadget', functions: '功能与设备节点', link: '连接状态', }, values: { missing: '不存在', notConfigured: '未配置', mounted: '已挂载', unmounted: '未挂载', available: '可用', unavailable: '不可用', exists: '存在', none: '无', unbound: '未绑定', noConflict: '无冲突', conflict: '冲突', unknown: '未知', normal: '正常', abnormal: '异常', }, selectedUdc: '目标 UDC', boundUdc: '已绑定 UDC', messages: { udc_dir_exists: 'UDC 目录检查', udc_has_entries: 'UDC 检查', configfs_mounted: 'configfs 检查', usb_gadget_dir_exists: 'usb_gadget 检查', libcomposite_loaded: 'libcomposite 检查', one_kvm_gadget_exists: 'one-kvm gadget 检查', other_gadgets: '其他 gadget 检查', configured_udc_valid: '配置 UDC 检查', one_kvm_bound_udc: 'gadget 绑定 UDC 检查', hid_functions_present: 'HID 函数检查', config_c1_exists: 'configs/c.1 检查', function_links_ok: 'functions 链接检查', hid_device_nodes: 'HID 设备节点检查', udc_conflict: 'UDC 冲突检查', udc_state: 'UDC 状态检查', udc_speed: 'UDC 速率检查', }, hints: { udc_dir_exists: '请确认内核已启用 UDC/OTG 驱动', udc_has_entries: '请确认 OTG 控制器已在设备树中启用', configfs_mounted: '可执行: mount -t configfs none /sys/kernel/config', usb_gadget_dir_exists: '请确认 configfs 与 USB gadget 支持已启用', libcomposite_loaded: '可执行: modprobe libcomposite', one_kvm_gadget_exists: '启用 OTG HID 或 MSD 后会自动创建 one-kvm gadget', other_gadgets: '可能与 one-kvm 抢占 UDC,请检查是否有其他 OTG 服务', configured_udc_valid: '请在 HID OTG 设置中重新选择 UDC', one_kvm_bound_udc: '请确认 HID/MSD 已启用并成功初始化', hid_functions_present: '请检查 OTG HID 配置是否至少启用了一个 HID 功能', config_c1_exists: 'gadget 结构不完整,请尝试重启 One-KVM', function_links_ok: '建议重新初始化 OTG(切换一次 HID 后端或重启服务)', hid_device_nodes: '请确认 gadget 已绑定并检查内核日志', udc_conflict: '请停用其他 OTG 服务或切换 one-kvm 到空闲 UDC', udc_state: '请确认已连接被控机,且被控机已识别 USB 设备', udc_speed: '设备可能未完成枚举,可尝试重插 USB', }, }, encoderSelfCheck: { title: '硬件编码能力测试', desc: '按 720p、1080p、2K、4K 测试硬件编码能力', run: '开始测试', failed: '执行硬件编码能力测试失败', resolution: '分辨率', currentHardwareEncoder: '当前硬件编码器', none: '无', }, usbDevices: { title: 'USB 设备复位', desc: '查看已连接的 USB 设备,可通过复位恢复异常设备', refresh: '刷新', loadFailed: '加载 USB 设备列表失败', noDevices: '未发现 USB 设备', colDevice: '设备', colSpeed: '速度', colVideo: '视频', colAction: '操作', reset: '复位', resetConfirmTitle: '确认复位 USB 设备', resetConfirmDesc: '将通过 authorized 属性复位 USB 设备「{device}」,该设备上的所有连接将短暂中断。确定继续?', resetAction: '确认复位', }, webrtcSettings: 'WebRTC 信令', webrtcSettingsDesc: '配置 STUN/TURN 服务器,保存后WebRTC 会话新建立时生效', stunServer: 'STUN 服务器', stunServerPlaceholder: 'stun:stun.l.google.com:19302', turnServer: 'TURN 服务器', turnServerPlaceholder: 'turn:turn.example.com:3478', turnUsername: 'TURN 用户名', turnPassword: 'TURN 密码', }, virtualKeyboard: { title: '虚拟键盘', attach: '固定', detach: '浮动', hide: '隐藏', }, config: { loadDevicesFailed: '加载设备列表失败', updateFailed: '更新失败', }, mcp: { title: "MCP 服务", description: "让外部 AI 工具查看画面,操作键鼠、电源和虚拟介质。", enabled: "启用 MCP", rate: "全局请求频率(每秒 1–100 次)", endpoint: "服务地址", copyEndpoint: "复制服务地址", copyKey: "复制 API Key", copied: "已复制", copyFailed: "复制失败,请手动选择复制", keyConfigured: "已配置 Key,可重新生成后查看。", keyMissing: "启用时会自动生成 Key。", regenerate: "重新生成 Key", connectHint: "在 AI 工具中填写服务地址,并设置 Authorization: Bearer 。", save: "保存", saved: "MCP 设置已保存", loadFailed: "无法加载 MCP 设置", saveFailed: "无法保存 MCP 设置", invalidRate: "请求频率必须是 1–100 的整数", retry: "重试", }, statusCard: { connectionDetails: '连接详情', device: '设备', video: '视频', hid: 'HID', audio: '音频', msd: 'MSD', online: '在线', offline: '离线', connecting: '连接中...', format: '格式', resolution: '分辨率', fps: '帧率', fpsTarget: '目标帧率', fpsActual: '实际帧率', paused: '已暂停', backend: '后端', currentMode: '当前模式', absolute: '绝对定位', relative: '相对定位', channel: '通道', networkError: '网络错误', disconnected: '已断开', hidUnavailable: 'HID不可用', audioPlayback: '音频播放', audioTransfer: '音频传声', playbackActive: '播放中', playbackStopped: '已停止', transferIdle: '未传声', transferStarting: '正在启动', transferWaiting: '等待目标机', transferActive: '传声中', transferStalled: '目标机未接收', transferStopping: '正在停止', transferError: '传声异常', quality: '质量', streaming: '传输中', off: '关闭', defaultDevice: '默认', connected: '已连接', msdStatus: '状态', msdStandby: '空闲', msdDriveMode: '虚拟U盘', msdCurrentImage: '当前镜像', msdNoImage: '无', }, extensions: { available: '可用', unavailable: '不可用', running: '运行中', starting: '启动中', stopped: '已停止', failed: '启动失败', start: '启动', stop: '停止', autoStart: '开机自启', thirdPartyAccess: { title: '第三方接入', }, viewLogs: '查看日志', noLogs: '暂无日志', binaryNotFound: '未找到 {path},请先安装对应程序', remoteAccess: { title: '远程访问', }, ttyd: { title: 'Ttyd 网页终端', desc: '通过 ttyd 提供网页终端访问', open: '打开终端', openInNewTab: '在新标签页打开', shell: 'Shell', }, easyfrp: { title: 'EasyFrp 内网穿透', desc: '使用 EasyFrp 客户端连接穿透服务', urls: '客户端连接 URL', urlsPlaceholder: 'wss://example.com/client-key', urlsHint: '每行一个完整连接 URL,支持 ws、wss、http、https、txt。请从 EasyFrp 管理端复制客户端地址。', urlsRequired: '请填写 EasyFrp 客户端连接 URL', urlsInvalid: '请填写带客户端密钥路径的有效 ws/wss/http/https/txt URL', }, easytier: { title: 'Easytier 组网', desc: '通过 EasyTier 实现 P2P VPN 组网', quickConfig: '快速配置', fullConfig: '完整配置', fullConfigHint: '可在此粘贴完整的 easytier.toml 配置文件', fullConfigRequired: '请填写完整 easytier.toml 配置', networkName: '网络名称', networkNameRequired: '请填写 EasyTier 网络名称', networkSecret: '网络密钥', peers: '对等节点', addPeer: '添加节点', virtualIp: '虚拟 IP', }, frpc: { title: 'FRPC 内网穿透', desc: '通过 FRP 客户端实现内网穿透', quickConfig: '快速配置', fullConfig: '完整配置', fullConfigHint: '可在此粘贴供应商 TOML 配置文件', fullConfigRequired: '请填写完整 frpc.toml 配置', proxyType: '代理类型', proxyName: '代理名称', proxyNamePlaceholder: 'one-kvm-ssh', proxyNameRequired: '请填写 FRPC 代理名称', serverAddr: '服务器地址', serverAddrPlaceholder: 'frps.example.com', serverAddrRequired: '请填写 FRPC 服务器地址', serverPort: '服务器端口', token: '认证令牌', tokenRequired: '请填写 FRPC 认证令牌', localIp: '本地地址', localIpRequired: '请填写 FRPC 本地地址', localPort: '本地端口', remotePort: '远程端口', remotePortRequired: 'TCP/UDP 代理需要填写远程端口', customDomain: '自定义域名', customDomainPlaceholder: 'kvm.example.com', secretKey: '访问密钥', tls: '启用 TLS', }, rustdesk: { title: 'RustDesk 远程', desc: '配置 RustDesk 服务,将会锁定所选编码', mode: '接入模式', modeId: 'ID 服务', modeIdDesc: '通过 ID 服务器注册,并在直连失败时按配置使用中继服务器', modeDirectIp: 'IP 直连', modeDirectIpDesc: '仅监听设备端口,不连接 ID 或中继服务器', directAccessPort: '直连端口', directAccessPortInvalid: '直连端口必须在 1 到 65535 之间', rendezvousServer: 'ID 服务器', rendezvousServerPlaceholder: 'hbbs.example.com:21116', rendezvousServerRequired: '请填写 RustDesk ID 服务器', relayServer: '中继服务器', relayServerPlaceholder: 'hbbr.example.com:21117', relayKey: '中继密钥', codec: '编码格式', deviceId: '设备 ID', devicePassword: '设备密码', showPassword: '显示密码', hidePassword: '隐藏密码', regenerateId: '重新生成 ID', regeneratePassword: '重新生成密码', confirmRegenerateId: '确定要重新生成设备 ID 吗?现有客户端需要使用新 ID 重新连接。', confirmRegeneratePassword: '确定要重新生成设备密码吗?现有客户端需要使用新密码重新连接。', registered: '已注册', disconnected: '未连接', connecting: '连接中', notConfigured: '未配置', notInitialized: '未初始化', copyId: '复制 ID', copyPassword: '复制密码', }, rtsp: { title: 'RTSP 视频流', desc: '配置 RTSP 推流服务,将会锁定所选编码', bind: '监听地址', port: '端口', path: '流路径', pathPlaceholder: 'live', codec: '编码格式', allowOneClient: '仅允许单客户端', username: '用户名', usernamePlaceholder: '留空表示无需认证', password: '密码', passwordPlaceholder: '输入新密码', urlPreview: 'RTSP 地址预览', }, vnc: { title: 'VNC 远程', desc: '配置 VNC 服务,将会锁定所选编码', bind: '监听地址', port: '端口', encoding: '视频编码', encodingTightJpeg: 'Tight JPEG', encodingH264: 'H.264', allowOneClient: '仅允许单客户端', password: '密码', passwordPlaceholder: '留空表示不修改', passwordRequiredPlaceholder: '最多 8 个字符', passwordRequired: '请设置 VNC 密码', passwordMaxLength: 'VNC 密码最多 8 个字符', clients: '{count} 个客户端', urlPreview: 'VNC 地址预览', }, }, stats: { title: '连接统计', video: '视频信息', stability: '网络稳定性', delay: '播放延迟', packetLoss: '丢包', total: '个', frameRate: '帧率', bitrate: '码率', resolution: '分辨率', packetsLost: '丢包数', connection: '连接信息', connectionType: '连接类型', transport: '传输协议', localCandidate: '本地候选', remoteCandidate: '远程候选', p2p: 'P2P 直连', relay: 'TURN 中继', }, help: { videoBitratePreset: '速度优先:最低延迟,适合网络较差的场景;均衡:画质和延迟平衡;质量优先:最佳画质,需要较好的网络带宽', absoluteMode: '绝对定位模式直接映射鼠标坐标,适用于大多数场景', relativeMode: '相对定位模式发送鼠标移动增量,适用于游戏或特殊软件', mouseThrottle: '发送间隔控制鼠标事件的发送频率,较大的值可减少网络负载', }, }