{
  "pageDesc": "VNC server & client",
  "result": "VNC operation result",
  "installed": "Installed",
  "notInstalled": "Not installed",
  "stackBins": "{{bins}}",
  "stackMissing": "Missing tools",
  "executeOn": "YSK_EXECUTE on",
  "executeOff": "YSK_EXECUTE off",
  "statAccounts": "Accounts",
  "statRunning": "Running",
  "statClients": "Client profiles",
  "statEndpoint": "Host",
  "goAccounts": "Accounts",
  "goClient": "Client",
  "goInstall": "Install",
  "accountsEmptyTitle": "No accounts",
  "accountsEmptyDesc": "Create an account to start",
  "clientPathHint": "Both paths open VNC in the browser. They differ by target semantics and copy (both still TCP-proxy via the panel).",
  "clientPathCompare": "“User-reachable”: public hostnames (e.g. hermes.example.com:5901). “Server proxy”: LAN / DC targets only this host can reach. TCP is probed from this server before connect.",
  "clientEmptyTitle": "No clients",
  "clientEmptyDesc": "Add remote host:port",
  "openInBrowser": "Open in browser",
  "pathUserReachable": "User-reachable endpoint",
  "pathServerProxy": "Via server proxy",
  "pathUserReachableShort": "User-reachable",
  "pathServerProxyShort": "Server proxy",
  "pathUserReachableHint": "For public hostnames or targets as configured (e.g. example.com:5901). Browser goes through the panel; this host must open TCP to that address.",
  "pathServerProxyHint": "For LAN or targets only the control-plane server can reach. Traffic is proxied via this server’s network. Optional connect host overrides the TCP address (e.g. display name vs 10.x).",
  "connectHost": "Connect host (optional, server proxy)",
  "connectHostHint": "TCP address the control plane opens (LAN IP). Leave empty to use Remote host above.",
  "pathBrowser": "User-reachable endpoint",
  "pathHostViewer": "Via server proxy",
  "hostViewer": "Via server proxy",
  "needViewerOptional": "TigerVNC Viewer (optional, not for browser path)",
  "viewerStackOptional": "In-browser VNC does not need desktop vncviewer. The Viewer package below is optional system maintenance only.",
  "viewer": {
    "minting": "Preparing session…",
    "connecting": "Connecting…",
    "connected": "Connected",
    "disconnected": "Disconnected",
    "error": "Connection failed",
    "idle": "Idle",
    "closed": "Closed",
    "minting_state": "Preparing",
    "reconnect": "Reconnect",
    "disconnect": "Disconnect",
    "fullscreen": "Fullscreen",
    "fit": "Fit window",
    "oneToOne": "1:1",
    "cad": "Ctrl+Alt+Del",
    "password": "VNC password",
    "passwordPrompt": "Password required",
    "sendPassword": "Send password",
    "securityFailure": "Authentication failed",
    "canvasLabel": "VNC desktop: {{name}}",
    "clipboardPaste": "Paste → remote",
    "clipboardPanel": "Clipboard",
    "clipboardHint": "Sync text between this browser and the remote desktop.",
    "clipboardLocal": "Send to remote",
    "clipboardLocalPh": "Paste or type text to send into the VNC session",
    "clipboardRemote": "From remote",
    "clipboardRemotePh": "Text copied on the remote desktop appears here",
    "clipboardSend": "Send to remote",
    "clipboardCopy": "Copy locally",
    "clipboardToRemote": "Clipboard sent to remote",
    "clipboardToRemoteHint": "Paste browser clipboard into the remote session",
    "clipboardFromRemote": "Remote clipboard copied to this browser",
    "clipboardFromRemoteManual": "Remote clipboard updated — open Clipboard panel to copy",
    "clipboardEmpty": "Nothing to paste — copy text first or type below",
    "clipboardReadDenied": "Browser blocked clipboard read — paste into the panel and Send",
    "clipboardNoRemote": "No text received from remote yet",
    "clipboardCopiedLocal": "Copied to this browser",
    "quality": "Quality",
    "qualityHint": "Image quality vs bandwidth (JPEG / compression)",
    "qualityLow": "Low (save data)",
    "qualityBalanced": "Balanced",
    "qualityHigh": "High",
    "qualityMax": "Max quality",
    "passwordPromptHint": "This desktop requires a VNC password — enter it below.",
    "errNeedExecute": "Cannot start the desktop: server needs root and YSK_EXECUTE enabled.",
    "errTicket": "Session ticket expired or invalid — press Reconnect.",
    "errBusy": "Too many VNC sessions on this panel — close another and retry.",
    "errRefused": "Nothing is listening on {{host}}:{{port}} (connection refused). Is VNC running and reachable from this server?",
    "errRefusedGeneric": "Connection refused — check that VNC is running and the port is correct.",
    "errTimeout": "Timed out connecting to {{host}}:{{port}}. Check firewall / network path from this server.",
    "errTimeoutGeneric": "Connection timed out — check network and firewall.",
    "errDns": "Cannot resolve host name «{{host}}».",
    "errDnsGeneric": "Host name could not be resolved.",
    "errNet": "Network unreachable for {{host}}:{{port}}.",
    "reconnecting": "Connection dropped — reconnecting ({{n}}/{{max}})…",
    "idleHint": "Session has been idle for a while. The remote desktop may lock; move the mouse or reconnect if needed.",
    "idleDismiss": "Still here",
    "sessions": "Open VNC sessions",
    "sessionCount": "{{n}} / {{max}} sessions",
    "sessionLimit": "At most {{max}} VNC sessions at once — close one first.",
    "closeSession": "Close session {{name}}",
    "shareLink": "Share link",
    "shareCopied": "View-only share link copied (valid ~1 hour)",
    "shareFailed": "Could not create share link",
    "shareTitle": "Shared VNC view",
    "shareGuest": "Shared desktop",
    "shareMissing": "Missing share token",
    "shareExpired": "This share link is invalid or has expired",
    "viewOnlyBadge": "View only",
    "screenshot": "Screenshot",
    "screenshotSaved": "Screenshot downloaded",
    "screenshotFailed": "Could not capture screenshot",
    "screenshotNoCanvas": "Display not ready for screenshot",
    "record": "Record",
    "recordStop": "Stop rec",
    "recordHint": "Record desktop to WebM (max 60s)",
    "recordStarted": "Recording… click Stop rec or wait 60s",
    "recordSaved": "Recording downloaded",
    "recordFailed": "Could not record",
    "recordUnsupported": "This browser cannot record the canvas",
    "connectingHint": "Opening a secure tunnel to the desktop…",
    "reconnectHint": "Press Reconnect to try again, or check the remote host and port."
  },
  "installHint": "TigerVNC → noVNC; XFCE optional",
  "needTigerVnc": "TigerVNC required",
  "needXfceFirst": "Install XFCE first",
  "needSessionRunning": "Session is not running — start it first",
  "needNovnc": "noVNC required",
  "needXfce": "XFCE (optional)",
  "needViewer": "Viewer (optional)",
  "needViewerOrNovnc": "Viewer or noVNC",
  "settingsHint": "Defaults for new accounts",
  "settingsNeedStack": "These defaults apply when TigerVNC (and XFCE if selected) are installed. Install them on the Install tab first.",
  "clientNeedNovnc": "Open in browser needs noVNC. Install it on the Install tab before adding remotes you expect to open here.",
  "defaultDesktop": "Default desktop",
  "defaultGeometry": "Default resolution",
  "defaultDepth": "Colour depth",
  "defaultRfbBind": "VNC (RFB) listen range",
  "defaultAutostart": "Autostart sessions",
  "autostartLabel": "Start on boot",
  "settingsSaved": "VNC defaults saved",
  "tab": {
    "overview": "Overview",
    "accounts": "Accounts",
    "client": "Client",
    "install": "Install",
    "settings": "Settings",
    "about": "About"
  },
  "desktop": {
    "xfce": "XFCE (full desktop)",
    "terminal": "Terminal"
  },
  "bind": {
    "localhost": "Localhost only (noVNC / tunnel)",
    "all": "All interfaces (direct RFB — open firewall)",
    "localhostShort": "localhost",
    "allShort": "0.0.0.0"
  },
  "accountListTitle": "VNC accounts ({{count}})",
  "accountListDesc": "One Linux user per account",
  "createAccount": "+ Create account",
  "createAccountTitle": "Create VNC account",
  "createAccountDesc": "Dedicated yskvnc_* user",
  "createAccountBtn": "Create account",
  "editAccountTitle": "Edit VNC account",
  "editAccountDesc": "Linux user {{user}} · display :{{display}}",
  "setPassword": "Password",
  "setPasswordTitle": "Set VNC password",
  "setPasswordDesc": "Update VNC login password for {{address}}",
  "newPassword": "New password",
  "confirmPassword": "Confirm password",
  "passwordHint": "Min 6 chars",
  "passwordMismatch": "Passwords do not match",
  "passwordTooShort": "Password must be at least 6 characters",
  "needName": "Enter a display name",
  "start": "Start",
  "stop": "Stop",
  "startAfterCreate": "Start after create",
  "hostnameBroken": "This host cannot resolve its own hostname ({{hostname}}). Session start will fail.",
  "hostnameBrokenIdle": "No VNC sessions yet. Hostname {{hostname}} does not resolve — you can write /etc/hosts later if you create a session.",
  "hostnameFix": "Write hostname to /etc/hosts",
  "hostnameFixTitle": "Append this line to /etc/hosts?",
  "hostnameFixDesc": "{{line}}",
  "hostnameFixDone": "Hostname /etc/hosts updated",
  "startAfterCreateBlocked": "Disabled until the hostname resolves",
  "startHostnameBlocked": "Cannot start until this host can resolve its hostname. Use “Write hostname to /etc/hosts”.",
  "colName": "Name",
  "colLinuxUser": "Linux user",
  "colDisplay": "Display / port",
  "colStatus": "Status",
  "colDesktop": "Desktop",
  "colBind": "RFB bind",
  "accountStatus": {
    "running": "Running",
    "stopped": "Stopped",
    "failed": "Failed",
    "written": "Written",
    "unknown": "Unknown"
  },
  "clientStatus": {
    "up": "Connected",
    "down": "Disconnected",
    "unknown": "Unknown",
    "error": "Error",
    "viewing": "Viewing in browser"
  },
  "accountPager": "Account pages",
  "prevPage": "Previous",
  "nextPage": "Next",
  "pageOf": "Page {{page}} / {{total}} · {{count}}",
  "deleteAccountTitle": "Delete VNC account?",
  "deleteAccountDesc": "Remove control-plane account “{{name}}” (Linux user {{user}}). The VNC session for this display stops first.",
  "deleteAccountC1": "The VNC session for this account will be stopped first.",
  "deleteAccountC2": "The panel VNC account record will be removed.",
  "deleteAccountC3User": "The Linux user and home directory will also be removed. If the host refuses, the panel reports failure and the user stays.",
  "deleteAccountC3Keep": "The Linux user stays on the host; only the panel account is removed.",
  "removeLinuxUser": "Also remove Linux user and home directory",
  "deleteKeepUserWarn": "The Linux user will stay on the host as an orphan. You must clean it up later.",
  "bindRfbLine": "RFB {{bind}} :{{port}}",
  "bindNovncLine": "noVNC 127.0.0.1:{{port}}",
  "bindNovncHint": "noVNC listens on localhost. The desktop is reached through this panel, not the public internet, unless RFB bind is all interfaces.",
  "connection": "Connect",
  "connectionTitle": "Connection materials",
  "connectionDesc": "How clients reach {{name}}",
  "connectionPathsHint": "Prefer open in browser; advanced options for legacy noVNC / direct RFB",
  "connectionBrowserHint": "Recommended: open the desktop inside this panel (no SSH tunnel, works from any browser that can reach the panel).",
  "connectionBrowserDesc": "Starts the VNC session if needed and opens the in-panel viewer with keyboard, mouse, and clipboard.",
  "connectionAdvanced": "Advanced: legacy noVNC URL & direct RFB",
  "pathViaServer": "Via server (noVNC)",
  "pathViaServerLegacy": "Legacy noVNC on server (127.0.0.1)",
  "pathViaServerLegacyHint": "Only works on the server host or via SSH tunnel — prefer “Open in browser”.",
  "pathDirect": "Direct RFB",
  "recommended": "Recommended",
  "startNovnc": "Start noVNC",
  "stopNovnc": "Stop noVNC",
  "copyNovncUrl": "Copy noVNC URL",
  "copyAddress": "Copy host:port",
  "openFirewall": "Open UFW port",
  "directAddress": "Address",
  "ticketPath": "View ticket API",
  "directLocalhostWarn": "RFB is localhost-only",
  "copied": "Copied to clipboard",
  "clientListTitle": "Client profiles ({{count}})",
  "clientListDesc": "Outbound VNC",
  "addClient": "+ Add remote",
  "addClientTitle": "Add remote VNC",
  "addClientDesc": "Remote host:port",
  "clientTarget": "Target",
  "clientPath": "Connect path",
  "clientHost": "Remote host",
  "pathViaServerShort": "Browser",
  "pathDirectShort": "Host viewer",
  "disconnect": "Disconnect",
  "connect": "Connect",
  "clientNeedFields": "Name and host are required",
  "clientCreated": "Client profile created",
  "clientPasswordOptional": "VNC password (optional)",
  "clientPasswordHint": "Used when you open the browser viewer. Leave empty to type it each time.",
  "clientRememberPassword": "Store password on this server for next open",
  "clientRememberPasswordWarn": "Password is stored in panel dataDir (readable by root). Prefer typing each time on shared hosts.",
  "stackMissingShort": "Not installed",
  "editClientTitle": "Edit remote client",
  "editClientDesc": "Update path, hosts, and optional stored password.",
  "clientUpdated": "Client profile updated",
  "rememberNeedPassword": "Enter a password first."
}
