update: 更新前端依赖;修改前端样式

This commit is contained in:
mofeng-git
2026-07-17 01:33:44 +08:00
parent aca847e76c
commit 57d1597264
146 changed files with 3790 additions and 2982 deletions

View File

@@ -5,10 +5,7 @@ export default {
cancel: 'Cancel',
confirm: 'Confirm',
delete: 'Delete',
upload: 'Upload',
download: 'Download',
refresh: 'Refresh',
close: 'Close',
success: 'Success',
error: 'Error',
warning: 'Warning',
@@ -24,21 +21,16 @@ export default {
connected: 'Connected',
disconnected: 'Disconnected',
connecting: 'Connecting...',
disconnecting: 'Disconnecting...',
unknown: 'Unknown',
back: 'Back',
next: 'Next',
apply: 'Apply',
menu: 'Menu',
optional: 'Optional',
recommended: 'Recommended',
notSupportedYet: ' (Not Yet Supported)',
create: 'Create',
creating: 'Creating...',
deleting: 'Deleting...',
more: 'More',
collapse: 'Collapse',
expand: 'Expand',
toggleTheme: 'Toggle theme',
toggleLanguage: 'Toggle language',
retry: 'Retry',
@@ -55,9 +47,6 @@ export default {
networkErrorDesc: 'Unable to connect to server. Please check your connection.',
},
nav: {
console: 'Console',
msd: 'Virtual Media',
settings: 'Settings',
logout: 'Logout',
},
auth: {
@@ -80,8 +69,6 @@ export default {
passwordRequired: 'Please fill in all password fields',
passwordMismatch: 'Passwords do not match',
passwordTooShort: 'Password must be at least 4 characters',
passwordChanged: 'Password changed successfully',
userNotFound: 'User not found',
sessionExpired: 'Session expired',
loggedInElsewhere: 'Logged in elsewhere',
forgotPassword: 'Forgot password',
@@ -101,10 +88,6 @@ export default {
power: 'Power',
keyboard: 'Virtual Keyboard',
keyboardTip: 'Show virtual keyboard',
mouseAbsolute: 'Absolute Mouse',
mouseRelative: 'Relative Mouse',
mouseAbsoluteTip: 'Absolute positioning - direct screen coordinate mapping',
mouseRelativeTip: 'Relative positioning - sends mouse movement deltas',
webTerminal: 'Web Terminal',
stats: 'Stats',
statsTip: 'View connection statistics',
@@ -117,8 +100,7 @@ export default {
deviceSettings: 'Device Settings',
videoMode: 'Mode',
selectMode: 'Select mode...',
h264Hint: 'H.264 mode requires WebRTC support, lower latency',
webrtcHint: 'WebRTC mode has lower latency, requires browser support',
videoModeHint: 'HTTP uses more bandwidth but offers broad compatibility; WebRTC has stricter network requirements but uses less bandwidth',
videoDevice: 'Device',
videoFormat: 'Format',
videoResolution: 'Resolution',
@@ -129,14 +111,9 @@ export default {
selectFps: 'Select FPS...',
bitratePreset: 'Bitrate',
bitrateSpeed: 'Speed',
bitrateSpeedDesc: '1 Mbps - Lowest latency',
bitrateBalanced: 'Balanced',
bitrateBalancedDesc: '4 Mbps - Recommended',
bitrateQuality: 'Quality',
bitrateQualityDesc: '8 Mbps - Best visual',
browserUnsupported: 'Browser unsupported',
encoder: 'Encoder',
changeEncoderBackend: 'Change encoder backend...',
backendSoftware: 'Software',
backendAuto: 'Auto',
recommended: 'Recommended',
@@ -158,7 +135,6 @@ export default {
audioConfig: 'Audio',
playbackControl: 'Playback',
volume: 'Volume',
mute: 'Mute',
audioDeviceSettings: 'Device Settings',
audioEnabled: 'Audio',
audioDevice: 'Device',
@@ -207,16 +183,12 @@ export default {
macAddress: 'MAC Address',
invalidMac: 'Invalid MAC address format',
recentMac: 'Recent',
send: 'Send',
wolSent: 'WOL packet sent',
wolFailed: 'Failed to send WOL packet',
},
setup: {
title: 'Initial Setup',
welcome: 'Welcome to One-KVM',
description: 'Complete the initial setup to get started',
stepAccount: 'Account Setup',
stepVideo: 'Video Setup',
stepAudioVideo: 'Audio/Video Setup',
stepHid: 'HID Setup',
setUsername: 'Set Admin Username',
@@ -242,9 +214,7 @@ export default {
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.',
hidBackend: 'HID Backend',
selectHidBackend: 'Select HID control method',
serialHid: 'Serial HID',
disableHid: 'Disabled',
serialPort: 'Serial Port',
selectSerialPort: 'Select serial port',
noSerialDevices: 'No serial devices detected',
@@ -252,7 +222,6 @@ export default {
udc: 'USB Device Controller',
selectUdc: 'Select UDC',
noUdcDevices: 'No UDC devices detected',
hidDisabledHint: 'Disabling HID will prevent keyboard and mouse control of the remote host',
complete: 'Complete Setup',
setupFailed: 'Setup failed',
advancedEncoder: 'Advanced: Encoder Backend',
@@ -269,10 +238,8 @@ export default {
extensionsDescription: 'Choose which extensions to auto-start',
ttydTitle: 'Web Terminal (ttyd)',
ttydDescription: 'Access device command line in browser',
ttydWindowsUnsupportedDescription: 'ttyd Web Terminal is not supported on Windows and will not be enabled.',
extensionsHint: 'These settings can be changed later in Settings',
notInstalled: 'Not installed',
notSupportedOnWindows: 'Unsupported on Windows',
passwordStrength: 'Password Strength',
passwordWeak: 'Weak',
passwordMedium: 'Medium',
@@ -280,24 +247,14 @@ export default {
passwordVeryStrong: 'Very Strong',
},
console: {
title: 'Remote Console',
videoAlt: 'KVM Video',
videoMode: 'Video Mode',
mjpeg: 'MJPEG',
webrtc: 'WebRTC',
fullscreen: 'Fullscreen',
exitFullscreen: 'Exit Fullscreen',
screenshot: 'Screenshot',
reconnect: 'Refresh Page',
noVideo: 'No video signal',
connecting: 'Connecting...',
streamOffline: 'Stream offline',
connectionFailed: 'Connection Failed',
connectionFailedDesc: 'Unable to connect to video stream, please refresh page or check device status',
videoRestarting: 'Video stream is restarting',
deviceSwitching: 'Switching video device...',
configChanging: 'Applying new configuration...',
videoRestarted: 'Video stream updated',
streamError: 'Stream error',
// Four canonical video states (backend StreamStateChanged: streaming /
// no_signal / device_lost / device_busy). `reason` provides optional
@@ -321,7 +278,7 @@ export default {
},
uvc_usb_error: {
title: 'USB capture transport error',
detail: 'The USB capture device encountered a protocol error (EPROTO). You can try resetting the device from Settings → Environment → USB Devices.',
detail: 'The USB capture device encountered a protocol error (EPROTO). You can try resetting it from Settings → Other → USB Device Reset.',
},
uvc_capture_stall: {
title: 'UVC capture stalled',
@@ -339,14 +296,12 @@ export default {
audio_device_lost: 'Audio capture is unavailable; recovery in progress',
audio_reconnecting: 'Retrying audio device connection',
uvc_usb_error:
'Try another USB port or cable, avoid hubs, or reconnect the device. You can also reset the device from Settings → Environment → USB Devices.',
'Try another USB port or cable, avoid hubs, or reconnect the device. You can also reset it from Settings → Other → USB Device Reset.',
uvc_capture_stall: '',
},
},
webrtcConnected: 'WebRTC Connected',
webrtcConnectedDesc: 'Using low-latency H.264 video stream',
webrtcFailed: 'WebRTC Connection Failed',
fallingBackToMjpeg: 'Falling back to MJPEG mode',
webrtcPhaseIceServers: 'Loading ICE servers...',
webrtcPhaseCreatePeer: 'Creating peer connection...',
webrtcPhaseCreateChannel: 'Creating data channel...',
@@ -359,40 +314,14 @@ export default {
mjpegPhaseStream: 'Requesting video stream...',
mjpegPhaseFirstFrame: 'Waiting for first frame...',
stepProgress: 'Step {current}/{total}',
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',
metaKeyHint: 'System Key Detected',
metaKeyHintDesc: 'Enter fullscreen mode to capture Win/Meta keys',
streamModeChanged: 'Video Mode Changed',
streamModeChangedDesc: 'Server switched to {mode} mode',
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',
pleaseWait: 'Please wait...',
retryCount: 'Retrying (attempt {count})',
errorDetails: 'Error details',
},
hid: {
title: 'HID Control',
keyboard: 'Keyboard',
mouse: 'Mouse',
reset: 'Reset HID',
sendCtrlAltDel: 'Send Ctrl+Alt+Del',
pasteText: 'Paste Text',
absoluteMouse: 'Absolute',
relativeMouse: 'Relative',
deviceLost: 'HID Device Lost',
deviceLostDesc: '{backend}: {reason}',
reconnecting: 'HID Reconnecting',
reconnectingDesc: 'Attempting to reconnect (attempt {attempt})',
recovered: 'HID Recovered',
recoveredDesc: '{backend} HID device reconnected successfully',
errorHints: {
udcNotConfigured: 'OTG is ready, waiting for the target host to connect and finish USB enumeration',
disabled: 'HID backend is disabled',
@@ -418,10 +347,6 @@ export default {
audio: {
deviceLost: 'Audio Device Lost',
deviceLostDesc: '{device}: {reason}',
reconnecting: 'Audio Reconnecting',
reconnectingDesc: 'Attempting to reconnect (attempt {attempt})',
recovered: 'Audio Recovered',
recoveredDesc: '{device} audio device reconnected successfully',
},
msd: {
title: 'Virtual Media',
@@ -438,8 +363,6 @@ export default {
accessMode: 'Access Mode',
readOnly: 'Read Only',
readWrite: 'Read/Write',
fileList: 'File List',
uploadFile: 'Upload File',
createFolder: 'Create Folder',
driveNotInitialized: 'Virtual drive not initialized',
initializeDrive: 'Initialize Drive',
@@ -485,11 +408,8 @@ export default {
settings: {
title: 'Settings',
sidebarSubtitle: 'Manage device, network and extensions',
basic: 'Basic',
general: 'General',
appearance: 'Appearance',
account: 'Account',
access: 'Access',
video: 'Video',
encoder: 'Encoder',
hid: 'HID',
@@ -497,38 +417,31 @@ export default {
atx: 'ATX',
environment: 'Environment',
network: 'Network',
users: 'Users',
hardware: 'Hardware',
system: 'System',
other: 'Other',
extensions: 'Extensions',
configured: 'Configured',
security: 'Security',
about: 'About',
appearanceSubtitle: 'Customize interface appearance and language',
accountSubtitle: 'Manage credentials and session policy',
networkSubtitle: 'Configure web server ports, listen addresses and SSL certificate',
videoSubtitle: 'Configure capture device, video encoder and WebRTC ICE servers',
hidSubtitle: 'Configure the HID backend, device, descriptors, and USB gadget functions',
msdSubtitle: 'Manage Mass Storage Device image directory',
atxSubtitle: 'Configure remote power control hardware and Wake-on-LAN',
environmentSubtitle: 'System runtime environment and USB device maintenance',
otherSubtitle: 'Additional system hardware controls',
aboutSubtitle: 'Online upgrade, version info and hardware overview',
environmentSubtitle: 'View device information and system runtime diagnostics',
otherSubtitle: 'Additional hardware controls and USB device maintenance',
aboutSubtitle: 'Online upgrade and version information',
extTtydSubtitle: 'Open a host Shell terminal in the browser',
thirdPartyAccessSubtitle: 'Configure external RustDesk, VNC, RTSP, and Redfish access',
extRemoteAccessSubtitle: 'Remote access through NAT-traversal services',
extFrpcSubtitle: 'NAT traversal through the FRP client',
watchdog: {
title: 'Hardware Watchdog',
description: 'Automatically use an available hardware watchdog while One-KVM is running.',
description: 'The hardware watchdog can trigger a hardware reset if the system hangs or the process exits',
status: {
running: 'Running',
closed: 'Off',
unsupported: 'Unsupported',
error: 'Error',
},
safety: 'If One-KVM stops feeding the watchdog, the hardware may restart the system according to its watchdog policy.',
loadFailed: 'Failed to load hardware watchdog status',
toggleFailed: 'Failed to update hardware watchdog',
enableFailed: 'Failed to enable the hardware watchdog.',
@@ -539,7 +452,6 @@ export default {
disableFailed: 'The hardware watchdog cannot be safely disabled and keepalive will continue.',
abnormalReason: 'The hardware watchdog is in an abnormal state.',
},
aboutDesc: 'Open and Lightweight IP-KVM Solution',
deviceInfo: 'Device Info',
deviceInfoDesc: 'Host system information',
hostname: 'Hostname',
@@ -557,55 +469,31 @@ export default {
newPassword: 'New Password',
usernameDesc: 'Change the console login username',
passwordDesc: 'Change the console login password',
version: 'Version',
detectDevices: 'Detect Devices',
detecting: 'Detecting...',
networkSettings: 'Network Settings',
msdSettings: 'MSD Settings',
httpSettings: 'HTTP Settings',
httpPort: 'HTTP Port',
configureHttpPort: 'Configure HTTP server port',
webServer: 'Access Address',
webServerDesc: 'Configure HTTP/HTTPS ports and listening addresses. Restart required for changes to take effect.',
httpsPort: 'HTTPS Port',
bindAddress: 'Bind Address',
bindAddressDesc: 'IP address the server listens on. 0.0.0.0 means all network interfaces.',
bindMode: 'Listening Address',
bindModeDesc: 'Choose which addresses the web server binds to.',
bindModeAll: 'All addresses',
bindModeLocal: 'Local only (127.0.0.1)',
bindModeCustom: 'Custom address list',
bindIpv6: 'Enable IPv6',
bindAllDesc: 'Also listen on :: (all IPv6 interfaces).',
bindLocalDesc: 'Also listen on ::1 (IPv6 loopback).',
bindAddressList: 'Address List',
bindAddressListDesc: 'One IP address per line (IPv4 or IPv6).',
addBindAddress: 'Add address',
bindAddressListEmpty: 'Add at least one IP address.',
httpsEnabled: 'Enable HTTPS',
httpsEnabledDesc: 'Serve over an encrypted connection. A self-signed certificate is generated automatically if none is provided.',
portConfig: 'Port & Protocol',
portConfigDesc: 'The service listens on a single port at a time, determined by the HTTPS toggle',
redfishTitle: 'Redfish',
redfishDesc: 'DMTF Redfish standard management interface',
redfishEnabled: 'Enable Redfish API',
redfishEnabledDesc: 'When enabled, the standard Redfish management interface is available at /redfish/v1/',
redfishEndpoint: 'Redfish Endpoint',
copyRedfishUrl: 'Copy Redfish URL',
openRedfishEndpoint: 'Open Redfish endpoint',
httpPortReserved: 'HTTP port (reserved)',
httpsPortReserved: 'HTTPS port (reserved)',
portActive: 'Active',
portReserved: 'Reserved',
portReservedHint: 'The reserved port is applied only after switching protocol; you can preconfigure it now.',
previewUrl: 'Access URL preview',
copyUrl: 'Copy access URL',
openInBrowser: 'Open in browser',
listenAddress: 'Listen Address',
listenAddressDesc: 'Choose which network interfaces the web server binds to',
bindModeAllDesc: '0.0.0.0 — Listen on all network interfaces',
bindModeLocalDesc: '127.0.0.1 — Loopback only (local access)',
bindModeCustomDesc: 'Bind to a specific list of IP addresses',
listenAddressDesc: 'Configure the network interfaces used by the web server',
effectiveAddresses: 'Effective listen addresses',
sslCertificate: 'SSL Certificate',
sslCertificateDesc: 'Upload a custom PEM certificate to replace the self-signed one. A service restart is required to apply.',
@@ -618,8 +506,6 @@ export default {
sslKeyPem: 'Private Key (.key)',
sslCertPemPlaceholder: '-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----',
sslKeyPemPlaceholder: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----',
sslCertSaved: 'Certificate saved, restart to apply',
sslCertCleared: 'Reverted to self-signed certificate, restart to apply',
restartRequired: 'Restart Required',
restartRequiredHint: 'The service will restart automatically to apply the new configuration.',
unsavedChangesHint: 'Click Save to apply changes',
@@ -637,7 +523,6 @@ export default {
currentVersion: 'Current Version',
latestVersion: 'Latest Version',
updateStatus: 'Update Status',
updateStatusIdle: 'Idle',
releaseNotes: 'Release Notes',
noUpdates: 'No new version available for current channel',
updateOverviewLoadFailed: 'Failed to load update information',
@@ -659,38 +544,12 @@ export default {
authSettings: 'Session Policy',
authSettingsDesc: 'Configure single-user login and concurrent session behavior',
allowMultipleSessions: 'Allow concurrent web sessions',
allowMultipleSessionsDesc: 'When disabled, a new login automatically signs out the previous session',
userManagement: 'User Management',
userManagementDesc: 'Manage user accounts and permissions',
addUser: 'Add User',
editUser: 'Edit User',
deleteUser: 'Delete User',
username: 'Username',
password: 'Password',
role: 'Role',
roleAdmin: 'Admin',
roleUser: 'User',
loadingUsers: 'Loading users...',
noUsers: 'No users found',
create: 'Create',
confirmDeleteUser: 'Are you sure you want to delete user "{name}"?',
msdStatus: 'MSD Status',
atxStatus: 'ATX Status',
available: 'Available',
notAvailable: 'Not available',
msdEnable: 'Enable MSD',
msdEnableDesc: 'Enable to mount ISO images and virtual drives to the target machine',
msdCh9329Warning: 'HID backend is CH9329, MSD is unavailable',
msdCh9329WarningDesc: 'CH9329 is a serial HID backend and does not support USB Gadget MSD',
msdDir: 'MSD directory',
msdDirDesc: 'MSD base directory containing images/ and ventoy/ subfolders',
msdDirHint: 'Changing this rebuilds MSD and updates console capacity stats',
willBeEnabledAfterSave: 'Will be enabled after save',
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.',
atxPowerButton: 'Power Button',
atxResetButton: 'Reset Button',
atxPowerManagement: 'Power Management',
atxDriver: 'Driver Type',
atxDriverNone: 'Disabled',
atxDriverGpio: 'GPIO',
@@ -709,7 +568,6 @@ export default {
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',
themeDesc: 'Choose the interface color scheme',
languageDesc: 'Choose the interface display language',
featureVisibility: 'Feature Visibility',
@@ -722,7 +580,6 @@ export default {
selectDevice: 'Select device...',
videoFormat: 'Video Format',
selectFormat: 'Select format...',
driver: 'Driver',
resolution: 'Resolution',
frameRate: 'Frame Rate',
encoderBackend: 'Video Encoder',
@@ -731,14 +588,12 @@ export default {
autoRecommended: 'Auto (Recommended)',
software: 'Software',
supportedFormats: 'Supported Codecs',
encoderHint: 'Hardware encoders deliver lower latency and CPU usage; software encoders offer broader compatibility at a higher resource cost.',
hidSettings: 'HID Settings',
hidSettingsDesc: 'Configure backend, device, descriptors, and functions in order',
hidBackend: 'HID Backend',
serialDevice: 'Serial Device',
baudRate: 'Baud Rate',
otgUdc: 'OTG Device Controller',
otgUdcDesc: 'Select the UDC used by the USB gadget, or leave blank for automatic selection',
ch9329Options: 'CH9329 Options',
ch9329OptionsDesc: 'Configure runtime compatibility for the CH9329 serial HID chip',
ch9329HybridMouse: 'Linux Absolute Mouse Compatibility',
@@ -752,29 +607,21 @@ export default {
ch9329DescriptorWarning: 'Saving writes CH9329 parameters; changes may not show until the device is power-cycled or reconnected',
ch9329StringLengthWarning: 'CH9329 strings are limited to 23 bytes',
otgHidProfile: 'OTG Functions',
otgHidProfileDesc: 'Select which USB functions are exposed to the host',
otgFunctionKeyboard: 'Keyboard',
otgFunctionKeyboard: 'Standard Keyboard',
otgFunctionKeyboardDesc: 'Standard HID keyboard device',
otgKeyboardLeds: 'Keyboard LED Status',
otgKeyboardLedsDesc: 'Enable Caps/Num/Scroll LED feedback from the host',
otgFunctionMouseRelative: 'Relative Mouse',
otgFunctionMouseRelativeDesc: 'Traditional mouse movement (HID boot mouse)',
otgFunctionMouseAbsolute: 'Absolute Mouse',
otgFunctionMouseAbsoluteDesc: 'Absolute positioning (touchscreen-like)',
otgFunctionMouseRelative: 'Relative Positioning Mouse',
otgFunctionMouseAbsolute: 'Absolute Positioning Mouse',
otgFunctionConsumer: 'Consumer Control Keyboard',
otgFunctionConsumerDesc: 'Consumer Control keys such as volume/play/pause',
otgFunctionMsd: 'Mass Storage (MSD)',
otgFunctionMsdDesc: 'Expose USB storage to the host',
otgProfileWarning: 'Saving reconnects the USB device; unsupported combinations show an error and restore the previous configuration',
otgFunctionMinWarning: 'Enable at least one HID function before saving',
otgNetwork: 'USB Virtual Ethernet',
otgNetwork: 'USB Virtual Ethernet Bridge',
otgRuntimeDegraded: 'OTG runtime is degraded',
otgNetworkDesc: 'Bridge the USB link to an existing uplink',
otgNetworkDriver: 'Host Driver Mode',
otgNetworkInterface: 'Bridge Interface',
otgNetworkNone: 'None',
otgDescriptor: 'USB Device Descriptor',
otgDescriptorDesc: 'Configure USB device identification',
vendorId: 'Vendor ID (VID)',
productId: 'Product ID (PID)',
manufacturer: 'Manufacturer',
@@ -790,7 +637,6 @@ export default {
overall: 'Overall Status',
ok: 'Healthy',
hasIssues: 'Issues Found',
summary: 'Issue Summary',
counts: '{errors} errors, {warnings} warnings',
groupCounts: '{ok} passed, {warnings} warnings, {errors} errors',
notRun: 'Not run',
@@ -872,7 +718,7 @@ export default {
none: 'None',
},
usbDevices: {
title: 'USB Devices',
title: 'USB Device Reset',
desc: 'View connected USB devices and reset them to recover from errors',
refresh: 'Refresh',
loadFailed: 'Failed to load USB device list',
@@ -887,34 +733,21 @@ export default {
resetAction: 'Reset Device',
},
webrtcSettings: 'WebRTC Signaling',
webrtcSettingsDesc: 'Configure STUN/TURN servers to assist NAT traversal',
publicIceServersHint: 'Leave empty to use Google\u2019s public STUN servers; TURN must be self-hosted',
webrtcSettingsDesc: 'Configure STUN/TURN servers; changes apply to newly established WebRTC sessions after saving',
stunServer: 'STUN Server',
stunServerPlaceholder: 'stun:stun.l.google.com:19302',
stunServerHint: 'Leave empty to use Google\u2019s public STUN servers',
turnServer: 'TURN Server',
turnServerPlaceholder: 'turn:turn.example.com:3478',
turnServerHint: 'TURN relay server. Strongly recommended for public deployments or strict NAT environments.',
turnUsername: 'TURN Username',
turnPassword: 'TURN Password',
turnCredentialsHint: 'Credentials used for TURN server authentication',
iceConfigNote: 'Changes apply to the next WebRTC session',
},
virtualKeyboard: {
title: 'Virtual Keyboard',
attach: 'Attach',
detach: 'Detach',
hide: 'Hide',
show: 'Show Virtual Keyboard',
layoutSelect: 'Keyboard Layout',
osWindows: 'Windows',
osMac: 'Mac',
osAndroid: 'Android',
mediaKeys: 'Consumer Control Keyboard',
},
config: {
applied: 'Configuration applied',
applyFailed: 'Failed to apply configuration',
loadDevicesFailed: 'Failed to load device list',
updateFailed: 'Update failed',
},
@@ -927,9 +760,6 @@ export default {
online: 'Online',
offline: 'Offline',
connecting: 'Connecting...',
version: 'Version',
uptime: 'Uptime',
running: 'Running',
format: 'Format',
resolution: 'Resolution',
fps: 'FPS',
@@ -937,10 +767,7 @@ export default {
fpsActual: 'Actual FPS',
fpsStaticHint: 'Frame rate drops automatically while the image is static',
paused: 'Paused',
clients: 'Clients',
backend: 'Backend',
mouse: 'Mouse',
mouseSupport: 'Mouse Support',
currentMode: 'Current Mode',
absolute: 'Absolute',
relative: 'Relative',
@@ -948,21 +775,14 @@ export default {
networkError: 'Network Error',
disconnected: 'Disconnected',
hidUnavailable: 'HID Unavailable',
sampleRate: 'Sample Rate',
channels: 'Channels',
quality: 'Quality',
streaming: 'Streaming',
off: 'Off',
defaultDevice: 'Default',
notConnected: 'Not Connected',
connected: 'Connected',
image: 'Image',
msdStatus: 'Status',
msdStandby: 'Idle',
msdImageMode: 'Image Mode',
msdDriveMode: 'Virtual USB',
msdMultiMode: 'Virtual Media: {count} mounted',
msdMountType: 'Mount Type',
msdCurrentImage: 'Current Image',
msdNoImage: 'None',
},
@@ -978,21 +798,18 @@ export default {
autoStart: 'Auto Start',
thirdPartyAccess: {
title: 'Third-party Access',
desc: 'Configure RustDesk, VNC, and RTSP in one place',
},
viewLogs: 'View Logs',
noLogs: 'No logs available',
binaryNotFound: '{path} not found, please install the required program',
remoteAccess: {
title: 'Remote Access',
desc: 'GOSTC/FRPC NAT traversal and Easytier networking',
},
ttyd: {
title: 'Ttyd Web Terminal',
desc: 'Web terminal access via ttyd',
open: 'Open Terminal',
openInNewTab: 'Open in New Tab',
port: 'Port',
shell: 'Shell',
},
gostc: {
@@ -1014,11 +831,10 @@ export default {
peers: 'Peer Nodes',
addPeer: 'Add Peer',
virtualIp: 'Virtual IP',
virtualIpHint: 'Leave empty for DHCP, or specify with CIDR (e.g., 10.0.0.1/24)',
},
frpc: {
title: 'FRPC NAT Traversal',
desc: 'Connect to an frps server through the FRP client',
desc: 'Use the FRP client for NAT traversal',
quickConfig: 'Quick Config',
fullConfig: 'Full Config',
fullConfigHint: 'Paste the provider TOML configuration file here',
@@ -1045,8 +861,7 @@ export default {
},
rustdesk: {
title: 'RustDesk Remote',
desc: 'Remote access via RustDesk client',
serverSettings: 'Server Settings',
desc: 'Configure the RustDesk service; the selected codec will be locked',
rendezvousServer: 'ID Server',
rendezvousServerPlaceholder: 'hbbs.example.com:21116',
rendezvousServerRequired: 'Enter the RustDesk ID server',
@@ -1054,10 +869,8 @@ export default {
relayServerPlaceholder: 'hbbr.example.com:21117',
relayKey: 'Relay Key',
codec: 'Codec',
codecHint: 'Choose H.264 or H.265 before starting RustDesk. The codec is locked while running.',
deviceInfo: 'Device Info',
deviceId: 'Device ID',
deviceIdHint: 'Use this ID in RustDesk client to connect',
devicePassword: 'Device Password',
showPassword: 'Show Password',
hidePassword: 'Hide Password',
@@ -1065,8 +878,6 @@ export default {
regeneratePassword: 'Regenerate Password',
confirmRegenerateId: 'Are you sure you want to regenerate the device ID? Existing clients will need to reconnect with the new ID.',
confirmRegeneratePassword: 'Are you sure you want to regenerate the password? Existing clients will need to reconnect with the new password.',
serviceStatus: 'Service Status',
rendezvousStatus: 'Registration Status',
registered: 'Registered',
connected: 'Connected',
disconnected: 'Disconnected',
@@ -1075,21 +886,16 @@ export default {
notInitialized: 'Not Initialized',
copyId: 'Copy ID',
copyPassword: 'Copy Password',
copied: 'Copied',
keypairGenerated: 'Keypair Generated',
noKeypair: 'No Keypair',
},
rtsp: {
title: 'RTSP Streaming',
desc: 'Configure RTSP video output service (H.264/H.265)',
desc: 'Configure the RTSP streaming service; the selected codec will be locked',
bind: 'Bind Address',
bindHint: 'Enter an IPv4 or IPv6 address; configure the port in the port field.',
port: 'Port',
path: 'Stream Path',
pathPlaceholder: 'live',
pathHint: 'Example: rtsp://device-ip:8554/live',
codec: 'Codec',
codecHint: 'RTSP locks output to the selected codec while running. If RustDesk is running, choose the same codec.',
allowOneClient: 'Allow One Client Only',
username: 'Username',
usernamePlaceholder: 'Empty means no authentication',
@@ -1099,44 +905,31 @@ export default {
},
vnc: {
title: 'VNC Remote',
desc: 'Access via TigerVNC client',
desc: 'Configure the VNC service; the selected codec will be locked',
bind: 'Bind Address',
bindHint: 'Enter an IPv4 or IPv6 address; configure the port in the port field.',
port: 'Port',
encoding: 'Video Encoding',
encodingTightJpeg: 'Tight JPEG',
encodingH264: 'H.264',
encodingHint: 'VNC locks output while running. VNC cannot start under an H.265 lock; MJPEG blocks RTSP and RustDesk.',
allowOneClient: 'Allow One Client Only',
password: 'Password',
passwordPlaceholder: 'Leave empty to keep current',
passwordRequiredPlaceholder: 'Up to 8 characters',
passwordRequired: 'Set a VNC password',
passwordMaxLength: 'VNC passwords are limited to 8 characters',
passwordSaved: 'Password is saved; leaving this empty keeps it unchanged.',
clients: '{count} clients',
urlPreview: 'VNC Address Preview',
},
},
stats: {
title: 'Connection Stats',
current: 'Current Status',
video: 'Video',
videoDesc: 'Video stream from server to client.',
video: 'Video Information',
stability: 'Network Stability',
stabilityDesc: 'How smooth the incoming video packets are in the network.',
jitter: 'Jitter',
delay: 'Playback Delay',
delayDesc: 'Delay added by jitter buffer to smooth unevenly arriving frames.',
packetLoss: 'Packet Loss',
packetLossDesc: 'Number of lost incoming video RTP packets.',
total: 'total',
frameRate: 'Frame Rate',
frameRateDesc: 'Number of incoming video frames displayed per second.',
additional: 'Additional Info',
latency: 'ICE Latency',
bitrate: 'Bitrate',
fps: 'FPS',
resolution: 'Resolution',
packetsLost: 'Packets Lost',
connection: 'Connection Info',
@@ -1148,23 +941,9 @@ export default {
relay: 'TURN Relay',
},
help: {
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',
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',
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',
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',
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',
audioQuality: 'Higher quality means better audio but requires more network bandwidth',
},
}