Files
opsxshell/src/i18n/locales/en/settings.json
T

219 lines
8.2 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"nav": {
"general": "General",
"generalDesc": "Theme, language, and layout",
"terminal": "Terminal",
"terminalDesc": "Font and colors",
"shortcuts": "Shortcuts",
"shortcutsDesc": "Key bindings",
"ssh": "SSH",
"sshDesc": "Connection and pool",
"security": "Security",
"securityDesc": "Credentials and host keys",
"ai": "AI models",
"aiDesc": "AI providers",
"about": "About",
"aboutDesc": "Version, contact, and diagnostics",
"account": "Account",
"accountDesc": "Email, license, and device"
},
"title": "Settings",
"search": {
"placeholder": "Search settings…"
},
"language": {
"label": "Language",
"description": "Applies immediately",
"zhCN": "简体中文",
"zhTW": "繁體中文",
"en": "English",
"ja": "日本語",
"ko": "한국어",
"vi": "Tiếng Việt",
"ru": "Русский"
},
"general": {
"layout": "Workspace layout",
"sidebarWidth": "Sidebar width",
"sidebarWidthDesc": "Default width of the session sidebar",
"collapseSidebar": "Collapse sidebar",
"collapseSidebarDesc": "Hide the session tree to focus on the terminal; toggle with Ctrl/Cmd+B"
},
"appearance": {
"themeGroup": "Theme",
"theme": "Theme",
"themeDesc": "App UI colors (independent of terminal colors)",
"dark": "Dark",
"light": "Light",
"system": "System"
},
"terminal": {
"fontGroup": "Font and size",
"fontFamily": "Font",
"fontFamilyDesc": "Use a Nerd Font for Zsh prompt icons",
"fontSize": "Size",
"fontSizeDesc": "Terminal text size",
"scrollback": "Scrollback",
"scrollbackDesc": "Lines of history kept per terminal",
"keywordHighlight": "Keyword highlight",
"keywordHighlightDesc": "Highlight errors, warnings, and success states",
"colorTheme": "Color theme"
},
"shortcuts": {
"resetAll": "Reset all to defaults",
"custom": "Custom",
"pressKeys": "Press keys...",
"resetDefault": "Reset to default",
"conflict": "Conflicts with \"{{label}}\"",
"setTo": "Set to {{keys}}",
"hint": "Click a shortcut to rebind · Esc to cancel",
"category": {
"tabs": "Tabs",
"view": "View",
"session": "Session",
"tools": "Tools"
},
"actions": {
"tabNext": "Next tab",
"tabPrev": "Previous tab",
"tabGotoN": "Go to tab N",
"tabClose": "Close current tab",
"tabNew": "New tab",
"viewFullscreen": "Toggle fullscreen",
"viewToggleSidebar": "Toggle sidebar",
"sessionNew": "New session",
"sessionQuickConnect": "Quick connect",
"toolsCommandPalette": "Command palette"
}
},
"ssh": {
"connection": "Connection",
"keepAlive": "Keep-alive",
"keepAliveDesc": "Send SSH protocol keep-alive while idle (not typed into the shell). Beats NAT drops; does not bypass remote TMOUT",
"autoReconnect": "Auto reconnect",
"autoReconnectDesc": "Retry after unexpected disconnects while the tab stays open (new shell). Closing the tab, idle suspend, or remote TMOUT are not forced alive",
"timeout": "Connection timeout",
"timeoutDesc": "Maximum wait when establishing an SSH connection (seconds)",
"maxReconnect": "Auto-reconnect attempts",
"maxReconnectDesc": "Maximum retries after an unexpected disconnect",
"pool": "Connection pool",
"maxConnections": "Maximum connections",
"maxConnectionsDesc": "Shared by SSH, SFTP, and batch connections",
"maxBackground": "Background connection limit",
"maxBackgroundDesc": "When exceeded, the least recently used connection is reclaimed first",
"suspend": "Background suspend",
"suspendDesc": "Minutes before a background tab is suspended (kept alive while a shell or SFTP is active)",
"keepAliveInterval": "Keep-alive interval (sec)",
"keepAliveIntervalDesc": "How often to ping the server (like ClientAliveInterval). Use 15s or less on flaky Wi‑Fi / NAT",
"sessionPolicyHint": "Keep-alive protects the TCP link, not remote session policy. Bash TMOUT, sshd ClientAlive, and Windows idle GPO still apply. Use tmux/screen on the server for long jobs."
},
"security": {
"credentials": "Credential protection",
"sessionPassword": "Session passwords and key passphrases",
"sessionPasswordDesc": "Encrypted with AES-256-GCM in Rust before save; cannot be disabled",
"enabled": "Enabled",
"masterKey": "Local master key",
"masterKeyDesc": "Readable only by the current system user; path ~/.opsxshell/master.key (legacy ~/.opsxshsell is migrated automatically)",
"knownHosts": "Known hosts",
"knownHostsHint": "First connect prompts for the host fingerprint. If a reinstall or clone changes the key, choose “Trust and update” in the prompt to replace the old record. Remove one entry or clear all here.",
"clearAll": "Clear all",
"removeHost": "Remove this host record",
"empty": "No records",
"clearConfirm": "Clear all known host keys? You will be prompted again on next connect."
},
"about": {
"tagline": "Simple, practical native ops terminal",
"appVersion": "v{{version}}",
"copyVersion": "Copy version, system, and paths for a GitHub issue",
"copyDiagnostics": "Copy diagnostics",
"copyPath": "Copy path",
"resources": "Resources",
"wechat": "WeChat",
"copyWechat": "Copy WeChat ID",
"github": "Discussions",
"githubDesc": "https://github.com/L00J/opsxshell/discussions",
"releases": "Releases",
"releasesDesc": "Installers and release notes",
"licenseLink": "License",
"licenseLinkDesc": "MIT License",
"diagnostics": "Diagnostics",
"sessionsSettings": "Sessions and settings",
"license": "MIT License · Rust · XTerm.js",
"logPath": "Application log",
"reportBug": "Report a bug",
"reportBugDesc": "Opens GitHub with this version and platform filled in"
},
"ai": {
"presets": "Provider presets",
"add": "Add",
"configured": "Configured",
"configuredHint": "Choose a provider and click Add",
"emptyHint": "Add a provider to get started",
"noModel": "No model selected",
"name": "Name",
"model": "Model",
"protocol": "Protocol",
"auth": "Auth",
"authNone": "None",
"test": "Test",
"testing": "Testing",
"testingMessage": "Testing...",
"saved": "Saved",
"retest": "Please re-test",
"testFailed": "Connection test failed",
"available": "OK · {{latency}} ms",
"savedKeepBlank": "Saved — leave blank to keep",
"notRequired": "Not required",
"otherModels": "Other models…",
"customModel": "Custom model",
"backToList": "Back to list",
"apiKey": "API Key",
"apiKeyOptional": "API Key (not required)",
"endpoint": "Endpoint",
"advanced": "Advanced",
"allowHttp": "Allow HTTP (localhost/LAN)",
"setActive": "Set as active",
"deleteTitle": "Delete",
"apiKeySaveFailed": "Failed to save API key",
"providerNotFound": "Provider not found",
"modelCatalogReadFailed": "Failed to read model catalog",
"catalogUnavailable": "models.dev is unavailable",
"family": {
"openai_compatible": "OpenAI compatible",
"standalone": "Native APIs",
"plan": "Subscription plans",
"local": "Self-hosted",
"custom": "Custom"
}
},
"account": {
"title": "Account",
"email": "Email",
"emailDesc": "Used for checkout and license claims",
"plan": "Current plan",
"planFree": "Free",
"planYearly": "Pro Yearly",
"planPerpetual": "Pro Perpetual",
"planTrial": "Pro Trial",
"expires": "Expires {{date}}",
"lifetime": "Lifetime",
"devices": "Seats: up to {{count}} devices",
"deviceId": "This device ID",
"saveEmail": "Save email",
"activate": "Activate license",
"pasteLicense": "Paste LIC- license key",
"clear": "Clear local license",
"deactivate": "Deactivate this device",
"upgrade": "Upgrade",
"saved": "Saved",
"activateOk": "Activated",
"deviceList": "Bound devices",
"loadingDevices": "Loading devices…",
"noDevices": "No bound devices",
"thisDevice": "This device",
"removeDevice": "Unbind",
"deviceRemoved": "Device unbound",
"seatFull": "All seats are in use. Unbind another device before activating on a new machine."
}
}