refactor: 删除部分多余的代码和注释

This commit is contained in:
mofeng-git
2026-05-01 17:31:04 +08:00
parent 74035f8e12
commit d8e7de74a6
165 changed files with 2960 additions and 9917 deletions

View File

@@ -109,7 +109,6 @@ export default {
settingsTip: 'System settings',
fullscreen: 'Fullscreen',
fullscreenTip: 'Toggle fullscreen mode',
// Video Config
videoConfig: 'Video',
streamSettings: 'Stream Settings',
deviceSettings: 'Device Settings',
@@ -141,7 +140,6 @@ export default {
notRecommended: 'Not Recommended',
multiSourceCodecLocked: '{sources} are enabled. Current codec is locked.',
multiSourceVideoParamsWarning: '{sources} are enabled. Changing video device and input parameters will interrupt the stream.',
// HID Config
hidConfig: 'HID',
mouseSettings: 'Mouse Settings',
hidDeviceSettings: 'HID Device Settings',
@@ -154,7 +152,6 @@ export default {
absolute: 'Absolute',
relative: 'Relative',
applying: 'Applying...',
// Audio Config
audioConfig: 'Audio',
playbackControl: 'Playback',
volume: 'Volume',
@@ -218,19 +215,16 @@ export default {
title: 'Initial Setup',
welcome: 'Welcome to One-KVM',
description: 'Complete the initial setup to get started',
// Step titles
stepAccount: 'Account Setup',
stepVideo: 'Video Setup',
stepAudioVideo: 'Audio/Video Setup',
stepHid: 'HID Setup',
// Account
setUsername: 'Set Admin Username',
usernameHint: 'Username must be at least 2 characters',
setPassword: 'Set Admin Password',
passwordHint: 'Password must be at least 4 characters',
confirmPassword: 'Confirm Password',
passwordMismatch: 'Passwords do not match',
// Video
videoDevice: 'Video Device',
selectVideoDevice: 'Select video capture device',
videoFormat: 'Video Format',
@@ -242,13 +236,11 @@ export default {
noVideoDevices: 'No video devices detected',
noSignalDetected: 'No HDMI signal detected. Please connect an HDMI cable and refresh.',
refreshDevices: 'Refresh Devices',
// Audio
audioDevice: 'Audio Device',
selectAudioDevice: 'Select audio capture device',
noAudio: 'No audio',
noAudioDevices: 'No audio devices detected',
audioDeviceHelp: 'Select the audio capture device for capturing remote host audio. Usually on the same USB device as the video capture card.',
// HID
hidBackend: 'HID Backend',
selectHidBackend: 'Select HID control method',
serialHid: 'Serial HID',
@@ -261,31 +253,25 @@ export default {
selectUdc: 'Select UDC',
noUdcDevices: 'No UDC devices detected',
hidDisabledHint: 'Disabling HID will prevent keyboard and mouse control of the remote host',
// Complete
complete: 'Complete Setup',
setupFailed: 'Setup failed',
// Advanced encoder
advancedEncoder: 'Advanced: Encoder Backend',
encoderHint: 'The default "Auto" option works for most cases. Only change if you need a specific encoder backend.',
autoRecommended: 'Auto (Recommended)',
hardware: 'Hardware',
software: 'Software',
// Progress
progress: 'Step {current} of {total}',
// Help tooltips
ch9329Help: 'CH9329 is a serial-to-HID chip connected via serial port. Works with most hardware configurations.',
otgHelp: 'USB OTG mode emulates HID devices directly through USB Device Controller. Requires hardware OTG support.',
otgLowEndpointHint: 'Detected low-endpoint UDC; Consumer Control Keyboard will be disabled automatically.',
videoDeviceHelp: 'Select the video capture device for capturing the remote host display. Usually an HDMI capture card.',
videoFormatHelp: 'MJPEG has best compatibility. H.264/H.265 uses less bandwidth but requires encoding support.',
// Extensions
stepExtensions: 'Extensions',
extensionsDescription: 'Choose which extensions to auto-start',
ttydTitle: 'Web Terminal (ttyd)',
ttydDescription: 'Access device command line in browser',
extensionsHint: 'These settings can be changed later in Settings',
notInstalled: 'Not installed',
// Password strength
passwordStrength: 'Password Strength',
passwordWeak: 'Weak',
passwordMedium: 'Medium',
@@ -350,7 +336,6 @@ export default {
uvc_capture_stall: '',
},
},
// WebRTC
webrtcConnected: 'WebRTC Connected',
webrtcConnectedDesc: 'Using low-latency H.264 video stream',
webrtcFailed: 'WebRTC Connection Failed',
@@ -363,29 +348,23 @@ export default {
webrtcPhaseSetRemote: 'Applying remote description...',
webrtcPhaseApplyIce: 'Applying ICE candidates...',
webrtcPhaseNegotiating: 'Negotiating secure connection...',
// Pointer Lock
pointerLocked: 'Pointer Locked',
pointerLockedDesc: 'Press Escape to release the pointer',
pointerLockFailed: 'Failed to lock pointer',
relativeModeHint: 'Relative Mouse Mode',
relativeModeHintDesc: 'Click on the video area to lock the pointer, press Escape to release',
// Meta Key Hint
metaKeyHint: 'System Key Detected',
metaKeyHintDesc: 'Enter fullscreen mode to capture Win/Meta keys',
// Stream mode change
streamModeChanged: 'Video Mode Changed',
streamModeChangedDesc: 'Server switched to {mode} mode',
// Device monitoring
deviceLost: 'Video Device Lost',
deviceLostDesc: '{device}: {reason}',
deviceRecovering: 'Video Device Recovering',
deviceRecoveringDesc: 'Attempting to recover video device (attempt {attempt})',
deviceRecovered: 'Video Device Recovered',
deviceRecoveredDesc: 'Video device reconnected successfully',
// Loading state
pleaseWait: 'Please wait...',
retryCount: 'Retrying (attempt {count})',
// Error details
errorDetails: 'Error details',
},
hid: {
@@ -397,7 +376,6 @@ export default {
pasteText: 'Paste Text',
absoluteMouse: 'Absolute',
relativeMouse: 'Relative',
// Device monitoring
deviceLost: 'HID Device Lost',
deviceLostDesc: '{backend}: {reason}',
reconnecting: 'HID Reconnecting',
@@ -424,7 +402,6 @@ export default {
},
},
audio: {
// Device monitoring
deviceLost: 'Audio Device Lost',
deviceLostDesc: '{device}: {reason}',
reconnecting: 'Audio Reconnecting',
@@ -468,7 +445,6 @@ export default {
uploadImageHint: 'Click to upload ISO/IMG',
imageMounted: 'Image {name} mounted',
imageUnmounted: 'Image unmounted',
// URL download
downloadFromUrl: 'Download from URL',
downloadFromUrlDesc: 'Enter the URL of an image file (ISO/IMG supported)',
url: 'URL',
@@ -479,16 +455,13 @@ export default {
downloadFailed: 'Download failed',
largeFileWarning: '>2.2GB',
largeFileTooltip: 'File is larger than 2.2GB, please use Flash mode to mount',
// Device monitoring
error: 'MSD Error',
errorDesc: '{reason}',
recovered: 'MSD Recovered',
recoveredDesc: 'MSD operation completed successfully',
// Operation status
operationInProgress: 'Operation in progress, please wait',
driveConnected: 'Virtual USB drive connected',
imageConnected: 'Image {name} connected',
// Drive initialization
selectDriveSize: 'Select virtual drive size',
selectedSize: 'Selected size',
customSize: 'Custom size',
@@ -520,7 +493,6 @@ export default {
security: 'Security',
about: 'About',
aboutDesc: 'Open and Lightweight IP-KVM Solution',
// Device info
deviceInfo: 'Device Info',
deviceInfoDesc: 'Host system information',
hostname: 'Hostname',
@@ -545,11 +517,9 @@ export default {
networkSettings: 'Network Settings',
msdSettings: 'MSD Settings',
atxSettings: 'ATX Settings',
// Network tab
httpSettings: 'HTTP Settings',
httpPort: 'HTTP Port',
configureHttpPort: 'Configure HTTP server port',
// Web server
webServer: 'Access Address',
webServerDesc: 'Configure HTTP/HTTPS ports and listening addresses. Restart required for changes to take effect.',
httpsPort: 'HTTPS Port',
@@ -569,20 +539,17 @@ export default {
bindAddressListEmpty: 'Add at least one IP address.',
httpsEnabled: 'Enable HTTPS',
httpsEnabledDesc: 'Enable HTTPS encrypted connection (a self-signed certificate is generated if none is specified)',
// Port config
portConfig: 'Port & Protocol',
portConfigDesc: 'The service runs on a single port at a time, determined by the HTTPS toggle',
httpPortReserved: 'HTTP port (reserved)',
httpsPortReserved: 'HTTPS port (reserved)',
previewUrl: 'Access URL preview',
// Listen address
listenAddress: 'Listen Address',
listenAddressDesc: 'Configure which network interfaces the web server listens on',
bindModeAllDesc: '0.0.0.0 — Listen on all network interfaces',
bindModeLocalDesc: '127.0.0.1 — Allow local access only',
bindModeCustomDesc: 'Specify a list of IP addresses',
effectiveAddresses: 'Listen address preview',
// SSL certificate
sslCertificate: 'SSL Certificate',
sslCertificateDesc: 'Upload a custom PEM certificate to replace the self-signed one, restart required',
sslCertCustom: 'Custom Certificate',
@@ -628,13 +595,11 @@ export default {
updateMsgVerifying: 'Verifying (SHA256)',
updateMsgInstalling: 'Replacing binary',
updateMsgRestarting: 'Restarting service',
// Auth
auth: 'Access',
authSettings: 'Access Settings',
authSettingsDesc: 'Single-user access and session behavior',
allowMultipleSessions: 'Allow multiple web sessions',
allowMultipleSessionsDesc: 'When disabled, a new login will kick the previous session.',
// User management
userManagement: 'User Management',
userManagementDesc: 'Manage user accounts and permissions',
addUser: 'Add User',
@@ -649,7 +614,6 @@ export default {
noUsers: 'No users found',
create: 'Create',
confirmDeleteUser: 'Are you sure you want to delete user "{name}"?',
// MSD/ATX status
msdStatus: 'MSD Status',
atxStatus: 'ATX Status',
available: 'Available',
@@ -665,7 +629,6 @@ export default {
disabled: 'Disabled',
msdDesc: 'Mass Storage Device allows you to mount ISO images and virtual drives to the target machine. Use the MSD panel on the main page to manage images.',
atxDesc: 'ATX power control allows you to remotely power on/off and reset the target machine. Use the ATX panel on the main page to control power.',
// ATX configuration
atxSettingsDesc: 'Configure ATX power control hardware bindings',
atxEnable: 'Enable ATX Control',
atxEnableDesc: 'Enable remote control of power and reset buttons',
@@ -693,16 +656,13 @@ export default {
atxLedPin: 'GPIO Pin',
atxLedInverted: 'Invert Logic',
atxLedInvertedDesc: 'GPIO is low when LED is on',
// WOL configuration
atxWolSettings: 'Wake-on-LAN Settings',
atxWolSettingsDesc: 'Configure WOL magic packet sending options',
atxWolInterface: 'Network Interface',
atxWolInterfacePlaceholder: 'e.g. eth0, enp0s3',
atxWolInterfaceHint: 'Specify network interface for WOL packets, leave empty for default routing',
// Basic tab descriptions
themeDesc: 'Choose your preferred color scheme',
languageDesc: 'Select your preferred language',
// Video tab
videoSettings: 'Video Settings',
videoSettingsDesc: 'Configure video capture device',
videoDevice: 'Video Device',
@@ -719,7 +679,6 @@ export default {
software: 'Software',
supportedFormats: 'Supported Formats',
encoderHint: 'Hardware encoders provide better performance with lower CPU usage. Software encoders are more compatible but require more CPU resources.',
// HID tab
hidSettings: 'HID Settings',
hidSettingsDesc: 'Configure keyboard and mouse control',
hidBackend: 'HID Backend',
@@ -748,7 +707,6 @@ export default {
otgProfileWarning: 'Changing HID functions will reconnect the USB device',
otgLowEndpointHint: 'Low-endpoint UDC detected; Consumer Control Keyboard will be disabled automatically.',
otgFunctionMinWarning: 'Enable at least one HID function before saving',
// OTG Descriptor
otgDescriptor: 'USB Device Descriptor',
otgDescriptorDesc: 'Configure USB device identification',
vendorId: 'Vendor ID (VID)',
@@ -862,7 +820,6 @@ export default {
resetConfirmDesc: 'This will reset USB device "{device}" by cycling its authorized attribute. All connections to this device will be temporarily interrupted. Continue?',
resetAction: 'Reset Device',
},
// WebRTC / ICE
webrtcSettings: 'WebRTC Settings',
webrtcSettingsDesc: 'Configure STUN/TURN servers for NAT traversal',
publicIceServersHint: 'Empty uses Google public STUN, configure your own TURN for production',
@@ -931,7 +888,6 @@ export default {
notConnected: 'Not Connected',
connected: 'Connected',
image: 'Image',
// MSD status details
msdStatus: 'Status',
msdStandby: 'Idle',
msdImageMode: 'Image Mode',
@@ -941,7 +897,6 @@ export default {
msdNoImage: 'None',
},
extensions: {
// Common
available: 'Available',
unavailable: 'Unavailable',
running: 'Running',
@@ -958,7 +913,6 @@ export default {
title: 'Remote Access',
desc: 'GOSTC NAT traversal and Easytier networking',
},
// ttyd
ttyd: {
title: 'Ttyd Web Terminal',
desc: 'Web terminal access via ttyd',
@@ -967,7 +921,6 @@ export default {
port: 'Port',
shell: 'Shell',
},
// gostc
gostc: {
title: 'GOSTC NAT Traversal',
desc: 'NAT traversal via GOSTC',
@@ -976,7 +929,6 @@ export default {
key: 'Client Key',
tls: 'Enable TLS',
},
// easytier
easytier: {
title: 'Easytier Network',
desc: 'P2P VPN networking via EasyTier',
@@ -987,7 +939,6 @@ export default {
virtualIp: 'Virtual IP',
virtualIpHint: 'Leave empty for DHCP, or specify with CIDR (e.g., 10.0.0.1/24)',
},
// rustdesk
rustdesk: {
title: 'RustDesk Remote',
desc: 'Remote access via RustDesk client',
@@ -1078,31 +1029,24 @@ export default {
p2p: 'P2P Direct',
relay: 'TURN Relay',
},
// Help tooltip texts
help: {
// MSD related
flashMode: 'Flash mode mounts the image as a USB drive, compatible with most BIOS boot',
cdromMode: 'CDROM mode mounts the image as a CD drive, for systems requiring optical boot',
readOnlyMode: 'Read-only mode is safer, the target system cannot modify the image',
readWriteMode: 'Read-write mode allows writing data, useful for saving configurations',
driveSize: 'Virtual drive size. Larger drives can store more files but take longer to initialize',
// Video related
mjpegMode: 'MJPEG mode has best compatibility, works with all browsers, but higher latency',
webrtcMode: 'WebRTC mode has lower latency, but requires browser codec support',
videoBitratePreset: 'Speed: lowest latency, best for slow networks. Balanced: good quality and latency. Quality: best visual, needs good bandwidth',
encoderBackend: 'Hardware encoder has better performance and lower power. Software encoder has better compatibility',
// HID related
absoluteMode: 'Absolute mode maps mouse coordinates directly, suitable for most scenarios',
relativeMode: 'Relative mode sends mouse movement delta, for games or special software',
mouseThrottle: 'Send interval controls mouse event frequency. Higher values reduce network load',
hidBackend: 'OTG backend requires USB OTG hardware support. CH9329 is a serial HID chip solution',
// ATX related
atxActiveLevel: 'Active level depends on your hardware wiring. High means high voltage when triggered',
wolInterface: 'Network interface name for sending Wake-on-LAN magic packets, e.g., eth0 or br0',
// Network related
stunServer: 'STUN server for NAT traversal to establish P2P connections. Leave empty for public servers',
turnServer: 'TURN server provides relay when P2P fails. Requires more bandwidth but more reliable',
// Audio related
audioQuality: 'Higher quality means better audio but requires more network bandwidth',
},
}

View File

@@ -2,7 +2,6 @@ import { createI18n } from 'vue-i18n'
import zhCN from './zh-CN'
import enUS from './en-US'
// Supported languages
export const supportedLanguages = [
{ code: 'zh-CN', name: '中文', flag: '🇨🇳' },
{ code: 'en-US', name: 'English', flag: '🇺🇸' },
@@ -10,33 +9,26 @@ export const supportedLanguages = [
export type SupportedLocale = (typeof supportedLanguages)[number]['code']
// Detect browser language with improved logic
function detectLanguage(): SupportedLocale {
// 1. Check localStorage for saved preference
const stored = localStorage.getItem('language')
if (stored && supportedLanguages.some((l) => l.code === stored)) {
return stored as SupportedLocale
}
// 2. Check browser language list (navigator.languages is more comprehensive)
const languages = navigator.languages || [navigator.language]
for (const lang of languages) {
const normalizedLang = lang.toLowerCase()
// Check for Chinese variants (zh, zh-CN, zh-TW, zh-HK, etc.)
if (normalizedLang.startsWith('zh')) {
return 'zh-CN'
}
// Check for English variants
if (normalizedLang.startsWith('en')) {
return 'en-US'
}
}
// 3. Default to English
return 'en-US'
}
// Initialize language and set HTML lang attribute
function initializeLanguage(): SupportedLocale {
const lang = detectLanguage()
document.documentElement.setAttribute('lang', lang)

View File

@@ -109,7 +109,6 @@ export default {
settingsTip: '系统设置',
fullscreen: '全屏',
fullscreenTip: '切换全屏模式',
// Video Config
videoConfig: '视频配置',
streamSettings: '流设置',
deviceSettings: '设备配置',
@@ -141,7 +140,6 @@ export default {
notRecommended: '不推荐',
multiSourceCodecLocked: '{sources} 已启用,当前编码已锁定',
multiSourceVideoParamsWarning: '{sources} 已启用,修改视频设备和输入参数将导致流中断',
// HID Config
hidConfig: '鼠键配置',
mouseSettings: '鼠标设置',
hidDeviceSettings: 'HID 设备设置',
@@ -154,7 +152,6 @@ export default {
absolute: '绝对定位',
relative: '相对定位',
applying: '应用中...',
// Audio Config
audioConfig: '音频',
playbackControl: '播放控制',
volume: '音量',
@@ -218,19 +215,16 @@ export default {
title: '初始化设置',
welcome: '欢迎使用 One-KVM',
description: '请完成初始设置以开始使用',
// Step titles
stepAccount: '账号设置',
stepVideo: '视频设置',
stepAudioVideo: '音视频设置',
stepHid: '鼠键设置',
// Account
setUsername: '设置管理员用户名',
usernameHint: '用户名至少2个字符',
setPassword: '设置管理员密码',
passwordHint: '密码至少4个字符',
confirmPassword: '确认密码',
passwordMismatch: '两次输入的密码不一致',
// Video
videoDevice: '视频设备',
selectVideoDevice: '选择视频采集设备',
videoFormat: '画面格式',
@@ -242,13 +236,11 @@ export default {
noVideoDevices: '未检测到视频设备',
noSignalDetected: '未检测到 HDMI 信号,请连接 HDMI 线缆后刷新。',
refreshDevices: '刷新设备',
// Audio
audioDevice: '音频设备',
selectAudioDevice: '选择音频采集设备',
noAudio: '不使用音频',
noAudioDevices: '未检测到音频设备',
audioDeviceHelp: '选择用于捕获远程主机音频的设备。通常与视频采集卡在同一 USB 设备上。',
// HID
hidBackend: 'HID 后端',
selectHidBackend: '选择 HID 控制方式',
serialHid: '串口 HID',
@@ -261,31 +253,25 @@ export default {
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 功能。',
otgLowEndpointHint: '检测到低端点 UDC将自动禁用多媒体键盘。',
videoDeviceHelp: '选择用于捕获远程主机画面的视频采集设备。通常是 HDMI 采集卡。',
videoFormatHelp: 'MJPEG 格式兼容性最好H.264/H.265 带宽占用更低但需要编码支持。',
// Extensions
stepExtensions: '扩展设置',
extensionsDescription: '选择要自动启动的扩展服务',
ttydTitle: 'Web 终端 (ttyd)',
ttydDescription: '在浏览器中访问设备的命令行终端',
extensionsHint: '这些设置可以在设置页面中随时更改',
notInstalled: '未安装',
// Password strength
passwordStrength: '密码强度',
passwordWeak: '弱',
passwordMedium: '中',
@@ -349,7 +335,6 @@ export default {
uvc_capture_stall: '',
},
},
// WebRTC
webrtcConnected: 'WebRTC 已连接',
webrtcConnectedDesc: '正在使用 H.264 低延迟视频流',
webrtcFailed: 'WebRTC 连接失败',
@@ -362,29 +347,23 @@ export default {
webrtcPhaseSetRemote: '正在应用远端会话描述...',
webrtcPhaseApplyIce: '正在应用 ICE 候选...',
webrtcPhaseNegotiating: '正在协商安全连接...',
// 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: {
@@ -396,7 +375,6 @@ export default {
pasteText: '粘贴文本',
absoluteMouse: '绝对定位',
relativeMouse: '相对定位',
// 设备监控
deviceLost: 'HID 设备丢失',
deviceLostDesc: '{backend}: {reason}',
reconnecting: 'HID 重连中',
@@ -423,7 +401,6 @@ export default {
},
},
audio: {
// 设备监控
deviceLost: '音频设备丢失',
deviceLostDesc: '{device}: {reason}',
reconnecting: '音频重连中',
@@ -467,7 +444,6 @@ export default {
uploadImageHint: '点击上传 ISO/IMG 镜像',
imageMounted: '镜像 {name} 已挂载',
imageUnmounted: '镜像已卸载',
// URL download
downloadFromUrl: '从 URL 下载',
downloadFromUrlDesc: '输入镜像文件的 URL 地址,支持 ISO/IMG 格式',
url: 'URL 地址',
@@ -478,16 +454,13 @@ export default {
downloadFailed: '下载失败',
largeFileWarning: '>2.2GB',
largeFileTooltip: '文件大于 2.2GB,请使用 Flash 模式挂载',
// 设备监控
error: 'MSD 错误',
errorDesc: '{reason}',
recovered: 'MSD 已恢复',
recoveredDesc: 'MSD 设备已恢复正常',
// 操作状态
operationInProgress: '操作进行中,请稍候',
driveConnected: '虚拟U盘已连接',
imageConnected: '镜像 {name} 已连接',
// 驱动器初始化
selectDriveSize: '选择虚拟驱动器大小',
selectedSize: '选定大小',
customSize: '自定义大小',
@@ -519,7 +492,6 @@ export default {
security: '安全',
about: '关于',
aboutDesc: '开放轻量的 IP-KVM 解决方案',
// Device info
deviceInfo: '设备信息',
deviceInfoDesc: '主机系统信息',
hostname: '主机名',
@@ -544,11 +516,9 @@ export default {
networkSettings: '网络设置',
msdSettings: 'MSD 设置',
atxSettings: 'ATX 设置',
// Network tab
httpSettings: 'HTTP 设置',
httpPort: 'HTTP 端口',
configureHttpPort: '配置 HTTP 服务器端口',
// Web server
webServer: '访问地址',
webServerDesc: '配置 HTTP/HTTPS 端口和监听地址,修改后需要重启生效',
httpsPort: 'HTTPS 端口',
@@ -568,20 +538,17 @@ export default {
bindAddressListEmpty: '请至少填写一个 IP 地址。',
httpsEnabled: '启用 HTTPS',
httpsEnabledDesc: '启用 HTTPS 加密连接(未指定证书将生成自签证书)',
// Port config
portConfig: '端口与协议',
portConfigDesc: '服务一次只运行在一个端口上,由 HTTPS 开关决定使用哪个端口',
httpPortReserved: 'HTTP 端口(备用)',
httpsPortReserved: 'HTTPS 端口(备用)',
previewUrl: '访问地址预览',
// Listen address
listenAddress: '监听地址',
listenAddressDesc: '配置 Web 服务监听哪些网络接口',
bindModeAllDesc: '0.0.0.0 — 监听所有网络接口',
bindModeLocalDesc: '127.0.0.1 — 仅允许本机访问',
bindModeCustomDesc: '指定一组 IP 地址',
effectiveAddresses: '监听地址预览',
// SSL certificate
sslCertificate: 'SSL 证书',
sslCertificateDesc: '上传自定义 PEM 证书替换自签名证书,修改后需要重启生效',
sslCertCustom: '自定义证书',
@@ -627,13 +594,11 @@ export default {
updateMsgVerifying: '校验中SHA256',
updateMsgInstalling: '替换程序中',
updateMsgRestarting: '服务重启中',
// Auth
auth: '访问控制',
authSettings: '访问设置',
authSettingsDesc: '单用户访问与会话策略',
allowMultipleSessions: '允许多个 Web 会话',
allowMultipleSessionsDesc: '关闭后,新登录会踢掉旧会话。',
// User management
userManagement: '用户管理',
userManagementDesc: '管理用户账号和权限',
addUser: '添加用户',
@@ -648,7 +613,6 @@ export default {
noUsers: '暂无用户',
create: '创建',
confirmDeleteUser: '确定要删除用户 "{name}" 吗?',
// MSD/ATX status
msdStatus: 'MSD 状态',
atxStatus: 'ATX 状态',
available: '可用',
@@ -664,7 +628,6 @@ export default {
disabled: '已禁用',
msdDesc: '虚拟存储设备允许您将 ISO 镜像和虚拟驱动器挂载到目标机器。请在主页面的 MSD 面板中管理镜像。',
atxDesc: 'ATX 电源控制允许您远程开关机和重启目标机器。请在主页面的 ATX 面板中控制电源。',
// ATX configuration
atxSettingsDesc: '配置 ATX 电源控制硬件绑定',
atxEnable: '启用 ATX 控制',
atxEnableDesc: '启用后可以远程控制电源和重启按钮',
@@ -692,16 +655,13 @@ export default {
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: '视频设备',
@@ -718,7 +678,6 @@ export default {
software: '软件',
supportedFormats: '支持的格式',
encoderHint: '硬件编码器性能更好CPU 占用更低。软件编码器兼容性更好,但需要更多 CPU 资源。',
// HID tab
hidSettings: 'HID 设置',
hidSettingsDesc: '配置键盘和鼠标控制',
hidBackend: 'HID 后端',
@@ -747,7 +706,6 @@ export default {
otgProfileWarning: '修改 HID 功能将导致 USB 设备重新连接',
otgLowEndpointHint: '检测到低端点 UDC将自动禁用多媒体键盘。',
otgFunctionMinWarning: '请至少启用一个 HID 功能后再保存',
// OTG Descriptor
otgDescriptor: 'USB 设备描述符',
otgDescriptorDesc: '配置 USB 设备标识信息',
vendorId: '厂商 ID (VID)',
@@ -861,7 +819,6 @@ export default {
resetConfirmDesc: '将通过 authorized 属性复位 USB 设备「{device}」,该设备上的所有连接将短暂中断。确定继续?',
resetAction: '确认复位',
},
// WebRTC / ICE
webrtcSettings: 'WebRTC 设置',
webrtcSettingsDesc: '配置 STUN/TURN 服务器以实现 NAT 穿透',
publicIceServersHint: '留空将使用 Google 公共 STUN 服务器TURN 服务器需自行配置',
@@ -930,7 +887,6 @@ export default {
notConnected: '未连接',
connected: '已连接',
image: '镜像',
// MSD 状态详情
msdStatus: '状态',
msdStandby: '空闲',
msdImageMode: '镜像模式',
@@ -940,7 +896,6 @@ export default {
msdNoImage: '无',
},
extensions: {
// Common
available: '可用',
unavailable: '不可用',
running: '运行中',
@@ -957,7 +912,6 @@ export default {
title: '远程访问',
desc: 'GOSTC 内网穿透与 Easytier 组网',
},
// ttyd
ttyd: {
title: 'Ttyd 网页终端',
desc: '通过 ttyd 提供网页终端访问',
@@ -966,7 +920,6 @@ export default {
port: '端口',
shell: 'Shell',
},
// gostc
gostc: {
title: 'GOSTC 内网穿透',
desc: '通过 GOSTC 实现内网穿透',
@@ -975,7 +928,6 @@ export default {
key: '客户端密钥',
tls: '启用 TLS',
},
// easytier
easytier: {
title: 'Easytier 组网',
desc: '通过 EasyTier 实现 P2P VPN 组网',
@@ -986,7 +938,6 @@ export default {
virtualIp: '虚拟 IP',
virtualIpHint: '留空则自动分配,手动指定需包含网段(如 10.0.0.1/24',
},
// rustdesk
rustdesk: {
title: 'RustDesk 远程',
desc: '使用 RustDesk 客户端进行远程访问',
@@ -1077,31 +1028,24 @@ export default {
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: '更高的质量意味着更好的音频效果,但需要更多的网络带宽',
},
}