export default { common: { loading: 'Loading...', save: 'Save', cancel: 'Cancel', confirm: 'Confirm', delete: 'Delete', upload: 'Upload', download: 'Download', refresh: 'Refresh', close: 'Close', success: 'Success', error: 'Error', warning: 'Warning', info: 'Info', yes: 'Yes', no: 'No', on: 'On', off: 'Off', enabled: 'Enabled', disabled: 'Disabled', later: 'Later', restartNow: 'Restart Now', connected: 'Connected', disconnected: 'Disconnected', connecting: 'Connecting...', disconnecting: 'Disconnecting...', unknown: 'Unknown', back: 'Back', next: 'Next', apply: 'Apply', menu: 'Menu', optional: 'Optional', recommended: 'Recommended', create: 'Create', creating: 'Creating...', deleting: 'Deleting...', more: 'More', collapse: 'Collapse', expand: 'Expand', toggleTheme: 'Toggle theme', toggleLanguage: 'Toggle language', }, nav: { console: 'Console', msd: 'Virtual Media', settings: 'Settings', logout: 'Logout', }, auth: { login: 'Login', logout: 'Logout', username: 'Username', password: 'Password', enterUsername: 'Enter username', enterPassword: 'Enter password', loginPrompt: 'Enter your credentials to login', loginFailed: 'Login failed', invalidPassword: 'Invalid username or password', changePassword: 'Change Password', currentPassword: 'Current Password', currentPasswordPlaceholder: 'Enter current password', newPassword: 'New Password', newPasswordPlaceholder: 'Enter new password', confirmPassword: 'Confirm Password', confirmPasswordPlaceholder: 'Re-enter new password', 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', }, status: { connected: 'Connected', connecting: 'Connecting', disconnected: 'Disconnected', error: 'Error', }, actionbar: { paste: 'Paste Text', virtualMedia: 'Virtual Media', virtualMediaTip: 'Manage virtual media devices', 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', extension: 'Extension', extensionTip: 'Extension features', stats: 'Stats', statsTip: 'View connection statistics', settings: 'Settings', settingsTip: 'System settings', fullscreen: 'Fullscreen', fullscreenTip: 'Toggle fullscreen mode', // Video Config videoConfig: 'Video Config', streamSettings: 'Stream Settings', 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', videoDevice: 'Device', videoFormat: 'Format', videoResolution: 'Resolution', videoFps: 'Frame Rate', selectDevice: 'Select device...', selectFormat: 'Select format...', selectResolution: 'Select resolution...', 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', notRecommended: 'Not Recommended', // HID Config hidConfig: 'Mouse & HID', mouseSettings: 'Mouse Settings', hidDeviceSettings: 'HID Device Settings', positioningMode: 'Positioning Mode', sendInterval: 'Send Interval', showCursor: 'Show Cursor', backend: 'Backend', devicePath: 'Device Path', baudrate: 'Baudrate', absolute: 'Absolute', relative: 'Relative', applying: 'Applying...', // Audio Config audioConfig: 'Audio', playbackControl: 'Playback', volume: 'Volume', mute: 'Mute', audioDeviceSettings: 'Device Settings', audioEnabled: 'Audio', audioDevice: 'Device', audioQuality: 'Quality', qualityVoice: 'Voice', qualityBalanced: 'Balanced', qualityHigh: 'High', selectAudioDevice: 'Select device...', }, infobar: { keys: 'Keys', pointer: 'Pointer', caps: 'Caps', num: 'Num', scroll: 'Scroll', }, paste: { title: 'Paste Text', description: 'Enter text to send to remote host as keyboard input', label: 'Text Content', placeholder: 'Enter text to paste here...', hint: 'Press Ctrl+Enter to send quickly', confirm: 'Send', typing: 'Typing...', escToCancel: 'Press Esc to cancel', stop: 'Stop', untypableWarning: 'Some characters cannot be typed', untypableChars: 'Untypable characters: {chars}', }, atx: { title: 'Power Control', description: 'Control remote host power state', powerState: 'Power State', stateOn: 'On', stateOff: 'Off', stateUnknown: 'Unknown', shortPress: 'Power (Short)', longPress: 'Power (Long/Force Off)', reset: 'Reset', confirmShortTitle: 'Confirm Power Press', confirmShortDesc: 'This will simulate pressing the power button, same as a physical short press.', confirmLongTitle: 'Confirm Force Power Off', confirmLongDesc: 'This will force power off the host, which may cause data loss. Are you sure?', confirmResetTitle: 'Confirm Reset', confirmResetDesc: 'This will reset the host, which may cause unsaved data loss. Are you sure?', wol: 'Wake-on-LAN', wolDescription: 'Send Wake-on-LAN magic packet to power on a remote machine.', 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', // 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', selectFormat: 'Select format', resolution: 'Resolution', selectResolution: 'Select resolution', fps: 'Frame Rate', selectFps: 'Select FPS', noVideoDevices: 'No video devices detected', // 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', disableHid: 'Disabled', serialPort: 'Serial Port', selectSerialPort: 'Select serial port', noSerialDevices: 'No serial devices detected', baudRate: 'Baud Rate', 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: '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.', 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', rustdeskTitle: 'RustDesk Remote Desktop', rustdeskDescription: 'Remote access via RustDesk client', extensionsHint: 'These settings can be changed later in Settings', notInstalled: 'Not installed', // Password strength passwordStrength: 'Password Strength', passwordWeak: 'Weak', passwordMedium: 'Medium', passwordStrong: 'Strong', 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', // WebRTC webrtcConnected: 'WebRTC Connected', webrtcConnectedDesc: 'Using low-latency H.264 video stream', webrtcFailed: 'WebRTC Connection Failed', fallingBackToMjpeg: 'Falling back to MJPEG mode', // 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: { title: 'HID Control', keyboard: 'Keyboard', mouse: 'Mouse', reset: 'Reset HID', sendCtrlAltDel: 'Send Ctrl+Alt+Del', pasteText: 'Paste Text', absoluteMouse: 'Absolute', relativeMouse: 'Relative', // Device monitoring 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', }, audio: { // Device monitoring 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', images: 'ISO/IMG Mount', imagesDesc: 'Mount ISO/IMG images to target device', drive: 'Virtual USB', driveDesc: 'Transfer files to target device like a USB drive, supports Ventoy boot', imageList: 'Image List', uploadImage: 'Upload Image', noImages: 'No images', connect: 'Connect', disconnect: 'Disconnect', connectedTo: 'Connected to', cdrom: 'CD-ROM', flash: 'Flash', storageMode: 'Storage Mode', 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', driveSize: 'Drive Size', usedSpace: 'Used', freeSpace: 'Free', deleteDrive: 'Delete Drive', confirmDeleteDrive: 'Are you sure you want to delete the virtual drive? All files will be erased.', driveDeleted: 'Drive deleted', systemAvailable: 'System Available', emptyFolder: 'Empty folder', confirmDelete: 'Are you sure you want to delete "{name}"?', folderName: 'Folder name', 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', filename: 'Filename', filenameAutoDetect: 'Auto-detect from URL', download: 'Download', downloadComplete: 'Download complete', 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', driveSizeHint: 'Custom size overrides selection above (64MB - 32GB)', driveCreated: 'Virtual drive created ({size} MB)', fileDeleted: 'File deleted', imageDeleted: 'Image deleted', }, settings: { title: 'Settings', basic: 'Basic', general: 'General', appearance: 'Appearance', video: 'Video', encoder: 'Encoder', hid: 'HID', msd: 'MSD', atx: 'ATX', network: 'Network', users: 'Users', hardware: 'Hardware', system: 'System', extensions: 'Extensions', configured: 'Configured', security: 'Security', about: 'About', aboutDesc: 'Open and Lightweight IP-KVM Solution', // Device info deviceInfo: 'Device Info', deviceInfoDesc: 'Host system information', hostname: 'Hostname', cpuModel: 'CPU Model', cpuUsage: 'CPU Usage', memoryUsage: 'Memory Usage', networkAddresses: 'Network Addresses', language: 'Language', theme: 'Theme', lightMode: 'Light', darkMode: 'Dark', systemMode: 'System', changePassword: 'Change Password', currentPassword: 'Current Password', newPassword: 'New Password', version: 'Version', buildInfo: 'Build Info', detectDevices: 'Detect Devices', detecting: 'Detecting...', builtWith: "Copyright {'@'}2025 SilentWind", 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: 'Basic', webServerDesc: 'Configure HTTP/HTTPS ports and bind address. 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.', httpsEnabled: 'Enable HTTPS', httpsEnabledDesc: 'Enable HTTPS encrypted connection (self-signed certificate will be auto-generated)', restartRequired: 'Restart Required', restartMessage: 'Web server configuration saved. A restart is required for changes to take effect.', restarting: 'Restarting...', // User management 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}"?', // MSD/ATX status 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', 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.', // ATX configuration atxSettingsDesc: 'Configure ATX power control hardware bindings', atxEnable: 'Enable ATX Control', atxEnableDesc: 'Enable remote control of power and reset buttons', atxPowerButton: 'Power Button', atxPowerButtonDesc: 'For power on (short press) and force off (long press)', atxResetButton: 'Reset Button', atxResetButtonDesc: 'For resetting the target machine', atxDriver: 'Driver Type', atxDriverNone: 'Disabled', atxDriverGpio: 'GPIO', atxDriverUsbRelay: 'USB Relay', atxDevice: 'Device', atxPin: 'GPIO Pin', atxChannel: 'Relay Channel', atxActiveLevel: 'Active Level', atxLevelHigh: 'Active High', atxLevelLow: 'Active Low', atxLedSensing: 'LED Status Sensing', atxLedSensingDesc: 'Detect host power LED to determine power state (optional)', atxLedEnable: 'Enable LED Sensing', atxLedEnableDesc: 'Read power LED status via GPIO', atxLedChip: 'GPIO Chip', 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', selectDevice: 'Select device...', videoFormat: 'Video Format', selectFormat: 'Select format...', driver: 'Driver', resolution: 'Resolution', frameRate: 'Frame Rate', encoderBackend: 'Encoder Backend', encoderBackendDesc: 'Select encoder backend for WebRTC streaming', backend: 'Backend', autoRecommended: 'Auto (Recommended)', 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', serialDevice: 'Serial Device', baudRate: 'Baud Rate', // OTG Descriptor otgDescriptor: 'USB Device Descriptor', otgDescriptorDesc: 'Configure USB device identification', vendorId: 'Vendor ID (VID)', productId: 'Product ID (PID)', manufacturer: 'Manufacturer', productName: 'Product Name', serialNumber: 'Serial Number', serialNumberAuto: 'Auto-generated', descriptorWarning: 'Changing these settings will reconnect the USB device', // WebRTC / ICE webrtcSettings: 'WebRTC Settings', webrtcSettingsDesc: 'Configure STUN/TURN servers for NAT traversal', usingPublicIceServers: 'Using public ICE servers', publicIceServersHint: 'Leave empty to use built-in public STUN/TURN servers for NAT traversal', stunServer: 'STUN Server', stunServerPlaceholder: 'stun:stun.l.google.com:19302', stunServerHint: 'Custom STUN server (leave empty to use public server)', turnServer: 'TURN Server', turnServerPlaceholder: 'turn:turn.example.com:3478', turnServerHint: 'Custom TURN relay server (leave empty to use public server)', turnUsername: 'TURN Username', turnPassword: 'TURN Password', turnPasswordConfigured: 'Password already configured. Leave empty to keep current password.', turnCredentialsHint: 'Credentials for TURN server authentication (only needed for custom servers)', iceConfigNote: 'Note: Changes require reconnecting the WebRTC session to take effect.', }, virtualKeyboard: { title: 'Virtual Keyboard', attach: 'Attach', detach: 'Detach', hide: 'Hide', show: 'Show Virtual Keyboard', layoutSelect: 'Keyboard Layout', osWindows: 'Windows', osMac: 'Mac', osAndroid: 'Android', mediaKeys: 'Media Keys', }, config: { applied: 'Configuration applied', applyFailed: 'Failed to apply configuration', loadDevicesFailed: 'Failed to load device list', updateFailed: 'Update failed', }, statusCard: { device: 'Device', video: 'Video', hid: 'HID', audio: 'Audio', msd: 'MSD', online: 'Online', offline: 'Offline', connecting: 'Connecting...', version: 'Version', uptime: 'Uptime', running: 'Running', mode: 'Mode', format: 'Format', resolution: 'Resolution', targetFps: 'Target FPS', fps: 'Actual FPS', clients: 'Clients', backend: 'Backend', initialized: 'Initialized', yes: 'Yes', no: 'No', mouse: 'Mouse', mouseSupport: 'Mouse Support', currentMode: 'Current Mode', absolute: 'Absolute', relative: 'Relative', connection: 'Connection', channel: 'Channel', networkError: 'Network Error', disconnected: 'Disconnected', availability: 'Availability', hidUnavailable: 'HID Unavailable', sampleRate: 'Sample Rate', channels: 'Channels', quality: 'Quality', streaming: 'Streaming', off: 'Off', defaultDevice: 'Default', notConnected: 'Not Connected', connected: 'Connected', image: 'Image', // MSD status details msdStatus: 'Status', msdStandby: 'Idle', msdImageMode: 'Image Mode', msdDriveMode: 'Virtual USB', msdMountType: 'Mount Type', msdCurrentImage: 'Current Image', msdNoImage: 'None', }, extensions: { // Common available: 'Available', unavailable: 'Unavailable', running: 'Running', starting: 'Starting', stopped: 'Stopped', failed: 'Failed', start: 'Start', stop: 'Stop', autoStart: 'Auto Start', viewLogs: 'View Logs', noLogs: 'No logs available', binaryNotFound: '{path} not found, please install the required program', // ttyd ttyd: { title: 'Ttyd Web Terminal', desc: 'Web terminal access via ttyd', open: 'Open Terminal', openInNewTab: 'Open in New Tab', port: 'Port', shell: 'Shell', credential: 'Credential', }, // gostc gostc: { title: 'GOSTC NAT Traversal', desc: 'NAT traversal via GOSTC', addr: 'Server Address', key: 'Client Key', tls: 'Enable TLS', }, // easytier easytier: { title: 'Easytier Network', desc: 'P2P VPN networking via EasyTier', networkName: 'Network Name', networkSecret: 'Network Secret', 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)', }, // rustdesk rustdesk: { title: 'RustDesk Remote', desc: 'Remote access via RustDesk client', serverSettings: 'Server Settings', rendezvousServer: 'ID Server', rendezvousServerPlaceholder: 'hbbs.example.com:21116', rendezvousServerHint: 'Leave empty to use public server', relayServer: 'Relay Server', relayServerPlaceholder: 'hbbr.example.com:21117', relayServerHint: 'Relay server address, auto-derived from ID server if empty', relayKey: 'Relay Key', relayKeyPlaceholder: 'Enter relay server key', relayKeySet: '••••••••', relayKeyHint: 'Authentication key for relay server (if server uses -k option)', publicServerInfo: 'Public Server Info', publicServerAddress: 'Server Address', publicServerKey: 'Connection Key', usingPublicServer: 'Using public server', deviceInfo: 'Device Info', deviceId: 'Device ID', deviceIdHint: 'Use this ID in RustDesk client to connect', devicePassword: 'Device Password', showPassword: 'Show Password', hidePassword: 'Hide Password', regenerateId: 'Regenerate ID', 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', connecting: 'Connecting', notConfigured: 'Not Configured', notInitialized: 'Not Initialized', copyId: 'Copy ID', copyPassword: 'Copy Password', copied: 'Copied', keypairGenerated: 'Keypair Generated', noKeypair: 'No Keypair', }, }, stats: { title: 'Connection Stats', webrtcMode: 'WebRTC Real-time Stats', mjpegMode: 'MJPEG Real-time Stats', current: 'Current Status', video: 'Video', videoDesc: 'Video stream from server to client.', 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', wsLatency: 'WS Latency', connection: 'Connection Info', connectionType: 'Connection Type', transport: 'Transport', localCandidate: 'Local Candidate', remoteCandidate: 'Remote Candidate', 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', }, }