Files
One-KVM/web/src/i18n/zh-CN.ts
mofeng-git 0f52168e75 fix(web): 统一 API 请求语义并修复鼠标移动发送间隔
- 新增统一 request:同时处理 HTTP 非 2xx 与 success=false,并用 i18n toast 提示错误
- api/index.ts 与 api/config.ts 统一使用同一 request,避免错误处理不一致
- "发送间隔" 仅控制鼠标移动事件频率,WebRTC/WS 行为一致,不影响点击/滚轮
2026-01-11 11:37:35 +08:00

805 lines
29 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export default {
common: {
loading: '加载中...',
save: '保存',
cancel: '取消',
confirm: '确认',
delete: '删除',
upload: '上传',
download: '下载',
refresh: '刷新',
close: '关闭',
success: '成功',
error: '错误',
warning: '警告',
info: '信息',
yes: '是',
no: '否',
on: '开',
off: '关',
enabled: '已启用',
later: '稍后',
restartNow: '立即重启',
disabled: '已禁用',
connected: '已连接',
disconnected: '已断开',
connecting: '连接中...',
disconnecting: '断开中...',
unknown: '未知',
back: '上一步',
next: '下一步',
apply: '应用',
menu: '菜单',
optional: '可选',
recommended: '推荐',
create: '创建',
creating: '创建中...',
deleting: '删除中...',
more: '更多',
collapse: '收起',
expand: '展开',
toggleTheme: '切换主题',
toggleLanguage: '切换语言',
},
api: {
operationFailed: '操作失败',
operationFailedDesc: '操作失败',
parseResponseFailed: '解析响应失败',
networkError: '网络错误',
networkErrorDesc: '无法连接到服务器,请检查网络连接。',
},
nav: {
console: '控制台',
msd: '虚拟媒体',
settings: '设置',
logout: '退出登录',
},
auth: {
login: '登录',
logout: '退出登录',
username: '用户名',
password: '密码',
enterUsername: '请输入用户名',
enterPassword: '请输入密码',
loginPrompt: '请输入您的账号和密码',
loginFailed: '登录失败',
invalidPassword: '用户名或密码错误',
changePassword: '修改密码',
currentPassword: '当前密码',
currentPasswordPlaceholder: '请输入当前密码',
newPassword: '新密码',
newPasswordPlaceholder: '请输入新密码',
confirmPassword: '确认密码',
confirmPasswordPlaceholder: '请再次输入新密码',
passwordRequired: '请填写所有密码字段',
passwordMismatch: '两次输入的密码不一致',
passwordTooShort: '密码至少需要4个字符',
passwordChanged: '密码修改成功',
userNotFound: '用户不存在',
},
status: {
connected: '已连接',
connecting: '连接中',
disconnected: '已断开',
error: '错误',
},
actionbar: {
paste: '粘贴文本',
virtualMedia: '虚拟媒体',
virtualMediaTip: '管理虚拟媒体设备',
power: '电源',
keyboard: '虚拟键盘',
keyboardTip: '显示虚拟键盘',
mouseAbsolute: '绝对鼠标',
mouseRelative: '相对鼠标',
mouseAbsoluteTip: '绝对定位模式 - 直接映射屏幕坐标',
mouseRelativeTip: '相对定位模式 - 发送鼠标移动增量',
extension: '扩展',
extensionTip: '扩展功能',
stats: '连接统计',
statsTip: '查看连接状态',
settings: '设置',
settingsTip: '系统设置',
fullscreen: '全屏',
fullscreenTip: '切换全屏模式',
// Video Config
videoConfig: '视频配置',
streamSettings: '流设置',
deviceSettings: '设备配置',
videoMode: '视频模式',
selectMode: '选择模式...',
h264Hint: 'H.264 模式需要 WebRTC 支持,延迟更低',
webrtcHint: 'WebRTC 模式延迟更低,需要浏览器支持',
videoDevice: '视频设备',
videoFormat: '视频格式',
videoResolution: '分辨率',
videoFps: '帧率',
selectDevice: '选择设备...',
selectFormat: '选择格式...',
selectResolution: '选择分辨率...',
selectFps: '选择帧率...',
bitratePreset: '码率',
bitrateSpeed: '速度优先',
bitrateSpeedDesc: '1 Mbps - 最低延迟',
bitrateBalanced: '均衡',
bitrateBalancedDesc: '4 Mbps - 推荐',
bitrateQuality: '质量优先',
bitrateQualityDesc: '8 Mbps - 最佳画质',
browserUnsupported: '浏览器不支持',
encoder: '编码器',
changeEncoderBackend: '更改编码器后端...',
backendSoftware: '软件编码',
backendAuto: '自动',
recommended: '推荐',
notRecommended: '不推荐',
// HID Config
hidConfig: '鼠键配置',
mouseSettings: '鼠标设置',
hidDeviceSettings: 'HID 设备设置',
positioningMode: '定位模式',
sendInterval: '发送间隔',
showCursor: '显示指针',
backend: '后端类型',
devicePath: '设备路径',
baudrate: '波特率',
absolute: '绝对定位',
relative: '相对定位',
applying: '应用中...',
// Audio Config
audioConfig: '音频',
playbackControl: '播放控制',
volume: '音量',
mute: '静音',
audioDeviceSettings: '设备配置',
audioEnabled: '启用音频',
audioDevice: '音频设备',
audioQuality: '音频质量',
qualityVoice: '语音',
qualityBalanced: '均衡',
qualityHigh: '高品质',
selectAudioDevice: '选择设备...',
},
infobar: {
keys: '按键',
pointer: '指针',
caps: 'Caps',
num: 'Num',
scroll: 'Scroll',
},
paste: {
title: '粘贴文本',
description: '输入要发送到远程主机的文本,将以键盘输入方式发送',
label: '文本内容',
placeholder: '在此输入要粘贴的文本...',
hint: '按 Ctrl+Enter 快速发送',
confirm: '发送',
typing: '正在输入...',
escToCancel: '按 Esc 取消',
stop: '停止',
untypableWarning: '部分字符无法通过键盘输入',
untypableChars: '无法输入的字符: {chars}',
},
atx: {
title: '电源控制',
description: '控制远程主机的电源状态',
powerState: '电源状态',
stateOn: '已开机',
stateOff: '已关机',
stateUnknown: '未知',
shortPress: '短按电源',
longPress: '长按电源 (强制关机)',
reset: '重启',
confirmShortTitle: '确认短按电源',
confirmShortDesc: '这将模拟按下电源按钮,与物理短按电源键效果相同。',
confirmLongTitle: '确认强制关机',
confirmLongDesc: '这将强制关闭主机,可能导致数据丢失。确定继续吗?',
confirmResetTitle: '确认重启',
confirmResetDesc: '这将重启主机,可能导致未保存的数据丢失。确定继续吗?',
wol: '网络唤醒',
wolDescription: '发送 Wake-on-LAN 魔术包以远程开机。',
macAddress: 'MAC 地址',
invalidMac: 'MAC 地址格式无效',
recentMac: '最近使用',
send: '发送',
wolSent: 'WOL 唤醒包已发送',
wolFailed: 'WOL 发送失败',
},
setup: {
title: '初始化设置',
welcome: '欢迎使用 One-KVM',
description: '请完成初始设置以开始使用',
// Step titles
stepAccount: '账号设置',
stepVideo: '视频设置',
stepAudioVideo: '音视频设置',
stepHid: '鼠键设置',
// Account
setUsername: '设置管理员用户名',
usernameHint: '用户名至少2个字符',
setPassword: '设置管理员密码',
passwordHint: '密码至少4个字符',
confirmPassword: '确认密码',
passwordMismatch: '两次输入的密码不一致',
// Video
videoDevice: '视频设备',
selectVideoDevice: '选择视频采集设备',
videoFormat: '画面格式',
selectFormat: '选择画面格式',
resolution: '分辨率',
selectResolution: '选择分辨率',
fps: '帧率',
selectFps: '选择帧率',
noVideoDevices: '未检测到视频设备',
// Audio
audioDevice: '音频设备',
selectAudioDevice: '选择音频采集设备',
noAudio: '不使用音频',
noAudioDevices: '未检测到音频设备',
audioDeviceHelp: '选择用于捕获远程主机音频的设备。通常与视频采集卡在同一 USB 设备上。',
// HID
hidBackend: 'HID 后端',
selectHidBackend: '选择 HID 控制方式',
serialHid: '串口 HID',
disableHid: '禁用',
serialPort: '串口设备',
selectSerialPort: '选择串口设备',
noSerialDevices: '未检测到串口设备',
baudRate: '波特率',
udc: 'USB 设备控制器',
selectUdc: '选择 UDC',
noUdcDevices: '未检测到 UDC 设备',
hidDisabledHint: '禁用 HID 后将无法控制远程主机的键盘和鼠标',
// Complete
complete: '完成设置',
setupFailed: '设置失败',
// Advanced encoder
advancedEncoder: '高级选项:编码器后端',
encoderHint: '默认的"自动"选项适用于大多数情况。仅在需要特定编码器后端时更改。',
autoRecommended: '自动(推荐)',
hardware: '硬件',
software: '软件',
// Progress
progress: '步骤 {current} / {total}',
// Help tooltips
ch9329Help: 'CH9329 是一款串口转 HID 芯片,通过串口连接到主机。适用于大多数硬件配置。',
otgHelp: 'USB OTG 模式通过 USB 设备控制器直接模拟 HID 设备。需要硬件支持 USB OTG 功能。',
videoDeviceHelp: '选择用于捕获远程主机画面的视频采集设备。通常是 HDMI 采集卡。',
videoFormatHelp: 'MJPEG 格式兼容性最好H.264/H.265 带宽占用更低但需要编码支持。',
// Extensions
stepExtensions: '扩展设置',
extensionsDescription: '选择要自动启动的扩展服务',
ttydTitle: 'Web 终端 (ttyd)',
ttydDescription: '在浏览器中访问设备的命令行终端',
rustdeskTitle: 'RustDesk 远程桌面',
rustdeskDescription: '通过 RustDesk 客户端远程访问设备',
extensionsHint: '这些设置可以在设置页面中随时更改',
notInstalled: '未安装',
// Password strength
passwordStrength: '密码强度',
passwordWeak: '弱',
passwordMedium: '中',
passwordStrong: '强',
passwordVeryStrong: '很强',
},
console: {
title: '远程控制台',
videoAlt: 'KVM 视频',
videoMode: '视频模式',
mjpeg: 'MJPEG',
webrtc: 'WebRTC',
fullscreen: '全屏',
exitFullscreen: '退出全屏',
screenshot: '截图',
reconnect: '刷新网页',
noVideo: '无视频信号',
connecting: '正在连接...',
streamOffline: '视频流离线',
connectionFailed: '连接失败',
connectionFailedDesc: '无法连接到视频流,请刷新网页或检查设备状态',
videoRestarting: '视频流正在重启',
deviceSwitching: '正在切换视频设备...',
configChanging: '正在应用新配置...',
videoRestarted: '视频流已更新',
streamError: '视频流错误',
// WebRTC
webrtcConnected: 'WebRTC 已连接',
webrtcConnectedDesc: '正在使用 H.264 低延迟视频流',
webrtcFailed: 'WebRTC 连接失败',
fallingBackToMjpeg: '自动切换到 MJPEG 模式',
// Pointer Lock
pointerLocked: '鼠标已锁定',
pointerLockedDesc: '按 Escape 键释放鼠标',
pointerLockFailed: '鼠标锁定失败',
relativeModeHint: '相对鼠标模式',
relativeModeHintDesc: '点击视频区域以锁定鼠标,按 Escape 释放',
// Meta Key Hint
metaKeyHint: '检测到系统键',
metaKeyHintDesc: '请进入全屏模式以捕获 Win/Meta 键',
// Stream mode change
streamModeChanged: '视频模式已切换',
streamModeChangedDesc: '服务器已切换到 {mode} 模式',
// 设备监控
deviceLost: '视频设备丢失',
deviceLostDesc: '{device}: {reason}',
deviceRecovering: '视频设备恢复中',
deviceRecoveringDesc: '正在尝试恢复视频设备(第 {attempt} 次)',
deviceRecovered: '视频设备已恢复',
deviceRecoveredDesc: '视频设备已成功重连',
// 加载状态
pleaseWait: '请稍候...',
retryCount: '正在重试 (第 {count} 次)',
// 错误详情
errorDetails: '错误详情',
},
hid: {
title: 'HID 控制',
keyboard: '键盘',
mouse: '鼠标',
reset: '重置 HID',
sendCtrlAltDel: '发送 Ctrl+Alt+Del',
pasteText: '粘贴文本',
absoluteMouse: '绝对定位',
relativeMouse: '相对定位',
// 设备监控
deviceLost: 'HID 设备丢失',
deviceLostDesc: '{backend}: {reason}',
reconnecting: 'HID 重连中',
reconnectingDesc: '正在尝试重连(第 {attempt} 次)',
recovered: 'HID 已恢复',
recoveredDesc: '{backend} HID 设备已成功重连',
},
audio: {
// 设备监控
deviceLost: '音频设备丢失',
deviceLostDesc: '{device}: {reason}',
reconnecting: '音频重连中',
reconnectingDesc: '正在尝试重连(第 {attempt} 次)',
recovered: '音频已恢复',
recoveredDesc: '音频设备已成功重连',
},
msd: {
title: '虚拟媒体',
images: 'ISO/IMG 挂载',
imagesDesc: '将 ISO/IMG 镜像挂载到目标设备',
drive: '虚拟U盘',
driveDesc: '像U盘一样向目标设备传输文件支持 Ventoy 引导',
imageList: '镜像列表',
uploadImage: '上传镜像',
noImages: '暂无镜像',
connect: '连接',
disconnect: '断开',
connectedTo: '已连接至',
cdrom: 'CD-ROM',
flash: 'Flash',
storageMode: '存储模式',
accessMode: '访问模式',
readOnly: '只读',
readWrite: '读写',
fileList: '文件列表',
uploadFile: '上传文件',
createFolder: '新建文件夹',
driveNotInitialized: '虚拟驱动器未初始化',
initializeDrive: '初始化驱动器',
driveSize: '驱动器大小',
usedSpace: '已用',
freeSpace: '剩余',
deleteDrive: '删除驱动器',
confirmDeleteDrive: '确定要删除虚拟驱动器吗?所有文件将被清除。',
driveDeleted: '驱动器已删除',
systemAvailable: '系统可用',
emptyFolder: '空文件夹',
confirmDelete: '确定要删除 "{name}" 吗?',
folderName: '文件夹名称',
uploadImageHint: '点击上传 ISO/IMG 镜像',
imageMounted: '镜像 {name} 已挂载',
imageUnmounted: '镜像已卸载',
// URL download
downloadFromUrl: '从 URL 下载',
downloadFromUrlDesc: '输入镜像文件的 URL 地址,支持 ISO/IMG 格式',
url: 'URL 地址',
filename: '文件名',
filenameAutoDetect: '自动从 URL 获取',
download: '下载',
downloadComplete: '下载完成',
downloadFailed: '下载失败',
largeFileWarning: '>2.2GB',
largeFileTooltip: '文件大于 2.2GB,请使用 Flash 模式挂载',
// 设备监控
error: 'MSD 错误',
errorDesc: '{reason}',
recovered: 'MSD 已恢复',
recoveredDesc: 'MSD 设备已恢复正常',
// 操作状态
operationInProgress: '操作进行中,请稍候',
driveConnected: '虚拟U盘已连接',
imageConnected: '镜像 {name} 已连接',
// 驱动器初始化
selectDriveSize: '选择虚拟驱动器大小',
selectedSize: '选定大小',
customSize: '自定义大小',
driveSizeHint: '输入自定义大小会覆盖上方选择 (64MB - 32GB)',
driveCreated: '虚拟驱动器已创建 ({size} MB)',
fileDeleted: '文件已删除',
imageDeleted: '镜像已删除',
},
settings: {
title: '系统设置',
basic: '基础',
general: '通用',
appearance: '外观',
video: '视频',
encoder: '编码器',
hid: 'HID',
msd: 'MSD',
atx: 'ATX',
network: '网络',
users: '用户',
hardware: '硬件',
system: '系统',
extensions: '扩展',
configured: '已配置',
security: '安全',
about: '关于',
aboutDesc: '开放轻量的 IP-KVM 解决方案',
// Device info
deviceInfo: '设备信息',
deviceInfoDesc: '主机系统信息',
hostname: '主机名',
cpuModel: 'CPU 型号',
cpuUsage: 'CPU 利用率',
memoryUsage: '内存使用',
networkAddresses: '网络地址',
language: '语言',
theme: '主题',
lightMode: '浅色模式',
darkMode: '深色模式',
systemMode: '跟随系统',
changePassword: '修改密码',
currentPassword: '当前密码',
newPassword: '新密码',
version: '版本',
buildInfo: '构建信息',
detectDevices: '探测设备',
detecting: '探测中...',
builtWith: "版权信息 {'@'}2025 SilentWind",
networkSettings: '网络设置',
msdSettings: 'MSD 设置',
atxSettings: 'ATX 设置',
// Network tab
httpSettings: 'HTTP 设置',
httpPort: 'HTTP 端口',
configureHttpPort: '配置 HTTP 服务器端口',
// Web server
webServer: '基础',
webServerDesc: '配置 HTTP/HTTPS 端口和绑定地址,修改后需要重启生效',
httpsPort: 'HTTPS 端口',
bindAddress: '绑定地址',
bindAddressDesc: '服务器监听的 IP 地址0.0.0.0 表示监听所有网络接口',
httpsEnabled: '启用 HTTPS',
httpsEnabledDesc: '启用 HTTPS 加密连接(将自动生成自签名证书)',
restartRequired: '需要重启',
restartMessage: 'Web 服务器配置已保存,需要重启程序才能生效。',
restarting: '正在重启...',
// User management
userManagement: '用户管理',
userManagementDesc: '管理用户账号和权限',
addUser: '添加用户',
editUser: '编辑用户',
deleteUser: '删除用户',
username: '用户名',
password: '密码',
role: '角色',
roleAdmin: '管理员',
roleUser: '普通用户',
loadingUsers: '加载用户中...',
noUsers: '暂无用户',
create: '创建',
confirmDeleteUser: '确定要删除用户 "{name}" 吗?',
// MSD/ATX status
msdStatus: 'MSD 状态',
atxStatus: 'ATX 状态',
available: '可用',
notAvailable: '不可用',
msdEnable: '启用 MSD',
msdEnableDesc: '启用后可以挂载 ISO 镜像和虚拟驱动器到目标机器',
willBeEnabledAfterSave: '保存后生效',
disabled: '已禁用',
msdDesc: '虚拟存储设备允许您将 ISO 镜像和虚拟驱动器挂载到目标机器。请在主页面的 MSD 面板中管理镜像。',
atxDesc: 'ATX 电源控制允许您远程开关机和重启目标机器。请在主页面的 ATX 面板中控制电源。',
// ATX configuration
atxSettingsDesc: '配置 ATX 电源控制硬件绑定',
atxEnable: '启用 ATX 控制',
atxEnableDesc: '启用后可以远程控制电源和重启按钮',
atxPowerButton: '电源按钮',
atxPowerButtonDesc: '用于开机(短按)和强制关机(长按)',
atxResetButton: '重启按钮',
atxResetButtonDesc: '用于重启目标机器',
atxDriver: '驱动类型',
atxDriverNone: '禁用',
atxDriverGpio: 'GPIO',
atxDriverUsbRelay: 'USB 继电器',
atxDevice: '设备',
atxPin: 'GPIO 引脚',
atxChannel: '继电器通道',
atxActiveLevel: '有效电平',
atxLevelHigh: '高电平有效',
atxLevelLow: '低电平有效',
atxLedSensing: 'LED 状态检测',
atxLedSensingDesc: '检测主机电源 LED 以确定电源状态(可选)',
atxLedEnable: '启用 LED 检测',
atxLedEnableDesc: '通过 GPIO 读取电源 LED 状态',
atxLedChip: 'GPIO 芯片',
atxLedPin: 'GPIO 引脚',
atxLedInverted: '反转逻辑',
atxLedInvertedDesc: 'LED 亮起时 GPIO 为低电平',
// WOL configuration
atxWolSettings: '网络唤醒设置',
atxWolSettingsDesc: '配置 Wake-on-LAN 魔术包发送选项',
atxWolInterface: '网络接口',
atxWolInterfacePlaceholder: '例如: eth0, enp0s3',
atxWolInterfaceHint: '指定发送 WOL 包的网络接口,留空则使用系统默认路由',
// Basic tab descriptions
themeDesc: '选择您喜欢的颜色方案',
languageDesc: '选择您的首选语言',
// Video tab
videoSettings: '视频设置',
videoSettingsDesc: '配置视频采集设备',
videoDevice: '视频设备',
selectDevice: '选择设备...',
videoFormat: '视频格式',
selectFormat: '选择格式...',
driver: '驱动',
resolution: '分辨率',
frameRate: '帧率',
encoderBackend: '编码器后端',
encoderBackendDesc: '选择 WebRTC 流的编码器后端',
backend: '后端',
autoRecommended: '自动(推荐)',
software: '软件',
supportedFormats: '支持的格式',
encoderHint: '硬件编码器性能更好CPU 占用更低。软件编码器兼容性更好,但需要更多 CPU 资源。',
// HID tab
hidSettings: 'HID 设置',
hidSettingsDesc: '配置键盘和鼠标控制',
hidBackend: 'HID 后端',
serialDevice: '串口设备',
baudRate: '波特率',
// OTG Descriptor
otgDescriptor: 'USB 设备描述符',
otgDescriptorDesc: '配置 USB 设备标识信息',
vendorId: '厂商 ID (VID)',
productId: '产品 ID (PID)',
manufacturer: '制造商',
productName: '产品名称',
serialNumber: '序列号',
serialNumberAuto: '自动生成',
descriptorWarning: '修改这些设置将导致 USB 设备重新连接',
// WebRTC / ICE
webrtcSettings: 'WebRTC 设置',
webrtcSettingsDesc: '配置 STUN/TURN 服务器以实现 NAT 穿透',
publicIceServersHint: '留空将使用 Google 公共 STUN 服务器TURN 服务器需自行配置',
stunServer: 'STUN 服务器',
stunServerPlaceholder: 'stun:stun.l.google.com:19302',
stunServerHint: '自定义 STUN 服务器(留空则使用 Google 公共服务器)',
turnServer: 'TURN 服务器',
turnServerPlaceholder: 'turn:turn.example.com:3478',
turnServerHint: '自定义 TURN 中继服务器(生产环境必须配置)',
turnUsername: 'TURN 用户名',
turnPassword: 'TURN 密码',
turnPasswordConfigured: '密码已配置。留空则保持当前密码。',
turnCredentialsHint: '用于 TURN 服务器认证的凭据',
iceConfigNote: '注意:更改后需要重新连接 WebRTC 会话才能生效。',
},
virtualKeyboard: {
title: '虚拟键盘',
attach: '固定',
detach: '浮动',
hide: '隐藏',
show: '显示虚拟键盘',
layoutSelect: '键盘布局',
osWindows: 'Windows',
osMac: 'Mac',
osAndroid: 'Android',
mediaKeys: '多媒体键',
},
config: {
applied: '配置已应用',
applyFailed: '配置应用失败',
loadDevicesFailed: '加载设备列表失败',
updateFailed: '更新失败',
},
statusCard: {
device: '设备',
video: '视频',
hid: 'HID',
audio: '音频',
msd: 'MSD',
online: '在线',
offline: '离线',
connecting: '连接中...',
version: '版本',
uptime: '运行时间',
running: '运行中',
mode: '模式',
format: '格式',
resolution: '分辨率',
targetFps: '目标帧率',
fps: '实际帧率',
clients: '客户端',
backend: '后端',
initialized: '已初始化',
yes: '是',
no: '否',
mouse: '鼠标',
mouseSupport: '鼠标支持',
currentMode: '当前模式',
absolute: '绝对定位',
relative: '相对定位',
connection: '连接',
channel: '通道',
networkError: '网络错误',
disconnected: '已断开',
availability: '可用性',
hidUnavailable: 'HID不可用',
sampleRate: '采样率',
channels: '声道',
quality: '质量',
streaming: '传输中',
off: '关闭',
defaultDevice: '默认',
notConnected: '未连接',
connected: '已连接',
image: '镜像',
// MSD 状态详情
msdStatus: '状态',
msdStandby: '空闲',
msdImageMode: '镜像模式',
msdDriveMode: '虚拟U盘',
msdMountType: '挂载类型',
msdCurrentImage: '当前镜像',
msdNoImage: '无',
},
extensions: {
// Common
available: '可用',
unavailable: '不可用',
running: '运行中',
starting: '启动中',
stopped: '已停止',
failed: '启动失败',
start: '启动',
stop: '停止',
autoStart: '开机自启',
viewLogs: '查看日志',
noLogs: '暂无日志',
binaryNotFound: '未找到 {path},请先安装对应程序',
// ttyd
ttyd: {
title: 'Ttyd 网页终端',
desc: '通过 ttyd 提供网页终端访问',
open: '打开终端',
openInNewTab: '在新标签页打开',
port: '端口',
shell: 'Shell',
credential: '认证凭据',
},
// gostc
gostc: {
title: 'GOSTC 内网穿透',
desc: '通过 GOSTC 实现内网穿透',
addr: '服务器地址',
key: '客户端密钥',
tls: '启用 TLS',
},
// easytier
easytier: {
title: 'Easytier 组网',
desc: '通过 EasyTier 实现 P2P VPN 组网',
networkName: '网络名称',
networkSecret: '网络密钥',
peers: '对等节点',
addPeer: '添加节点',
virtualIp: '虚拟 IP',
virtualIpHint: '留空则自动分配,手动指定需包含网段(如 10.0.0.1/24',
},
// rustdesk
rustdesk: {
title: 'RustDesk 远程',
desc: '使用 RustDesk 客户端进行远程访问',
serverSettings: '服务器设置',
rendezvousServer: 'ID 服务器',
rendezvousServerPlaceholder: 'hbbs.example.com:21116',
rendezvousServerHint: '请配置您的 RustDesk 服务器地址',
relayServer: '中继服务器',
relayServerPlaceholder: 'hbbr.example.com:21117',
relayServerHint: '中继服务器地址,留空则自动从 ID 服务器推导',
relayKey: '中继密钥',
relayKeyPlaceholder: '输入中继服务器密钥',
relayKeySet: '••••••••',
relayKeyHint: '中继服务器认证密钥(如果服务器使用 -k 选项)',
deviceInfo: '设备信息',
deviceId: '设备 ID',
deviceIdHint: '此 ID 用于 RustDesk 客户端连接',
devicePassword: '设备密码',
showPassword: '显示密码',
hidePassword: '隐藏密码',
regenerateId: '重新生成 ID',
regeneratePassword: '重新生成密码',
confirmRegenerateId: '确定要重新生成设备 ID 吗?现有客户端需要使用新 ID 重新连接。',
confirmRegeneratePassword: '确定要重新生成设备密码吗?现有客户端需要使用新密码重新连接。',
serviceStatus: '服务状态',
rendezvousStatus: '注册状态',
registered: '已注册',
connected: '已连接',
disconnected: '未连接',
connecting: '连接中',
notConfigured: '未配置',
notInitialized: '未初始化',
copyId: '复制 ID',
copyPassword: '复制密码',
copied: '已复制',
keypairGenerated: '密钥对已生成',
noKeypair: '密钥对未生成',
},
},
stats: {
title: '连接统计',
webrtcMode: 'WebRTC 实时统计',
mjpegMode: 'MJPEG 实时统计',
current: '当前状态',
video: '视频',
videoDesc: '从服务器到客户端的视频流。',
stability: '网络稳定性',
stabilityDesc: '入站视频数据包在网络中的平稳程度。',
jitter: '抖动',
delay: '播放延迟',
delayDesc: '为平滑不均匀到达的帧而由抖动缓冲添加的延迟。',
packetLoss: '丢包',
packetLossDesc: '入站视频 RTP 数据包的丢失数量。',
total: '个',
frameRate: '帧率',
frameRateDesc: '每秒显示的入站视频帧数。',
additional: '其他信息',
latency: 'ICE 延迟',
bitrate: '码率',
fps: '帧率',
resolution: '分辨率',
packetsLost: '丢包数',
wsLatency: 'WS 延迟',
connection: '连接信息',
connectionType: '连接类型',
transport: '传输协议',
localCandidate: '本地候选',
remoteCandidate: '远程候选',
p2p: 'P2P 直连',
relay: 'TURN 中继',
},
// 帮助提示文本
help: {
// MSD 相关
flashMode: 'Flash 模式将镜像作为 U 盘挂载,支持大多数 BIOS 启动',
cdromMode: 'CDROM 模式将镜像作为光驱挂载,适用于需要光盘启动的系统',
readOnlyMode: '只读模式更安全,目标系统无法修改镜像内容',
readWriteMode: '读写模式允许目标系统写入数据,适用于需要保存配置的场景',
driveSize: '虚拟驱动器大小。较大的驱动器支持存放更多文件,但初始化时间更长',
// 视频相关
mjpegMode: 'MJPEG 模式兼容性最好,适用于所有浏览器,但延迟较高',
webrtcMode: 'WebRTC 模式延迟更低,但需要浏览器支持相应编解码器',
videoBitratePreset: '速度优先:最低延迟,适合网络较差的场景;均衡:画质和延迟平衡;质量优先:最佳画质,需要较好的网络带宽',
encoderBackend: '硬件编码器性能更好功耗更低,软件编码器兼容性更好',
// HID 相关
absoluteMode: '绝对定位模式直接映射鼠标坐标,适用于大多数场景',
relativeMode: '相对定位模式发送鼠标移动增量,适用于游戏或特殊软件',
mouseThrottle: '发送间隔控制鼠标事件的发送频率,较大的值可减少网络负载',
hidBackend: 'OTG 后端需要硬件支持 USB OTGCH9329 是串口 HID 芯片方案',
// ATX 相关
atxActiveLevel: '活跃电平取决于您的硬件接线方式。高电平表示触发时输出高电压,低电平相反',
wolInterface: '用于发送 Wake-on-LAN 魔术包的网络接口名称,如 eth0 或 br0',
// 网络相关
stunServer: 'STUN 服务器用于 NAT 穿透,帮助建立 P2P 连接。留空使用公共服务器',
turnServer: 'TURN 服务器在 P2P 连接失败时提供中继。需要更多带宽但连接更可靠',
// 音频相关
audioQuality: '更高的质量意味着更好的音频效果,但需要更多的网络带宽',
},
}