mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
2419 lines
119 KiB
JSON
2419 lines
119 KiB
JSON
{
|
|
"connection": {
|
|
"retryingIn": "Retrying in {{seconds}}s ({{attempt}}/{{max}})",
|
|
"retryingNow": "Retrying... ({{attempt}}/{{max}})",
|
|
"disconnected": "Unable to connect",
|
|
"reconnect": "Reconnect",
|
|
"failed": "Could not connect",
|
|
"failedRetrying": "Connection failed, trying again",
|
|
"retryNow": "Retry now"
|
|
},
|
|
"credentials": {
|
|
"folders": "Folders",
|
|
"folder": "Folder",
|
|
"password": "Password",
|
|
"key": "Key",
|
|
"sshPrivateKey": "SSH Private Key",
|
|
"upload": "Upload",
|
|
"keyPassword": "Key Password",
|
|
"sshKey": "SSH Key",
|
|
"uploadPrivateKeyFile": "Upload Private Key File",
|
|
"searchCredentials": "Search credentials...",
|
|
"addCredential": "Add Credential",
|
|
"caCertificate": "CA Certificate (-cert.pub)",
|
|
"caCertificateDescription": "Optional: Upload or paste the CA-signed certificate file (e.g. id_ed25519-cert.pub). Required when your SSH server uses certificate-based authorization.",
|
|
"uploadCertFile": "Upload -cert.pub File",
|
|
"clearCert": "Clear",
|
|
"certLoaded": "Certificate loaded",
|
|
"certPublicKeyLabel": "CA Certificate",
|
|
"certTypeLabel": "Certificate type",
|
|
"pasteOrUploadCert": "Paste or upload a -cert.pub certificate...",
|
|
"hasCaCert": "Has CA Certificate",
|
|
"noCaCert": "No CA Certificate",
|
|
"noPublicKeyAvailable": "No public key available. Open the credential editor first.",
|
|
"deployCommandCopied": "Deploy command copied",
|
|
"sortCredentials": "Sort Credentials",
|
|
"sortDefault": "Default Order",
|
|
"sortNameAsc": "Name (A → Z)",
|
|
"sortNameDesc": "Name (Z → A)",
|
|
"sortUsernameAsc": "Username (A → Z)",
|
|
"sortUsernameDesc": "Username (Z → A)",
|
|
"filterCredentials": "Filter Credentials",
|
|
"filterClearAll": "Clear Filters",
|
|
"filterTypeGroup": "Type",
|
|
"filterTypePassword": "Password",
|
|
"filterTypeKey": "SSH Key",
|
|
"filterTagsGroup": "Tags",
|
|
"copyDeployCommand": "Copy deploy command",
|
|
"cloneCredentialAction": "Clone credential",
|
|
"clonedCredential": "Cloned {{name}}",
|
|
"clonedCredentialName": "{{name}} (copy)",
|
|
"shareCredentialAction": "Share credential",
|
|
"sharedBadge": "shared",
|
|
"sharedBy": "Shared by {{owner}}",
|
|
"share": {
|
|
"title": "Share \"{{name}}\"",
|
|
"description": "Recipients get their own encrypted copy of the secrets. It is refreshed whenever the credential changes and removed when the share is revoked.",
|
|
"levelUse": "Use",
|
|
"levelManage": "Manage",
|
|
"levelUseDesc": "Use: attach the credential to hosts and connect. The secret itself stays hidden.",
|
|
"levelManageDesc": "Manage: also edit the credential and share it with others.",
|
|
"noAccessEntries": "This credential has not been shared yet",
|
|
"accessRevoked": "Access revoked",
|
|
"shared": "Credential shared"
|
|
},
|
|
"deleteCredentialAction": "Delete credential",
|
|
"editCredentialAction": "Edit credential",
|
|
"failedToCloneCredential": "Failed to clone credential",
|
|
"failedToDeleteCredential": "Failed to delete credential",
|
|
"keyBadge": "KEY",
|
|
"passwordBadge": "PWD",
|
|
"renameFolder": "Rename folder",
|
|
"deleteFolder": "Delete folder",
|
|
"deleteCredentialConfirm": "Delete credential \"{{name}}\"?",
|
|
"deletedCredential": "Deleted {{name}}",
|
|
"deploySSHKeyTitle": "Deploy key to host",
|
|
"loadingCredentials": "Loading credentials...",
|
|
"noCredentialsFound": "No credentials found",
|
|
"noCredentialsMatchSearch": "No credentials match your search",
|
|
"addCredentialBtn": "Add Credential",
|
|
"failedToReorder": "Failed to reorder credentials",
|
|
"failedToMoveCredential": "Failed to move credential",
|
|
"sortManual": "Manual (drag to reorder)",
|
|
"customizeSidebar": "Customize Sidebar",
|
|
"customizeSidebarDescription": "Choose how the credential list looks and behaves.",
|
|
"customizeDensityTitle": "Density",
|
|
"densityComfortableDesc": "One credential per row, with extra detail.",
|
|
"densityCompactDesc": "One line per credential, for longer lists.",
|
|
"displayDensityComfortable": "Comfortable",
|
|
"displayDensityCompact": "Compact",
|
|
"customizeBehaviorTitle": "Behavior",
|
|
"showCredentialTags": "Show Tags",
|
|
"showCredentialTagsDesc": "Display tags in the credential list",
|
|
"actionsVisibility": "Credential actions",
|
|
"actionsVisibilityDesc": "When the connection and management buttons on each credential show up",
|
|
"actionsAlways": "Always visible",
|
|
"actionsOnly": "Connect only, rest on click",
|
|
"actionsHover": "Show on hover",
|
|
"actionsClick": "Show on click",
|
|
"customizeSortHint": "Sort order lives in the sort menu in the toolbar.",
|
|
"expandActions": "Expand actions",
|
|
"collapseActions": "Collapse actions",
|
|
"backToHosts": "Back to Hosts",
|
|
"backToCredentials": "Back to Credentials",
|
|
"searchCredentialsPlaceholder": "Search credentials…",
|
|
"deployDialogTitle": "Deploy SSH Key",
|
|
"deployDialogDesc": "Deploy {{name}} to a host's authorized_keys.",
|
|
"targetHostLabel": "Target Host",
|
|
"selectHostOption": "Select a host...",
|
|
"deployingBtn": "Deploying...",
|
|
"deployBtn": "Deploy",
|
|
"keyDeployedSuccess": "Key deployed successfully",
|
|
"failedToDeployKey": "Failed to deploy key",
|
|
"folderRenamedTo": "Folder renamed to \"{{name}}\"",
|
|
"failedToRenameFolder": "Failed to rename folder",
|
|
"arrangeUnlockedSwitchedToManual": "Switched to manual sort so your order sticks",
|
|
"arrangeUnlocked": "Unlock drag to rearrange"
|
|
},
|
|
"versionCheck": {
|
|
"updateLinkLabel": "Update available. Open the release notes on GitHub"
|
|
},
|
|
"common": {
|
|
"scrollTabsLeft": "Scroll tabs left",
|
|
"scrollTabsRight": "Scroll tabs right",
|
|
"close": "Close",
|
|
"minimize": "Minimize",
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"unknown": "Unknown",
|
|
"continue": "Continue",
|
|
"maintenance": "Maintenance",
|
|
"degraded": "Degraded",
|
|
"error": "Error",
|
|
"warning": "Warning",
|
|
"unsavedChanges": "Unsaved changes",
|
|
"dismiss": "Dismiss",
|
|
"more": "More",
|
|
"loading": "Loading...",
|
|
"host": "Host",
|
|
"selectHost": "Select a host...",
|
|
"noHostConfigured": "No host configured",
|
|
"optional": "Optional",
|
|
"connect": "Connect",
|
|
"copied": "Copied",
|
|
"connecting": "Connecting...",
|
|
"updateAvailable": "Update Available",
|
|
"appName": "Termix",
|
|
"openInNewTab": "Open in New Tab",
|
|
"noReleases": "No Releases",
|
|
"updatesAndReleases": "Updates & Releases",
|
|
"newVersionAvailable": "A new version ({{version}}) is available.",
|
|
"failedToFetchUpdateInfo": "Failed to fetch update information",
|
|
"preRelease": "Pre-release",
|
|
"noReleasesFound": "No releases found.",
|
|
"cancel": "Cancel",
|
|
"username": "Username",
|
|
"login": "Login",
|
|
"logout": "Logout",
|
|
"register": "Register",
|
|
"password": "Password",
|
|
"confirmPassword": "Confirm Password",
|
|
"back": "Back",
|
|
"save": "Save",
|
|
"saving": "Saving...",
|
|
"delete": "Delete",
|
|
"rename": "Rename",
|
|
"edit": "Edit",
|
|
"confirm": "Confirm",
|
|
"no": "No",
|
|
"or": "OR",
|
|
"next": "Next",
|
|
"previous": "Previous",
|
|
"refresh": "Refresh",
|
|
"language": "Language",
|
|
"checking": "Checking...",
|
|
"checkingDatabase": "Checking database connection...",
|
|
"checkingAuthentication": "Checking authentication...",
|
|
"backendReconnected": "Server connection restored",
|
|
"connectionDegraded": "Server connection lost, recovering…",
|
|
"reload": "Reload",
|
|
"create": "Create",
|
|
"copy": "Copy",
|
|
"copyFailed": "Failed to copy to clipboard",
|
|
"maximize": "Maximize",
|
|
"restore": "Restore",
|
|
"of": "of",
|
|
"saved": "Saved",
|
|
"deleted": "Deleted",
|
|
"deleteFailed": "Failed to delete",
|
|
"saveFailed": "Failed to save",
|
|
"required": "Required",
|
|
"remove": "Remove",
|
|
"add": "Add",
|
|
"update": "Update",
|
|
"noResults": "No results found",
|
|
"sidebar": "Sidebar",
|
|
"mobileSidebarDescription": "Displays the mobile sidebar.",
|
|
"toggleSidebar": "Toggle Sidebar",
|
|
"search": "Search...",
|
|
"new": "New"
|
|
},
|
|
"onboarding": {
|
|
"stepCounter": "Step {{current}} of {{total}}",
|
|
"skip": "Skip setup",
|
|
"next": "Next",
|
|
"finish": "Get started",
|
|
"welcomeTitle": "Welcome to Termix",
|
|
"welcomeIntro": "Termix manages your servers from one place. This setup takes about a minute and nothing here is permanent.",
|
|
"welcome_hosts": "Save your servers",
|
|
"welcome_hosts_desc": "Keep every machine you manage in one list.",
|
|
"welcome_terminal": "Connect instantly",
|
|
"welcome_terminal_desc": "Open a terminal in a tab, no separate SSH client.",
|
|
"welcome_files": "Browse and edit files",
|
|
"welcome_files_desc": "Upload, download and edit remote files.",
|
|
"presetTitle": "How much do you want on screen?",
|
|
"presetIntro": "Termix can be as simple or as detailed as you like. Pick a starting point.",
|
|
"presetChangeLater": "You can switch presets or change any single setting later in Settings, under Interface.",
|
|
"appearanceTitle": "Make it yours",
|
|
"appearanceIntro": "Pick a theme, an accent color and your language. All three can be changed later in Settings.",
|
|
"featuresTitle": "What else Termix does",
|
|
"featuresIntro": "Every server you save can be opened in more than a terminal. Here is what is waiting behind the icons on the left.",
|
|
"featuresRailHint": "Do not need one of these? Hide any icon from the sidebar in Settings, under Navigation.",
|
|
"workflowTitle": "Move around faster",
|
|
"workflowIntro": "A few habits that save the most time once you have a couple of servers.",
|
|
"workflow_palette": "Command palette",
|
|
"workflow_palette_desc": "Jump to any server or action by typing. Tap Shift twice to open it.",
|
|
"workflow_split": "Split screen",
|
|
"workflow_split_desc": "Show several tabs side by side, for example to watch logs while you work.",
|
|
"workflow_dock": "Side panel",
|
|
"workflow_dock_desc": "Middle click or right click a sidebar icon to open it as a tab or pin it to the right.",
|
|
"securityTitle": "Keeping your logins safe",
|
|
"securityIntro": "Termix stores credentials for you, so it is worth a minute to see how that works.",
|
|
"security_credentials": "Reusable credentials",
|
|
"security_credentials_desc": "Save a key or password once and attach it to as many servers as you like.",
|
|
"security_twofa": "Two factor and passkeys",
|
|
"security_twofa_desc": "Add TOTP or a passkey to your account in Settings, under Security.",
|
|
"security_identity": "Termix ID",
|
|
"security_identity_desc": "Issue short lived SSH certificates instead of copying keys to every server.",
|
|
"security_sharing": "Sharing",
|
|
"security_sharing_desc": "Give other users access to a server without handing over the password.",
|
|
"securityEncryptionNote": "Credentials are encrypted before they are stored, and only decrypted when a connection needs them.",
|
|
"doneTitle": "You are all set",
|
|
"doneHeading": "Setup complete",
|
|
"doneDesc": "Pick a server from the sidebar to open a terminal, browse its files or see its metrics.",
|
|
"done_settings": "Change anything later",
|
|
"done_settings_desc": "Themes, layout density and which icons show up all live in Settings.",
|
|
"done_rerun": "Want this again?",
|
|
"done_rerun_desc": "Open Settings, go to Interface and choose Run setup to walk through these steps again.",
|
|
"done_desktop": "Desktop app",
|
|
"done_desktop_desc": "Termix runs as a desktop app on Windows, macOS and Linux.",
|
|
"done_desktop_link": "Get the desktop app",
|
|
"done_mobile": "Mobile app",
|
|
"done_mobile_desc": "Take your servers with you on iOS and Android.",
|
|
"done_mobile_link": "Get the mobile app",
|
|
"done_docs": "Full documentation",
|
|
"done_docs_desc": "Guides for every feature, including ones not covered here.",
|
|
"done_docs_link": "Open the docs",
|
|
"done_cli": "Command line tool",
|
|
"done_cli_desc": "Manage your servers from a terminal, and use Termix in your own scripts.",
|
|
"done_cli_link": "Open the CLI docs",
|
|
"desktopTitle": "How do you want to use Termix?",
|
|
"desktopBody": "You can change this any time from Sync in the sidebar.",
|
|
"desktopLocalTitle": "On this device only",
|
|
"desktopLocalBody": "Everything is stored here. Nothing to set up.",
|
|
"desktopLinkTitle": "With my Termix server",
|
|
"desktopLinkBody": "Sign in to your server to use the same hosts and settings on every device.",
|
|
"desktopLinked": "Linked to {{server}}"
|
|
},
|
|
"nav": {
|
|
"home": "Home",
|
|
"terminal": "Terminal",
|
|
"fileManager": "File Manager",
|
|
"serverStats": "Host Metrics",
|
|
"admin": "Admin",
|
|
"userProfile": "User Profile",
|
|
"confirmClose": "Close this active session?",
|
|
"close": "Close",
|
|
"cancel": "Cancel",
|
|
"sshManager": "SSH Manager",
|
|
"hostTabTitle": "{{username}}@{{ip}}:{{port}}",
|
|
"copyPassword": "Copy Password",
|
|
"copySudoPassword": "Copy Sudo Password",
|
|
"passwordCopied": "Password copied to clipboard",
|
|
"noPasswordAvailable": "No password available",
|
|
"failedToCopyPassword": "Failed to copy password",
|
|
"refreshTab": "Refresh connection",
|
|
"renameTab": "Rename tab",
|
|
"dashboard": "Dashboard",
|
|
"quickConnect": "Quick Connect",
|
|
"openAsTabHint": "Ctrl+click or middle click to open as a tab",
|
|
"openAsTab": "Open as tab",
|
|
"openInRightDock": "Open in right dock",
|
|
"closeRightDock": "Close right dock",
|
|
"toggleRightDock": "Toggle right dock",
|
|
"multiPanelHintTitle": "Work with more than one panel",
|
|
"multiPanelHintBody": "Keep this panel open while the sidebar is used for something else. Two ways to move it:",
|
|
"multiPanelHintTabHow": "Ctrl+click its rail icon, or use the button in this header.",
|
|
"multiPanelHintDockHow": "Right-click its rail icon, or use the panel icon in the tab bar.",
|
|
"sidebarSettings": "Sidebar Settings...",
|
|
"hosts": "Hosts",
|
|
"hostManager": "Host Manager",
|
|
"credentials": "Credentials",
|
|
"connections": "Connections",
|
|
"keepSideMenuOpen": "Keep Menu Open",
|
|
"collapseSideMenu": "Collapse Menu",
|
|
"roleAdministrator": "Administrator",
|
|
"roleUser": "User",
|
|
"sync": "Sync",
|
|
"reconnectDisconnectedTerminals": "Reconnect all disconnected terminals",
|
|
"reconnectingTerminals_one": "Reconnecting {{count}} terminal",
|
|
"reconnectingTerminals_other": "Reconnecting {{count}} terminals",
|
|
"noDisconnectedTerminals": "No disconnected terminals are ready to reconnect",
|
|
"reconnectTerminalsFailed_one": "Could not start reconnecting {{count}} terminal",
|
|
"reconnectTerminalsFailed_other": "Could not start reconnecting {{count}} terminals",
|
|
"fullscreenUnsupported": "Fullscreen is not supported by this browser",
|
|
"fullscreenFailed": "Could not toggle fullscreen",
|
|
"resetSidebarWidth": "Reset width",
|
|
"collapseSidebar": "Collapse sidebar",
|
|
"openSidebar": "Open sidebar",
|
|
"confirmCloseHost": "Close {{host}}?",
|
|
"enterFullscreen": "Enter fullscreen (Ctrl+Shift+F)",
|
|
"exitFullscreen": "Exit fullscreen (Ctrl+Shift+F)",
|
|
"group": {
|
|
"objects": "Yours",
|
|
"tools": "Tools",
|
|
"system": "System"
|
|
},
|
|
"searchEverything": "Search hosts, tabs and actions",
|
|
"search": "Search",
|
|
"hiddenCount": "{{count}} hidden",
|
|
"showInRail": "Show in sidebar",
|
|
"moveUp": "Move up",
|
|
"moveDown": "Move down",
|
|
"resetRailOrder": "Reset order",
|
|
"hideFromRail": "Hide from sidebar",
|
|
"openSettings": "Open settings",
|
|
"settings": "Settings",
|
|
"manage": "Manage",
|
|
"mobileNavigation": "Navigation",
|
|
"plugins": "Plugins"
|
|
},
|
|
"hosts": {
|
|
"hosts": "Hosts",
|
|
"noHosts": "No SSH Hosts",
|
|
"retry": "Retry",
|
|
"refresh": "Refresh",
|
|
"optional": "Optional",
|
|
"downloadSample": "Download Sample",
|
|
"failedToDeleteHost": "Failed to delete {{name}}",
|
|
"importSkipExisting": "Import (skip existing)",
|
|
"importSSHConfig": "Import from SSH config",
|
|
"connectionDetails": "Connection Details",
|
|
"ssh": "SSH",
|
|
"telnet": "Telnet",
|
|
"port": "Port",
|
|
"username": "Username",
|
|
"folder": "Folder",
|
|
"tags": "Tags",
|
|
"pin": "Pin",
|
|
"addHost": "Add Host",
|
|
"editHost": "Edit Host",
|
|
"cloneHost": "Clone Host",
|
|
"defaultPath": "Default Path",
|
|
"connection": "Connection",
|
|
"upload": "Upload",
|
|
"authentication": "Authentication",
|
|
"password": "Password",
|
|
"passwordSaved": "Password saved, type to change",
|
|
"key": "Key",
|
|
"credential": "Credential",
|
|
"sshPrivateKey": "SSH Private Key",
|
|
"keyType": "Key Type",
|
|
"uploadFile": "Upload File",
|
|
"tabGeneral": "General",
|
|
"tabSsh": "SSH",
|
|
"tabStats": "Host Metrics",
|
|
"tabSharing": "Sharing",
|
|
"tabAuthentication": "Authentication",
|
|
"terminal": "Terminal",
|
|
"tunnel": "Tunnel",
|
|
"serverStats": "Host Metrics",
|
|
"status": {
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"checking": "Checking",
|
|
"monitoringDisabled": "Status checks off",
|
|
"label": "Status"
|
|
},
|
|
"folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully",
|
|
"failedToRenameFolder": "Failed to rename folder",
|
|
"unsavedChangesDescription": "Your host changes have not been saved. Discard them?",
|
|
"keepEditing": "Keep editing",
|
|
"discardChanges": "Discard changes",
|
|
"movedToFolder": "Moved {{count}} host(s) to \"{{folder}}\"",
|
|
"editHostTooltip": "Edit host",
|
|
"behavior": "Behavior",
|
|
"scrollbackBuffer": "Scrollback Buffer",
|
|
"sshAgentForwarding": "SSH Agent Forwarding",
|
|
"selectSnippet": "Select snippet",
|
|
"forceKeyboardInteractive": "Force Keyboard-Interactive",
|
|
"overrideCredentialUsername": "Override Credential Username",
|
|
"overrideCredentialUsernameDesc": "Use the username specified above instead of the credential's username",
|
|
"externalUsernameHint": "Use $external.username to fill in the name you signed in with through SSO or LDAP.",
|
|
"jumpHostChain": "Jump Host Chain",
|
|
"portKnocking": "Port Knocking",
|
|
"addKnock": "Add Port",
|
|
"addProxyNode": "Add Node",
|
|
"proxyNode": "Proxy Node",
|
|
"proxyType": "Proxy Type",
|
|
"sudoPassword": "Sudo Password",
|
|
"keepaliveInterval": "Keepalive Interval (ms)",
|
|
"environmentVariables": "Environment Variables",
|
|
"addVariable": "Add Variable",
|
|
"docker": "Docker",
|
|
"failedToConnect": "Failed to connect to console",
|
|
"connect": "Connect",
|
|
"disconnect": "Disconnect",
|
|
"start": "Start",
|
|
"enableStatusCheck": "Enable Status Check",
|
|
"enableMetrics": "Enable Metrics",
|
|
"bulkUpdateFailed": "Bulk update failed",
|
|
"selectAll": "Select All",
|
|
"deselectAll": "Deselect All",
|
|
"protocols": "Protocols",
|
|
"secureShell": "Secure Shell",
|
|
"addressIp": "Address / IP",
|
|
"friendlyName": "Friendly Name",
|
|
"folderAndAdvanced": "Folder & Advanced",
|
|
"showAdvancedSettings": "Show advanced settings",
|
|
"hideAdvancedSettings": "Hide advanced settings",
|
|
"privateNotes": "Private Notes",
|
|
"privateNotesPlaceholder": "Details about this server...",
|
|
"pinToTop": "Pin to Top",
|
|
"pinToTopDesc": "Always show this host at the top of the list",
|
|
"portKnockingSequence": "Port Knocking Sequence",
|
|
"addKnockBtn": "Add Knock",
|
|
"noPortKnocking": "No port knocking configured.",
|
|
"knockPort": "Knock Port",
|
|
"protocol": "Protocol",
|
|
"delayAfterMs": "Delay After (ms)",
|
|
"useSocks5Proxy": "Use SOCKS5 Proxy",
|
|
"useSocks5ProxyDesc": "Route connection through a proxy server",
|
|
"connectionOrigin": "Connection Origin",
|
|
"connectionOriginDesc": "Where this host's connection originates from. Overrides the desktop app's global default.",
|
|
"connectionOriginDefault": "Use default",
|
|
"connectionOriginLocal": "This device (local network)",
|
|
"connectionOriginRemote": "Remote server",
|
|
"proxyHost": "Proxy Host",
|
|
"proxyPort": "Proxy Port",
|
|
"proxyUsername": "Proxy Username",
|
|
"proxyPassword": "Proxy Password",
|
|
"proxySingleMode": "Single Proxy",
|
|
"proxyChainMode": "Proxy Chain",
|
|
"you": "You",
|
|
"jumpHostChainLabel": "Jump Host Chain",
|
|
"addJumpBtn": "Add Jump",
|
|
"noJumpHosts": "No jump hosts configured.",
|
|
"selectAServer": "Select a server...",
|
|
"sshPort": "SSH Port",
|
|
"authMethod": "Auth Method",
|
|
"authenticationMethod": "Authentication Method",
|
|
"authenticationMethodDesc": "Select the one method Termix will use to authenticate this SSH connection. Other methods are not tried automatically.",
|
|
"storedCredential": "Stored Credential",
|
|
"selectACredential": "Select a credential...",
|
|
"keyTypeLabel": "Key Type",
|
|
"keyTypeAuto": "Auto Detect",
|
|
"keyPasteTab": "Paste",
|
|
"keyUploadTab": "Upload",
|
|
"keyFileLoaded": "Key file loaded",
|
|
"keyUploadClick": "Click to upload .pem / .key / .ppk",
|
|
"clearKey": "Clear key",
|
|
"keySaved": "SSH key saved",
|
|
"keyReplaceNotice": "paste a new key below to replace it",
|
|
"keyPassphraseSaved": "Passphrase saved, type to change",
|
|
"replaceKey": "Replace key",
|
|
"docsLink": "View docs",
|
|
"agentLabel": "SSH Agent",
|
|
"agentDesc": "Authenticate using an SSH agent running on the Termix server (Bitwarden, 1Password, gpg-agent, KeeAgent, ssh-agent). The agent must be running on the machine where Termix is hosted.",
|
|
"agentAuthenticationDesc": "Use keys from an SSH agent to authenticate this connection. Leave the socket path empty to use SSH_AUTH_SOCK.",
|
|
"agentSocketPathLabel": "Agent Socket Path",
|
|
"agentSocketPathPlaceholder": "Leave empty to use SSH_AUTH_SOCK",
|
|
"agentSocketPathHint": "Leave empty to auto-detect from the SSH_AUTH_SOCK environment variable, or enter a custom socket path (e.g. /run/user/1000/gnupg/S.gpg-agent.ssh).",
|
|
"agentIdentityLabel": "Agent Identity (Public Key)",
|
|
"agentIdentityPlaceholder": "Leave empty to try all keys from the agent",
|
|
"agentIdentityHint": "Paste a public key (e.g. ssh-ed25519 AAAA...) to only offer that key from the agent. Recommended when the agent holds many keys, to avoid exceeding the server's MaxAuthTries.",
|
|
"shareSshAuthLabel": "Share SSH Authentication",
|
|
"shareSshAuthDesc": "Give recipients encrypted copies of this host's SSH authentication. A recipient's personal credential still takes precedence.",
|
|
"forceKeyboardInteractiveLabel": "Force Keyboard Interactive",
|
|
"forceKeyboardInteractiveShortDesc": "Force manual password entry even if keys are present",
|
|
"allowLegacyAlgorithmsLabel": "Allow Legacy Algorithms",
|
|
"allowLegacyAlgorithmsDesc": "Enable deprecated SSH algorithms (ssh-dss, ssh-rsa, diffie-hellman-group1-sha1, hmac-md5, 3des-cbc) for connections to old devices that cannot be upgraded.",
|
|
"insecure": "Insecure",
|
|
"syntaxHighlightingCategories": "Highlight Categories",
|
|
"syntaxHighlightingCategoriesDesc": "Choose which types of content to colorize",
|
|
"sshAgentForwardingLabel": "SSH Agent Forwarding",
|
|
"sshAgentForwardingShortDesc": "Allow this remote host to use your local SSH agent for onward connections. This is not required for Agent authentication.",
|
|
"sudoPasswordAutoFillShortDesc": "Automatically provide sudo password when prompted",
|
|
"sudoPasswordLabel": "Sudo Password",
|
|
"sudoPasswordSaved": "Password saved, type to change",
|
|
"environmentVariablesLabel": "Environment Variables",
|
|
"addVariableBtn": "Add Variable",
|
|
"noEnvVars": "No environment variables configured.",
|
|
"keepaliveIntervalLabel": "Keepalive Interval (seconds)",
|
|
"maxKeepaliveMisses": "Max Keepalive Misses",
|
|
"sameHost": "This host (direct tunnel)",
|
|
"statusChecksLabel": "Status Checks",
|
|
"enableStatusChecks": "Enable Status Checks",
|
|
"enableStatusChecksDesc": "Check host reachability. Active sessions skip extra probes. SSH probes without an active session may trigger aggressive Fail2Ban rules; disable status checks on those hosts.",
|
|
"useGlobalInterval": "Use Global Interval",
|
|
"useGlobalIntervalDesc": "Override with the server-wide status check interval",
|
|
"checkIntervalS": "Check Interval (s)",
|
|
"checkIntervalDesc": "Seconds between each connectivity ping",
|
|
"cpuUsageLabel": "CPU Usage",
|
|
"cpuUsageDesc": "CPU percent, load averages, sparkline graph",
|
|
"memoryLabel": "Memory Usage",
|
|
"memoryDesc": "RAM usage, swap, cached",
|
|
"storageLabel": "Disk Usage",
|
|
"storageDesc": "Disk usage per mount point",
|
|
"networkLabel": "Network Interfaces",
|
|
"networkDesc": "Interface list and bandwidth",
|
|
"uptimeLabel": "Uptime",
|
|
"uptimeDesc": "System uptime and boot time",
|
|
"systemInfoLabel": "System Info",
|
|
"systemInfoDesc": "OS, kernel, hostname, architecture",
|
|
"recentLoginsLabel": "Recent Logins",
|
|
"recentLoginsDesc": "Successful and failed login events",
|
|
"topProcessesLabel": "Top Processes",
|
|
"topProcessesDesc": "PID, CPU%, MEM%, command",
|
|
"listeningPortsLabel": "Listening Ports",
|
|
"listeningPortsDesc": "Open ports with process and state",
|
|
"firewallLabel": "Firewall",
|
|
"firewallDesc": "Firewall, AppArmor, SELinux status",
|
|
"hostSharedSuccessfully": "Host shared successfully",
|
|
"failedToShareHost": "Failed to share host",
|
|
"accessRevoked": "Access revoked",
|
|
"failedToRevokeAccess": "Failed to revoke access",
|
|
"cancelBtn": "Cancel",
|
|
"savingBtn": "Saving...",
|
|
"addHostBtn": "Add Host",
|
|
"hostUpdated": "Host updated",
|
|
"hostCreated": "Host created",
|
|
"failedToSave": "Failed to save host",
|
|
"credentialUpdated": "Credential updated",
|
|
"credentialCreated": "Credential created",
|
|
"failedToSaveCredential": "Failed to save credential",
|
|
"credentialNameRequired": "Please enter a name for the credential",
|
|
"credentialAuthRequired": "Add a password, an SSH key, or both",
|
|
"createCredentialFromHostBtn": "Create Credential",
|
|
"createCredentialFromHostTitle": "Create Credential From Host",
|
|
"createCredentialFromHostDesc": "Create a reusable, shareable credential entry prefilled with this host's current username, password, and/or SSH key.",
|
|
"backToHosts": "Back to Hosts",
|
|
"pinned": "Pinned",
|
|
"noHostsFound": "No hosts found",
|
|
"tryDifferentTerm": "Try a different term",
|
|
"addFirstHost": "Add your first host to get started",
|
|
"noCredentialsFound": "No credentials found",
|
|
"addCredentialBtn": "Add Credential",
|
|
"updateCredentialBtn": "Update Credential",
|
|
"editCredentialAction": "Edit credential",
|
|
"backToHost": "Back to Host",
|
|
"saveCredentialAsNewBtn": "Save as New",
|
|
"saveCredentialAsNewDesc": "Creates a new credential with these changes and assigns it to this host. The original credential is left unchanged.",
|
|
"credentialSavedAsNew": "Saved as a new credential",
|
|
"failedToSaveCredentialAsNew": "Failed to save as a new credential",
|
|
"features": "Features",
|
|
"noFolder": "(No folder)",
|
|
"deleteSelected": "Delete",
|
|
"exitSelection": "Exit selection",
|
|
"importSkip": "Import (skip existing)",
|
|
"importOverwrite": "Import (overwrite)",
|
|
"collapseBtn": "Collapse",
|
|
"importExportBtn": "Import / Export",
|
|
"hostStatusesRefreshed": "Host statuses refreshed",
|
|
"failedToRefreshHosts": "Failed to refresh hosts",
|
|
"movedHostTo": "Moved {{host}} to \"{{folder}}\"",
|
|
"failedToMoveHost": "Failed to move host",
|
|
"deletedFolder": "Deleted folder \"{{name}}\"",
|
|
"failedToDeleteFolder": "Failed to delete folder",
|
|
"deleteAllInFolder": "Delete all hosts in \"{{name}}\"? This cannot be undone.",
|
|
"folderPickerPlaceholder": "No folder",
|
|
"folderPickerSearch": "Search or create (use / for subfolders)...",
|
|
"folderPickerNone": "No folder",
|
|
"folderPickerCreate": "Create \"{{path}}\"",
|
|
"folderPickerEmpty": "No matching folders",
|
|
"parentHost": "Parent host",
|
|
"useFolderInstead": "Use folder instead",
|
|
"useParentHostInstead": "Use parent host instead",
|
|
"parentHostPickerPlaceholder": "No parent host",
|
|
"parentHostPickerSearch": "Search hosts...",
|
|
"parentHostPickerNone": "No parent host",
|
|
"parentHostPickerEmpty": "No matching hosts",
|
|
"collapseSubHosts": "Collapse sub-hosts",
|
|
"expandSubHosts": "Expand sub-hosts",
|
|
"cannotNestUnderDescendant": "Can't nest a host under its own sub-host",
|
|
"movedToParent": "Moved {{count}} host(s) under \"{{parent}}\"",
|
|
"newFolder": "New folder",
|
|
"createFolderTitle": "Create folder",
|
|
"editFolderTitle": "Edit folder",
|
|
"folderDialogDescription": "Choose a name, color, and icon. Use / to nest folders.",
|
|
"folderNameLabel": "Folder name",
|
|
"folderNamePlaceholder": "e.g. Production/Web",
|
|
"folderNestingHint": "Use / to separate levels and create nested folders.",
|
|
"folderNameDuplicate": "A folder with this name already exists here.",
|
|
"folderColor": "Color",
|
|
"folderIcon": "Icon",
|
|
"folderCredential": "Credential",
|
|
"folderCredentialNone": "No credential assigned",
|
|
"folderCredentialHint": "Hosts in this folder that use \"Stored credential\" auth without their own credential selected will inherit this one.",
|
|
"folderPreview": "Preview",
|
|
"folderNameFallback": "Untitled folder",
|
|
"createFolderButton": "Create folder",
|
|
"saveFolderButton": "Save folder",
|
|
"cancel": "Cancel",
|
|
"iconSearchPlaceholder": "Search icons...",
|
|
"openAllSessions": "Open all sessions",
|
|
"editFolder": "Edit folder",
|
|
"deleteFolder": "Delete folder",
|
|
"selectFolder": "Select all hosts in folder",
|
|
"deselectFolder": "Deselect all hosts in folder",
|
|
"folderSaved": "Folder saved",
|
|
"failedToSaveFolder": "Failed to save folder",
|
|
"folderDeleted": "Deleted folder \"{{name}}\"",
|
|
"deleteFolderConfirm": "Delete \"{{name}}\" and its {{count}} host(s)? This cannot be undone.",
|
|
"failedToMoveHosts": "Failed to move hosts",
|
|
"failedToReorder": "Failed to reorder",
|
|
"expandAll": "Expand all folders",
|
|
"collapseAll": "Collapse all folders",
|
|
"moreActions": "More",
|
|
"groupBy": "Group by",
|
|
"GroupByFolder": "Folder",
|
|
"GroupByTag": "Tag",
|
|
"GroupByStatus": "Status",
|
|
"GroupByProtocol": "Protocol",
|
|
"GroupByAuth": "Auth type",
|
|
"groupUngrouped": "Ungrouped",
|
|
"customizeSidebar": "Customize sidebar",
|
|
"customizeSidebarDescription": "Choose how the host list looks and behaves.",
|
|
"customizeDensityTitle": "Density",
|
|
"customizeBehaviorTitle": "Behavior",
|
|
"connectBarTitle": "Connect bar",
|
|
"connectBarDesc": "Choose which actions show as buttons on a host. Every action stays in the host's menu.",
|
|
"customizeSortHint": "Sort order and grouping live in the sort and group menus in the toolbar.",
|
|
"densityComfortableDesc": "More detail per host: address, tags, and resource usage.",
|
|
"densityCompactDesc": "One line per host, for longer lists.",
|
|
"display": "Display",
|
|
"displayDensity": "Density",
|
|
"displayDensityComfortable": "Comfortable",
|
|
"displayDensityCompact": "Compact",
|
|
"displayShowTags": "Show tags",
|
|
"displayTrayOnClick": "Open actions on click (instead of hover)",
|
|
"actionsVisibility": "Host action display",
|
|
"actionsVisibilityDesc": "Choose when host actions expand. Select click to restore the former click-to-expand behavior.",
|
|
"actionsAlways": "Always visible",
|
|
"actionsOnly": "Connect only, rest on click",
|
|
"actionsHover": "Show on hover",
|
|
"actionsClick": "Click to expand/collapse",
|
|
"openOnDoubleClick": "Open on double click",
|
|
"openOnDoubleClickDesc": "Require a double click to open a host session instead of a single click",
|
|
"showFolderPaths": "Show folder paths",
|
|
"showFolderPathsDesc": "Show the parent folder path above nested subfolder names. Subfolders stay indented either way.",
|
|
"hostClickBehavior": "Clicking a host",
|
|
"hostClickBehaviorDesc": "What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or \"Open in new tab\" always start a new one.",
|
|
"hostClickNewTab": "Always open a new tab",
|
|
"hostClickFocusExisting": "Switch to the open tab",
|
|
"hostClickFocusExistingDoubleNew": "Click to switch, double click for a new tab",
|
|
"openInNewTab": "Open in new tab",
|
|
"deletedHost": "Deleted {{name}}",
|
|
"copiedToClipboard": "Copied to clipboard",
|
|
"remoteDesktopUrlCopied": "Remote Desktop URL copied",
|
|
"expandActions": "Expand actions",
|
|
"collapseActions": "Collapse actions",
|
|
"cloneHostAction": "Clone Host",
|
|
"copyAddress": "Copy Address",
|
|
"copyLink": "Copy Link",
|
|
"deleteCredentialConfirm": "Delete credential \"{{name}}\"?",
|
|
"deletedCredential": "Deleted {{name}}",
|
|
"deleteHostsConfirm": "Delete {{count}} host{{plural}}? This cannot be undone.",
|
|
"movedToRoot": "Moved to root",
|
|
"addTagsPlaceholder": "Add tags...",
|
|
"authDetails": "Authentication Details",
|
|
"credType": "Type",
|
|
"generateKeyPairDesc": "Generate a new key pair, both private and public keys will be filled automatically.",
|
|
"generatingKey": "Generating...",
|
|
"generateLabel": "Generate {{label}}",
|
|
"uploadFileBtn": "Upload file",
|
|
"keyPassphraseOptional": "Key Passphrase (Optional)",
|
|
"sshPublicKeyOptional": "SSH Public Key (Optional)",
|
|
"publicKeyGenerated": "Public key generated",
|
|
"failedToGeneratePublicKey": "Failed to derive public key",
|
|
"publicKeyCopied": "Public key copied",
|
|
"keyPairGenerated": "{{label}} key pair generated",
|
|
"failedToGenerateKeyPair": "Failed to generate key pair",
|
|
"searchHostsPlaceholder": "Search hosts, addresses, tags…",
|
|
"refreshBtn": "Refresh",
|
|
"addTag": "Add tags...",
|
|
"deleteConfirmBtn": "Delete",
|
|
"deleteHostConfirm": "Delete \"{{name}}\"?",
|
|
"enableAtLeastOneProtocol": "Enable at least one protocol above to configure authentication and connection settings.",
|
|
"keyPassphrase": "Key Passphrase",
|
|
"basicInformation": "Basic Information",
|
|
"authDetailsSection": "Authentication Details",
|
|
"credTypeLabel": "Type",
|
|
"hostsTab": "Hosts",
|
|
"credentialsTab": "Credentials",
|
|
"selectMultiple": "Select multiple",
|
|
"selectHosts": "Select hosts",
|
|
"connectionLabel": "Connection",
|
|
"authenticationLabel": "Authentication",
|
|
"generateKeyPairTitle": "Generate Key Pair",
|
|
"generateKeyPairDescription": "Generate a new key pair, both private and public keys will be filled automatically.",
|
|
"generateFromPrivateKey": "Generate from Private Key",
|
|
"refreshBtn2": "Refresh",
|
|
"exitSelectionTitle": "Exit selection",
|
|
"addHostBtn2": "Add Host",
|
|
"addCredentialBtn2": "Add Credential",
|
|
"checkingHostStatuses": "Checking host statuses...",
|
|
"pinnedSection": "Pinned",
|
|
"hostsExported": "Hosts exported successfully",
|
|
"export": {
|
|
"menuItem": "Export...",
|
|
"title": "Export hosts",
|
|
"scope": "Scope",
|
|
"scopeAll": "All",
|
|
"scopeSelected": "Selected",
|
|
"searchHosts": "Search hosts...",
|
|
"include": "Include",
|
|
"groupConnection": "Connection",
|
|
"groupCredentials": "Credentials",
|
|
"groupNotes": "Notes",
|
|
"groupTags": "Tags & pin",
|
|
"groupProxy": "Proxy",
|
|
"groupJumpHosts": "Jump hosts",
|
|
"groupFeatureFlags": "Feature flags",
|
|
"groupAdvanced": "Advanced config",
|
|
"preview": "Preview",
|
|
"moreHosts": "... {{count}} more hosts",
|
|
"summary": "{{selected}} of {{total}} hosts",
|
|
"credentialsIncluded": "credentials included",
|
|
"credentialsExcluded": "credentials excluded",
|
|
"noneSelected": "No hosts selected",
|
|
"cancel": "Cancel",
|
|
"confirm": "Export",
|
|
"fetchFailed": "Failed to load hosts for export",
|
|
"bulkButton": "Export"
|
|
},
|
|
"sampleDownloaded": "Sample file downloaded",
|
|
"failedToDeleteCredential2": "Failed to delete credential",
|
|
"noFolderOption": "(No folder)",
|
|
"nSelected": "{{count}} selected",
|
|
"featuresMenu": "Features",
|
|
"moveMenu": "Move",
|
|
"connectSelected": "Connect",
|
|
"cancelSelection": "Cancel",
|
|
"deletedCount": "Deleted {{count}} hosts",
|
|
"failedToDeleteCount": "Failed to delete {{count}} hosts",
|
|
"duplicatedHost": "Duplicated \"{{name}}\"",
|
|
"failedToDuplicateHost": "Failed to duplicate host",
|
|
"updatedCount": "Updated {{count}} hosts",
|
|
"friendlyNameLabel": "Friendly Name",
|
|
"descriptionLabel": "Description",
|
|
"loadingHosts": "Loading hosts...",
|
|
"loadingCredentials": "Loading credentials...",
|
|
"noHostsYet": "No hosts yet",
|
|
"noHostsYetHint": "Add a server to open terminals, browse files and see metrics.",
|
|
"noHostsMatchSearch": "No hosts match your search",
|
|
"searchHosts": "Search hosts...",
|
|
"sortHosts": "Sort Hosts",
|
|
"sortDefault": "Default Order",
|
|
"sortNameAsc": "Name (A → Z)",
|
|
"sortNameDesc": "Name (Z → A)",
|
|
"sortIpAsc": "IP Address (Asc)",
|
|
"sortIpDesc": "IP Address (Desc)",
|
|
"sortOnlineFirst": "Online First",
|
|
"sortOfflineFirst": "Offline First",
|
|
"sortManual": "Manual (drag to reorder)",
|
|
"sortPinnedFirst": "Pinned First",
|
|
"filterHosts": "Filter Hosts",
|
|
"filterClearAll": "Clear Filters",
|
|
"filterStatusGroup": "Status",
|
|
"filterOnline": "Online",
|
|
"filterOffline": "Offline",
|
|
"filterPinned": "Pinned",
|
|
"filterAuthGroup": "Auth Type",
|
|
"filterAuthPassword": "Password",
|
|
"filterAuthKey": "SSH Key",
|
|
"filterAuthCredential": "Credential",
|
|
"filterAuthNone": "None",
|
|
"filterProtocolGroup": "Protocol",
|
|
"filterProtocolSsh": "SSH",
|
|
"filterTagsGroup": "Tags",
|
|
"editHostAction": "Edit Host",
|
|
"moreOptions": "More options",
|
|
"shareHost": "Share Host",
|
|
"shareHostTitle": "Share: {{name}}",
|
|
"shareFolder": "Share Folder",
|
|
"shareFolderTitle": "Share folder: {{name}}",
|
|
"folderSharedSuccessfully": "Shared {{count}} host(s) in folder",
|
|
"failedToShareFolder": "Failed to share folder",
|
|
"sharing": {
|
|
"loadError": "Failed to load sharing data. Please try again.",
|
|
"shareWithSection": "Share with",
|
|
"usersTab": "Users",
|
|
"rolesTab": "Roles",
|
|
"searchPlaceholder": "Search users or roles...",
|
|
"noMatches": "No matches found",
|
|
"permissionLevelLabel": "Permission level",
|
|
"levels": {
|
|
"connect": {
|
|
"label": "Connect",
|
|
"description": "Open sessions only: terminal, remote desktop, file manager, tunnels and Docker. No access to the host configuration."
|
|
},
|
|
"view": {
|
|
"label": "View",
|
|
"description": "Connect, plus see the host configuration. Secrets are never shown."
|
|
},
|
|
"edit": {
|
|
"label": "Edit",
|
|
"description": "View, plus modify non-authentication host settings. The owner's SSH authentication stays private and owner-only."
|
|
},
|
|
"manage": {
|
|
"label": "Manage",
|
|
"description": "Edit, plus share the host with others, change permission levels and revoke access."
|
|
}
|
|
},
|
|
"expiryLabel": "Access expiry",
|
|
"expiry": {
|
|
"never": "Never",
|
|
"oneHour": "1 hour",
|
|
"oneDay": "24 hours",
|
|
"sevenDays": "7 days",
|
|
"thirtyDays": "30 days",
|
|
"custom": "Custom"
|
|
},
|
|
"customHoursPlaceholder": "Hours until access expires",
|
|
"shareButton": "Share",
|
|
"shareWithCount": "Share ({{count}})",
|
|
"currentAccess": "Current access",
|
|
"noAccessEntries": "This host has not been shared yet",
|
|
"folderRulesTitle": "Applies to hosts added later",
|
|
"folderRulesHint": "These shares stay on the folder: a host created in or moved into it (or a subfolder) gets the same access automatically. Removing a rule only stops future inheritance.",
|
|
"folderRuleRemove": "Stop inheriting",
|
|
"folderShareSummary": "Shared {{shared}} of {{total}} host(s) in this folder",
|
|
"grantedBy": "Granted by",
|
|
"expires": "Expires",
|
|
"expired": "Expired",
|
|
"never": "Never",
|
|
"revoke": "Revoke",
|
|
"accessUpdated": "Access updated",
|
|
"accessUpdateFailed": "Failed to update access",
|
|
"sharedBadge": "Shared",
|
|
"sharedBadgeTooltip": "Shared by {{owner}} ({{level}} access)",
|
|
"viewOnlyBanner": "This host is shared with you by {{owner}} with view access. The configuration is read-only.",
|
|
"sharedEditBanner": "This host is shared with you by {{owner}} with edit access. Changes apply to the real host; authentication references can only be changed by the owner.",
|
|
"ownerOnlyControl": "Only the host owner can change this",
|
|
"ownerAuthPrivate": "The host owner's SSH authentication is private. Use “Set personal SSH authentication” from the host menu to choose your own credential.",
|
|
"ownerAuthShared": "The host owner has shared SSH authentication for this host. You can use it or choose your own credential from “Set personal SSH authentication.”",
|
|
"authOverrideAction": "Set personal SSH authentication",
|
|
"authOverrideActionProtocol": "Set personal {{protocol}} authentication",
|
|
"authOverrideTitle": "Personal SSH authentication",
|
|
"authOverrideTitleProtocol": "Personal {{protocol}} authentication",
|
|
"authOverrideDescriptionPrivate": "The host owner's SSH credentials stay private. Choose one of your saved credentials for connections to {{host}}.",
|
|
"authOverrideDescriptionShared": "Use the authentication shared by the host owner, or replace it with one of your saved credentials for connections to {{host}}.",
|
|
"authOverrideCredentialLabel": "Authentication credential",
|
|
"useSharedAuthentication": "Use shared host authentication",
|
|
"noPersonalCredential": "No personal credential",
|
|
"authOverrideNoCredentials": "You do not have any saved SSH credentials yet. Create one in Credentials to connect to hosts that require authentication.",
|
|
"authOverrideRequired": "This host requires one of your saved credentials before you can connect.",
|
|
"authOverridePrivateHint": "This credential is private to you. The host owner and other recipients cannot see or use it.",
|
|
"authOverrideSaved": "Personal SSH authentication saved",
|
|
"authOverrideCleared": "Personal SSH authentication removed",
|
|
"authOverrideClearedToShared": "Using shared host authentication",
|
|
"authOverrideLoadError": "Failed to load your SSH authentication. Please try again.",
|
|
"authOverrideSaveError": "Failed to save your SSH authentication"
|
|
},
|
|
"arrangeUnlockedSwitchedToManual": "Switched to manual sort so your order sticks",
|
|
"dragToRearrange": "Drag to rearrange",
|
|
"arrangeUnlocked": "Unlock drag to rearrange",
|
|
"webUiBindHostUnreachable": "Your browser cannot reach 127.0.0.1 on the machine running Termix, so this endpoint will not load. Use an address that machine answers on, such as 0.0.0.0.",
|
|
"webUiBindHostSharesSessionCookie": "From this browser, the forward would be reached at the same hostname Termix is served from, so the tunnelled service would receive your Termix session. Cookies ignore the port. This endpoint will refuse to open here; it works from the Termix desktop app, or when Termix is opened at localhost.",
|
|
"webUiErrorLabelRequired": "Endpoint {{row}} needs a label.",
|
|
"webUiErrorLabelDuplicate": "Each endpoint needs a different name.",
|
|
"webUiErrorPortRange": "Endpoint {{row}} needs a port between 1 and 65535.",
|
|
"webUiErrorPathInvalid": "Endpoint {{row}} has an invalid path. Use a path like /admin.",
|
|
"copyViewUrlAction": "Copy {{name}} link",
|
|
"filterAuthAgent": "SSH Agent",
|
|
"authTypeNeedsPlugin": "This host uses {{type}}, which needs {{plugin}}. It is turned off on this server.",
|
|
"authTypeUnknown": "This host uses {{type}}, which is not available on this server.",
|
|
"authFieldsAfterSave": "Save the host first, then fill in these fields.",
|
|
"enablePluginFeature": "Enable {{name}}",
|
|
"disablePluginFeature": "Disable {{name}}",
|
|
"filterFeaturesGroup": "Features",
|
|
"localOnly": "Keep on this device only",
|
|
"localOnlyDesc": "This host is not sent to the server and does not appear on your other devices.",
|
|
"folderLocalOnly": "Keep on this device only",
|
|
"folderLocalOnlyDesc": "This folder and every host in it stay on this device and are not sent to the server.",
|
|
"sudoPasswordDesc": "Used when the terminal fills a sudo prompt, and by features that run commands with sudo.",
|
|
"editorCancel": "Cancel",
|
|
"editorSaving": "Saving...",
|
|
"editorUpdate": "Update Host",
|
|
"editorAdd": "Add Host",
|
|
"speedSearch": "Search hosts. Arrow keys to select, Enter to connect, Esc to close",
|
|
"speedSearchList": "Host list. Type or press / to search.",
|
|
"importNoHosts": "No hosts found in the file",
|
|
"importTooMany": "You can import up to {{max}} hosts at once",
|
|
"importSummary": "Import done: {{imported}} imported, {{updated}} updated, {{failed}} failed",
|
|
"importHostsFailed": "Failed to import hosts"
|
|
},
|
|
"commandPalette": {
|
|
"searchPlaceholder": "Search hosts, commands, or settings...",
|
|
"quickActions": "Quick Actions",
|
|
"navigation": "Navigation",
|
|
"orShortcut": "or",
|
|
"hostManager": "Host Manager",
|
|
"hostManagerDesc": "Manage, add, or edit hosts",
|
|
"addNewHost": "Add New Host",
|
|
"addNewHostDesc": "Register a new host",
|
|
"adminSettings": "Admin Settings",
|
|
"adminSettingsDesc": "Configure system preferences and users",
|
|
"userProfile": "User Profile",
|
|
"userProfileDesc": "Manage your account and preferences",
|
|
"addCredential": "Add Credential",
|
|
"addCredentialDesc": "Store SSH keys or passwords",
|
|
"recentActivity": "Recent Activity",
|
|
"serversAndHosts": "Servers & Hosts",
|
|
"noHostsFound": "No hosts found matching \"{{search}}\"",
|
|
"links": "Links",
|
|
"navigate": "Navigate",
|
|
"select": "Select",
|
|
"toggleWith": "Toggle with",
|
|
"pluginActions": "More actions",
|
|
"noTargetTab": "No terminal tab is open"
|
|
},
|
|
"splitScreen": {
|
|
"title": "Split screen",
|
|
"defaultLabel": "Split {{number}}",
|
|
"splitRight": "Split right",
|
|
"splitDown": "Split down",
|
|
"addToSplit": "Add to {{split}}",
|
|
"paneEmptyItem": "Pane {{index}}: empty",
|
|
"paneItem": "Pane {{index}}: {{label}}",
|
|
"paneNumber": "Pane {{index}}",
|
|
"newPaneRight": "New pane on the right",
|
|
"newPaneBelow": "New pane below",
|
|
"emptyTitle": "Empty pane",
|
|
"emptyHint": "Pick something to show here. While this pane is selected, anything you open from the sidebar also opens here.",
|
|
"openTabs": "Open tabs",
|
|
"noOpenTabs": "No other tabs are open",
|
|
"hosts": "Hosts",
|
|
"searchHosts": "Search hosts",
|
|
"noHosts": "No hosts match",
|
|
"newSession": "New",
|
|
"closePane": "Close pane",
|
|
"closeSession": "Close session",
|
|
"moveToTab": "Move to its own tab",
|
|
"swapWith": "Swap with",
|
|
"showHere": "Show in this pane",
|
|
"clearPane": "Empty this pane",
|
|
"zoom": "Zoom pane",
|
|
"unzoom": "Restore layout",
|
|
"unsplit": "Unsplit",
|
|
"layouts": "Layouts",
|
|
"applyLayout": "Change layout",
|
|
"newSplit": "New split",
|
|
"maxPanes": "A split can hold up to {{count}} panes",
|
|
"dropSplit": "Drop to split",
|
|
"dropHere": "Drop to show here",
|
|
"paneActions": "Pane actions",
|
|
"dividerHint": "Drag to resize. Double-click to even out.",
|
|
"openInSplit": "Open in split",
|
|
"openInNewSplit": "New split with the current tab",
|
|
"shortcuts": "Shortcuts",
|
|
"shortcutNavigate": "Move between panes",
|
|
"presets": {
|
|
"columns2": "Two side by side",
|
|
"rows2": "Two stacked",
|
|
"columns3": "Three side by side",
|
|
"mainLeft3": "One left, two right",
|
|
"mainBottom3": "Two top, one bottom",
|
|
"grid4": "Grid of four",
|
|
"grid5": "Three over two",
|
|
"grid6": "Grid of six"
|
|
}
|
|
},
|
|
"connections": {
|
|
"noConnections": "No connections",
|
|
"noConnectionsDesc": "Open a terminal, file manager, or remote desktop to see connections here",
|
|
"connectedFor": "Connected for {{duration}}",
|
|
"connected": "Connected",
|
|
"disconnected": "Disconnected",
|
|
"closeTab": "Close tab",
|
|
"closeConnection": "Close connection",
|
|
"forgetTab": "Forget",
|
|
"removeBackground": "Remove",
|
|
"reconnect": "Reconnect",
|
|
"reopenTab": "Reopen",
|
|
"sectionOpen": "Open",
|
|
"sectionBackground": "Background",
|
|
"backgroundDesc": "Sessions persist for {{minutes}} minutes after disconnect and can be reconnected.",
|
|
"persisted": "Persisted in background",
|
|
"expiresIn": "Expires in {{duration}}",
|
|
"search": "Search connections...",
|
|
"noSearchResults": "No connections match your search",
|
|
"rename": "Rename session",
|
|
"forgetConfirm": "End the background session for {{name}}?",
|
|
"forget": "End session"
|
|
},
|
|
"sshAuth": {
|
|
"totpRequired": "Two-Factor Authentication Required",
|
|
"totpCodeLabel": "Verification Code",
|
|
"totpVerify": "Verify",
|
|
"mfaPromptRequired": "Authentication Required",
|
|
"mfaPushRequired": "Push Authentication Required",
|
|
"mfaMenuPlaceholder": "Enter your response",
|
|
"mfaCodeOrPushPlaceholder": "Code or \"push\"",
|
|
"mfaWaitingApproval": "Waiting for approval on your device...",
|
|
"mfaSendRequest": "Send Request",
|
|
"browserSignInCode": "Security Key",
|
|
"browserSignInUrl": "Sign-in URL",
|
|
"browserSignInOpen": "Open in Browser",
|
|
"browserSignInContinue": "I've Completed Sign-in",
|
|
"browserSignInRequired": "{{provider}} Sign-in Required",
|
|
"connectionLogTitle": "Connection Log",
|
|
"connectionLogCopy": "Copy logs to clipboard",
|
|
"connectionLogEmpty": "No connection logs yet",
|
|
"connectionLogWaiting": "Waiting for connection logs...",
|
|
"connectionLogCopied": "Connection logs copied to clipboard",
|
|
"connectionLogCopyFailed": "Failed to copy logs to clipboard"
|
|
},
|
|
"cardGrid": {
|
|
"dragToMove": "Drag to move",
|
|
"dragToResize": "Drag to resize",
|
|
"changeWidth": "Change width",
|
|
"removeCard": "Remove {{label}}",
|
|
"addCard": "Add",
|
|
"columns": "Columns",
|
|
"empty": "No cards. Use Add below to place cards."
|
|
},
|
|
"auth": {
|
|
"tagline": "Self-hosted SSH and remote desktop management",
|
|
"loginTitle": "Welcome back",
|
|
"registerTitle": "Create Account",
|
|
"forgotPassword": "Forgot Password?",
|
|
"rememberMe": "Remember Device for 30 Days (includes TOTP)",
|
|
"noAccount": "Don't have an account?",
|
|
"hasAccount": "Already have an account?",
|
|
"twoFactorAuth": "Two-Factor Authentication",
|
|
"enterCode": "Enter verification code",
|
|
"redirectingToApp": "Redirecting to app...",
|
|
"sshAuthenticationRequired": "SSH Authentication Required",
|
|
"sshNoKeyboardInteractive": "Keyboard-Interactive Authentication Unavailable",
|
|
"sshAuthenticationFailed": "Authentication Failed",
|
|
"sshAuthenticationTimeout": "Authentication Timeout",
|
|
"sshNoKeyboardInteractiveDescription": "The server does not support keyboard-interactive authentication. Please provide your password or SSH key.",
|
|
"sshAuthFailedDescription": "The provided credentials were incorrect. Please try again with valid credentials.",
|
|
"sshTimeoutDescription": "The authentication attempt timed out. Please try again.",
|
|
"sshProvideCredentialsDescription": "Please provide your SSH credentials to connect to this server.",
|
|
"sshPasswordDescription": "Enter the password for this SSH connection.",
|
|
"sshKeyPasswordDescription": "If your SSH key is encrypted, enter the passphrase here.",
|
|
"passphraseRequired": "Passphrase Required",
|
|
"passphraseRequiredDescription": "The SSH key is encrypted. Please enter the passphrase to unlock it.",
|
|
"back": "Back",
|
|
"firstUser": "First User",
|
|
"firstUserMessage": "You are the first user and will be made an admin. You can view admin settings in the sidebar user dropdown. If you think this is a mistake, check the docker logs, or create a GitHub issue.",
|
|
"external": "External",
|
|
"loginWithExternal": "Login with External Provider",
|
|
"loginWithExternalDesc": "Login using your configured external identity provider",
|
|
"externalNotSupportedInElectron": "External sign-in is not supported in the desktop app yet. Please use the web version.",
|
|
"loginWithProvider": "Login with {{name}}",
|
|
"orContinueWith": "or continue with",
|
|
"resetPasswordButton": "Reset Password",
|
|
"sendResetCode": "Send Reset Code",
|
|
"resetCodeDesc": "Enter your username to receive a password reset code. The code will be logged in the docker container logs.",
|
|
"resetCode": "Reset Code",
|
|
"verifyCodeButton": "Verify Code",
|
|
"enterResetCode": "Enter the 6-digit code from the docker container logs for user:",
|
|
"newPassword": "New Password",
|
|
"confirmNewPassword": "Confirm Password",
|
|
"enterNewPassword": "Enter your new password for user:",
|
|
"signUp": "Sign Up",
|
|
"desktopApp": "Desktop App",
|
|
"loggingInToDesktopApp": "Logging in to the desktop app",
|
|
"loadingServer": "Loading server...",
|
|
"dataLossWarning": "Resetting your password this way will delete all your saved SSH hosts, credentials, and other encrypted data. This action cannot be undone. Only use this if you have forgotten your password and are not logged in.",
|
|
"authenticationDisabled": "Authentication Disabled",
|
|
"authenticationDisabledDesc": "All authentication methods are currently disabled. Please contact your administrator.",
|
|
"passwordLoginDisabledDesc": "Password login is disabled. Use a passkey or an external authentication provider.",
|
|
"attemptsRemaining": "{{count}} attempts remaining",
|
|
"confirmResetDataWipe": "This account has not logged in since the encryption upgrade, so its stored data cannot be recovered without the old password. Resetting will permanently delete its hosts, credentials and snippets. Continue?",
|
|
"password": "Password",
|
|
"secondFactorUnavailable": "Your account uses a second factor that is not available right now. Contact an admin to reset it.",
|
|
"secondFactorNoUI": "This second factor cannot be shown on this screen. Contact an admin.",
|
|
"serverAuthentication": "Server sign-in",
|
|
"minChars": "min. {{min}} characters",
|
|
"retrySecondFactorUI": "Reload verification methods",
|
|
"localDesktopSignedOut": "Local desktop signed out",
|
|
"localDesktopUnavailable": "Local desktop session unavailable",
|
|
"localDesktopSignedOutDesc": "You signed out of the local desktop session. Continue locally to use this device's built-in Termix server again.",
|
|
"localDesktopUnavailableDesc": "Termix could not start a local desktop session. Retry it instead of registering a new account.",
|
|
"continueLocalDesktop": "Continue with local desktop",
|
|
"retryLocalDesktop": "Retry local desktop session"
|
|
},
|
|
"hostKey": {
|
|
"verifyNewHost": "Verify SSH Host Key",
|
|
"keyChangedWarning": "SSH Host Key Changed",
|
|
"firstConnectionTitle": "First time connecting to this host",
|
|
"firstConnectionDescription": "The authenticity of this host cannot be established. Verify the fingerprint matches what you expect.",
|
|
"keyChangedDescription": "The host key for this server has changed since your last connection. This could indicate a security issue.",
|
|
"previousKey": "Previous Key",
|
|
"newFingerprint": "New Fingerprint",
|
|
"fingerprint": "Fingerprint",
|
|
"verifyInstructions": "If you trust this host, click Accept to continue and save this fingerprint for future connections.",
|
|
"securityWarning": "Security Warning",
|
|
"acceptAndContinue": "Accept & Continue",
|
|
"acceptNewKey": "Accept New Key & Continue"
|
|
},
|
|
"errors": {
|
|
"databaseConnection": "Could not connect to the database",
|
|
"embeddedServerFailed": "Termix's local server could not start",
|
|
"unknownError": "Unknown error",
|
|
"loginFailed": "Login failed",
|
|
"failedPasswordReset": "Failed to initiate password reset",
|
|
"failedVerifyCode": "Failed to verify reset code",
|
|
"failedCompleteReset": "Failed to complete password reset",
|
|
"invalidTotpCode": "Invalid TOTP code",
|
|
"failedExternalLogin": "Failed to start external sign-in",
|
|
"silentSigninExternalUnavailable": "Silent sign-in was requested, but no external sign-in is set up.",
|
|
"failedUserInfo": "Failed to get user info after login",
|
|
"externalAuthFailed": "External sign-in failed",
|
|
"invalidAuthUrl": "Invalid authorization URL received from backend",
|
|
"requiredField": "This field is required",
|
|
"minLength": "Minimum length is {{min}}",
|
|
"passwordMismatch": "Passwords do not match",
|
|
"passwordLoginDisabled": "Username/password login is currently disabled",
|
|
"sessionExpired": "Session expired - please log in again",
|
|
"totpRateLimited": "Rate limited: Too many TOTP verification attempts. Please try again later.",
|
|
"totpRateLimitedWithTime": "Rate limited: Too many TOTP verification attempts. Please wait {{time}} seconds before trying again.",
|
|
"resetCodeRateLimited": "Rate limited: Too many verification attempts. Please try again later.",
|
|
"resetCodeRateLimitedWithTime": "Rate limited: Too many verification attempts. Please wait {{time}} seconds before trying again.",
|
|
"authTokenSaveFailed": "Failed to save authentication token",
|
|
"authTokenMissing": "The server did not return a new authentication token. Please sign in again.",
|
|
"failedToLoadServer": "Failed to load server",
|
|
"sessionExpiredLogin": "Session expired. Please log in again."
|
|
},
|
|
"messages": {
|
|
"registrationDisabled": "New account registration is currently disabled by an admin. Please log in or contact an administrator.",
|
|
"userNotAllowed": "Your account is not authorized to register. Please contact an administrator.",
|
|
"databaseConnectionFailed": "Failed to connect to the database server",
|
|
"embeddedServerPortInUse": "Port {{port}} is already in use by another program. This is usually a Termix Docker container or a leftover Termix process from a previous session. Close it, then restart Termix.",
|
|
"embeddedServerPortInUseUnknownPort": "One of the ports Termix needs is already in use by another program. Close whatever is using it, then restart Termix.",
|
|
"embeddedServerCrashed": "The local server stopped unexpectedly. Restart Termix, and check the desktop log if this keeps happening.",
|
|
"resetCodeSent": "Reset code sent to Docker logs",
|
|
"codeVerified": "Code verified successfully",
|
|
"passwordResetSuccess": "Password reset successfully",
|
|
"loginSuccess": "Login successful",
|
|
"registrationSuccess": "Registration successful"
|
|
},
|
|
"placeholders": {
|
|
"language": "Language",
|
|
"keyPassword": "key password",
|
|
"pastePrivateKey": "Paste your private key here...",
|
|
"enterPassword": "Enter your password",
|
|
"apiKeyName": "e.g., CI Pipeline",
|
|
"credentialName": "e.g. Production SSH Key",
|
|
"optionalDetails": "Optional details...",
|
|
"sshUsername": "e.g. root or deploy",
|
|
"hostAddress": "10.0.0.1 or example.com",
|
|
"hostName": "e.g. Web Server Production"
|
|
},
|
|
"dashboard": {
|
|
"title": "Dashboard",
|
|
"loading": "Loading dashboard...",
|
|
"github": "GitHub",
|
|
"support": "Support",
|
|
"discord": "Discord",
|
|
"docs": "Docs",
|
|
"donate": "Donate",
|
|
"serverOverview": "Server Overview",
|
|
"version": "Version",
|
|
"upToDate": "Up to Date",
|
|
"updateAvailable": "Update Available",
|
|
"beta": "Beta",
|
|
"uptime": "Uptime",
|
|
"database": "Database",
|
|
"healthy": "Healthy",
|
|
"error": "Error",
|
|
"totalHosts": "Total Hosts",
|
|
"totalCredentials": "Total Credentials",
|
|
"recentActivity": "Recent Activity",
|
|
"reset": "Reset",
|
|
"loadingRecentActivity": "Loading recent activity...",
|
|
"noRecentActivity": "No recent activity",
|
|
"quickActions": "Quick Actions",
|
|
"addHost": "Add Host",
|
|
"addCredential": "Add Credential",
|
|
"adminSettings": "Admin Settings",
|
|
"userProfile": "User Profile",
|
|
"serverStats": "Server Stats",
|
|
"loadingServerStats": "Loading server stats...",
|
|
"noServerData": "No server data available",
|
|
"customizeLayout": "Customize Dashboard",
|
|
"dashboardSettings": "Dashboard Settings",
|
|
"enableDisableCards": "Enable/Disable Cards",
|
|
"resetLayout": "Reset to Default",
|
|
"serverOverviewCard": "Server Overview",
|
|
"recentActivityCard": "Recent Activity",
|
|
"quickActionsCard": "Quick Actions",
|
|
"serverStatsCard": "Server Stats",
|
|
"panelMain": "Main",
|
|
"panelSide": "Side",
|
|
"justNow": "just now",
|
|
"activityFileManager": "File manager"
|
|
},
|
|
"donation": {
|
|
"title": "Enjoying Termix?",
|
|
"body": "Termix is free and open source, built and maintained by a two-person team in our spare time. If it's replaced a commercial tool you'd otherwise be paying for, a donation helps cover hosting costs and keeps development going. As of now, donations are crypto only.",
|
|
"milestones": "Donations also help fund the time to research and learn what's needed to build features like SAML and Kubernetes support. See the progress on the donate page.",
|
|
"cta": "Donate",
|
|
"dismiss": "Maybe later"
|
|
},
|
|
"dashboardTab": {
|
|
"stable": "STABLE",
|
|
"hostsOnline": "Hosts Online",
|
|
"registerNewServer": "Register a new server",
|
|
"storeSshKeysOrPasswords": "Store SSH keys or passwords",
|
|
"manageUsersAndRoles": "Manage users and roles",
|
|
"manageYourAccount": "Manage your account",
|
|
"hostStatus": "Host Status",
|
|
"noHostsConfigured": "No hosts configured",
|
|
"online": "ONLINE",
|
|
"offline": "OFFLINE",
|
|
"checking": "CHECKING",
|
|
"onlineLower": "Online",
|
|
"add": "Add:",
|
|
"commandPalette": "Command Palette",
|
|
"done": "Done",
|
|
"editModeInstructions": "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.",
|
|
"empty": "Empty",
|
|
"clear": "Clear",
|
|
"viewServerDetails": "View server details",
|
|
"dragToResizeColumns": "Drag to resize columns",
|
|
"hostsAvailable": "Hosts Available",
|
|
"removeSection": "Remove section",
|
|
"addSection": "Add a section",
|
|
"allSectionsShown": "Everything is already on the dashboard.",
|
|
"fromPlugins": "From plugins",
|
|
"dropHere": "Drop a section here",
|
|
"dragToReorder": "Drag sections to reorder them",
|
|
"clearActivityConfirm": "Clear your recent activity?",
|
|
"resetConfirm": "Reset the dashboard to its default layout?",
|
|
"onlineCount_one": "{{count}} online",
|
|
"onlineCount_other": "{{count}} online",
|
|
"hostCount_one": "{{count}} host",
|
|
"hostCount_other": "{{count}} hosts"
|
|
},
|
|
"admin": {
|
|
"sectionGeneral": "General",
|
|
"sectionUsers": "Users",
|
|
"sectionSessions": "Sessions",
|
|
"sectionRoles": "Roles",
|
|
"sectionDatabase": "Database",
|
|
"sectionApiKeys": "API Keys",
|
|
"sectionAuditLog": "Audit Log",
|
|
"sectionSsl": "HTTPS certificate",
|
|
"sectionBranding": "White Label",
|
|
"brandingAppName": "Application Name",
|
|
"brandingAppNameDesc": "Shown on the login screen and browser tab. Leave empty to use \"Termix\".",
|
|
"brandingTagline": "Tagline",
|
|
"brandingTaglineDesc": "Shown under the application name on the login screen. Leave empty to use the default tagline.",
|
|
"brandingLogo": "Logo",
|
|
"brandingLogoDesc": "PNG, JPEG or WEBP, up to 750 KB. Replaces the default icon on the login screen and browser tab.",
|
|
"brandingLogoUpload": "Upload logo",
|
|
"brandingLogoReset": "Reset to default",
|
|
"brandingLogoInvalid": "Invalid image. Use a PNG, JPEG or WEBP file up to 750 KB.",
|
|
"brandingSaved": "Branding settings saved",
|
|
"brandingSaveFailed": "Failed to save branding settings",
|
|
"sslDescription": "The certificate Termix serves over HTTPS. Upload your own here, or get and renew one from Let's Encrypt in the ACME Certificates section.",
|
|
"sslDocsLink": "View SSL docs",
|
|
"sslCertStatus": "Certificate Status",
|
|
"sslCertStatusNone": "No certificate",
|
|
"sslCertStatusValid": "Valid",
|
|
"sslCertStatusExpiring": "Expiring soon",
|
|
"sslCertStatusExpired": "Expired",
|
|
"sslCertExpiresAt": "Expires {{date}}",
|
|
"sslInfoNote": "After issuing or uploading a certificate, Termix will automatically enable HTTPS on SSL_PORT (default 8443) in addition to the existing HTTP port. Make sure that port is published/mapped to this container so it is reachable.",
|
|
"sslManualCert": "Certificate (PEM)",
|
|
"sslManualCertPlaceholder": "-----BEGIN CERTIFICATE-----",
|
|
"sslManualKey": "Private Key (PEM)",
|
|
"sslManualKeyPlaceholder": "-----BEGIN PRIVATE KEY-----",
|
|
"sslManualDesc": "Paste your existing certificate and private key, including a full chain if required by your CA.",
|
|
"sslManualUpload": "Upload & Install Certificate",
|
|
"sslManualUploadLoading": "Uploading certificate...",
|
|
"sslManualUploadSuccess": "Certificate uploaded and installed successfully",
|
|
"sslManualUploadFailed": "Certificate upload failed",
|
|
"sslManualRequiresFields": "Certificate and private key are required",
|
|
"auditLogTotal": "{{total}} total entries",
|
|
"auditLogEmpty": "No audit log entries found",
|
|
"auditLogSuccess": "Success",
|
|
"auditLogFailed": "Failed",
|
|
"auditLogClearFilters": "Clear Filters",
|
|
"auditLogPage": "Page {{page}} of {{totalPages}} ({{total}} total)",
|
|
"auditLogIp": "IP",
|
|
"auditLogResourceId": "Resource ID",
|
|
"auditLogFilterUser": "User",
|
|
"auditLogFilterAction": "Action",
|
|
"auditLogFilterResourceType": "Resource Type",
|
|
"auditLogFilterStatus": "Status",
|
|
"auditLogFilterFrom": "From",
|
|
"auditLogFilterTo": "To",
|
|
"auditLogFilterAll": "All",
|
|
"allowRegistration": "Allow User Registration",
|
|
"allowRegistrationDesc": "Let new users self-register with a username and password",
|
|
"allowPasswordLogin": "Allow Password Login",
|
|
"allowPasswordLoginDesc": "Username/password login",
|
|
"externalAutoProvision": "Auto-create external accounts",
|
|
"externalAutoProvisionDesc": "Create an account the first time someone signs in through an external login such as SSO or LDAP, even when registration is off",
|
|
"secondFactorAfterExternalLogin": "Ask for a second factor after external logins (SSO, GitHub, Google, LDAP)",
|
|
"secondFactorAfterExternalLoginDesc": "Off, an enrolled second factor is only asked for after password and other local logins, same as before. On, it is asked for after every login method, including SSO and LDAP.",
|
|
"allowPasswordReset": "Allow Password Reset",
|
|
"allowPasswordResetDesc": "Reset code via Docker logs",
|
|
"auditForwardingTitle": "Forward to SIEM",
|
|
"auditForwardingDesc": "Ship a copy of every audit entry to an external collector as NDJSON. Local logs stay the source of truth.",
|
|
"auditForwardingEnvNotice": "An environment variable also configures forwarding; the URL saved here takes precedence.",
|
|
"auditForwardingToken": "Bearer token (optional)",
|
|
"auditForwardingTokenStored": "Bearer token (stored)",
|
|
"auditForwardingSaved": "Audit forwarding settings saved",
|
|
"auditForwardingSaveError": "Failed to save audit forwarding settings",
|
|
"sessionTimeout": "Session Timeout",
|
|
"hours": "hours",
|
|
"sessionTimeoutRange": "Min 1h, max 720h",
|
|
"monitoringDefaults": "Monitoring Defaults",
|
|
"statusCheck": "Status Check",
|
|
"sec": "sec",
|
|
"logLevel": "Log Level",
|
|
"usersCount": "{{count}} users",
|
|
"searchUsers": "Search users...",
|
|
"noUsers": "No users",
|
|
"noUsersMatch": "No users match your search",
|
|
"pageOf": "Page {{page}} of {{total}}",
|
|
"createUser": "Create",
|
|
"newRole": "New Role",
|
|
"roleName": "Name",
|
|
"roleDisplayName": "Display Name",
|
|
"roleDescription": "Description",
|
|
"rolesCount": "{{count}} roles",
|
|
"createRole": "Create",
|
|
"creating": "Creating...",
|
|
"exportDatabase": "Export Database",
|
|
"exportDatabaseDesc": "Download a portable SQLite backup of all hosts, credentials, and settings",
|
|
"export": "Export",
|
|
"exporting": "Exporting...",
|
|
"importDatabase": "Import Database",
|
|
"importDatabaseDesc": "Restore from a portable .sqlite backup on any database backend",
|
|
"importDatabaseSelected": "Selected: {{name}}",
|
|
"selectFile": "Select File",
|
|
"changeFile": "Change",
|
|
"import": "Import",
|
|
"importing": "Importing...",
|
|
"apiKeysCount": "{{count}} keys",
|
|
"apiKeysDocsLink": "View docs",
|
|
"apiKeysCliHint": "Use an API key with the Termix CLI to manage servers from your terminal.",
|
|
"apiKeysCliLink": "View CLI docs",
|
|
"newApiKey": "New API Key",
|
|
"apiKeyCreatedWarning": "Key created - copy it now, it won't be shown again.",
|
|
"apiKeyName": "Name",
|
|
"apiKeyUser": "User",
|
|
"apiKeySelectUser": "Select a user...",
|
|
"apiKeyExpiresAt": "Expires At",
|
|
"createKey": "Create Key",
|
|
"apiKeyNoExpiry": "No expiry",
|
|
"revokedBadge": "REVOKED",
|
|
"authTypeDual": "Dual Auth",
|
|
"authTypeExternal": "External",
|
|
"authTypeLocal": "Local",
|
|
"adminStatusAdministrator": "Administrator",
|
|
"adminStatusRegularUser": "Regular User",
|
|
"adminBadge": "ADMIN",
|
|
"systemBadge": "SYS",
|
|
"customBadge": "CUSTOM",
|
|
"youBadge": "YOU",
|
|
"sessionsActive": "{{count}} active",
|
|
"sessionActive": "Active: {{time}}",
|
|
"sessionExpires": "Exp: {{time}}",
|
|
"revokeAll": "All",
|
|
"revokeAllSessionsSuccess": "All sessions for user revoked",
|
|
"revokeAllSessionsFailed": "Failed to revoke sessions",
|
|
"revokeSessionFailed": "Failed to revoke session",
|
|
"addRole": "Add role",
|
|
"noCustomRoles": "No custom roles defined",
|
|
"removeRoleFailed": "Failed to remove role",
|
|
"assignRoleFailed": "Failed to assign role",
|
|
"deleteRoleFailed": "Failed to delete role",
|
|
"userAdminAccess": "Administrator",
|
|
"userAdminAccessDesc": "Full access to all admin settings",
|
|
"userRoles": "Roles",
|
|
"revokeAllUserSessions": "Revoke All Sessions",
|
|
"revokeAllUserSessionsDesc": "Force re-login on all devices",
|
|
"revoke": "Revoke",
|
|
"deleteUserWarning": "Deleting this user is permanent.",
|
|
"deleteUser": "Delete {{username}}",
|
|
"deleting": "Deleting...",
|
|
"deleteUserFailed": "Failed to delete user",
|
|
"deleteUserSuccess": "User \"{{username}}\" deleted",
|
|
"deleteRoleSuccess": "Role \"{{name}}\" deleted",
|
|
"revokeKeySuccess": "Key \"{{name}}\" revoked",
|
|
"revokeKeyFailed": "Failed to revoke key",
|
|
"copiedToClipboard": "Copied to clipboard",
|
|
"done": "Done",
|
|
"createUserTitle": "Create User",
|
|
"createUserDesc": "Create a new local account.",
|
|
"createUserUsername": "Username",
|
|
"createUserPassword": "Password",
|
|
"createUserPasswordHint": "Minimum 6 characters.",
|
|
"createUserEnterUsername": "Enter username",
|
|
"createUserEnterPassword": "Enter password",
|
|
"createUserSubmit": "Create User",
|
|
"editUserTitle": "Manage User: {{username}}",
|
|
"editUserDesc": "Edit roles, admin status, sessions, and account settings.",
|
|
"editUserUsername": "Username",
|
|
"editUserAuthType": "Auth Type",
|
|
"editUserAdminStatus": "Admin Status",
|
|
"editUserUserId": "User ID",
|
|
"linkAccountTitle": "Link Accounts",
|
|
"linkAccountDesc": "Merge the external account {{username}} with an existing local account.",
|
|
"linkAccountDescLocal": "Link a local account {{username}} with an existing external-only account.",
|
|
"linkAccountWarningTitle": "This will:",
|
|
"linkAccountEffect1": "Delete the external-only account",
|
|
"linkAccountEffect2": "Add its external sign-in to the target account",
|
|
"linkAccountEffect3": "Allow both external and password sign-in",
|
|
"linkAccountTargetUsername": "Local Account Username",
|
|
"linkAccountTargetPlaceholder": "Enter the local account username to link to",
|
|
"linkAccountExternalUsername": "External Account Username",
|
|
"linkAccountExternalPlaceholder": "Enter the external-only account username to merge in",
|
|
"linkAccountExternalNotFound": "No external-only account found with that username",
|
|
"linkAccounts": "Link Accounts",
|
|
"linkAccountSuccess": "Accounts linked successfully",
|
|
"linkAccountFailed": "Failed to link accounts",
|
|
"linkAccountInProgress": "Linking...",
|
|
"unlinkAccountTitle": "Unlink External Sign-in",
|
|
"unlinkAccountDesc": "Remove external sign-in from {{username}}. They will only be able to log in with their password.",
|
|
"unlinkAccountWarning": "This will remove external sign-in from this account. The user must have a password set to keep logging in.",
|
|
"unlinkAccount": "Unlink External Sign-in",
|
|
"unlinkAccountInProgress": "Unlinking...",
|
|
"unlinkAccountSuccess": "External sign-in unlinked",
|
|
"unlinkAccountFailed": "Failed to unlink external sign-in",
|
|
"saving": "Saving...",
|
|
"updateRegistrationFailed": "Failed to update registration setting",
|
|
"updatePasswordLoginFailed": "Failed to update password login setting",
|
|
"updateSecondFactorAfterExternalLoginFailed": "Failed to update second factor setting",
|
|
"updatePasswordResetFailed": "Failed to update password reset setting",
|
|
"sessionTimeoutRange2": "Session timeout must be between 1 and 720 hours",
|
|
"sessionTimeoutSaved": "Session timeout saved",
|
|
"sessionTimeoutSaveFailed": "Failed to save session timeout",
|
|
"monitoringIntervalInvalid": "Invalid interval values",
|
|
"monitoringSaved": "Monitoring settings saved",
|
|
"monitoringSaveFailed": "Failed to save monitoring settings",
|
|
"logLevelUpdateFailed": "Failed to update log level",
|
|
"createUserRequired": "Username and password are required",
|
|
"createUserPasswordTooShort": "Password must be at least 6 characters",
|
|
"createUserSuccess": "User \"{{username}}\" created",
|
|
"createUserFailed": "Failed to create user",
|
|
"updateAdminStatusFailed": "Failed to update admin status",
|
|
"allSessionsRevoked": "All sessions revoked",
|
|
"revokeSessionsFailed": "Failed to revoke sessions",
|
|
"manageUserData": "Manage user data",
|
|
"backToUsers": "Back to users",
|
|
"manageTabAccount": "Account",
|
|
"manageTabHosts": "Hosts",
|
|
"manageTabCredentials": "Credentials",
|
|
"manageTabSessions": "Sessions",
|
|
"manageTabDanger": "Danger",
|
|
"manageEditorBack": "Back to {{username}}'s data",
|
|
"dataLockedBadge": "LOCKED",
|
|
"dataLockedNotice": "{{username}}'s data stays locked until they next log in. Their hosts, credentials and snippets cannot be viewed or edited until then.",
|
|
"resetPasswordTitle": "Reset Password",
|
|
"resetPasswordExternalOnly": "This user signs in through an external provider and has no password.",
|
|
"resetPasswordPlaceholder": "New password",
|
|
"resetPasswordBtn": "Reset",
|
|
"resetPasswordWorking": "Resetting...",
|
|
"resetPasswordSuccess": "Password reset",
|
|
"resetPasswordSuccessWiped": "Password reset. The user's encrypted data was wiped.",
|
|
"resetPasswordFailed": "Failed to reset password",
|
|
"resetPasswordConfirmWipe": "{{username}} has not logged in since the encryption upgrade, so their data cannot be recovered. Resetting now will delete their hosts, credentials and snippets. Continue?",
|
|
"manageApiKeys": "API Keys",
|
|
"apiKeyNamePlaceholder": "Key name",
|
|
"apiKeyCopyNotice": "Copy this key now, it won't be shown again.",
|
|
"noApiKeysForUser": "No API keys",
|
|
"apiKeyDeleteFailed": "Failed to delete API key",
|
|
"exportUserData": "Data Export",
|
|
"exportUserDataDesc": "Download this user's hosts, credentials and file manager data as JSON. Secrets are decrypted.",
|
|
"exportUserDataSuccess": "User data exported",
|
|
"exportUserDataFailed": "Failed to export user data",
|
|
"hostsCount": "{{count}} hosts",
|
|
"addHostForUser": "Add Host",
|
|
"noHostsForUser": "This user has no hosts",
|
|
"connectToHost": "Connect",
|
|
"deleteHostConfirm": "Delete host \"{{name}}\" belonging to {{username}}?",
|
|
"hostDeletedSuccess": "Host deleted",
|
|
"hostDeleteFailed": "Failed to delete host",
|
|
"credentialsCount": "{{count}} credentials",
|
|
"addCredentialForUser": "Add Credential",
|
|
"noCredentialsForUser": "This user has no credentials",
|
|
"deleteCredentialConfirm": "Delete credential \"{{name}}\" belonging to {{username}}?",
|
|
"credentialDeletedSuccess": "Credential deleted",
|
|
"credentialDeleteFailed": "Failed to delete credential",
|
|
"noSessionsForUser": "No active sessions",
|
|
"deleteSuccessorLabel": "Hand over hosts and credentials to",
|
|
"deleteSuccessorMe": "Me (the deleting admin)",
|
|
"deleteSuccessorNone": "Nobody, delete them",
|
|
"deleteSuccessorDesc": "Everything this user shared keeps working under the new owner; choosing nobody removes their hosts, credentials and shares.",
|
|
"deleteUserDangerDesc": "Permanently delete {{username}} and all of their data (hosts, credentials, snippets, history). This cannot be undone.",
|
|
"deleteUserConfirm": "Permanently delete {{username}} and all of their data?",
|
|
"deleteUserAdminBlocked": "Remove admin status before deleting this user.",
|
|
"createRoleRequired": "Name and display name are required",
|
|
"createRoleSuccess": "Role \"{{name}}\" created",
|
|
"createRoleFailed": "Failed to create role",
|
|
"apiKeyNameRequired": "Key name is required",
|
|
"apiKeyUserRequired": "User ID is required",
|
|
"apiKeyCreatedSuccess": "API key \"{{name}}\" created",
|
|
"apiKeyCreateFailed": "Failed to create API key",
|
|
"exportSuccess": "Database exported successfully",
|
|
"exportFailed": "Database export failed",
|
|
"importSelectFile": "Please select a file first",
|
|
"importCompleted": "Import completed: {{total}} items imported, {{skipped}} skipped",
|
|
"importFailed": "Import failed: {{error}}",
|
|
"importError": "Database import failed",
|
|
"sectionHostDefaults": "Host Defaults",
|
|
"minutes": "minutes",
|
|
"rolePermissions": {
|
|
"count": "{{count}} permissions",
|
|
"editAction": "Edit permissions",
|
|
"loadError": "Failed to load the permissions catalog",
|
|
"saved": "Role permissions saved",
|
|
"saveError": "Failed to save role permissions",
|
|
"save": "Save",
|
|
"saving": "Saving...",
|
|
"pluginDisabled": "Feature disabled",
|
|
"groups": {
|
|
"hosts": "Hosts",
|
|
"credentials": "Credentials",
|
|
"admin": "Administration"
|
|
}
|
|
},
|
|
"notificationPrivateEndpoints": "Allowed private notification hosts",
|
|
"notificationPrivateEndpointsDesc": "Exact private hosts that notification channels may contact. Separate them with commas.",
|
|
"updateNotificationEndpointsFailed": "Failed to update notification endpoint allowlist",
|
|
"secondFactorsSectionTitle": "Second factors",
|
|
"secondFactorsNone": "No second factors enrolled",
|
|
"secondFactorUnavailable": "Unavailable",
|
|
"resetSecondFactors": "Reset second factors",
|
|
"resetSecondFactorsConfirm": "Remove every second factor for {{username}}? They can sign in with their password or SSO and enrol again.",
|
|
"secondFactorsResetSuccess": "Second factors reset",
|
|
"secondFactorsResetFailed": "Failed to reset second factors",
|
|
"passwordLoginForced": "Password login is turned off, but no other login method is enabled, so it stays on for now. Nobody gets locked out.",
|
|
"sslNotRenewed": "Nothing renews this certificate. It expires {{date}}. Turn on automatic renewal in the ACME Certificates section, or upload a new one before then.",
|
|
"sslSelfSigned": "Self-signed certificate made by Termix. Browsers will warn about it.",
|
|
"sslRenewedBy": "Renewed automatically by {{plugin}}",
|
|
"sslIssuer": "Issued by {{issuer}}",
|
|
"sslNames": "Covers {{names}}",
|
|
"sslManualTitle": "Upload a certificate",
|
|
"updateExternalAutoProvisionFailed": "Failed to update the auto-create setting",
|
|
"hostTags": "Predefined host tags",
|
|
"hostTagsDesc": "Tags every user sees as suggestions in the host editor. Press Space or Enter to add one. Removing a tag here does not remove it from hosts.",
|
|
"hostTagsError": "Could not load or save host tag suggestions.",
|
|
"revokeAllSessionsConfirm": "Sign {{username}} out everywhere?",
|
|
"revokeSessionConfirm": "Sign out this session?",
|
|
"revokeSession": "Sign out",
|
|
"deleteRoleConfirm": "Delete the {{name}} role?",
|
|
"revokeKeyConfirm": "Revoke the API key {{name}}?",
|
|
"revokeKey": "Revoke"
|
|
},
|
|
"newUi": {
|
|
"sidebar": {
|
|
"quickConnect": {
|
|
"where": "Where",
|
|
"who": "Who",
|
|
"hostLabel": "Host",
|
|
"hostPlaceholder": "192.168.1.1 or example.com",
|
|
"portLabel": "Port",
|
|
"portPlaceholder": "22",
|
|
"usernameLabel": "Username",
|
|
"usernamePlaceholder": "username",
|
|
"authLabel": "Auth",
|
|
"passwordLabel": "Password",
|
|
"passwordPlaceholder": "password",
|
|
"privateKeyLabel": "Private Key",
|
|
"privateKeyPlaceholder": "Paste private key...",
|
|
"credentialLabel": "Credential",
|
|
"credentialPlaceholder": "Select a saved credential",
|
|
"protocolLabel": "Protocol",
|
|
"domainLabel": "Domain",
|
|
"domainPlaceholder": "optional",
|
|
"connectToAction": "Connect to {{name}}",
|
|
"sshProtocol": "SSH",
|
|
"noTarget": "Nothing installed can connect to this host type"
|
|
},
|
|
"keybindings": {
|
|
"title": "Keyboard Shortcuts",
|
|
"description": "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.",
|
|
"defaultsHeading": "Built-in Shortcuts",
|
|
"fixedHeading": "App Shortcuts",
|
|
"fixed": {
|
|
"splitRight": "Split right",
|
|
"splitDown": "Split down",
|
|
"zoomPane": "Zoom the focused pane",
|
|
"navigatePane": "Move between panes",
|
|
"nextTab": "Next tab",
|
|
"previousTab": "Previous tab",
|
|
"jumpTab": "Jump to tab",
|
|
"previousView": "Back to the previous sidebar view",
|
|
"fullscreen": "Toggle fullscreen"
|
|
},
|
|
"customHeading": "Custom Shortcuts",
|
|
"addBinding": "Add Shortcut",
|
|
"addBindingTitle": "Add Shortcut",
|
|
"editBindingTitle": "Edit Shortcut",
|
|
"loading": "Loading...",
|
|
"noCustomBindings": "No custom shortcuts yet",
|
|
"defaultBadge": "Default",
|
|
"customizedBadge": "Customized",
|
|
"customize": "Customize",
|
|
"resetToDefault": "Reset to default",
|
|
"resetAllToDefaults": "Reset all to defaults",
|
|
"close": "Close",
|
|
"cancel": "Cancel",
|
|
"saveBinding": "Save Shortcut",
|
|
"saveError": "Failed to save keyboard shortcuts",
|
|
"pressKeysToRecord": "Key combination",
|
|
"pressKeysPlaceholder": "Click and press keys",
|
|
"recording": "Press keys...",
|
|
"comboRequiredError": "Press a key combination first",
|
|
"conflictWarning": "This combination is already bound to {{combo}}. Saving will make both fire.",
|
|
"actionLabel": "Action",
|
|
"actionNextTab": "Switch to next tab",
|
|
"actionPreviousTab": "Switch to previous tab",
|
|
"actionOpenCommandPalette": "Open quick search",
|
|
"actionReconnectSession": "Reconnect current session",
|
|
"unavailableAction": "{{type}} (not available)",
|
|
"actionRequiredError": "Pick an action first",
|
|
"deleteConfirm": "Delete this keybinding?",
|
|
"resetAllConfirm": "Reset every keybinding to its default?"
|
|
},
|
|
"userProfile": {
|
|
"storageModeLocal": "Browser",
|
|
"storageModeCloud": "Database",
|
|
"storageModeDescription": "Browser stores settings in this browser only. Database syncs to the server and loads on any device.",
|
|
"resetToDefaults": "Reset to Defaults",
|
|
"resetToDefaultsSuccess": "Settings reset to defaults.",
|
|
"storageModeSwitch": "Preference Storage",
|
|
"sectionAccount": "Account",
|
|
"desktopProfileTitle": "This device only",
|
|
"desktopProfileDescription": "This profile lives on this device and signs in by itself. Link it to a Termix server to use the same hosts and settings on every device.",
|
|
"sectionInterface": "Interface",
|
|
"interfacePresetDesc": "How much detail Termix shows. Every feature stays available.",
|
|
"preset_simple": "Simple",
|
|
"preset_simple_desc": "The essentials only.",
|
|
"preset_balanced": "Balanced",
|
|
"preset_balanced_desc": "The standard layout.",
|
|
"preset_advanced": "Advanced",
|
|
"preset_advanced_desc": "Everything on, densely packed.",
|
|
"presetClearOverrides": "Reset all",
|
|
"presetOverridesTitle": "Customized",
|
|
"presetRevertArea": "Revert",
|
|
"presetConfirmTitle": "Switch to {{preset}}?",
|
|
"presetConfirmDesc": "This resets your sidebar, navigation, dashboard layout, terminal toolbar and file manager view. Your hosts, credentials and homepage are not touched.",
|
|
"presetConfirmApply": "Apply preset",
|
|
"runSetupAgainDesc": "Walk through the first-run setup again.",
|
|
"runSetupAgainButton": "Run setup",
|
|
"uiArea_chrome": "App chrome",
|
|
"uiArea_hostList": "Host list",
|
|
"uiArea_credentialList": "Credential list",
|
|
"uiArea_rail": "Navigation",
|
|
"uiArea_dashboard": "Dashboard",
|
|
"uiArea_terminal": "Terminal",
|
|
"uiArea_fileManager": "File manager",
|
|
"uiArea_hostEditor": "Host editor",
|
|
"sectionAppearance": "Appearance",
|
|
"sectionSecurity": "Security",
|
|
"sectionApiKeys": "API Keys",
|
|
"sectionData": "Data",
|
|
"usernameLabel": "Username",
|
|
"roleLabel": "Role",
|
|
"roleAdministrator": "Administrator",
|
|
"authMethodLabel": "Auth Method",
|
|
"authMethodLocal": "Local",
|
|
"twoFaLabel": "2FA",
|
|
"twoFaOn": "On",
|
|
"twoFaOff": "Off",
|
|
"versionLabel": "Version",
|
|
"betaProgramTitle": "Beta Program",
|
|
"betaProgramDescription": "Try upcoming features early with the weekly rolling :beta Docker tag. Unstable, not for production.",
|
|
"betaProgramFeedback": "Found a bug? Report it here.",
|
|
"betaProgramLearnMore": "Learn More",
|
|
"cliTitle": "Termix CLI",
|
|
"cliDescription": "Open terminals, run commands and move files from your own shell.",
|
|
"cliLearnMore": "Learn More",
|
|
"deleteAccount": "Delete Account",
|
|
"deleteAccountDescription": "Permanently delete your account",
|
|
"changeServerDescription": "Switch to a different Termix backend server",
|
|
"deleteButton": "Delete",
|
|
"deleteAccountPermanent": "This action is permanent and cannot be undone.",
|
|
"deleteAccountWarning": "All sessions, hosts, credentials, and settings will be permanently deleted.",
|
|
"confirmPasswordDeletePlaceholder": "Enter your password to confirm",
|
|
"languageLabel": "Language",
|
|
"themeLabel": "Theme",
|
|
"fontSizeLabel": "Font Size",
|
|
"interfaceFontLabel": "Interface Font",
|
|
"interfaceFontDescription": "Changes the application interface font. Terminal profiles keep their own font settings.",
|
|
"accentColorLabel": "Accent Color",
|
|
"keyboardShortcuts": "Keyboard Shortcuts",
|
|
"keyboardShortcutsDescription": "Customize terminal copy, paste, and command shortcuts",
|
|
"manageShortcuts": "Manage",
|
|
"historyTracking": "History Tracking",
|
|
"historyTrackingDesc": "Track terminal commands",
|
|
"commandPalette": "Command Palette",
|
|
"commandPaletteDesc": "Enable keyboard shortcut",
|
|
"reopenTabsOnLogin": "Reopen Tabs on Login",
|
|
"reopenTabsOnLoginDesc": "Restore your open tabs when you log in or refresh the page, even from another device",
|
|
"confirmTabClose": "Confirm Tab Close",
|
|
"confirmTabCloseDesc": "Ask before closing terminal tabs",
|
|
"showTabNumbers": "Show Tab Numbers",
|
|
"showTabNumbersDesc": "Display a number on each tab to help tell them apart",
|
|
"settingsAppRail": "App Rail",
|
|
"sidebarSettingsMoved": "Host sidebar display settings have moved to the Customize sidebar panel, opened from the Hosts toolbar.",
|
|
"showHostTags": "Show Host Tags",
|
|
"showHostTagsDesc": "Display tags in host list",
|
|
"hostTrayOnClick": "Click to Expand Host Actions",
|
|
"hostTrayOnClickDesc": "Always show connection buttons; click to expand management options instead of hover",
|
|
"compactHostView": "Compact Host View",
|
|
"compactHostViewDesc": "Collapse each host to a single line showing only its name and address",
|
|
"statusColors": "Real Status Colors",
|
|
"statusColorsDesc": "Use green/red for online/offline status instead of the accent color",
|
|
"pinAppRail": "Pin App Rail",
|
|
"pinAppRailDesc": "Keep the left sidebar app rail always expanded instead of expanding on hover",
|
|
"openFullscreenSettings": "Open settings full screen",
|
|
"exitFullscreenSettings": "Exit full-screen settings",
|
|
"expandAppRailOnHover": "Expand App Rail on Hover",
|
|
"expandAppRailOnHoverDesc": "Allow the left sidebar app rail to expand when the pointer moves over it",
|
|
"showPinAppRailButton": "Show Pin App Rail Button",
|
|
"showPinAppRailButtonDesc": "Show a button in the app rail to pin it open. Off by default.",
|
|
"settingsNavigation": "Navigation",
|
|
"navigationTabsDesc": "Choose which tabs appear in the app rail",
|
|
"showSnippetCommands": "Show Commands",
|
|
"showSnippetCommandsDesc": "Show each snippet's command under its name. Turn off for a compact list.",
|
|
"foldersCollapsed": "Folders Collapsed",
|
|
"foldersCollapsedDesc": "Collapse folders by default",
|
|
"confirmExecution": "Confirm Execution",
|
|
"confirmExecutionDesc": "Confirm before running snippets",
|
|
"settingsUpdates": "Updates",
|
|
"disableUpdateChecks": "Disable Update Checks",
|
|
"disableUpdateChecksDesc": "Stop checking for updates",
|
|
"changePassword": "Change Password",
|
|
"currentPasswordLabel": "Current Password",
|
|
"currentPasswordPlaceholder": "Current password",
|
|
"newPasswordLabel": "New Password",
|
|
"newPasswordPlaceholder": "New password",
|
|
"confirmPasswordLabel": "Confirm New Password",
|
|
"confirmPasswordPlaceholder": "Confirm new password",
|
|
"updatePassword": "Update Password",
|
|
"createApiKeyTitle": "Create API Key",
|
|
"createApiKeyDescription": "Generate a new API key for programmatic access.",
|
|
"apiKeyNameLabel": "Name",
|
|
"apiKeyNamePlaceholder": "e.g. CI Pipeline",
|
|
"expiryDateLabel": "Expiry Date",
|
|
"optional": "optional",
|
|
"cancel": "Cancel",
|
|
"createKey": "Create Key",
|
|
"apiKeyCreatedWarning": "Key created - copy it now, it won't be shown again.",
|
|
"copyApiKey": "Copy API key",
|
|
"copiedToClipboard": "Copied to clipboard",
|
|
"apiKeyCount": "{{count}} keys",
|
|
"newKey": "New Key",
|
|
"noApiKeys": "No API keys yet.",
|
|
"apiKeyActive": "Active",
|
|
"apiKeyUsageHint": "Include your key in the",
|
|
"apiKeyUsageHintHeader": "header.",
|
|
"apiKeyPermissionsHint": "Keys inherit the permissions of the creating user.",
|
|
"exportData": "Export My Data",
|
|
"exportDataDesc": "Download a backup of your hosts, credentials, and settings to transfer to another device",
|
|
"export": "Export",
|
|
"exporting": "Exporting...",
|
|
"importData": "Import My Data",
|
|
"importDataDesc": "Restore your hosts, credentials, and settings from a .sqlite backup file",
|
|
"importDataSelected": "Selected: {{name}}",
|
|
"selectFile": "Select File",
|
|
"changeFile": "Change",
|
|
"import": "Import",
|
|
"importing": "Importing...",
|
|
"exportSuccess": "Data exported successfully",
|
|
"exportFailed": "Data export failed",
|
|
"importSelectFile": "Please select a file first",
|
|
"importCompleted": "Import completed: {{total}} items imported, {{skipped}} skipped",
|
|
"importFailed": "Import failed: {{error}}",
|
|
"roleUser": "User",
|
|
"authMethodDual": "Dual Auth",
|
|
"authMethodExternal": "External",
|
|
"done": "Done",
|
|
"apiKeyNameRequired": "Key name is required",
|
|
"apiKeyCreated": "API key \"{{name}}\" created",
|
|
"apiKeyCreateFailed": "Failed to create API key",
|
|
"apiKeyUser": "User",
|
|
"apiKeyExpires": "Expires",
|
|
"apiKeyRevoked": "API key \"{{name}}\" revoked",
|
|
"apiKeyRevokeFailed": "Failed to revoke API key",
|
|
"passwordFieldsRequired": "Current and new passwords are required",
|
|
"passwordMismatch": "Passwords do not match",
|
|
"passwordTooShort": "Password must be at least 6 characters",
|
|
"passwordUpdated": "Password updated successfully",
|
|
"passwordUpdateFailed": "Failed to update password",
|
|
"deletePasswordRequired": "Password is required to delete your account",
|
|
"deleteFailed": "Failed to delete account",
|
|
"deleting": "Deleting...",
|
|
"colorPickerTooltip": "Open color picker",
|
|
"themeSystem": "System",
|
|
"themeLight": "Light",
|
|
"themeDark": "Dark",
|
|
"themeDracula": "Dracula",
|
|
"themeCatppuccin": "Catppuccin",
|
|
"themeNord": "Nord",
|
|
"themeSolarized": "Solarized",
|
|
"themeTokyoNight": "Tokyo Night",
|
|
"themeOneDark": "One Dark",
|
|
"themeGruvbox": "Gruvbox",
|
|
"linkedProfileTitle": "Signed in to {{server}}",
|
|
"linkedProfileDescription": "This device uses your account on the server and keeps a copy of your data, so it still works offline.",
|
|
"manageSync": "Manage sync",
|
|
"setUpSync": "Link to a server",
|
|
"settingsTabsAndShortcuts": "Tabs and Shortcuts"
|
|
}
|
|
}
|
|
},
|
|
"terminalToolbar": {},
|
|
"plugins": {
|
|
"capabilities": {
|
|
"credentials:read": {
|
|
"title": "See your passwords and keys",
|
|
"consequence": "It can read the stored secret for any host you can reach."
|
|
},
|
|
"ssh:connect": {
|
|
"title": "Run commands on your servers",
|
|
"consequence": "Any command, on hosts you connect it to, with your access."
|
|
},
|
|
"process:spawn": {
|
|
"title": "Run programs on this machine",
|
|
"consequence": "Programs run on the Termix server itself, not on your hosts."
|
|
},
|
|
"users:write": {
|
|
"title": "Create and change user accounts",
|
|
"consequence": "It can add users and change their roles."
|
|
},
|
|
"auth:provide": {
|
|
"title": "Handle sign in",
|
|
"consequence": "It can add a login method, a second factor or an SSH sign-in type."
|
|
},
|
|
"system:tls": {
|
|
"title": "Manage certificates",
|
|
"consequence": "It can replace the certificate Termix serves over HTTPS and answer domain checks from certificate authorities."
|
|
},
|
|
"device:serial": {
|
|
"title": "Access serial and USB devices",
|
|
"consequence": "It can open a physical serial port on the machine running Termix."
|
|
},
|
|
"hosts:write": {
|
|
"title": "Create and change hosts",
|
|
"consequence": "It can add hosts and edit the ones you already have."
|
|
},
|
|
"credentials:use": {
|
|
"title": "Connect to your servers",
|
|
"consequence": "It cannot see your passwords or keys."
|
|
},
|
|
"credentials:write": {
|
|
"title": "Save new credentials",
|
|
"consequence": "It can add passwords and keys to your saved credentials."
|
|
},
|
|
"network:outbound": {
|
|
"title": "Reach the internet",
|
|
"consequence": "It can send requests to outside services."
|
|
},
|
|
"network:serve": {
|
|
"title": "Accept connections",
|
|
"consequence": "It opens a port on the Termix server."
|
|
},
|
|
"network:broadcast": {
|
|
"title": "Send network broadcasts",
|
|
"consequence": "It can send packets to devices on the local network, such as a Wake-on-LAN signal."
|
|
},
|
|
"users:read": {
|
|
"title": "See usernames and roles",
|
|
"consequence": "Never password hashes, never two factor state."
|
|
},
|
|
"events:core": {
|
|
"title": "Watch everything happening",
|
|
"consequence": "Including activity from other users, not just yours."
|
|
},
|
|
"notify:send": {
|
|
"title": "Send alerts",
|
|
"consequence": "To you or other users, and through the channels they set up."
|
|
},
|
|
"notify:hub": {
|
|
"title": "Receive every alert",
|
|
"consequence": "Stores and delivers the alerts all plugins send, including their contents."
|
|
},
|
|
"audit:read": {
|
|
"title": "Read the audit log",
|
|
"consequence": "It can see who did what and when."
|
|
},
|
|
"desktop:window": {
|
|
"title": "Open desktop windows",
|
|
"consequence": "Only in the Termix desktop app."
|
|
},
|
|
"users:impersonate": {
|
|
"title": "Act as other users",
|
|
"consequence": "Runs background work with another user's access, such as scheduled jobs. Every use is written to the audit log."
|
|
},
|
|
"db:core-refs": {
|
|
"title": "Read core account tables",
|
|
"consequence": "Can query users, roles and hosts directly from the database."
|
|
},
|
|
"hosts:read": {
|
|
"title": "See your host list",
|
|
"consequence": "Names and addresses for hosts you can already see."
|
|
},
|
|
"db:own": {
|
|
"title": "Store its own data",
|
|
"consequence": "Kept in its own tables, separate from other plugins."
|
|
},
|
|
"kv:own": {
|
|
"title": "Remember small settings",
|
|
"consequence": "Kept separate from other plugins."
|
|
},
|
|
"files:own": {
|
|
"title": "Store its own files",
|
|
"consequence": "In its own folder on disk, separate from other plugins."
|
|
},
|
|
"secrets:own": {
|
|
"title": "Store its own secrets",
|
|
"consequence": "Encrypted by Termix. The plugin never holds the key."
|
|
},
|
|
"settings:read-core": {
|
|
"title": "Read Termix settings",
|
|
"consequence": "Server settings, not your hosts or credentials."
|
|
},
|
|
"plugins:read": {
|
|
"title": "See installed features",
|
|
"consequence": "It can see which features are installed and running."
|
|
},
|
|
"ui:surface": {
|
|
"title": "Add its own screens",
|
|
"consequence": "Tabs, panels and settings you can hide later."
|
|
}
|
|
},
|
|
"runtime": {
|
|
"needsPlugin": "{{name}} is not available",
|
|
"needsUnknownPlugin": "This feature is not available",
|
|
"disabledHint": "It is turned off on this server.",
|
|
"missingHint": "The feature it came from has been removed.",
|
|
"failed": "{{name}} could not start",
|
|
"failedHint": "An admin can check the server logs for details.",
|
|
"loading": "Loading {{name}}",
|
|
"crashed": "Something went wrong in {{name}}",
|
|
"retry": "Try again"
|
|
},
|
|
"manager": {
|
|
"tabs": {
|
|
"installed": "Installed",
|
|
"browse": "Browse",
|
|
"updates": "Updates"
|
|
},
|
|
"status": {
|
|
"summary": "{{installed}} installed, {{running}} running",
|
|
"running": "Running",
|
|
"disabled": "Disabled",
|
|
"failed": "Stopped unexpectedly",
|
|
"blocked": "Waiting on another plugin"
|
|
},
|
|
"groups": {
|
|
"running": "Running",
|
|
"notRunning": "Not running"
|
|
},
|
|
"sort": {
|
|
"popular": "Most popular",
|
|
"name": "Name",
|
|
"updated": "Recently updated",
|
|
"category": "Category"
|
|
},
|
|
"risk": {
|
|
"critical": "Critical",
|
|
"high": "High risk",
|
|
"medium": "Medium risk",
|
|
"low": "Low risk"
|
|
},
|
|
"contributes": {
|
|
"tabs_one": "{{count}} tab",
|
|
"tabs_other": "{{count}} tabs",
|
|
"panels_one": "{{count}} panel",
|
|
"panels_other": "{{count}} panels",
|
|
"dashboardCards_one": "{{count}} dashboard card",
|
|
"dashboardCards_other": "{{count}} dashboard cards",
|
|
"actions_one": "{{count}} action",
|
|
"actions_other": "{{count}} actions",
|
|
"protocols_one": "{{count}} connection type",
|
|
"protocols_other": "{{count}} connection types",
|
|
"auth_one": "{{count}} sign in method",
|
|
"auth_other": "{{count}} sign in methods",
|
|
"settings_one": "Settings",
|
|
"settings_other": "Settings",
|
|
"hostCapability_one": "Host settings",
|
|
"hostCapability_other": "Host settings",
|
|
"permissions_one": "{{count}} role permission",
|
|
"permissions_other": "{{count}} role permissions",
|
|
"keybindingActions_one": "{{count}} shortcut",
|
|
"keybindingActions_other": "{{count}} shortcuts",
|
|
"syncEntities_one": "Desktop sync",
|
|
"syncEntities_other": "Desktop sync"
|
|
},
|
|
"consent": {
|
|
"installTitle": "Install {{name}}",
|
|
"updateTitle": "Update {{name}}",
|
|
"agreeUpdate": "Agree and update",
|
|
"updateExplain": "This version asks for something the one you have does not, so it will not install on its own.",
|
|
"newInVersion": "New in this version",
|
|
"minor": "It also adds its own screens and stores its own data, kept separate from other plugins.",
|
|
"none": "It asks for no special access.",
|
|
"uploadTitle": "Install {{name}} from a file",
|
|
"uploadWarning": "This file was not checked or signed by the Termix registry. Only install it if you built it yourself or trust whoever did."
|
|
},
|
|
"confirm": {
|
|
"uninstallTitle": "Uninstall {{name}}?",
|
|
"uninstallBody": "This stops it and deletes everything it stores, including its settings and secrets. You can install it again later, but the data will not come back.",
|
|
"deleteDataTitle": "Delete all data for {{name}}?",
|
|
"deleteDataBody": "Its tables, settings, secrets and files are deleted and it is turned off. This cannot be undone.",
|
|
"enableAlsoTitle": "Turn on {{name}}?",
|
|
"enableAlsoBody": "It needs these to run, so they will be turned on too: {{list}}.",
|
|
"disableAlsoTitle": "Turn off {{name}}?",
|
|
"disableAlsoBody": "These need it to run, so they will be turned off too: {{list}}.",
|
|
"downgradeTitle": "Go back to {{name}} {{version}}?",
|
|
"downgradeBody": "Data written by the newer version stays as it is, and an older version may not understand it. The plugin will stay on this version until you unpin it.",
|
|
"downgradeConfirm": "Switch version"
|
|
},
|
|
"toast": {
|
|
"installed": "{{name}} installed",
|
|
"installedNotRunning": "{{name}} installed but could not start. Open it to see why.",
|
|
"updated": "{{name}} updated to {{version}}",
|
|
"updatedMany_one": "{{count}} plugin updated",
|
|
"updatedMany_other": "{{count}} plugins updated",
|
|
"uninstalled": "{{name}} uninstalled",
|
|
"dataDeleted": "Data for {{name}} deleted",
|
|
"failedToStart": "{{name}} could not start. Open it to see why."
|
|
},
|
|
"errors": {
|
|
"generic": "Something went wrong",
|
|
"install": "Could not install {{name}}: {{error}}",
|
|
"update": "Could not update {{name}}: {{error}}",
|
|
"updateAll": "Could not update plugins: {{error}}",
|
|
"uninstall": "Could not uninstall {{name}}: {{error}}",
|
|
"state": "Could not change {{name}}: {{error}}",
|
|
"retry": "Could not restart {{name}}: {{error}}",
|
|
"options": "Could not save options for {{name}}: {{error}}",
|
|
"deleteData": "Could not delete data for {{name}}: {{error}}",
|
|
"managedByServer": "This desktop is linked to a server, which decides its plugins.",
|
|
"hasDependents": "{{name}} is needed by {{list}}. Turn those off or uninstall them first.",
|
|
"missingDependencies": "{{name}} needs {{list}}, which is not installed.",
|
|
"consentChanged": "What this plugin asks for changed since you looked. Check the list again.",
|
|
"upload": "Could not read {{name}}: {{error}}",
|
|
"developerMode": "Could not change developer mode: {{error}}"
|
|
},
|
|
"data": {
|
|
"title": "Stored data",
|
|
"delete": "Delete data",
|
|
"loadFailed": "Could not read what this plugin stores.",
|
|
"tables": "Tables",
|
|
"kv": "Keys",
|
|
"settings": "Settings",
|
|
"files": "Files",
|
|
"rows_one": "{{count}} row",
|
|
"rows_other": "{{count}} rows",
|
|
"secrets_one": "{{count}} secret",
|
|
"secrets_other": "{{count}} secrets",
|
|
"migrations_one": "{{count}} migration applied",
|
|
"migrations_other": "{{count}} migrations applied",
|
|
"grants_one": "{{count}} capability granted",
|
|
"grants_other": "{{count}} capabilities granted"
|
|
},
|
|
"install": "Install",
|
|
"uninstall": "Uninstall",
|
|
"enable": "Enable",
|
|
"disable": "Disable",
|
|
"restart": "Restart",
|
|
"update": "Update",
|
|
"updateAll": "Update all",
|
|
"updateTo": "Update to {{version}}",
|
|
"review": "Review",
|
|
"reviewUpdate": "Review update",
|
|
"updates": "Updates",
|
|
"auto": "Auto",
|
|
"autoUpdate": "Update on its own",
|
|
"autoUpdateHint": "Never when the update asks for something new.",
|
|
"pin": "Stay on this version",
|
|
"pinHint": "Keeps {{version}} and skips every update until you turn this off.",
|
|
"pinnedTo": "Pinned to {{version}}",
|
|
"version": "Version",
|
|
"versionPickHint": "Install an older release instead of the newest. It stays on that version until you unpin it.",
|
|
"versionPickHintInstalled": "Switch to another release. Picking one that is not the newest pins it.",
|
|
"switchVersion": "Switch",
|
|
"latestVersion": "{{version}} (latest)",
|
|
"versionChange": "{{from}} to {{to}}",
|
|
"versionHistory": "Version history",
|
|
"releaseNotes": "Release notes",
|
|
"installedBadge": "Installed",
|
|
"incompatible": "Needs a newer Termix",
|
|
"whatItCanDo": "What it can do",
|
|
"addsToTermix": "Adds to Termix",
|
|
"addsToTermixHint": "Uninstall and every one of these goes away.",
|
|
"noServerAccess": "No access to your servers",
|
|
"searchInstalled": "Search installed",
|
|
"searchPlugins": "Search plugins",
|
|
"allCategories": "All",
|
|
"nothingMatches": "Nothing matches that.",
|
|
"noneInstalled": "No plugins installed yet. Browse to add some.",
|
|
"nothingHere": "Nothing here.",
|
|
"nothingHereHint": "Try another category or search.",
|
|
"upToDate": "Everything is up to date.",
|
|
"lastChecked": "Last checked {{time}}",
|
|
"updatesReady_one": "{{count}} update ready.",
|
|
"updatesReady_other": "{{count}} updates ready.",
|
|
"updatesNeedReview_one": "{{count}} more needs your review first.",
|
|
"updatesNeedReview_other": "{{count}} more need your review first.",
|
|
"updateAsksMore": "This update asks for more access, so it waits for you.",
|
|
"checkRegistry": "Check for plugins and updates",
|
|
"registryUnreachable": "Could not reach the plugin registry ({{error}}). Installed plugins still work.",
|
|
"managedByServer": "This desktop is linked to a server, which decides its plugins. Changes are made on the server.",
|
|
"browsePlugins": "Browse plugins",
|
|
"loading": "Loading",
|
|
"developer": {
|
|
"title": "Plugin developer mode",
|
|
"hint": "Lets admins install plugins from a .tmxplug file in the Plugins tab, without the registry checks. Use it to build and test your own plugins.",
|
|
"enableTitle": "Turn on developer mode?",
|
|
"enableBody": "Admins will be able to install plugins from files that Termix has not checked. A plugin can do anything its capabilities allow, so only turn this on while you are building or testing plugins.",
|
|
"enable": "Turn on",
|
|
"installFromFile": "Install from file",
|
|
"signedOnly": "TERMIX_REQUIRE_SIGNED_PLUGINS is set, so installing from a file stays blocked."
|
|
},
|
|
"count": {
|
|
"active_one": "{{formatted}} active install",
|
|
"active_other": "{{formatted}} active installs",
|
|
"downloads_one": "{{formatted}} download",
|
|
"downloads_other": "{{formatted}} downloads",
|
|
"activeHint": "Instances that reported this plugin turned on in the last week. Instances with usage statistics turned off are not counted.",
|
|
"downloadsHint": "How many times a release was downloaded. This is not the number of installs."
|
|
},
|
|
"unverified": "Unverified",
|
|
"unverifiedHint": "Installed from a file. Termix did not check or sign it.",
|
|
"reportIssue": "Report an issue",
|
|
"reportTo": "Report to {{author}}",
|
|
"openSettings": "Open its settings"
|
|
}
|
|
},
|
|
"settings": {
|
|
"secretSet": "Set",
|
|
"secretNotSet": "Not set",
|
|
"secretReplace": "Replace",
|
|
"pluginSettingsSaved": "Settings saved",
|
|
"pluginSettingsInvalid": "Some settings could not be saved. Check the highlighted fields.",
|
|
"pluginSettingsSaveFailed": "Failed to save settings",
|
|
"pluginSettingsLoadFailed": "Failed to load settings",
|
|
"featureUnavailable": "{{name}} is unavailable right now. These settings are saved but will not take effect.",
|
|
"account": "Account",
|
|
"security": "Security",
|
|
"apiKeys": "API keys",
|
|
"data": "Data and sync",
|
|
"interface": "Interface",
|
|
"appearance": "Appearance",
|
|
"keybindings": "Keybindings",
|
|
"adminGeneral": "General",
|
|
"adminUsers": "Users",
|
|
"adminSessions": "Sessions",
|
|
"adminRoles": "Roles",
|
|
"adminHostDefaults": "Host defaults",
|
|
"adminBranding": "Branding",
|
|
"adminDatabase": "Database",
|
|
"adminSsl": "SSL",
|
|
"adminApiKeys": "API keys",
|
|
"adminAuditLog": "Audit log",
|
|
"bandYou": "Your account",
|
|
"bandApp": "This app",
|
|
"bandPlugins": "Plugins",
|
|
"bandInstance": "This server",
|
|
"searchPlaceholder": "Search settings",
|
|
"noResults": "No settings match.",
|
|
"pages": "Pages",
|
|
"instanceSettings": "Server settings",
|
|
"nothingHere": "Nothing to set here.",
|
|
"searchPage": "Search this page",
|
|
"noPageMatches": "Nothing on this page matches."
|
|
},
|
|
"managerCard": {
|
|
"refresh": "Refresh",
|
|
"retry": "Retry",
|
|
"sudoHint": "Set a sudo password for this host in the host editor to enable privileged actions.",
|
|
"noData": "No data",
|
|
"filter": "Filter..."
|
|
},
|
|
"sync": {
|
|
"server": "Termix server",
|
|
"account": "Account",
|
|
"status": "Status",
|
|
"never": "never",
|
|
"justNow": "just now",
|
|
"minutesAgo_one": "{{count}} minute ago",
|
|
"minutesAgo_other": "{{count}} minutes ago",
|
|
"hoursAgo_one": "{{count}} hour ago",
|
|
"hoursAgo_other": "{{count}} hours ago",
|
|
"actionFailed": "That did not work. Try again.",
|
|
"unlinkedTitle": "This device only",
|
|
"unlinkedBody": "Termix works on its own on this device. Link it to your Termix server to keep everything in step.",
|
|
"unlinkedPointHosts": "Your hosts, credentials, snippets and settings follow you to every device.",
|
|
"unlinkedPointOffline": "Everything still works when the server cannot be reached, and catches up later.",
|
|
"unlinkedPointAccount": "You sign in with your server account, and hosts people shared with you show up here too.",
|
|
"linkButton": "Link to a server",
|
|
"state": {
|
|
"syncing": "Syncing",
|
|
"offline": "Server not reachable",
|
|
"error": "Sync stopped",
|
|
"signedOut": "Signed out",
|
|
"synced": "Synced {{time}}"
|
|
},
|
|
"pending_one": "{{count}} change waiting to sync",
|
|
"pending_other": "{{count}} changes waiting to sync",
|
|
"signInAgain": "Sign in again",
|
|
"syncNow": "Sync now",
|
|
"unlink": "Unlink",
|
|
"unlinked": "This device is no longer linked",
|
|
"unlinkTitle": "Unlink this device?",
|
|
"unlinkDescription": "It stops syncing and signs out of the server. Hosts shared with you by others are removed from this device either way.",
|
|
"unlinkKeepTitle": "Keep my data here",
|
|
"unlinkKeepBody": "Your hosts, credentials and settings stay on this device and keep working on their own.",
|
|
"unlinkRemoveTitle": "Remove synced data",
|
|
"unlinkRemoveBody": "Everything that came from the server is removed from this device. Hosts kept on this device only stay.",
|
|
"conflictsTitle": "Conflicts",
|
|
"conflictsDescription": "These were changed here and on the server at the same time. The server version is in use. Keep yours to send it to the server instead.",
|
|
"keepMine": "Keep mine",
|
|
"keepServer": "Keep server",
|
|
"errorsTitle": "Not synced",
|
|
"errorsDescription": "The server did not accept these changes. They stay on this device.",
|
|
"errorPermission": "Your account on the server is not allowed to make this change.",
|
|
"retry": "Try again",
|
|
"whatSyncs": "What syncs",
|
|
"whatSyncsDescription": "Turn off anything you want to keep on this device only.",
|
|
"coreGroup": "Termix",
|
|
"notOnServer": "The server does not have this",
|
|
"notOnDevice": "Not on this device yet",
|
|
"localOnlyHint": "You can also keep single hosts or folders on this device from their settings.",
|
|
"originTitle": "Where connections start",
|
|
"originDescription": "Connect to hosts from this device, or through the server. You can change this per host.",
|
|
"originLocal": "This device",
|
|
"originRemote": "The server",
|
|
"entities": {
|
|
"hosts": "Hosts",
|
|
"sshCredentials": "Credentials",
|
|
"sshFolders": "Folders",
|
|
"userPreferences": "Preferences",
|
|
"pluginUserSettings": "Feature settings",
|
|
"sharedHosts": "Hosts shared with you",
|
|
"sharedCredentials": "Credentials shared with you",
|
|
"vaultProfiles": "Vault profiles",
|
|
"snippetFolders": "Snippet folders",
|
|
"snippets": "Snippets",
|
|
"dashboardServiceLinks": "Service links",
|
|
"homepageItems": "Homepage items",
|
|
"networkTopology": "Network map",
|
|
"workspaces": "Workspaces"
|
|
},
|
|
"proxy": {
|
|
"title": "Reverse proxy",
|
|
"description": "Only needed when something like Cloudflare Access or a login page sits in front of your server.",
|
|
"headersTitle": "Extra headers",
|
|
"headersHint": "Sent with every request to the server, for example a Cloudflare Access service token.",
|
|
"headerName": "Header name",
|
|
"headerValue": "Value",
|
|
"savedValue": "Saved, type to change",
|
|
"addHeader": "Add header",
|
|
"removeHeader": "Remove header",
|
|
"basicAuthTitle": "Username and password",
|
|
"basicAuthHint": "For a proxy that asks for a username and password before Termix.",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"allowInvalidCertificate": "Trust a self-signed certificate",
|
|
"allowInvalidCertificateHint": "Only for your own server, when its certificate is not from a known authority.",
|
|
"saved": "Saved"
|
|
},
|
|
"problems": {
|
|
"invalidUrl": "That does not look like a web address.",
|
|
"unreachable": "Could not reach the server. Check the address and that the server is running.",
|
|
"unreachableWithReason": "Could not reach the server: {{reason}}",
|
|
"tlsUntrusted": "The server certificate is not trusted. If this is your own server with a self-signed certificate, turn on the option below.",
|
|
"basicAuthRequired": "Something in front of the server asks for a username and password. Enter them below.",
|
|
"proxyLogin": "A login page or proxy answered instead of Termix. Add the headers it needs below, or check the address.",
|
|
"notTermix": "There is no Termix server at that address. If it runs under a path, include it, like https://example.com/termix.",
|
|
"versionMismatch": "That server runs an older Termix. Update it to 2.9 or newer to link.",
|
|
"differentAccount": "You signed in to a different account. Sign in to the account this device is linked to, or unlink first."
|
|
},
|
|
"wizard": {
|
|
"title": "Link to a Termix server",
|
|
"reloginTitle": "Sign in again",
|
|
"savedServers": "Recent servers",
|
|
"removeServer": "Remove from the list",
|
|
"serverDescription": "Enter the address you use to open Termix in your browser.",
|
|
"signinDescription": "Sign in to {{url}}",
|
|
"chooseDescription": "This device already has data. What should happen to it?",
|
|
"finishingDescription": "Linking this device.",
|
|
"serverUrl": "Server address",
|
|
"serverUrlHint": "For example https://termix.example.com",
|
|
"showProxySettings": "Reverse proxy settings",
|
|
"hideProxySettings": "Hide reverse proxy settings",
|
|
"continue": "Continue",
|
|
"back": "Back",
|
|
"mergeTitle": "Add it to my account",
|
|
"mergeBody": "The {{count}} items on this device are added to your account. Items your account already has stay as they are on the server.",
|
|
"replaceTitle": "Replace it with my account",
|
|
"replaceBody": "The {{count}} items on this device are removed, and this device takes everything from your account. Hosts kept on this device only stay.",
|
|
"link": "Link",
|
|
"linking": "Linking and running the first sync...",
|
|
"linked": "Linked. Your data is syncing now.",
|
|
"signedInAgain": "Signed in. Sync is running again."
|
|
}
|
|
},
|
|
"hostDefaults": {
|
|
"source": {
|
|
"folder": "Folder {{name}}",
|
|
"user": "My defaults",
|
|
"admin": "Server",
|
|
"builtin": "Built-in"
|
|
},
|
|
"custom": "Custom",
|
|
"setHere": "Set here",
|
|
"notSet": "Not set",
|
|
"notSetTitle": "No default is set for this",
|
|
"resetTitle": "This host sets its own value. Click to use the default from {{source}} again",
|
|
"clearTitle": "Set at this level. Click to clear it and use {{source}} instead",
|
|
"inheritedTitle": "Follows the default from {{source}}",
|
|
"titleAdmin": "Server host defaults",
|
|
"titleUser": "My host defaults",
|
|
"titleFolder": "Folder defaults: {{name}}",
|
|
"descriptionAdmin": "Defaults for every host on this server. A user's own defaults, a folder's defaults or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.",
|
|
"descriptionUser": "Defaults for all of your hosts, over the server's. A folder or the host itself can still set a different value. Change a field to set it here, or clear it to leave it unset.",
|
|
"descriptionFolder": "Defaults for the hosts in this folder and its subfolders, over your own. A host can still set a different value. Change a field to set it here, or clear it to leave it unset.",
|
|
"save": "Save defaults",
|
|
"saved_one": "Defaults saved. {{count}} host was updated.",
|
|
"saved_other": "Defaults saved. {{count}} hosts were updated.",
|
|
"savedInBackground": "Defaults saved. Hosts are being updated in the background.",
|
|
"appliedToHosts_one": "{{count}} host was updated with the new defaults.",
|
|
"appliedToHosts_other": "{{count}} hosts were updated with the new defaults.",
|
|
"saveFailed": "Could not save the defaults",
|
|
"loadFailed": "Could not load the defaults",
|
|
"confirmTitle": "Save defaults?",
|
|
"confirmChanges_one": "{{count}} host follows these defaults and will change.",
|
|
"confirmChanges_other": "{{count}} hosts follow these defaults and will change.",
|
|
"confirmNoChanges": "No existing host changes. New hosts will start with these defaults.",
|
|
"menuMyDefaults": "My host defaults",
|
|
"folderDefaultsAction": "Folder defaults",
|
|
"adminSectionDescription": "Set the defaults every host on this server follows, for every setting a host has, including each feature's. Users and folders can set their own on top, and any host can still use its own value.",
|
|
"editServerDefaults": "Edit server defaults",
|
|
"resetMenu": "Reset",
|
|
"resetAll": "Everything to defaults",
|
|
"resetCore": "Connection and SSH to defaults",
|
|
"resetDone_one": "{{count}} host now follows its defaults.",
|
|
"resetDone_other": "{{count}} hosts now follow their defaults."
|
|
},
|
|
"panel": {
|
|
"clearSearch": "Clear search",
|
|
"gridView": "Grid",
|
|
"listView": "List",
|
|
"compactRows": "Compact rows",
|
|
"comfortableRows": "Comfortable rows"
|
|
},
|
|
"fields": {
|
|
"secretSaved": "Saved. Type to replace it."
|
|
},
|
|
"sharing": {
|
|
"revokeConfirm": "Remove access for {{name}}?",
|
|
"revoke": "Remove access"
|
|
},
|
|
"manage": {
|
|
"searchSettings": "Search settings",
|
|
"noMatchingSettings": "No settings match.",
|
|
"sections": "Sections",
|
|
"sectionNeedsAttention": "Something here needs attention",
|
|
"needsAttention_one": "One thing needs attention.",
|
|
"needsAttention_other": "{{count}} things need attention.",
|
|
"bandHost": "Host",
|
|
"bandFeatures": "Protocols and features",
|
|
"bandCredential": "Credential",
|
|
"sshConnection": "SSH connection",
|
|
"errorAddressRequired": "An address is required.",
|
|
"errorPortRange": "Use a port between 1 and 65535.",
|
|
"defaults": "Defaults",
|
|
"searchHosts": "Search hosts",
|
|
"searchCredentials": "Search credentials",
|
|
"searchDefaults": "Search defaults",
|
|
"addCredential": "Add credential",
|
|
"nothingMatches": "Nothing matches",
|
|
"nothingYet": "Nothing here yet",
|
|
"emptyHostsHint": "Add a host and it shows up here, in whatever folder you give it.",
|
|
"emptyCredentialsHint": "Credentials you save can be reused by any host.",
|
|
"collapse": "Collapse",
|
|
"expand": "Expand",
|
|
"cannotBeUndone": "This cannot be undone.",
|
|
"hostCount_one": "{{count}} host",
|
|
"hostCount_other": "{{count}} hosts",
|
|
"credentialCount_one": "{{count}} credential",
|
|
"credentialCount_other": "{{count}} credentials",
|
|
"newHost": "New host",
|
|
"newCredential": "New credential",
|
|
"advanced": "Advanced",
|
|
"pickHost": "Pick a host to edit",
|
|
"pickCredential": "Pick a credential to edit",
|
|
"pickDefaults": "Pick a level of defaults to edit",
|
|
"pickHint": "Everything about a connection lives here, grouped so you can find it."
|
|
}
|
|
}
|