Files
BetterDesk/web-nodejs/lang/cs.json
T
UNITRONIX d37b6c2c88 Add Go server build support to updater
Enable optional compilation and deployment of the Go server as part of the self-update flow. UI: add checkbox/status/info area in settings.js, check /api/settings/updates/server-info, include server component when selected, adjust progress/messages and longer timeouts. API/Server: add server-info endpoint and extend install request timeouts. Service: updateService now sets server localRoot and implements functions to detect Go, fetch server source (git or GitHub API), build the binary, and deploy it. i18n: add related translation keys across many locale files. Misc: improve input validation and error logging in desktop.routes, and return graceful defaults for missing policy routes in policies.routes.
2026-04-16 01:07:13 +02:00

2822 lines
114 KiB
JSON
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.
{
"_meta": {
"name": "Czech",
"native_name": "Čeština",
"flag": "🇨🇿",
"needs_review": true
},
"meta": {
"lang": "en",
"name": "English",
"native_name": "English",
"direction": "ltr"
},
"common": {
"loading": "Loading...",
"confirm": "Confirm",
"alert": "Alert",
"prompt": "Enter value",
"copied": "Copied to clipboard",
"save": "Save",
"saved": "Saved",
"error": "Error",
"success": "Success",
"warning": "Warning",
"info": "Information",
"all": "All",
"cancel": "Cancel",
"delete": "Delete",
"actions": "Actions",
"close": "Close",
"required": "required",
"name_required": "Name is required",
"active": "Active",
"inactive": "Inactive",
"invalid_json": "Invalid JSON",
"field_required": "{field} is required",
"back": "Back",
"edit": "Edit"
},
"nav": {
"main": "Main",
"tools": "Tools",
"system": "System",
"dashboard": "Dashboard",
"devices": "Devices",
"keys": "Keys",
"generator": "Generator",
"settings": "Settings",
"users": "Users",
"inventory": "Inventory",
"tickets": "Tickets",
"help_requests": "Help Requests",
"activity": "Activity",
"automation": "Automation",
"file_transfer": "File Transfer",
"network": "Network",
"dataguard": "DataGuard",
"reports": "Reports",
"tenants": "Tenants",
"registrations": "Registrations",
"management": "Management",
"toggle_sidebar": "Toggle sidebar",
"cdap": "CDAP Devices",
"fleet": "Fleet",
"scaling": "Scaling",
"cross_platform": "Cross-Platform",
"tokens": "Device Tokens",
"organizations": "Organizations",
"policies": "Policies",
"attestation": "Attestation",
"remote": "Remote Desktop",
"toolkit": "Toolkit",
"security_audit": "Security Audit",
"languages": "Languages",
"resource_control": "Resource Control",
"chat": "Chat",
"help": "Help",
"expand_sidebar": "Expand sidebar",
"toggle_theme": "Toggle theme",
"sdk_studio": "SDK Studio",
"login": "Login",
"permissions": "Permissions"
},
"auth": {
"login": "Login",
"logout": "Logout",
"login_title": "Sign In",
"login_subtitle": "Sign in to BetterDesk Console",
"username": "Username",
"username_placeholder": "Enter username",
"password": "Password",
"password_placeholder": "Enter password",
"remember_me": "Remember me",
"login_failed": "Login failed. Please check your credentials.",
"invalid_credentials": "Invalid username or password.",
"fill_all_fields": "Please fill in all fields",
"logout_confirm": "Are you sure you want to logout?",
"change_password": "Change Password",
"password_required": "Password is required",
"totp_title": "Two-Factor Authentication",
"totp_subtitle": "Enter the 6-digit code from your authenticator app",
"totp_code": "Verification Code",
"totp_verify": "Verify",
"totp_use_recovery": "Use a recovery code instead",
"totp_use_code": "Use authenticator code instead",
"totp_recovery_code": "Recovery Code",
"totp_back_to_login": "Back to login",
"totp_invalid_code": "Invalid verification code. Please try again.",
"totp_enter_code": "Please enter a 6-digit code",
"totp_enter_recovery": "Please enter a recovery code",
"totp_session_expired": "Session expired. Please log in again.",
"totp_already_enabled": "Two-factor authentication is already enabled",
"pro_only_account": "This account is for RustDesk desktop client only. Please use the RustDesk app to log in.",
"passwords_mismatch": "Passwords do not match"
},
"dashboard": {
"title": "Dashboard",
"subtitle": "Overview of your RustDesk server",
"total_devices": "Total Devices",
"online_now": "Online Now",
"banned": "Banned",
"active_connections": "Active Connections",
"offline_devices": "Offline",
"server_status": "Server Status",
"quick_actions": "Quick Actions",
"manage_devices": "Manage connected devices",
"view_keys": "View server keys",
"generate_config": "Generate client config",
"server_settings": "Configure settings",
"greeting_morning": "Good morning, {name}",
"greeting_afternoon": "Good afternoon, {name}",
"greeting_evening": "Good evening, {name}",
"greeting_night": "Good night, {name}",
"health_overview": "Health Overview",
"devices_online": "Devices Online",
"active_alerts": "Active Alerts",
"recent_connections": "Total Devices",
"server_uptime": "Server Uptime",
"activity_feed": "Recent Activity",
"no_recent_activity": "No recent activity",
"just_now": "just now",
"ago": "ago",
"tip_desktop_mode": "Try Desktop Mode for a multi-window workspace with monitoring widgets.",
"tip_keyboard_shortcuts": "Press Ctrl+K anywhere to open the quick search command palette.",
"tip_address_book": "Sync your address book across devices by logging in from the RustDesk client.",
"tip_2fa": "Enable Two-Factor Authentication in Settings for extra account security.",
"tip_bulk_actions": "Select multiple devices and use bulk actions to manage them at once.",
"tip_theme": "Switch between Dark and Light themes in the sidebar settings.",
"tip_cdap": "Connect IoT devices and industrial sensors via the CDAP gateway.",
"tip_tutorials": "Click the help button in the bottom-right corner for interactive tutorials."
},
"devices": {
"title": "Devices",
"id": "ID",
"hostname": "Hostname",
"username": "Username",
"platform": "Platform",
"version": "Version",
"ip_address": "IP Address",
"note": "Note",
"last_seen": "Last Seen",
"last_online": "Last Online",
"first_seen": "First Seen",
"created": "Created",
"status": "Status",
"ban_reason": "Ban Reason",
"actions": "Actions",
"search_placeholder": "Search devices...",
"filter_all": "All",
"filter_online": "Online",
"filter_offline": "Offline",
"filter_banned": "Banned",
"selected": "selected",
"showing": "Showing",
"of": "of",
"sync_status": "Sync Status",
"sync_success": "Status synchronized successfully",
"empty_title": "No devices found",
"empty_text": "No devices match your current filters",
"edit_title": "Device Details",
"delete_title": "Delete Device",
"delete_confirm": "Are you sure you want to delete device {id}?",
"delete_warning": "You are about to permanently delete this device:",
"delete_permanent": "This action cannot be undone. All data associated with this device will be permanently removed from the database.",
"delete_success": "Device deleted successfully",
"revoke_option": "Revoke device",
"revoke_hint": "Block device ID and disconnect active connections",
"revoke_success": "Device revoked successfully",
"details": "Device Details",
"ban_title": "Ban Device",
"ban_confirm": "Are you sure you want to ban device {id}?",
"ban_success": "Device banned successfully",
"unban_title": "Unban Device",
"unban_confirm": "Are you sure you want to unban device {id}?",
"unban_success": "Device unbanned successfully",
"change_id": "Change ID",
"change_id_title": "Change Device ID",
"new_id": "New ID",
"change_id_hint": "6-16 characters, letters, numbers, dashes and underscores only",
"change_id_success": "Device ID changed successfully",
"id_length_error": "ID must be 6-16 characters long",
"id_format_error": "ID can only contain letters, numbers, dashes and underscores",
"bulk_delete_title": "Delete Multiple Devices",
"bulk_delete_confirm": "Are you sure you want to delete {count} devices?",
"bulk_delete_success": "{count} devices deleted successfully",
"columns": "Columns",
"toggle_columns": "Toggle visible columns",
"not_found": "Device not found",
"delete_failed": "Failed to delete device",
"change_id_failed": "Failed to change device ID",
"invalid_id": "Invalid device ID (6-16 characters required)",
"invalid_id_format": "Invalid ID format (letters, numbers, dashes, underscores only)",
"id_exists": "Device ID already exists",
"no_selection": "No devices selected",
"device_type": "Type",
"filter_type_all": "All Types",
"filter_type_rustdesk": "RustDesk",
"filter_type_desktop": "Desktop",
"filter_type_scada": "SCADA",
"filter_type_iot": "IoT",
"filter_type_agent": "Agent",
"cdap_connected": "CDAP Connected",
"revoke": "Revoke",
"access_policy": "Access Policy",
"unattended_access": "Unattended Access",
"enable_unattended": "Enable unattended access",
"access_password": "Access Password",
"password_configured": "Password set",
"no_password": "No password",
"new_password": "New password (leave empty to keep current)",
"clear_password": "Clear password",
"access_schedule": "Access Schedule",
"enable_schedule": "Enable time-based access",
"allowed_days": "Allowed days",
"start_time": "Start time",
"end_time": "End time",
"timezone": "Timezone",
"allowed_operators": "Allowed Operators",
"all_operators": "All operators (leave empty)",
"operators_hint": "Comma-separated usernames. Leave empty to allow all operators.",
"last_updated_by": "Last updated by",
"access_policy_saved": "Access policy saved",
"tabs": {
"overview": "Overview",
"hardware": "Hardware",
"metrics": "Metrics",
"connections": "Connections",
"audit": "Audit",
"info": "Info",
"history": "History"
},
"hardware": {
"cpu": "Processor",
"memory": "Memory",
"disk": "Disk",
"os": "Operating System",
"hostname": "Hostname",
"uptime": "Uptime",
"load_avg": "Load Average",
"network": "Network Adapters",
"no_data": "No hardware data available",
"title": "Hardware Information",
"gpu": "Graphics Card"
},
"display_name": "Display Name",
"display_name_placeholder": "Custom name (overrides hostname)",
"note_placeholder": "Notes about this device"
},
"keys": {
"title": "Server Keys",
"subtitle": "Public key and configuration for RustDesk clients",
"public_key": "Public Key",
"qr_code": "QR Code",
"server_info": "Server Information",
"download": "Download Key",
"show_qr": "Show QR",
"qr_hint": "Scan this QR code with RustDesk mobile app",
"no_key": "No public key found",
"no_key_to_copy": "No key to copy",
"no_qr": "QR code not available",
"download_success": "Key file downloaded",
"not_found": "Key not found",
"api_not_found": "API key not found"
},
"settings": {
"title": "Settings",
"subtitle": "Console configuration and account settings",
"tab_general": "General",
"tab_server": "Server",
"tab_branding": "Branding",
"tab_backup": "Backup",
"language": "Language",
"change_password": "Change Password",
"password_desc": "Update your account password",
"current_password": "Current Password",
"new_password": "New Password",
"confirm_password": "Confirm Password",
"save_password": "Update Password",
"password_changed": "Password changed successfully",
"fill_all_fields": "Please fill in all fields",
"passwords_not_match": "Passwords do not match",
"password_requirements": "Password requirements",
"password_requirements_not_met": "Password does not meet requirements",
"req_length": "At least 8 characters",
"req_uppercase": "At least one uppercase letter",
"req_lowercase": "At least one lowercase letter",
"req_number": "At least one number",
"server_info": "Server Information",
"version": "Version",
"database": "Database",
"uptime": "Uptime",
"audit_log": "Audit Log",
"audit_desc": "Recent console activity",
"no_audit_logs": "No audit logs found",
"backend_title": "Server Backend",
"backend_desc": "Choose which server backend to use for device management and signal/relay services.",
"backend_original": "Original",
"backend_enhanced": "Enhanced",
"backend_rustdesk_desc": "Standard RustDesk signal and relay servers (hbbs + hbbr). Basic HTTP API with limited endpoints.",
"backend_betterdesk_desc": "Enhanced Go-based server with full REST API, JWT authentication, blocklist, tags, real-time WebSocket events, and audit logging.",
"backend_feature_signal": "Signal server (ID registration)",
"backend_feature_relay": "Relay server (connection relay)",
"backend_feature_basic_api": "Basic REST API",
"backend_feature_full_api": "Full REST API (34+ endpoints)",
"backend_feature_jwt": "JWT authentication & TOTP 2FA",
"backend_feature_blocklist": "IP/ID blocklist management",
"backend_feature_tags": "Device tags & grouping",
"backend_feature_audit": "Audit event logging",
"backend_feature_websocket": "Real-time WebSocket events",
"backend_connection": "Connection",
"backend_api_url": "API URL",
"backend_test": "Test Connection",
"backend_testing": "Testing...",
"backend_save": "Apply Backend",
"backend_saved": "Server backend changed successfully. Device data will now be managed by the new backend.",
"backend_save_failed": "Failed to switch server backend",
"backend_test_success": "Connection successful! Server is reachable.",
"backend_test_failed": "Connection failed. Server is unreachable.",
"backend_confirm_switch": "Are you sure you want to switch the server backend? This will change how devices are managed.",
"backend_unreachable": "Cannot switch: target server is unreachable. Start the server first.",
"invalid_backend": "Invalid backend selection. Choose 'rustdesk' or 'betterdesk'.",
"backend_status_running": "Connected",
"backend_status_unreachable": "Unreachable",
"backend_status_error": "Error",
"backend_status_unknown": "Unknown",
"totp_title": "Two-Factor Authentication",
"totp_desc": "Add an extra layer of security with TOTP authenticator apps (Google Authenticator, Microsoft Authenticator, Authy, etc.)",
"totp_enabled": "2FA Enabled",
"totp_enabled_desc": "Your account is protected with two-factor authentication.",
"totp_disabled": "2FA Not Enabled",
"totp_disabled_desc": "Enable two-factor authentication for additional account security.",
"totp_setup": "Enable 2FA",
"totp_disable": "Disable 2FA",
"totp_step1": "Install an authenticator app on your phone",
"totp_step2": "Scan the QR code below",
"totp_step3": "Enter the 6-digit code to verify",
"totp_manual_key": "Manual key",
"totp_enter_code": "Enter verification code",
"totp_verify_enable": "Verify & Enable",
"totp_enabled_success": "Two-factor authentication enabled!",
"totp_recovery_warning": "Save these recovery codes in a safe place. Each code can only be used once. If you lose access to your authenticator app, you can use these codes to log in.",
"totp_done": "Done",
"totp_disable_warning": "Disabling two-factor authentication will make your account less secure. Enter your password to confirm.",
"totp_disabled_success": "Two-factor authentication has been disabled."
},
"audit": {
"time": "Time",
"user": "User",
"action": "Action",
"details": "Details",
"action_login": "Login",
"action_login_failed": "Login Failed",
"action_logout": "Logout",
"action_password_change": "Password Changed",
"action_2fa_enable": "2FA Enabled",
"action_2fa_disable": "2FA Disabled",
"action_user_create": "User Created",
"action_user_update": "User Updated",
"action_user_delete": "User Deleted",
"action_settings_update": "Settings Updated",
"action_device_ban": "Device Banned",
"action_device_unban": "Device Unbanned",
"action_device_delete": "Device Deleted"
},
"generator": {
"title": "Client Configuration Generator",
"subtitle": "Generate configuration for RustDesk clients",
"config_options": "Configuration Options",
"server_address": "Server Address",
"server_address_hint": "Your server's domain or IP address",
"custom_port": "Custom Port",
"port_hint": "Leave empty for default (21116)",
"relay_server": "Relay Server",
"relay_placeholder": "Same as ID server if empty",
"relay_hint": "Optional: separate relay server address",
"include_key": "Include public key in configuration",
"generate": "Generate Configuration",
"output": "Configuration Output",
"usage_title": "Connection Details",
"generated": "Configuration generated",
"server_required": "Server address is required",
"nothing_to_copy": "Generate a configuration first"
},
"server": {
"port": "Port",
"api_port": "API Port",
"id_server": "ID Server",
"relay_server": "Relay Server",
"api_key": "API Key"
},
"status": {
"online": "Online",
"offline": "Offline",
"banned": "Banned",
"running": "Running",
"stopped": "Stopped",
"unknown": "Unknown",
"checking": "Checking...",
"label": "Status"
},
"actions": {
"refresh": "Refresh",
"copy": "Copy",
"connect": "Connect",
"connect_desktop": "Connect via Desktop Client",
"remote_viewer": "Remote Viewer",
"web_remote": "Web Remote",
"details": "Details",
"edit": "Edit",
"delete": "Delete",
"ban": "Ban",
"unban": "Unban",
"save": "Save",
"cancel": "Cancel",
"confirm": "Confirm",
"close": "Close",
"clear": "Clear",
"ok": "OK",
"saved": "Saved successfully",
"back": "Back",
"create": "Create",
"dismiss": "Dismiss",
"view_all": "View All"
},
"time": {
"just_now": "Just now",
"seconds_ago": "{count}s ago",
"minutes_ago": "{count}m ago",
"hours_ago": "{count}h ago",
"days_ago": "{count}d ago",
"day_mon": "Mon",
"day_tue": "Tue",
"day_wed": "Wed",
"day_thu": "Thu",
"day_fri": "Fri",
"day_sat": "Sat",
"day_sun": "Sun"
},
"users": {
"title": "User Management",
"subtitle": "Manage console users and permissions",
"add_user": "Add User",
"edit_user": "Edit User",
"username": "Username",
"username_placeholder": "Enter username",
"username_hint": "3-32 characters, letters, numbers and underscores only",
"password": "Password",
"password_placeholder": "Enter password",
"password_hint": "Minimum 8 characters with mixed case, numbers and symbols",
"password_leave_empty": "Leave empty to keep current",
"role": "Role",
"role_admin": "Administrator",
"role_operator": "Operator",
"role_viewer": "Viewer",
"role_hint": "Viewers can only view data, operators can manage devices, admins have full access",
"created": "Created",
"last_login": "Last Login",
"never": "Never",
"actions": "Actions",
"create": "Create User",
"edit": "Edit",
"reset_password": "Reset Password",
"new_password": "New Password",
"delete_title": "Delete User",
"delete_confirm": "Are you sure you want to delete user {username}?",
"delete_success": "User deleted successfully",
"user_created": "User created successfully",
"user_updated": "User updated successfully",
"password_reset_success": "Password reset successfully",
"empty_title": "No users found",
"empty_text": "Add users to manage console access",
"fill_required": "Please fill in all required fields",
"invalid_username": "Username must be 3-32 characters, letters, numbers and underscores only",
"username_exists": "Username already exists",
"weak_password": "Password is too weak",
"password_too_short": "Password must be at least 8 characters",
"invalid_role": "Invalid role",
"cannot_demote_self": "You cannot demote yourself",
"cannot_delete_self": "You cannot delete your own account",
"last_admin": "Cannot delete the last administrator",
"admin_only": "This feature is only available to administrators",
"password_required": "Password is required",
"not_found": "User not found",
"strength_weak": "Weak",
"strength_medium": "Medium",
"strength_strong": "Strong",
"security_tips_title": "Security Best Practices",
"tip_strong_passwords": "Use strong, unique passwords for each user",
"tip_unique_accounts": "Create individual accounts for each person",
"tip_viewer_role": "Use viewer role for users who only need read access",
"tip_operator_role": "Use operator role for users who need to manage devices but not users",
"tip_audit_logs": "Review audit logs regularly for suspicious activity",
"role_pro": "Pro (API only)",
"role_super_admin": "Super Admin",
"role_server_admin": "Server Admin",
"role_global_admin": "Global Admin",
"organizations": "Organizations",
"user_organizations": "Organizations for {username}",
"no_organizations": "User is not assigned to any organization",
"org_removed": "Organization assignment removed"
},
"folders": {
"title": "Folders",
"create": "Create Folder",
"edit": "Edit Folder",
"delete": "Delete Folder",
"name": "Folder Name",
"name_placeholder": "Enter folder name",
"name_required": "Folder name is required",
"name_too_long": "Folder name is too long (max 50 characters)",
"color": "Color",
"icon": "Icon",
"not_found": "Folder not found",
"delete_confirm": "Are you sure you want to delete this folder? Devices will be unassigned.",
"delete_success": "Folder deleted successfully",
"created": "Folder created successfully",
"updated": "Folder updated successfully",
"no_devices_selected": "No devices selected",
"devices_moved": "Devices moved successfully",
"device_assigned": "Device assigned to folder",
"unassigned": "Unassigned",
"all_devices": "All Devices",
"drag_hint": "Drag devices to folders to organize them",
"move_to": "Move to",
"toggle_sidebar": "Toggle sidebar"
},
"errors": {
"forbidden_title": "Access Denied",
"forbidden_message": "You do not have permission to access this resource.",
"not_found_title": "Page Not Found",
"not_found_message": "The page you're looking for doesn't exist or has been moved.",
"server_error_title": "Server Error",
"server_error_message": "Something went wrong. Please try again later.",
"go_home": "Go Home",
"try_again": "Try Again",
"load_devices_failed": "Failed to load devices",
"load_key_failed": "Failed to load key",
"load_qr_failed": "Failed to load QR",
"load_audit_failed": "Failed to load audit log",
"load_users_failed": "Failed to load users",
"load_folders_failed": "Failed to load folders",
"download_failed": "Download failed",
"logout_failed": "Logout failed",
"password_change_failed": "Failed to change password",
"language_change_failed": "Failed to change language",
"ban_failed": "Failed to ban device",
"unban_failed": "Failed to unban device",
"delete_failed": "Failed to delete device",
"change_id_failed": "Failed to change device ID",
"bulk_delete_failed": "Failed to delete devices",
"sync_failed": "Failed to sync status",
"error": "Error",
"not_found": "Not found",
"server_error": "Server error",
"load_device_failed": "Failed to load device",
"load_orgs_failed": "Failed to load organizations"
},
"remote": {
"title": "Remote Desktop",
"connecting": "Connecting...",
"waiting_password": "Waiting for password",
"authenticating": "Authenticating...",
"streaming": "Connected",
"disconnected": "Disconnected",
"error": "Error",
"status_idle": "Idle",
"password_required": "Password Required",
"enter_password_for": "Enter password for device",
"password_placeholder": "Device password",
"connect": "Connect",
"reconnect": "Reconnect",
"disconnect": "Disconnect",
"back_to_devices": "Back to Devices",
"fullscreen": "Fullscreen",
"toggle_audio": "Toggle Audio",
"send_keys": "Send Keys",
"scale_mode": "Scale Mode",
"scale_fit": "Fit to Window",
"scale_fill": "Fill Window",
"scale_original": "Original Size (1:1)",
"scale_stretch": "Stretch to Fill",
"actions": "Actions",
"lock_screen": "Lock Screen",
"restart_remote": "Restart Remote Device",
"refresh_screen": "Refresh Screen",
"clipboard_paste": "Paste from Clipboard",
"block_input": "Block Input",
"display_settings": "Display Settings",
"image_quality": "Image Quality",
"quality_best": "Best (Full Quality, 60fps)",
"quality_balanced": "Balanced",
"quality_low": "Performance",
"show_cursor": "Show Remote Cursor",
"lock_after_session": "Lock After Session",
"privacy_mode": "Privacy Mode",
"disable_clipboard": "Disable Clipboard",
"chat": "Chat",
"chat_placeholder": "Type a message...",
"record": "Record Screen",
"view_only": "View Only",
"pin_toolbar": "Pin Toolbar",
"monitors": "Monitors",
"select_monitor": "Select Monitor",
"quality_speed": "Speed (Low Quality, 60fps)",
"quality_quality": "Quality (Best, 30fps)",
"recording_started": "Recording started",
"recording_stopped": "Recording stopped",
"download_recording": "Download Recording",
"e2e_encrypted": "End-to-End Encrypted",
"e2e_key_exchange": "Establishing secure channel...",
"confirm_restart": "Are you sure you want to restart the remote device?",
"webcodecs_not_supported": "Your browser does not support WebCodecs API. Please use Chrome 94+ or Edge 94+.",
"webcodecs_insecure_context": "WebCodecs unavailable over HTTP. Video uses software fallback. For best performance, use HTTPS.",
"webcodecs_fallback_active": "Software video decoder active (limited performance)",
"click_to_start": "Click to Start",
"autoplay_blocked": "Browser requires user interaction to start video and audio playback.",
"start_playback": "Start Playback",
"new_connection": "New Connection",
"device_id_placeholder": "Enter Device ID",
"http_warning": "HTTP mode: limited to H.264 software decode (~15 FPS). Use HTTPS for full performance (WebCodecs, VP9, 60 FPS).",
"file_transfer": "File Transfer",
"file_upload": "Upload",
"file_download": "Download",
"file_empty": "This folder is empty",
"file_transfers": "Transfers",
"file_complete": "Complete",
"file_error": "Transfer failed",
"file_show_hidden": "Show hidden files",
"file_new_folder": "New Folder",
"file_new_folder_prompt": "Enter folder name:",
"file_parent": "Parent folder",
"file_root": "Root",
"file_rename": "Rename",
"file_rename_prompt": "Enter new name:",
"file_delete_confirm": "Are you sure you want to delete this item?",
"file_cancelled": "Transfer cancelled",
"2fa_required": "2FA Verification Required",
"2fa_hint": "Enter the 6-digit code from your authenticator app",
"2fa_invalid": "Enter a valid 6-digit code",
"verify": "Verify"
},
"branding": {
"identity_title": "Brand Identity",
"identity_desc": "Customize the application name and description shown across the console",
"app_name": "Application Name",
"app_description": "Application Description",
"logo_title": "Logo",
"logo_desc": "Choose how your logo appears in the sidebar and login page",
"logo_type_icon": "Material Icon",
"logo_type_svg": "SVG Code",
"logo_type_image": "Image URL",
"logo_icon_name": "Icon Name",
"logo_icon_hint": "Enter a Material Icons name (e.g. dns, cloud, security). See fonts.google.com/icons",
"logo_svg_code": "SVG Code",
"logo_svg_hint": "Paste your SVG markup here. Supports full <svg> elements with paths and styles.",
"logo_image_upload": "Upload Image",
"logo_image_choose": "Choose image file",
"logo_image_hint": "PNG, JPG, GIF, WebP or SVG. Max 1.5 MB. The image is stored as base64 data.",
"logo_image_url": "Image Data / URL",
"logo_image_url_hint": "Auto-filled when you upload a file, or paste a URL manually.",
"logo_image_too_large": "Image is too large. Maximum size is 1.5 MB.",
"logo_image_invalid_type": "Invalid file type. Use PNG, JPG, GIF, WebP or SVG.",
"preview": "Preview",
"colors_title": "Color Scheme",
"colors_desc": "Customize the color palette. Leave empty to use defaults.",
"colors_backgrounds": "Backgrounds",
"colors_text": "Text",
"colors_accents": "Accent Colors",
"colors_borders": "Borders",
"import_export_title": "Import / Export",
"import_export_desc": "Save your theme as a JSON file or import one from another instance",
"export_theme": "Export Theme",
"import_theme": "Import Theme",
"reset_defaults": "Reset to Defaults",
"save_branding": "Save Branding",
"saved": "Branding saved successfully. Reloading...",
"exported": "Theme exported",
"imported": "Theme imported successfully. Reloading...",
"import_error": "Failed to import theme. Invalid file format.",
"reset_confirm": "Are you sure you want to reset branding to defaults? This cannot be undone.",
"reset_success": "Branding reset to defaults. Reloading...",
"logo_type_text": "Text Logo",
"logo_text": "Logo Text",
"logo_text_hint": "Primary text displayed as your brand logo",
"logo_text_accent": "Accent Text",
"logo_text_accent_hint": "Secondary text below the logo (e.g. product name or tagline)",
"logo_upload_success": "Logo uploaded successfully.",
"typography_title": "Typography",
"typography_desc": "Choose fonts for headings and body text. Fonts are downloaded to the server for self-hosting.",
"font_heading": "Heading Font",
"font_heading_hint": "Used for headings (H1H6) and text logo",
"font_body": "Body Font",
"font_body_hint": "Used for body text and UI elements",
"font_search_placeholder": "Search fonts...",
"font_system_default": "System default",
"font_clear": "Clear",
"font_cat_all": "All",
"font_downloaded_count": "fonts downloaded on server"
},
"device_detail": {
"tab_overview": "Overview",
"tab_tags": "Tags & Notes",
"tab_actions": "Actions",
"section_identity": "Identity",
"section_network": "Network",
"section_timestamps": "Timestamps",
"section_connect": "Connection",
"section_manage": "Management",
"folder": "Folder",
"status_tier": "Status Tier",
"device_banned": "This device is banned",
"no_reason": "No reason provided",
"tags": "Tags",
"no_tags": "No tags assigned to this device",
"tag_placeholder": "Enter a tag name...",
"add_tag": "Add",
"tag_exists": "This tag already exists",
"notes": "Notes",
"notes_placeholder": "Add notes about this device...",
"danger_zone": "Danger Zone",
"action_connect_web": "Web Remote",
"action_connect_web_desc": "Connect via browser remote desktop",
"action_native_remote": "BetterDesk Remote",
"action_native_remote_desc": "Native JPEG stream — no plugins required",
"action_connect_desktop": "Desktop Client",
"action_connect_desktop_desc": "Open in desktop client app",
"action_change_id_desc": "Change the device registration ID",
"action_ban_desc": "Block this device from connecting",
"action_unban_desc": "Allow this device to connect again",
"action_delete_desc": "Permanently remove this device",
"tab_hardware": "Hardware",
"tab_metrics": "Metrics",
"section_system": "System",
"section_cpu": "Processor",
"section_memory": "Memory",
"section_displays": "Displays",
"section_encoding": "Encoding Capabilities",
"section_live_metrics": "Live Metrics",
"section_current_usage": "Current Usage",
"section_usage_history": "Usage History",
"os": "Operating System",
"version": "Client Version",
"cpu_model": "CPU Model",
"cpu_cores": "CPU Cores",
"cpu_freq": "CPU Frequency",
"total_memory": "Total Memory",
"metric_memory": "Memory",
"metric_disk": "Disk",
"metrics_updated": "Updated",
"device_groups": "Groups",
"no_sysinfo": "No hardware information available",
"no_sysinfo_hint": "System info will appear after the device sends a sysinfo report",
"no_metrics": "No metrics data available",
"no_metrics_hint": "Metrics will appear after the device sends heartbeat reports",
"chart_oldest": "← Oldest",
"chart_newest": "Newest →"
},
"inventory": {
"title": "Inventory",
"subtitle": "Hardware and software inventory of managed devices",
"device_id": "Device ID",
"hostname": "Hostname",
"os": "Operating System",
"cpu": "CPU",
"cpu_cores": "CPU Cores",
"cpu_usage": "CPU Usage",
"memory": "Memory",
"memory_total": "Total Memory",
"memory_used": "Used Memory",
"memory_available": "Available Memory",
"memory_usage": "Memory Usage",
"swap": "Swap",
"disks": "Disks",
"disk_count": "Disk Count",
"network": "Network",
"network_interfaces": "Network Interfaces",
"software": "Software",
"software_count": "Installed Software",
"system": "System",
"kernel": "Kernel",
"architecture": "Architecture",
"uptime": "Uptime",
"frequency": "Frequency",
"physical_cores": "Physical Cores",
"logical_cores": "Logical Cores",
"model": "Model",
"usage": "Usage",
"total": "Total",
"used": "Used",
"available": "Available",
"mount_point": "Mount Point",
"removable": "removable",
"mac_address": "MAC Address",
"ip_addresses": "IP Addresses",
"traffic": "Traffic",
"collect_now": "Collect Now",
"collector_running": "Collector Running",
"collector_stopped": "Collector Stopped",
"last_upload": "Last upload",
"total_uploads": "total",
"last_seen": "Last Seen",
"collected_at": "Collected At",
"no_data": "No inventory data available yet. Click \"Collect Now\" to gather system information.",
"no_devices": "No devices with inventory data found",
"detail_title": "Device Inventory Detail",
"telemetry": "Telemetry",
"view_detail": "View Detail",
"export": "Export",
"refresh": "Refresh"
},
"tickets": {
"title": "Tickets",
"subtitle": "Support tickets and issue tracking",
"create": "New Ticket",
"edit": "Edit Ticket",
"delete": "Delete Ticket",
"detail": "Ticket Detail",
"ticket_id": "Ticket ID",
"ticket_title": "Title",
"description": "Description",
"status": "Status",
"priority": "Priority",
"category": "Category",
"assigned_to": "Assigned To",
"created_by": "Created By",
"device": "Device",
"sla_due": "SLA Due",
"created_at": "Created",
"updated_at": "Updated",
"resolved_at": "Resolved",
"closed_at": "Closed",
"status_open": "Open",
"status_in_progress": "In Progress",
"status_resolved": "Resolved",
"status_closed": "Closed",
"priority_low": "Low",
"priority_medium": "Medium",
"priority_high": "High",
"priority_critical": "Critical",
"category_general": "General",
"category_hardware": "Hardware",
"category_software": "Software",
"category_network": "Network",
"category_access": "Access",
"category_other": "Other",
"comments": "Comments",
"add_comment": "Add Comment",
"comment_placeholder": "Write a comment...",
"internal_note": "Internal note (not visible to end users)",
"attachments": "Attachments",
"upload_attachment": "Upload Attachment",
"download": "Download",
"connect_device": "Connect to Device",
"no_tickets": "No tickets found",
"no_comments": "No comments yet",
"no_attachments": "No attachments",
"title_required": "Title is required",
"delete_confirm": "Are you sure you want to delete ticket #{id}?",
"delete_success": "Ticket deleted successfully",
"created_success": "Ticket created successfully",
"updated_success": "Ticket updated successfully",
"sla_overdue": "SLA Overdue",
"filter_all": "All",
"search_placeholder": "Search tickets...",
"assign_to_me": "Assign to me",
"unassign": "Unassign",
"stats_total": "Total",
"stats_open": "Open",
"stats_in_progress": "In Progress",
"stats_resolved": "Resolved",
"stats_closed": "Closed"
},
"activity": {
"title": "Activity Monitoring",
"subtitle": "Application usage and idle tracking",
"device": "Device",
"hostname": "Hostname",
"sessions": "Sessions",
"idle_time": "Idle Time",
"active_time": "Active Time",
"last_report": "Last Report",
"top_apps": "Top Applications",
"app_name": "Application",
"window_title": "Window Title",
"category": "Category",
"duration": "Duration",
"started_at": "Started",
"ended_at": "Ended",
"session_count": "Session Count",
"total_active": "Total Active",
"total_idle": "Total Idle",
"detail_count": "Detail Records",
"no_data": "No activity data available",
"no_sessions": "No sessions",
"filter_from": "From",
"filter_to": "To",
"filter_apply": "Apply filter",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
"category_browser": "Browser",
"category_productivity": "Productivity",
"category_communication": "Communication",
"category_development": "Development",
"category_media": "Media",
"category_gaming": "Gaming",
"category_system": "System",
"category_other": "Other",
"summary": "Summary",
"details": "Details",
"refresh": "Refresh",
"search": "Search devices...",
"date_range": "Date Range",
"device_id": "Device ID",
"session_start": "Session Start",
"session_end": "Session End",
"user": "User",
"no_activity": "No activity recorded",
"reported_at": "Reported At",
"detail": "Detail",
"no_apps": "No applications"
},
"automation": {
"title": "Automation & Alerts",
"subtitle": "Alert rules, remote commands, and SMTP configuration",
"rules": "Alert Rules",
"rules_subtitle": "Define conditions that trigger notifications",
"alerts": "Alert History",
"alerts_subtitle": "View and acknowledge triggered alerts",
"commands": "Remote Commands",
"commands_subtitle": "Send commands to remote devices",
"smtp": "SMTP Configuration",
"smtp_subtitle": "Email notification settings",
"rule_name": "Rule Name",
"description": "Description",
"condition_type": "Condition Type",
"condition_op": "Operator",
"condition_value": "Threshold",
"severity": "Severity",
"scope_device": "Target Device",
"scope_all": "All Devices",
"cooldown": "Cooldown (seconds)",
"notify_emails": "Notification Emails",
"enabled": "Enabled",
"disabled": "Disabled",
"create_rule": "Create Rule",
"edit_rule": "Edit Rule",
"delete_rule": "Delete Rule",
"acknowledge": "Acknowledge",
"acknowledged": "Acknowledged",
"unacknowledged": "Unacknowledged",
"triggered_at": "Triggered At",
"severity_info": "Info",
"severity_warning": "Warning",
"severity_critical": "Critical",
"op_gt": "Greater than",
"op_gte": "Greater or equal",
"op_lt": "Less than",
"op_lte": "Less or equal",
"op_eq": "Equal to",
"op_neq": "Not equal to",
"type_cpu_usage": "CPU Usage (%)",
"type_memory_usage": "Memory Usage (%)",
"type_disk_usage": "Disk Usage (%)",
"type_offline_duration": "Offline Duration (s)",
"type_idle_duration": "Idle Duration (s)",
"type_custom": "Custom",
"command_type": "Command Type",
"command_payload": "Command / Script",
"command_result": "Result",
"command_status": "Status",
"send_command": "Send Command",
"status_pending": "Pending",
"status_running": "Running",
"status_completed": "Completed",
"status_failed": "Failed",
"smtp_host": "SMTP Host",
"smtp_port": "Port",
"smtp_secure": "Use TLS",
"smtp_user": "Username",
"smtp_pass": "Password",
"smtp_from": "From Address",
"smtp_test": "Test Connection",
"smtp_save": "Save Configuration",
"smtp_test_success": "Connection successful",
"smtp_test_failed": "Connection failed",
"no_rules": "No alert rules configured",
"no_alerts": "No alerts triggered",
"no_commands": "No commands sent",
"id_payload_required": "Device ID and payload are required",
"no_commands_sent": "No commands have been sent yet"
},
"file_transfer": {
"title": "File Transfer",
"transfers": "Transfers",
"new_transfer": "New Transfer",
"upload": "Upload",
"download": "Download",
"direction": "Direction",
"filename": "Filename",
"file_size": "File Size",
"mime_type": "MIME Type",
"progress": "Progress",
"status": "Status",
"device": "Device",
"initiated_by": "Initiated By",
"created_at": "Created At",
"cancel": "Cancel",
"cancel_confirm": "Are you sure you want to cancel this transfer?",
"download_file": "Download File",
"browse_files": "Browse Files",
"select_file": "Select File",
"select_device": "Select Device",
"no_transfers": "No file transfers",
"status_pending": "Pending",
"status_active": "Active",
"status_completed": "Completed",
"status_failed": "Failed",
"status_cancelled": "Cancelled",
"bytes_transferred": "Bytes Transferred",
"chunks": "Chunks",
"transfer_started": "Transfer started",
"transfer_completed": "Transfer completed",
"transfer_failed": "Transfer failed",
"transfer_cancelled": "Transfer cancelled",
"max_file_size": "Maximum file size: 4 GB",
"error_too_large": "File is too large",
"error_no_device": "No device selected",
"error_no_file": "No file selected"
},
"network": {
"title": "Network Monitoring",
"targets": "Monitoring Targets",
"add_target": "Add Target",
"edit_target": "Edit Target",
"delete_target": "Delete Target",
"delete_confirm": "Are you sure you want to delete this target?",
"target_name": "Name",
"host": "Host",
"port": "Port",
"url": "URL",
"check_type": "Check Type",
"timeout": "Timeout (ms)",
"interval": "Interval (ms)",
"enabled": "Enabled",
"status": "Status",
"last_check": "Last Check",
"last_rtt": "Last RTT",
"rtt_ms": "RTT (ms)",
"status_up": "Up",
"status_down": "Down",
"status_unknown": "Unknown",
"check_now": "Check Now",
"history": "Check History",
"stats": "Statistics",
"total_targets": "Total Targets",
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"type_ping": "Ping (ICMP)",
"type_tcp": "TCP Port",
"type_http": "HTTP",
"type_https": "HTTPS",
"tools": "Network Tools",
"ping_tool": "Ping Test",
"tcp_tool": "TCP Port Check",
"http_tool": "HTTP Check",
"dns_tool": "DNS Resolve",
"monitor_start": "Start Monitor",
"monitor_stop": "Stop Monitor",
"monitor_running": "Monitor is running",
"monitor_stopped": "Monitor is stopped",
"no_targets": "No monitoring targets configured",
"no_history": "No check history available",
"error_code": "Error",
"status_code": "HTTP Status Code",
"search_targets": "Search targets...",
"name": "Name",
"tab_targets": "Targets",
"tab_tools": "Tools",
"avg_latency": "Avg Latency",
"type": "Type",
"latency": "Latency",
"check_history": "Check History",
"name_host_required": "Name and host are required",
"uptime": "Uptime",
"response_time": "Response Time",
"avg_response": "Average Response",
"charts": "Charts",
"realtime": "Realtime",
"response_time_ms": "Response Time (ms)",
"uptime_percent": "Uptime %",
"last_24h": "Last 24 hours",
"last_7d": "Last 7 days",
"last_30d": "Last 30 days"
},
"dataguard": {
"title": "DataGuard — DLP",
"policies": "DLP Policies",
"add_policy": "Add Policy",
"edit_policy": "Edit Policy",
"delete_policy": "Delete Policy",
"delete_confirm": "Are you sure you want to delete this policy?",
"policy_name": "Name",
"policy_description": "Description",
"status": "Status",
"enabled": "Enabled",
"disabled": "Disabled",
"rules": "Rules",
"add_rule": "Add Rule",
"rule_type": "Rule Type",
"rule_type_usb": "USB Device",
"rule_type_file": "File Operation",
"action": "Action",
"action_allow": "Allow",
"action_block": "Block",
"action_log": "Log Only",
"filter": "Filter",
"vid": "Vendor ID (VID)",
"pid": "Product ID (PID)",
"serial": "Serial Number",
"device_class": "Device Class",
"drive_type": "Drive Type",
"file_extensions": "File Extensions",
"events": "DLP Events",
"event_source": "Source",
"event_source_usb": "USB",
"event_source_file": "File",
"event_type": "Event Type",
"event_details": "Details",
"no_policies": "No DLP policies configured",
"no_events": "No DLP events recorded",
"stats": "Statistics",
"total_events": "Total Events",
"blocked_events": "Blocked",
"logged_events": "Logged",
"usb_events": "USB Events",
"file_events": "File Events",
"device_id": "Device ID",
"policy_matched": "Policy Matched",
"timestamp": "Timestamp",
"drive_removable": "Removable",
"drive_fixed": "Fixed",
"drive_network": "Network",
"drive_cdrom": "CD-ROM",
"drive_unknown": "Unknown",
"total_policies": "Total Policies",
"active_policies": "Active Policies",
"violations": "Violations",
"blocked": "Blocked",
"tab_policies": "Policies",
"tab_events": "Events",
"search_policies": "Search policies...",
"create_policy": "Create Policy",
"policy_type": "Policy Type",
"scope": "Scope",
"events_count": "Events",
"search_events": "Search events...",
"event_time": "Event Time",
"device": "Device",
"policy": "Policy",
"detail": "Detail",
"scope_help": "Comma-separated device IDs, or leave empty for all",
"scope_all": "All Devices",
"active": "Active",
"type_file_type": "File Type",
"type_clipboard": "Clipboard",
"type_screen_share": "Screen Share",
"type_file_transfer": "File Transfer",
"policy_desc": "Policy Description",
"type_usb": "USB"
},
"reports": {
"title": "Reports",
"generate": "Generate Report",
"generate_csv": "Export CSV",
"report_type": "Report Type",
"type_devices": "Device Summary",
"type_activity": "Activity Summary",
"type_security": "Security Report",
"type_tickets": "Ticket Report",
"type_network": "Network Report",
"type_inventory": "Inventory Report",
"type_alerts": "Alert Report",
"saved": "Saved Reports",
"save_report": "Save Report",
"delete_report": "Delete Report",
"delete_confirm": "Are you sure you want to delete this saved report?",
"no_saved": "No saved reports",
"report_title": "Title",
"created_by": "Created By",
"created_at": "Created At",
"filters": "Filters",
"date_from": "From",
"date_to": "To",
"device_filter": "Device ID",
"generated_at": "Generated At",
"section": "Data Section",
"total_devices": "Total Devices",
"online": "Online",
"offline": "Offline",
"banned": "Banned",
"platform_distribution": "Platform Distribution",
"top_applications": "Top Applications",
"total_active": "Total Active Time",
"total_idle": "Total Idle Time",
"dlp_stats": "DLP Statistics",
"banned_devices": "Banned Devices",
"audit_logs": "Audit Logs",
"ticket_stats": "Ticket Statistics",
"category_distribution": "Category Distribution",
"priority_distribution": "Priority Distribution",
"targets_status": "Targets Status",
"os_distribution": "OS Distribution",
"avg_ram": "Average RAM",
"alert_rules": "Alert Rules",
"recent_alerts": "Recent Alerts",
"tab_generate": "Generate Report",
"tab_saved": "Saved Reports",
"type_devices_desc": "Overview of all devices, platforms and statuses",
"type_activity_desc": "Application usage and idle time summary",
"type_security_desc": "Ban actions, DLP events and audit logs",
"type_tickets_desc": "Ticket statistics and SLA performance",
"type_network_desc": "Network monitoring targets and uptime data",
"type_inventory_desc": "Hardware and software inventory summary",
"type_alerts_desc": "Alert rules and triggered alert history",
"report_name": "Report Name",
"format": "Format",
"save": "Save Report",
"preview": "Preview",
"download": "Download",
"delete_saved": "Delete Report",
"raw_json": "Raw JSON"
},
"tenants": {
"title": "Tenants",
"list": "Tenants",
"add_tenant": "Add Tenant",
"edit_tenant": "Edit Tenant",
"delete_tenant": "Delete Tenant",
"delete_confirm": "Are you sure you want to delete this tenant? All device and user assignments will be removed.",
"name": "Name",
"slug": "Slug",
"contact_name": "Contact Name",
"contact_email": "Contact Email",
"max_devices": "Max Devices",
"max_devices_hint": "0 = unlimited",
"notes": "Notes",
"active": "Active",
"inactive": "Inactive",
"devices": "Devices",
"users": "Users",
"assign_device": "Assign Device",
"assign_devices": "Assign Devices",
"remove_device": "Remove Device",
"assign_user": "Assign User",
"remove_user": "Remove User",
"no_tenants": "No tenants configured",
"no_devices": "No devices assigned to this tenant",
"no_users": "No users assigned to this tenant",
"stats": "Tenant Statistics",
"total_devices": "Total Devices",
"online_devices": "Online Devices",
"total_users": "Total Users",
"created_at": "Created At",
"updated_at": "Updated At",
"slug_exists": "Tenant slug already exists",
"total_tenants": "Total Tenants",
"active_tenants": "Active Tenants",
"search": "Search tenants...",
"create_tenant": "Create Tenant",
"detail": "Tenant Detail",
"contact": "Contact",
"enabled": "Enabled",
"disabled": "Disabled",
"max": "max",
"info": "Tenant Info",
"status": "Status"
},
"registrations": {
"title": "Device Registrations",
"subtitle": "Manage registration requests from devices discovered via LAN",
"search_placeholder": "Search by device ID, hostname or IP...",
"no_registrations": "No registration requests",
"col_device_id": "Device ID",
"col_hostname": "Hostname",
"col_platform": "Platform",
"col_ip": "IP Address",
"col_version": "Version",
"col_status": "Status",
"col_requested": "Requested",
"col_actions": "Actions",
"status_pending": "Pending",
"status_approved": "Approved",
"status_rejected": "Rejected",
"approve_btn": "Approve",
"approve_confirm": "Are you sure you want to approve this device? It will receive server credentials and can connect automatically.",
"approved_success": "Device registration approved successfully",
"reject_btn": "Reject",
"reject_title": "Reject Registration",
"reject_confirm": "Are you sure you want to reject this registration request?",
"reject_reason": "Reason (optional)",
"reject_reason_placeholder": "Enter reason for rejection...",
"rejected_success": "Device registration rejected",
"delete_confirm": "Are you sure you want to delete this registration record?",
"deleted_success": "Registration record deleted",
"enrollment_title": "Device Enrollment",
"enrollment_subtitle": "Pending enrollment requests from BetterDesk desktop clients",
"enrollment_empty": "No pending enrollment requests",
"enrollment_approve": "Approve",
"enrollment_reject": "Reject",
"enrollment_display_name": "Display Name",
"enrollment_display_name_placeholder": "Enter a name for this device...",
"enrollment_sync_mode": "Sync Mode",
"enrollment_sync_silent": "Silent — minimal telemetry",
"enrollment_sync_standard": "Standard — balanced sync",
"enrollment_sync_turbo": "Turbo — aggressive sync",
"enrollment_approved_success": "Device enrollment approved",
"enrollment_rejected_success": "Device enrollment rejected"
},
"backup": {
"title": "Backup",
"desc": "Download a full backup of your console configuration, users, groups, and settings. Go server peer data is included when the BetterDesk backend is active.",
"restore_title": "Restore",
"restore_desc": "Upload a previously downloaded backup file to restore console configuration. Select which sections to restore below.",
"stat_users": "Users",
"stat_settings": "Settings",
"stat_folders": "Folders",
"stat_groups": "Groups",
"stat_strategies": "Strategies",
"stat_backend": "Backend",
"download": "Download Backup",
"creating": "Creating backup...",
"download_success": "Backup downloaded successfully",
"upload": "Upload Backup",
"restore_confirm": "Are you sure you want to restore from this backup? Selected sections will be overwritten.",
"restore_success": "Backup restored successfully. Some changes may require a page reload.",
"restored": "Restored",
"skipped": "Skipped",
"backup_date": "Backup date",
"opt_settings": "Console settings",
"opt_branding": "Branding / Theme",
"opt_folders": "Device folders",
"opt_groups": "User & device groups",
"opt_addressbooks": "Address books",
"opt_users": "User accounts",
"opt_users_warning": "Destructive: replaces ALL user accounts with backup data. You may be logged out.",
"no_file": "No backup file selected",
"invalid_json": "Invalid backup file: not valid JSON",
"invalid_format": "Invalid backup file: not a BetterDesk backup"
},
"cdap": {
"device_detail": "CDAP Device",
"loading": "Loading...",
"loading_widgets": "Loading device widgets...",
"load_error": "Failed to load device data",
"connected": "Connected",
"disconnected": "Disconnected",
"device_offline_msg": "Device is currently offline. Widget values may be stale.",
"no_widgets": "No widgets available",
"no_widgets_desc": "This device has not registered a CDAP manifest with widget definitions.",
"command_log": "Command Log",
"clear_log": "Clear log",
"confirm_command": "Confirm Command",
"select_option": "Select",
"cdap_status": "CDAP Status",
"cdap_enabled": "CDAP Enabled",
"cdap_disabled": "CDAP Disabled",
"cdap_devices": "CDAP Devices",
"cdap_connections": "Active Connections",
"send_command": "Send Command",
"command_sent": "Command sent successfully",
"command_failed": "Failed to send command",
"devices_title": "CDAP Devices",
"devices_subtitle": "Connected devices via Custom Device Application Protocol",
"stat_connected": "Connected",
"stat_port": "Port",
"search_devices": "Search devices...",
"no_devices": "No devices connected",
"no_devices_desc": "No CDAP devices are currently connected. Devices will appear here once they connect to the gateway.",
"gateway_disabled": "CDAP Gateway Disabled",
"gateway_disabled_desc": "Enable the CDAP gateway by setting CDAP_ENABLED=true in the server configuration.",
"gateway_active": "Active",
"toggle_enable": "Enable CDAP",
"toggle_disable": "Disable CDAP",
"enabled_restart": "CDAP enabled. Server restart required to apply changes.",
"disabled_restart": "CDAP disabled. Server restart required to apply changes.",
"widgets": "widgets",
"type_all": "All",
"type_iot": "IoT",
"type_scada": "SCADA",
"type_os_agent": "OS Agent",
"type_network": "Network",
"type_camera": "Camera",
"type_custom": "Custom",
"active_alerts": "Active Alerts",
"alert_fired": "Alert fired",
"alert_cleared": "Alert cleared",
"no_alerts": "No active alerts",
"connect_terminal": "Connect Terminal",
"table_search": "Search...",
"just_now": "Just now",
"terminal_connecting": "Connecting to device...",
"terminal_disconnected": "Disconnected",
"terminal_error": "Terminal connection failed",
"linked_devices": "Linked Devices",
"link_device": "Link Device",
"unlink_device": "Unlink",
"no_linked_devices": "No linked devices",
"unlink_confirm": "Are you sure you want to unlink this device?",
"link_prompt": "Enter the Peer ID to link to this device:",
"connect_desktop": "Connect Desktop",
"connect_video": "Connect Stream",
"connect_files": "Browse Files",
"connect_audio": "Connect Audio",
"upload_file": "Upload",
"desktop_connecting": "Connecting...",
"video_connecting": "Connecting...",
"files_connecting": "Connecting...",
"audio_connecting": "Connecting...",
"audio_streaming": "Streaming",
"clipboard_in": "Clipboard received",
"clipboard_out": "Clipboard sent",
"monitor_select": "Select Monitor",
"keyframe_request": "Request Keyframe",
"quality_auto": "Auto Quality"
},
"desktop": {
"switch_mode": "Desktop Mode",
"console_mode": "Console Mode",
"loading": "Loading...",
"minimize": "Minimize",
"maximize": "Maximize",
"restore": "Restore",
"close": "Close",
"widgets_mode": "Widgets",
"windows_mode": "Windows",
"wallpaper": "Wallpaper",
"add_widget": "Add Widget",
"remove_widget": "Remove Widget",
"pop_out_widget": "Pop Out",
"pop_in_widget": "Pop In",
"configure": "Configure",
"search_widgets": "Search widgets...",
"cat_monitoring": "Monitoring",
"cat_devices": "Devices",
"cat_tools": "Tools",
"cat_general": "General",
"notes_placeholder": "Write notes here...",
"search_placeholder": "Search devices, pages, settings...",
"search_pages": "Pages",
"search_devices": "Devices",
"search_no_results": "No results",
"exit_desktop": "Exit Desktop Mode",
"refresh": "Refresh",
"widget_clock": "Clock",
"widget_device_status": "Device Status",
"widget_server_health": "Server Info",
"widget_system_stats": "Device Gauges",
"widget_device_list": "Device List",
"widget_quick_actions": "Quick Actions",
"widget_recent_activity": "Recent Activity",
"widget_notes": "Notes",
"widget_network_monitor": "Network Monitor",
"widget_tickets_summary": "Tickets",
"widget_iframe": "Web Embed",
"widget_cdap_devices": "CDAP Devices",
"widget_uptime": "Uptime",
"widget_port_status": "Port Status",
"widget_device_grid": "Device Grid",
"widget_multi_gauge": "Server Gauges",
"widget_weekly_chart": "Weekly Activity",
"widget_quick_controls": "Quick Controls",
"widget_bandwidth": "Bandwidth",
"widget_connection_stats": "Connection Stats",
"widget_weather": "Weather",
"widget_world_clock": "World Clock",
"widget_bookmarks": "Bookmarks",
"widget_user_sessions": "User Sessions",
"widget_alert_feed": "Alert Feed",
"label_online": "Online",
"label_offline": "Offline",
"label_total": "Total",
"label_blocked": "Blocked",
"label_banned": "Banned",
"label_active": "Active",
"label_service": "Service",
"label_port": "Port",
"label_uptime_prefix": "Uptime:",
"label_uptime": "Uptime",
"label_no_devices": "No devices",
"label_no_activity": "No activity",
"label_no_targets": "No targets",
"label_unavailable": "Unavailable",
"label_open": "Open",
"label_in_progress": "In Progress",
"label_resolved": "Resolved",
"label_set_url": "Set URL in config",
"label_server_uptime": "Server Uptime",
"label_merged_info": "Merged into Server Info widget",
"label_with_notes": "With Notes",
"label_metric": "Metric",
"label_count": "Count",
"label_total_devices": "Total Devices",
"label_throughput": "Throughput",
"label_active_relays": "Active Relays",
"label_total_relayed": "Total Relayed",
"label_total_bytes": "Total Bytes",
"label_filter_devices": "Filter devices...",
"label_all": "All",
"label_ban": "Ban",
"label_unban": "Unban",
"label_connect": "Connect",
"label_no_cdap_devices": "No CDAP devices",
"action_add_widget": "Add Widget",
"label_merged_server_info": "Merged into Server Info widget",
"wp_images": "Images",
"wp_colors": "Solid Colors",
"wp_custom_color": "Custom color",
"wp_fit_style": "Style",
"wp_fill": "Fill",
"wp_fit": "Fit",
"wp_stretch": "Stretch",
"wp_center": "Center",
"wp_unavailable": "Wallpaper images are not installed on this server.",
"wp_download_hint": "Place PNG images in the public/wallpapers/ directory to enable wallpaper selection.",
"widget_calendar": "Calendar",
"widget_process_monitor": "Process Monitor",
"widget_disk_usage": "Disk Usage",
"widget_log_viewer": "Log Viewer",
"widget_speed_test": "Speed Test",
"widget_database_stats": "Database Stats",
"widget_docker_containers": "Docker Containers",
"widget_shell_command": "Shell Command",
"widget_device_map": "Device Map",
"widget_remote_connect": "Remote Connect",
"label_no_online": "No online devices",
"label_no_events": "No events today",
"label_event_title": "Event title:",
"label_no_data": "No data available",
"label_download_speed": "Download Speed",
"label_latency": "Latency",
"label_server": "Server",
"label_run_test": "Run Test",
"label_testing": "Testing...",
"label_table": "Table",
"label_rows": "Rows",
"label_last_backup": "Last Backup",
"label_no_containers": "No containers",
"label_docker_unavailable": "Docker not available",
"label_no_command": "No command configured",
"label_no_output": "No output yet",
"label_run": "Run",
"label_presets": "Presets",
"label_save_preset": "Save Preset",
"label_load_preset": "Load Preset",
"label_preset_name": "Preset name:",
"label_preset_monitoring": "Monitoring",
"label_preset_helpdesk": "Helpdesk",
"label_preset_minimal": "Minimal",
"label_preset_developer": "Developer",
"label_snap_layout": "Snap Layout",
"label_auto_arrange": "Auto Arrange",
"label_zone_layout": "Zone Layout",
"label_2col_equal": "2 Columns (Equal)",
"label_2col_wide": "2 Columns (60/40)",
"label_3col": "3 Columns",
"label_2x2_grid": "2Ă—2 Grid",
"label_1_2": "1 + 2",
"label_1_3": "1 + 3",
"widget_group": "Widget Group",
"ungroup_widgets": "Ungroup Widgets",
"group_widgets": "Group Selected Widgets",
"snap_layouts": "Snap Layouts",
"snap_left": "Snap Left",
"snap_right": "Snap Right",
"snap_top_left": "Snap Top-Left",
"snap_top_right": "Snap Top-Right",
"snap_bottom_left": "Snap Bottom-Left",
"snap_bottom_right": "Snap Bottom-Right",
"aero_shake": "Shake to Minimize Others",
"zone_resize": "Drag border to resize zones",
"zone_borders": "Draggable Zone Borders",
"app_drawer": "Applications",
"search_apps": "Search apps...",
"edit_shortcuts": "Edit shortcuts",
"widgets": "Widgets",
"theme": "Theme",
"fullscreen": "Fullscreen",
"help": "Help"
},
"desktop_login": {
"click_to_sign_in": "Click anywhere or press a key to sign in",
"username_placeholder": "Username",
"password_placeholder": "Password",
"sign_in": "Sign in",
"verify": "Verify",
"totp_title": "Two-Factor Authentication",
"totp_subtitle": "Enter the 6-digit code from your authenticator app",
"back_to_login": "Back to login",
"fill_all_fields": "Please fill in all fields",
"invalid_credentials": "Invalid username or password",
"invalid_code": "Invalid verification code",
"enter_6_digits": "Enter all 6 digits",
"network_error": "Network error — check your connection",
"session_expired": "Session expired. Please sign in again."
},
"tokens": {
"title": "Device Tokens",
"subtitle": "Manage enrollment tokens for automated device provisioning",
"enrollment_mode": "Enrollment Mode",
"mode_open": "Open",
"mode_open_desc": "Any device can register without a token",
"mode_managed": "Managed",
"mode_managed_desc": "Devices need a valid token to register",
"mode_locked": "Locked",
"mode_locked_desc": "No new device registrations allowed",
"total": "Total Tokens",
"active": "Active",
"used": "Used",
"revoked": "Revoked",
"search_placeholder": "Search tokens...",
"status_pending": "Pending",
"status_active": "Active",
"status_used": "Used",
"status_revoked": "Revoked",
"status_expired": "Expired",
"bulk_generate": "Bulk Generate",
"create": "Create Token",
"edit": "Edit Token",
"token": "Token",
"name": "Name",
"status": "Status",
"uses": "Uses",
"bound_peer": "Bound Peer",
"expires": "Expires",
"created": "Created",
"actions": "Actions",
"name_placeholder": "e.g. Office PC batch",
"max_uses": "Max Uses",
"max_uses_hint": "0 = unlimited",
"expires_in": "Expires In",
"no_expiration": "No expiration",
"expires_1h": "1 hour",
"expires_24h": "24 hours",
"expires_7d": "7 days",
"expires_30d": "30 days",
"note": "Note",
"note_placeholder": "Optional note about this token...",
"count": "Count",
"count_range": "Number of tokens to generate (1-100)",
"name_prefix": "Name Prefix",
"generate": "Generate",
"token_created": "Token Created",
"tokens_generated": "Tokens Generated",
"copy_warning": "Copy the token now. It will not be shown again.",
"copy_token": "Copy Token",
"copied": "Copied!",
"revoke": "Revoke",
"revoke_confirm": "Are you sure you want to revoke this token? Devices already registered with it will not be affected.",
"revoked_success": "Token revoked successfully",
"no_tokens": "No tokens found",
"expired": "Expired",
"never": "Never",
"save": "Save",
"cancel": "Cancel",
"unlimited": "Unlimited"
},
"tutorial": {
"next": "Next",
"prev": "Previous",
"skip": "Skip",
"finish": "Finish",
"close": "Close",
"step_of": "{current} of {total}",
"console_sidebar_title": "Navigation Sidebar",
"console_sidebar_text": "Access all modules from here. Click any icon to navigate to that section. The sidebar adapts to your screen size.",
"console_expand_title": "Expand Sidebar",
"console_expand_text": "Click here to expand the sidebar and see full labels for all navigation items. Click again to collapse.",
"console_search_title": "Quick Search",
"console_search_text": "Search for devices, settings, or actions quickly. Press Ctrl+K for keyboard shortcut.",
"console_dashboard_title": "Dashboard",
"console_dashboard_text": "Your central hub showing server status, online devices, and quick actions. Keep an eye on important metrics at a glance.",
"console_devices_title": "Device Management",
"console_devices_text": "View, search, and manage all connected devices. Filter by status, assign tags, and configure individual device settings.",
"console_settings_title": "Settings",
"console_settings_text": "Configure server behavior, security options, branding, and user management. Customize BetterDesk to fit your needs.",
"console_desktop_title": "Desktop Mode",
"console_desktop_text": "Switch to desktop mode for a windowed workspace with widgets. Perfect for multi-tasking and monitoring dashboards.",
"console_complete_title": "You're Ready!",
"console_complete_text": "Explore the sidebar categories to discover all features. Click the Help icon anytime to restart this guide.",
"desktop_topbar_title": "Top Bar",
"desktop_topbar_text": "The top bar shows the clock, quick controls, and access to the app drawer. Click the grid icon to browse all apps.",
"desktop_drawer_title": "App Drawer",
"desktop_drawer_text": "Open the app drawer to search and launch any console function as a floating window. Apps are organized by category.",
"desktop_widgets_title": "Widget Dashboard",
"desktop_widgets_text": "Your customizable workspace. Widgets display live information and provide quick access to features. Drag to rearrange.",
"desktop_add_widget_title": "Add Widgets",
"desktop_add_widget_text": "Click here to browse available widgets. Choose from monitoring displays, device lists, notes, and more.",
"desktop_taskbar_title": "Taskbar",
"desktop_taskbar_text": "Open apps appear here. Click to focus or minimize windows. Hover icons to see app labels.",
"desktop_snap_title": "Snap Layouts",
"desktop_snap_text": "Drag windows to screen edges to snap them into position, or hover the maximize button for layout presets. Try Aero Shake!",
"desktop_windows_title": "App Windows",
"desktop_windows_text": "Apps open in draggable, resizable windows. Minimize, maximize, or close from the title bar. Windows layer above widgets.",
"desktop_search_title": "Quick Search",
"desktop_search_text": "Search across devices, pages, and settings. Press Ctrl+K anywhere to open search instantly.",
"desktop_complete_title": "Desktop Mode Ready!",
"desktop_complete_text": "Try opening apps from the drawer and arranging windows side-by-side. Use widget presets for quick dashboard layouts.",
"devices_folders_title": "Device Folders",
"devices_folders_text": "Organize devices into folders. Click a folder to filter the list. Right-click to rename or delete.",
"devices_search_title": "Search & Filter",
"devices_search_text": "Search by ID, hostname, or platform. Use the status pills to show only online, offline, or all devices.",
"devices_table_title": "Device List",
"devices_table_text": "Click any device row for details. Use the kebab menu on the right for quick actions like connect, edit tags, or delete.",
"devices_complete_title": "Device Management Ready!",
"devices_complete_text": "Drag devices between folders to organize them. Double-click a device to open its detail panel.",
"settings_tabs_title": "Settings Categories",
"settings_tabs_text": "Navigate between General, Security, Appearance, and other configuration sections.",
"settings_content_title": "Configuration",
"settings_content_text": "Each section contains specific server and console settings. Changes are saved when you click Save.",
"settings_complete_title": "Settings Overview",
"settings_complete_text": "Check Security settings for 2FA, API keys and user management. Visit Appearance to customize the console look.",
"help": "Help & Tutorials",
"tour_console": "Console Tour",
"tour_desktop": "Desktop Mode Tour",
"tour_devices": "Devices Tour",
"tour_settings": "Settings Tour",
"reset_all": "Reset All Tutorials",
"tour_remote": "Remote Session Tour",
"tour_organization": "Organization Setup",
"tour_cdap": "CDAP Overview",
"tour_chat": "Chat Basics",
"remote_toolbar_title": "Remote Toolbar",
"remote_toolbar_text": "Access display controls, clipboard sync, special keys, and quality settings from the toolbar. Toggle fullscreen with F11.",
"remote_canvas_title": "Remote Display",
"remote_canvas_text": "This is the remote screen. Click inside to start controlling the remote device. Mouse and keyboard input are forwarded automatically.",
"remote_clipboard_title": "Clipboard Sync",
"remote_clipboard_text": "Copy and paste text between your computer and the remote device. Use Ctrl+C / Ctrl+V as normal while focused on the remote display.",
"remote_complete_title": "Remote Session Ready!",
"remote_complete_text": "Use the toolbar buttons for special keys (Ctrl+Alt+Del, PrintScreen) and monitor switching. Press Escape or click Disconnect to end the session.",
"org_overview_title": "Organizations",
"org_overview_text": "Organizations let you group users, devices, and policies. Each organization has its own admin, operators, and settings.",
"org_create_title": "Create Organization",
"org_create_text": "Click here to create a new organization. Provide a name, slug, and optional description. You will be the owner of the new organization.",
"org_members_title": "Manage Members",
"org_members_text": "Invite users by email, assign roles (admin, operator, user), and manage access. Members can see devices assigned to their organization.",
"org_devices_title": "Assign Devices",
"org_devices_text": "Add devices to the organization. Devices assigned here will inherit the organization's policies and be visible to its members.",
"org_policies_title": "Organization Policies",
"org_policies_text": "Set security policies like password requirements, session timeouts, 2FA enforcement, and device enrollment rules for the organization.",
"org_complete_title": "Organization Setup Complete!",
"org_complete_text": "Invite your team and assign devices to start using organization-scoped management. Policies apply automatically to all members.",
"cdap_devices_title": "CDAP Devices",
"cdap_devices_text": "View all connected CDAP devices — IoT sensors, PLCs, bridges, and custom agents. Green indicators show live connections.",
"cdap_widgets_title": "Widget Dashboard",
"cdap_widgets_text": "Widgets display real-time data from devices. Gauges, toggles, LEDs, charts — each widget type visualizes a different kind of data.",
"cdap_commands_title": "Send Commands",
"cdap_commands_text": "Interact with devices by sending commands. Some commands need confirmation. The command log keeps a history of all sent commands.",
"cdap_terminal_title": "Device Terminal",
"cdap_terminal_text": "Open a terminal session to CDAP agents for advanced diagnostics or manual configuration. Type commands directly.",
"cdap_complete_title": "CDAP Overview Complete!",
"cdap_complete_text": "Explore device widgets, send commands, and use the terminal or file browser for deeper management. CDAP agents report metrics automatically.",
"chat_contacts_title": "Contacts & Groups",
"chat_contacts_text": "See your contacts and chat groups. Click any contact to open a conversation. Green dots indicate online users.",
"chat_send_title": "Send Messages",
"chat_send_text": "Type your message and press Enter to send. Messages are end-to-end encrypted when both parties support E2E.",
"chat_file_title": "Share Files",
"chat_file_text": "Click the attachment icon to share files. Files are encrypted and can be up to 50 MB.",
"chat_complete_title": "Chat Ready!",
"chat_complete_text": "Chat with operators and end users in real time. Create groups for team communication. All messages support read receipts."
},
"help_request": {
"title": "Help Requests",
"subtitle": "Manage incoming help requests from desktop clients",
"new_request": "New Help Request",
"device": "Device",
"hostname": "Hostname",
"message": "Message",
"status": "Status",
"pending": "Pending",
"accepted": "Accepted",
"resolved": "Resolved",
"accept": "Accept",
"resolve": "Resolve",
"no_requests": "No help requests",
"notification": "Help request received from",
"stats_total": "Total",
"filter_all": "All"
},
"organizations": {
"title": "Organizations",
"create": "Create Organization",
"edit": "Edit Organization",
"detail": "Organization Details",
"name": "Name",
"slug": "Slug (URL-safe)",
"logo_url": "Logo URL",
"users": "Users",
"devices": "Devices",
"invitations": "Invitations",
"settings": "Settings",
"add_user": "Add User",
"assign_device": "Assign Device",
"create_invitation": "Create Invitation",
"delete_confirm": "Delete this organization? This will remove all associated users, devices, and settings.",
"no_orgs": "No organizations yet",
"no_orgs_hint": "Create your first organization to start managing devices and users.",
"connection_policy": "Connection Policy",
"allow_file_transfer": "Allow File Transfer",
"allow_clipboard": "Allow Clipboard",
"max_session_duration": "Max Session Duration (min)",
"role_owner": "Owner",
"role_admin": "Admin",
"role_operator": "Operator",
"role_user": "User",
"username": "Username",
"password": "Password",
"display_name": "Display Name",
"email": "Email",
"role": "Role",
"last_login": "Last Login",
"actions": "Actions",
"device_id": "Device ID",
"department": "Department",
"building": "Building",
"location": "Location",
"assigned_user": "Assigned User",
"token": "Token",
"expires": "Expires",
"used": "Used",
"no_users": "No users in this organization.",
"no_devices": "No devices assigned to this organization.",
"no_invitations": "No invitations.",
"user_added": "User added",
"user_removed": "User removed",
"user_updated": "User role updated",
"device_assigned": "Device assigned",
"device_unassigned": "Device unassigned",
"invitation_created": "Invitation created",
"settings_saved": "Settings saved",
"org_deleted": "Organization deleted",
"confirm_remove_user": "Remove this user from the organization?",
"confirm_unassign_device": "Unassign this device from the organization?",
"confirm_delete_org": "Delete this organization and all associated data?",
"edit_role": "Edit Role",
"raw_settings": "Raw Settings",
"key": "Key",
"value": "Value",
"save": "Save Settings",
"policy_unattended": "Unattended (instant)",
"policy_attended": "Attended (with confirmation)",
"policy_ask": "Always ask",
"expires_hours": "Expiration (hours)",
"loading_failed": "Failed to load organization data",
"name_slug_required": "Name and slug are required",
"org_created": "Organization created",
"org_updated": "Organization updated",
"create_new_user": "Create New",
"add_existing_user": "Add Existing",
"none_available": "none",
"select_user": "Select user",
"org_role": "Organization Role",
"link_user_hint": "Selected user will be linked to this organization using their server account credentials.",
"no_available_users": "All server users are already linked to this organization.",
"user_linked": "User linked to organization"
},
"chat": {
"e2e_enabled": "End-to-end encrypted",
"e2e_establishing": "Establishing secure channel...",
"e2e_established": "Secure channel established",
"e2e_unsupported": "E2E encryption not supported in this browser",
"typing_indicator": "typing...",
"read_receipt": "Read",
"delivered": "Delivered",
"file_share": "File",
"file_too_large": "File too large (max 50MB)",
"file_encrypted": "Encrypted file transfer",
"presence_online": "Online",
"presence_away": "Away",
"presence_busy": "Busy",
"presence_offline": "Offline",
"key_rotation": "Security keys rotated",
"new_message": "New message",
"title": "Chat",
"contacts": "Contacts",
"groups": "Groups",
"no_contacts": "No contacts yet",
"no_groups": "No groups yet",
"no_messages": "No messages yet",
"no_results": "No results found",
"select_conversation": "Select a conversation to start chatting",
"type_message": "Type a message...",
"send": "Send",
"attach_file": "Attach file",
"emoji": "Emoji",
"search_messages": "Search messages",
"create_group": "Create group",
"group_name": "Group name",
"group_members": "Members",
"cancel": "Cancel",
"create": "Create",
"members": "members",
"today": "Today",
"yesterday": "Yesterday",
"react": "React",
"my_presence": "My status",
"search_placeholder": "Search contacts & messages",
"select_conversation_hint": "Select a conversation to view messages",
"info": "Info",
"group_name_placeholder": "Enter group name"
},
"toast": {
"device_connected": "Device connected",
"device_disconnected": "Device disconnected",
"session_started": "Remote session started",
"session_ended": "Remote session ended",
"file_upload_complete": "File upload complete",
"settings_saved": "Settings saved",
"error_generic": "An error occurred",
"connection_lost": "Connection lost",
"reconnecting": "Reconnecting..."
},
"theme": {
"dark": "Dark",
"light": "Light",
"auto": "System",
"title": "Theme"
},
"days": {
"mon": "Mon",
"tue": "Tue",
"wed": "Wed",
"thu": "Thu",
"fri": "Fri",
"sat": "Sat",
"sun": "Sun"
},
"toolkit": {
"title": "Toolkit",
"subtitle": "Admin utilities and diagnostic tools",
"cat_network": "Network",
"cat_crypto": "Crypto",
"cat_encoding": "Encoding",
"cat_system": "System",
"host": "Host",
"port": "Port",
"domain": "Domain",
"run": "Run",
"generate": "Generate",
"encode": "Encode",
"decode": "Decode",
"send": "Send",
"refresh": "Refresh",
"algorithm": "Algorithm",
"input_text": "Input Text",
"enter_text": "Enter text...",
"length": "Length",
"options": "Options",
"source": "Source",
"lines": "Lines",
"log_console": "Console",
"log_go": "Go Server",
"mac_address": "MAC Address",
"broadcast": "Broadcast",
"ping_title": "Ping",
"ping_desc": "Check host reachability and latency",
"tcp_title": "TCP Port Check",
"tcp_desc": "Test TCP port connectivity",
"ssl_title": "SSL Inspector",
"ssl_desc": "Inspect SSL/TLS certificate details",
"http_title": "HTTP Health Check",
"http_desc": "Verify HTTP endpoint status",
"dns_title": "DNS Lookup",
"dns_desc": "Resolve hostname to IP address",
"whois_title": "DNS Records",
"whois_desc": "Query A, AAAA, MX, TXT, NS records",
"speed_title": "Speed Test",
"speed_desc": "Measure download bandwidth",
"run_speed_test": "Run Speed Test",
"wol_title": "Wake-on-LAN",
"wol_desc": "Send magic packet to wake a device",
"wol_sent": "Magic packet sent",
"hash_title": "Hash Generator",
"hash_desc": "Generate cryptographic hashes",
"password_title": "Password Generator",
"password_desc": "Generate a secure random password",
"jwt_title": "JWT Decoder",
"jwt_desc": "Decode and inspect JSON Web Tokens",
"jwt_token": "JWT Token",
"base64_title": "Base64",
"base64_desc": "Encode or decode Base64 data",
"url_title": "URL Encoder",
"url_desc": "Encode or decode URL components",
"processes_title": "Process List",
"processes_desc": "View running system processes",
"disk_title": "Disk Usage",
"disk_desc": "View disk partition usage",
"db_title": "Database Stats",
"db_desc": "View database table statistics",
"docker_title": "Docker Containers",
"docker_desc": "View running Docker containers",
"logs_title": "Log Viewer",
"logs_desc": "View recent log output",
"ip_address": "IP",
"latency": "Latency",
"ttl": "TTL",
"status": "Status",
"resolved": "Resolved",
"subject": "Subject",
"issuer": "Issuer",
"valid_from": "Valid From",
"valid_to": "Valid To",
"days_left": "Days Left",
"days": "days",
"protocol": "Protocol",
"cipher": "Cipher",
"alt_names": "SANs",
"chain": "Chain",
"record_type": "Type",
"record_value": "Value",
"hash_value": "Hash",
"entropy": "Entropy",
"very_strong": "Very Strong",
"strong": "Strong",
"weak": "Weak",
"expiry": "Expiry",
"expired": "Expired",
"valid": "Valid",
"process_name": "Name",
"db_type": "Type",
"db_size": "Size",
"table_name": "Table",
"row_count": "Rows",
"no_data": "No data available",
"no_docker": "No Docker containers found or Docker not available",
"no_logs": "No log lines available"
},
"policies": {
"title": "Organization Policies",
"subtitle": "Manage security, connection, and feature policies for your organizations",
"select_org": "Organization",
"select_org_placeholder": "Select an organization...",
"select_org_first": "Select an organization to view policy audit log.",
"configured": "Configured",
"connection_title": "Connection Policy",
"connection_desc": "Control how remote sessions are established",
"connection_mode": "Connection Mode",
"mode_attended": "Attended (requires user approval)",
"mode_unattended": "Unattended (always allow)",
"mode_ask": "Always Ask",
"max_session": "Max Session Duration (minutes)",
"idle_lock": "Idle Lock Timeout (minutes)",
"wallpaper_policy": "Wallpaper During Session",
"wallpaper_show": "Show",
"wallpaper_hide_session": "Hide during session",
"wallpaper_hide_always": "Always hide",
"features_title": "Feature Policy",
"features_desc": "Enable or disable specific features for devices",
"allow_file_transfer": "Allow File Transfer",
"allow_clipboard": "Allow Clipboard Sync",
"allow_audio": "Allow Audio Streaming",
"allow_recording": "Allow Session Recording",
"security_title": "Security Policy",
"security_desc": "Enforce security requirements for organization devices",
"require_2fa": "Require 2FA for Unattended Access",
"password_min_length": "Minimum Password Length",
"password_require_special": "Require Special Characters",
"password_max_age": "Password Max Age (days, 0=never)",
"allowed_operators": "Allowed Operator Roles (comma-separated)",
"network_title": "Network Policy",
"network_desc": "Control relay servers and direct connections",
"block_direct_p2p": "Block Direct P2P (force relay)",
"allowed_relays": "Allowed Relay Servers (one per line)",
"ip_allowlist": "IP Allowlist (CIDR, one per line)",
"update_title": "Update Policy",
"update_desc": "Control automatic updates and update channels",
"auto_update": "Enable Auto-Update",
"update_channel": "Update Channel",
"audit_title": "Policy Changes",
"audit_desc": "Recent policy change history",
"no_audit": "No policy changes recorded."
},
"attestation": {
"title": "Device Attestation",
"subtitle": "Monitor device identity verification and hardware fingerprints",
"verified": "Verified",
"pending": "Pending",
"failed": "Failed",
"device_list": "Device Attestation Records",
"device_list_desc": "Hardware fingerprints and identity verification status",
"col_device": "Device ID",
"col_hostname": "Hostname",
"col_fingerprint": "Fingerprint",
"col_status": "Status",
"col_last_check": "Last Check",
"col_actions": "Actions",
"no_records": "No attestation records found."
},
"fleet": {
"title": "Fleet Management",
"tab_resources": "Resources",
"tab_tasks": "Tasks",
"tab_builder": "Workflow Builder",
"tab_compliance": "Compliance",
"res_title": "Resource Mapping",
"res_all_types": "All Types",
"res_type_printer": "Printer",
"res_type_network_drive": "Network Drive",
"res_type_dns": "DNS Server",
"res_type_proxy": "Proxy",
"res_type_vpn": "VPN",
"res_add": "Add Resource",
"res_name": "Resource Name",
"res_type": "Type",
"res_address": "Address / Path",
"res_target": "Target",
"res_scope": "Scope",
"res_scope_org": "Organization",
"res_scope_group": "Group",
"res_scope_device": "Device",
"res_scope_value": "Scope Value",
"res_status": "Status",
"res_active": "Active",
"res_inactive": "Inactive",
"res_no_data": "No resources found. Click 'Add Resource' to create one.",
"res_confirm_delete": "Are you sure you want to delete this resource?",
"task_title": "Task Scheduler",
"task_all_status": "All Status",
"task_status_pending": "Pending",
"task_status_running": "Running",
"task_status_success": "Success",
"task_status_failed": "Failed",
"task_search": "Search tasks…",
"task_create": "Create Task",
"task_name": "Task Name",
"task_type": "Type",
"task_type_script": "Script",
"task_type_install": "Install",
"task_type_update": "Update",
"task_type_restart": "Restart",
"task_type_deploy": "Deploy",
"task_type_scan": "Scan",
"task_targets": "Targets",
"task_targets_help": "Device IDs or group names, comma-separated",
"task_schedule": "Schedule",
"task_schedule_once": "Once",
"task_schedule_cron": "Cron",
"task_schedule_interval": "Interval",
"task_schedule_value": "Schedule Value",
"task_script": "Script / Command",
"task_retries": "Retries",
"task_timeout": "Timeout (s)",
"task_last_run": "Last Run",
"task_no_data": "No tasks found. Click 'Create Task' to get started.",
"task_confirm_delete": "Are you sure you want to delete this task?",
"task_output": "Task Output",
"task_retry": "Retry",
"builder_title": "Visual Workflow Builder",
"builder_select_workflow": "Select workflow…",
"builder_new": "New",
"builder_save": "Save",
"builder_export": "Export",
"builder_execute": "Execute",
"builder_dry_run": "Dry Run",
"builder_triggers": "Triggers",
"builder_conditions": "Conditions",
"builder_actions": "Actions",
"builder_results": "Results",
"builder_transforms": "Transforms",
"builder_properties": "Properties",
"builder_no_selection": "Select a node to edit its properties.",
"builder_node_trigger_manual": "Manual Trigger",
"builder_node_trigger_schedule": "Schedule",
"builder_node_trigger_event": "Event Trigger",
"builder_node_cond_os": "OS Check",
"builder_node_cond_threshold": "Threshold",
"builder_node_cond_time_window": "Time Window",
"builder_node_action_script": "Run Script",
"builder_node_action_install": "Install SW",
"builder_node_action_restart": "Restart Svc",
"builder_node_action_file_deploy": "Deploy File",
"builder_node_action_message": "Send Message",
"builder_node_result_log": "Log Output",
"builder_node_result_alert": "Send Alert",
"builder_node_result_chain": "Chain Workflow",
"builder_node_transform_parse": "Parse JSON",
"builder_node_transform_filter": "Filter",
"builder_node_transform_delay": "Delay",
"workflow_name": "Workflow name:",
"comp_title": "Software Compliance",
"comp_compliant": "Compliant",
"comp_warning": "Warning",
"comp_critical": "Critical",
"comp_score": "Avg. Score",
"comp_device": "Device",
"comp_hostname": "Hostname",
"comp_os": "OS",
"comp_score_col": "Score",
"comp_issues": "Issues",
"comp_last_scan": "Last Scan",
"comp_scan": "Scan",
"comp_scan_all": "Scan All",
"comp_remediate": "Remediate",
"comp_remediate_confirm": "Run auto-remediation on this device?",
"comp_no_data": "No compliance data available. Run a scan to get started.",
"save": "Save",
"cancel": "Cancel",
"close": "Close",
"edit": "Edit",
"delete": "Delete",
"actions": "Actions",
"all_orgs": "All Organizations",
"select_org_placeholder": "Select organization",
"all_types": "All Types",
"type_printer": "Printer",
"type_network_drive": "Network Drive",
"type_dns": "DNS Server",
"type_vpn": "VPN",
"type_proxy": "Proxy",
"add_resource": "Add Resource",
"edit_resource": "Edit Resource",
"col_name": "Name",
"col_type": "Type",
"col_target": "Target",
"col_scope": "Scope",
"col_status": "Status",
"col_actions": "Actions",
"no_resources": "No resources found.",
"active": "Active",
"inactive": "Inactive",
"address": "Address / Path",
"scope_org": "Organization",
"scope_group": "Group",
"scope_device": "Device",
"scope_value": "Scope Value",
"scope_value_hint": "Organization, group, or device ID",
"confirm_delete": "Are you sure you want to delete this item?",
"all_statuses": "All Statuses",
"status_pending": "Pending",
"status_running": "Running",
"status_success": "Success",
"status_failed": "Failed",
"search_tasks": "Search tasks",
"create_task": "Create Task",
"edit_task": "Edit Task",
"col_task_name": "Task Name",
"col_task_type": "Type",
"col_schedule": "Schedule",
"col_last_run": "Last Run",
"no_tasks": "No tasks found.",
"task_type_file_deploy": "File Deploy",
"task_type_registry": "Registry",
"target_devices": "Target Devices",
"target_hint": "Device IDs or group names",
"schedule_immediate": "Immediate",
"schedule_once": "Once",
"schedule_cron": "Cron",
"cron_placeholder": "*/5 * * * *",
"script_content": "Script / Command",
"retry_count": "Retries",
"timeout_sec": "Timeout (s)",
"loading": "Loading",
"no_output": "No output available",
"error_loading": "Error loading data",
"select_workflow": "Select workflow",
"new_workflow": "New",
"export": "Export",
"execute": "Execute",
"dry_run": "Dry Run",
"node_triggers": "Triggers",
"node_manual": "Manual Trigger",
"node_schedule": "Schedule",
"node_event": "Event Trigger",
"node_conditions": "Conditions",
"node_os_check": "OS Check",
"node_threshold": "Threshold",
"node_time_window": "Time Window",
"node_actions": "Actions",
"node_run_script": "Run Script",
"node_install": "Install SW",
"node_restart": "Restart Svc",
"node_file_deploy": "Deploy File",
"node_send_message": "Send Message",
"node_results": "Results",
"node_log_output": "Log Output",
"node_send_alert": "Send Alert",
"node_chain": "Chain Workflow",
"node_transforms": "Transforms",
"node_parse_json": "Parse JSON",
"node_filter": "Filter",
"node_delay": "Delay",
"node_properties": "Properties",
"all_organizations": "All Organizations",
"scan_all": "Scan All",
"compliant": "Compliant",
"non_compliant": "Warning",
"critical_issues": "Critical",
"avg_score": "Avg. Score",
"col_device": "Device",
"col_hostname": "Hostname",
"col_os": "OS",
"col_score": "Score",
"col_issues": "Issues",
"col_last_scan": "Last Scan",
"no_compliance_data": "No compliance data available.",
"confirm_remediate": "Run auto-remediation on this device?"
},
"scaling": {
"title": "Scaling & Relay Management",
"tab_overview": "Overview",
"tab_relays": "Relay Nodes",
"tab_rules": "Assignment Rules",
"tab_capacity": "Capacity Planning",
"arch_title": "Network Architecture",
"arch_loading": "Loading architecture diagram...",
"stat_relay_nodes": "Relay Nodes",
"stat_total_devices": "Total Devices",
"stat_active_sessions": "Active Sessions",
"stat_bandwidth": "Total Bandwidth",
"relay_health": "Relay Health",
"no_relays": "No relay nodes configured. Add your first relay node to distribute load.",
"relay_search": "Search relays...",
"relay_add": "Add Relay Node",
"relay_edit": "Edit Relay Node",
"col_name": "Name",
"col_address": "Address",
"col_location": "Location",
"col_devices": "Devices",
"col_sessions": "Sessions",
"col_bandwidth": "Bandwidth",
"col_status": "Status",
"col_actions": "Actions",
"col_priority": "Priority",
"col_rule_name": "Rule Name",
"col_match": "Match",
"col_target_relay": "Target Relay",
"col_fallback": "Fallback",
"status_online": "Online",
"status_degraded": "Degraded",
"status_offline": "Offline",
"status_enabled": "Enabled",
"status_disabled": "Disabled",
"confirm_delete_relay": "Are you sure you want to delete this relay node?",
"confirm_delete_rule": "Are you sure you want to delete this assignment rule?",
"rules_hint": "Assignment rules determine which relay server handles specific device groups. Rules are evaluated by priority (lowest first).",
"rule_add": "Add Rule",
"rule_edit": "Edit Rule",
"rule_match_type": "Match Type",
"match_subnet": "Subnet",
"match_group": "Device Group",
"match_tag": "Device Tag",
"match_location": "Location",
"rule_match_value": "Match Value",
"fallback_master": "Master Server",
"fallback_nearest": "Nearest Relay",
"relay_max_sessions": "Max Sessions",
"relay_max_bandwidth": "Max Bandwidth (Mbps)",
"cap_tiers": "Capacity Tiers",
"cap_loading": "Loading capacity data...",
"cap_recommendations": "Recommendations",
"cap_no_recs": "No recommendations available.",
"cap_planning": "Infrastructure Planning",
"cap_config": "Configuration",
"cap_max_devices": "Max Devices",
"cap_max_sessions": "Max Sessions",
"cap_current": "Current",
"cap_utilization": "Utilization",
"cap_tier_devices": "Device Capacity",
"cap_tier_sessions": "Session Capacity",
"cap_tier_bandwidth": "Bandwidth Capacity",
"cap_single_sqlite": "Single Server (SQLite)",
"cap_single_pg": "Single Server (PostgreSQL)",
"cap_master_3": "Master + 3 Relays",
"cap_master_10": "Master + 10 Relays",
"rec_no_relays": "No relay nodes configured. Consider adding relay nodes for better performance and redundancy.",
"rec_devices_high": "Device utilization is high. Consider adding more relay nodes to distribute load.",
"rec_sessions_high": "Session capacity is nearing its limit. Consider upgrading relay infrastructure.",
"rec_cpu_high": "Some relay nodes report high CPU usage. Consider load balancing or capacity upgrades.",
"rec_all_good": "All systems operating within normal parameters. No action required.",
"save": "Save",
"cancel": "Cancel",
"edit": "Edit",
"delete": "Delete",
"close": "Close",
"no_rules": "No assignment rules."
},
"cross_platform": {
"title": "Cross-Platform Compatibility",
"tab_matrix": "Compatibility Matrix",
"tab_distribution": "Distribution",
"tab_protocols": "Protocols",
"tab_limitations": "Limitations",
"matrix_hint": "Feature support matrix across all supported platforms. Green = full support, yellow = partial, gray = not available, blue = planned.",
"col_feature": "Feature",
"legend_full": "Full support",
"legend_partial": "Partial support",
"legend_none": "Not available",
"legend_planned": "Planned",
"platform_breakdown": "Platform Breakdown",
"arch_breakdown": "Architecture Breakdown",
"version_breakdown": "Version Breakdown",
"summary": "Summary",
"total_devices": "Total Devices",
"unique_platforms": "Platforms",
"unique_archs": "Architectures",
"unique_versions": "Client Versions",
"no_devices": "No devices registered yet.",
"protocols_hint": "Protocol capability negotiation ensures each client receives only the features it supports. The server adapts behavior based on reported capabilities.",
"capability_negotiation": "Capability Negotiation",
"codec_support": "Codec Support (Online Devices)",
"feature_support": "Feature Support (Online Devices)",
"no_codec_data": "No codec data available from online devices.",
"no_feature_data": "No feature data available from online devices.",
"protobuf_schema": "ClientCapabilities Protobuf Schema",
"diagram_client": "Client",
"diagram_server": "BetterDesk Server",
"diagram_peer": "Remote Peer",
"limitations_hint": "Each platform has specific limitations that affect available features. Review these constraints when planning deployments.",
"feat_desktop_client": "Desktop Client",
"feat_background_agent": "Background Agent",
"feat_remote_target": "Remote Target",
"feat_screen_capture": "Screen Capture",
"feat_input_injection": "Input Injection",
"feat_file_transfer": "File Transfer",
"feat_clipboard_sync": "Clipboard Sync",
"feat_audio_streaming": "Audio Streaming",
"feat_chat": "Chat",
"feat_h264": "H.264 Codec",
"feat_vp9": "VP9 Codec",
"feat_av1": "AV1 Codec",
"feat_cdap_agent": "CDAP Agent",
"platform_windows": "Windows",
"platform_linux": "Linux",
"platform_macos": "macOS",
"platform_android": "Android",
"platform_ios": "iOS",
"platform_web": "Web Browser",
"platform_chromeos": "ChromeOS",
"status_production": "Production",
"status_testing": "Testing",
"status_planned": "Planned",
"status_limited": "Limited",
"status_experimental": "Experimental",
"limit_win_uac": "UAC elevation required for service installation and input injection on secure desktops.",
"limit_win_service": "Runs as NSSM service; requires Administrator privileges for installation.",
"limit_win_firewall": "Windows Firewall rules must allow ports 21115-21119 for relay connections.",
"limit_linux_wayland": "Wayland compositors restrict programmatic screen capture; PipeWire portal API required.",
"limit_linux_pipewire": "Audio capture requires PipeWire; PulseAudio fallback available but limited.",
"limit_linux_arm": "ARM64 builds available; some codecs may use software decoding (slower).",
"limit_mac_screen": "Screen Recording permission required in System Preferences > Privacy & Security.",
"limit_mac_signing": "Agent must be signed with Apple Developer ID for distribution.",
"limit_mac_notarize": "Notarization required for macOS Gatekeeper (non-App Store distribution).",
"limit_android_projection": "MediaProjection API requires user consent for each screen capture session.",
"limit_android_accessibility": "Input injection requires AccessibilityService; restricted in Android 14+.",
"limit_android_battery": "Background service limited by Doze mode; may require battery optimization exemption.",
"limit_ios_capture": "Apple prohibits background screen capture; viewer-only mode supported.",
"limit_ios_input": "No input injection permitted; remote viewing and chat only.",
"limit_ios_appstore": "Distribution via App Store only; TestFlight for beta testing.",
"limit_web_https": "WebCodecs API and WebRTC require HTTPS; HTTP falls back to JMuxer (limited codecs).",
"limit_web_codec": "Codec support depends on browser; H.264 widely supported, VP9/AV1 varies.",
"limit_web_performance": "Performance limited by browser sandbox; no direct hardware acceleration.",
"limit_chrome_crostini": "Full agent support only inside Crostini Linux container.",
"limit_chrome_pwa": "PWA mode provides web-only features; no native agent capabilities.",
"limit_chrome_input": "Input injection not supported outside Crostini container."
},
"security_audit": {
"title": "Security Audit",
"tab_overview": "Overview",
"tab_events": "Audit Events",
"tab_hardening": "Hardening",
"tab_vulnerabilities": "Vulnerabilities",
"security_score": "Security Score",
"failed_logins": "Failed Logins (24h)",
"active_bans": "Active Bans",
"api_keys": "API Keys",
"old_keys": "Old Keys (>90d)",
"security_checks": "Security Checks",
"tls_status": "TLS Status",
"pass": "Pass",
"warning": "Warning",
"fail": "Fail",
"tls_signal": "Signal TLS",
"tls_relay": "Relay TLS",
"tls_api": "API TLS",
"tls_wss": "WebSocket Secure",
"enabled": "Enabled",
"disabled": "Disabled",
"all_events": "All Events",
"event_login_failed": "Login Failed",
"event_login_success": "Login Success",
"event_peer_banned": "Peer Banned",
"event_ip_banned": "IP Banned",
"event_config_changed": "Config Changed",
"event_key_created": "Key Created",
"refresh": "Refresh",
"col_time": "Time",
"col_action": "Action",
"col_actor": "Actor",
"col_target": "Target",
"col_ip": "IP Address",
"col_details": "Details",
"no_events": "No audit events found.",
"hardening_hint": "Security hardening priorities for your BetterDesk deployment. Items are ordered by severity.",
"no_hardening": "No hardening items available.",
"vuln_hint": "Dependency vulnerability scan results. Run npm audit regularly to keep dependencies secure.",
"no_vulns": "No vulnerabilities found. Your dependencies are secure."
},
"languages": {
"title": "Language Management",
"total_languages": "Total Languages",
"fully_translated": "Fully Translated",
"needs_review": "Needs Review",
"reference_keys": "Reference Keys",
"no_languages": "No language files found.",
"badge_reference": "Reference",
"badge_review": "Needs Review",
"badge_complete": "Complete",
"coverage": "coverage",
"keys": "keys",
"missing": "missing",
"extra": "extra",
"view_missing": "View Missing",
"fix_missing": "Fix Missing",
"missing_keys_for": "Missing keys for",
"missing_keys_count": "keys missing (English fallback values shown)",
"and_more": "and {n} more...",
"all_keys_present": "All keys are present!",
"confirm_fix": "Add missing keys to {code} with English fallback values?",
"fixed_title": "Keys Fixed",
"fixed_msg": "Added {n} missing keys to {code} with English fallback.",
"no_fix_needed": "No missing keys to fix."
},
"resource_control": {
"title": "Resource Control",
"tab_overview": "Overview",
"tab_usb": "USB Control",
"tab_optical": "Optical Drives",
"tab_monitors": "Monitors",
"tab_disks": "Disk Access",
"tab_quotas": "Resource Quotas",
"compliance_by_category": "Compliance by Category",
"device_compliance": "Device Compliance",
"search_devices": "Search devices...",
"col_device": "Device",
"col_platform": "Platform",
"col_status": "Status",
"col_usb": "USB",
"col_optical": "Optical",
"col_monitors": "Monitors",
"col_disks": "Disks",
"col_quotas": "Quotas",
"col_actions": "Actions",
"stat_total_devices": "Total Devices",
"stat_compliant": "Compliant",
"stat_partial": "Partial",
"stat_noncompliant": "Non-Compliant",
"stat_compliance_rate": "Compliance Rate",
"badge_na": "N/A",
"badge_compliant": "OK",
"badge_partial": "Partial",
"badge_noncompliant": "Fail",
"btn_configure": "Configure",
"no_devices": "No devices found",
"usb_title": "USB Port Control",
"usb_hint": "Control USB storage device access for the selected device or organization-wide default policy.",
"usb_storage_policy": "USB Storage Policy",
"usb_whitelist": "Whitelisted Devices (one per line)",
"usb_whitelist_hint": "VID:PID (e.g. 0781:5583)",
"usb_audit_log": "Log USB device connections",
"optical_title": "Optical Drive Control",
"optical_hint": "Control CD/DVD/Blu-ray drive access for the selected device.",
"optical_policy": "Optical Drive Policy",
"optical_audit_log": "Log optical drive access",
"monitors_title": "Monitor Management",
"monitors_hint": "Configure monitor settings including maximum count, resolution enforcement, brightness and power schedules.",
"monitors_max_count": "Maximum Monitors (0 = unlimited)",
"monitors_max_hint": "0 means no limit",
"monitors_resolution": "Max Resolution",
"monitors_brightness": "Brightness Limit",
"monitors_power_schedule": "Power Schedule",
"monitors_power_hint": "e.g. off:22:00-06:00",
"disks_title": "Disk Access Control",
"disks_hint": "Configure disk access policies including read-only mode, encryption enforcement, and partition visibility.",
"disks_readonly": "Force read-only mode",
"disks_encryption": "Require encryption (BitLocker/LUKS)",
"disks_smart": "Enable S.M.A.R.T. monitoring",
"disks_hidden": "Hidden Partitions",
"disks_hidden_hint": "Comma-separated drive letters or mount points",
"quotas_title": "Resource Quotas",
"quotas_hint": "Set per-user CPU, RAM, bandwidth, and disk quotas for the selected device.",
"quotas_cpu": "CPU Limit",
"quotas_ram": "RAM Limit",
"quotas_bandwidth": "Bandwidth Limit (Mbps)",
"quotas_bandwidth_hint": "0 = unlimited",
"quotas_disk_quota": "Disk Quota (GB)",
"quotas_disk_hint": "0 = unlimited",
"quotas_process_whitelist": "Process Whitelist (one per line)",
"quotas_process_hint": "e.g. chrome.exe, code.exe",
"policy_allowed": "Allowed",
"policy_blocked": "Blocked",
"policy_whitelist": "Whitelist Only",
"policy_any": "Any"
},
"sdk_studio": {
"title": "SDK Studio",
"subtitle": "Visual flow editor for CDAP bridges",
"new_flow": "New Flow",
"open_flow": "Open Flow",
"save_flow": "Save Flow",
"run_flow": "Run",
"debug": "Debug",
"deploy": "Deploy",
"undo": "Undo",
"redo": "Redo",
"untitled": "Untitled Flow",
"code_mode": "Code Mode",
"toggle_grid": "Toggle Grid",
"zoom_in": "Zoom In",
"zoom_out": "Zoom Out",
"zoom_fit": "Fit to Screen",
"palette": "Node Palette",
"search_nodes": "Search nodes...",
"cat_sources": "Sources",
"cat_processing": "Processing",
"cat_outputs": "Outputs",
"empty_title": "Start Building",
"empty_desc": "Drag nodes from the palette to start building a flow",
"browse_templates": "Browse Templates",
"inspector": "Inspector",
"select_node": "Select a node to inspect its properties",
"console": "Console",
"clear_console": "Clear",
"console_ready": "Studio ready",
"label": "Label",
"configuration": "Configuration",
"connections": "Connections",
"inputs": "Inputs",
"outputs": "Outputs",
"delete_node": "Delete Node",
"nodes": "Nodes",
"wires": "Wires",
"status_ready": "Ready",
"status_deployed": "Deployed",
"flow_name": "Flow Name",
"flow_desc": "Description",
"loading": "Loading...",
"no_flows": "No saved flows yet",
"confirm_delete": "Are you sure you want to delete this flow?",
"templates": "Templates",
"node_modbus_tcp": "Modbus TCP",
"node_modbus_rtu": "Modbus RTU",
"node_snmp_poll": "SNMP Poll",
"node_rest_poll": "REST Poll",
"node_mqtt_subscribe": "MQTT Subscribe",
"node_webhook": "Webhook",
"node_device_telemetry": "Device Telemetry",
"node_database_query": "Database Query",
"node_file_watch": "File Watch",
"node_filter": "Filter",
"node_transform": "Transform",
"node_aggregate": "Aggregate",
"node_delay": "Delay",
"node_debounce": "Debounce",
"node_switch": "Switch",
"node_merge": "Merge",
"node_script": "Script",
"node_widget_update": "Widget Update",
"node_alert": "Alert",
"node_command": "Command",
"node_log": "Log",
"node_rest_call": "REST Call",
"node_mqtt_publish": "MQTT Publish",
"node_database_write": "Database Write",
"node_email": "Email",
"node_modbus_write": "Modbus Write",
"import_flow": "Import Flow"
},
"updates": {
"tab_title": "Updates",
"title": "Software Updates",
"desc": "Check for new versions and update the BetterDesk console from GitHub",
"current_version": "Installed version",
"latest_version": "Latest version",
"status": "Status",
"check_now": "Check for updates",
"checking": "Checking…",
"up_to_date": "Up to date",
"update_available": "Update available",
"changelog": "Release Notes",
"no_changelog": "No release notes available",
"files_changed": "Files changed",
"files": "files",
"changes_unavailable": "Could not load file change list. You can still install the update.",
"create_backup": "Create backup before updating",
"install": "Install Update",
"install_confirm": "Are you sure you want to install this update? The console will restart after the update.",
"installing": "Installing update…",
"creating_backup": "Creating backup…",
"downloading": "Downloading files…",
"install_success": "Update installed successfully. Console is restarting…",
"install_failed": "Update installation failed",
"restarting": "Waiting for console to restart…",
"restart_complete": "Console restarted successfully",
"restart_timeout": "Console did not restart in time. Please check manually.",
"no_version": "No update version selected. Check for updates first.",
"backups_title": "Update Backups",
"backups_desc": "Pre-update backups created automatically before each update",
"no_backups": "No update backups found",
"restore": "Restore",
"restore_confirm": "Are you sure you want to restore from this backup? Changed files will be overwritten.",
"restore_success": "Backup restored successfully. Console is restarting…",
"baseline_set": "Baseline set",
"commits_behind": "commits behind",
"total_files": "Total files",
"applied": "Applied",
"failed": "Failed",
"skipped": "Skipped",
"removed": "Removed",
"auto": "Auto",
"manual": "Manual",
"component_console": "Web Console",
"component_server": "Go Server",
"component_agent": "Agent",
"component_scripts": "Scripts & Docker",
"component_other": "Other",
"server_rebuild_warning": "Go Server source changed — binary rebuild required. Use the ALL-IN-ONE script or compile manually.",
"include_server": "Include Go Server (compile & deploy binary)",
"checking_go": "Checking Go…",
"go_not_found": "Go not installed",
"go_check_failed": "Could not check Go availability",
"server_building": "Compiling Go server… This may take a few minutes.",
"server_built": "Server binary compiled",
"server_build_failed": "Server compilation failed",
"server_deployed": "Server binary deployed",
"server_deploy_failed": "Server deploy failed",
"server_build_note": "Server compilation may take 1-5 minutes. The page will remain unresponsive during compilation.",
"server_source_downloading": "Downloading server source…"
},
"permissions": {
"title": "Permissions",
"subtitle": "Manage role-based permissions and custom overrides",
"info_title": "How permissions work",
"info_desc": "Each role has default permissions. You can add or remove individual permissions per role by toggling them below. Custom overrides are highlighted and can be reverted to defaults at any time.",
"select_role": "Select role",
"select_role_placeholder": "Choose a role...",
"reset_overrides": "Reset all overrides",
"granted": "Granted",
"overrides": "Overrides",
"level": "Level",
"super_admin_tag": "Full access",
"server_level_tag": "Server-level",
"custom": "Custom",
"default": "Default",
"revert": "Revert to default",
"saved": "Permission updated",
"reverted": "Reverted to default",
"all_reverted": "All overrides reverted",
"confirm_reset": "Reset all custom overrides for this role to defaults?",
"empty_title": "Select a role",
"empty_desc": "Choose a role from the dropdown above to view and manage its permissions.",
"locked_title": "Super Admin",
"locked_desc": "Super Admin has all permissions by default and cannot be customized.",
"cat_device": "Devices",
"cat_user": "Users",
"cat_server": "Server",
"cat_org": "Organizations",
"cat_audit": "Audit & Monitoring",
"cat_cdap": "CDAP",
"cat_enrollment": "Enrollment",
"cat_chat": "Chat",
"cat_branding": "Branding",
"perm_device_view": "View devices",
"perm_device_connect": "Connect to devices",
"perm_device_edit": "Edit devices",
"perm_device_delete": "Delete devices",
"perm_device_ban": "Ban / unban devices",
"perm_device_change_id": "Change device ID",
"perm_user_view": "View users",
"perm_user_create": "Create users",
"perm_user_edit": "Edit users",
"perm_user_delete": "Delete users",
"perm_server_config": "Server configuration",
"perm_server_keys": "Manage API keys",
"perm_org_create": "Create organizations",
"perm_org_edit": "Edit organizations",
"perm_org_delete": "Delete organizations",
"perm_org_manage_users": "Manage organization users",
"perm_org_manage_devices": "Manage organization devices",
"perm_audit_view": "View audit logs",
"perm_metrics_view": "View metrics",
"perm_blocklist_edit": "Edit blocklist",
"perm_cdap_view": "View CDAP devices",
"perm_cdap_command": "Send CDAP commands",
"perm_cdap_terminal": "CDAP terminal access",
"perm_cdap_files": "CDAP file access",
"perm_enrollment_manage": "Manage enrollment",
"perm_enrollment_approve": "Approve enrollment",
"perm_chat_access": "Chat access",
"perm_branding_edit": "Edit branding"
}
}