{
  "app": {
    "connections": "Connections",
    "settings": "Settings",
    "dontSleep": "Don't Sleep",
    "dontSleepEnable": "Enable Don't Sleep mode",
    "dontSleepDisable": "Disable Don't Sleep mode",
    "dontSleepEnabledTooltip": "Don't Sleep enabled, click to disable",
    "dontSleepDisabledTooltip": "Don't Sleep disabled, clicked to enable",
    "dontSleepEnabled": "Don't Sleep mode enabled.",
    "dontSleepDisabled": "Don't Sleep mode disabled.",
    "dontSleepError": "Could not change Don't Sleep mode: {{message}}",
    "credentialStoreLocked": "Encrypted database locked",
    "credentialStoreUnlocked": "Encrypted database unlocked",
    "credentialStoreLockAction": "Lock encrypted database",
    "credentialStoreUnlockAction": "Unlock encrypted database",
    "xServer": "X Server",
    "xServerRestart": "Restart",
    "xServerStop": "Stop",
    "xServerStopped": "VcXsrv stopped.",
    "primaryNav": "Primary",
    "resizeConnections": "Resize Connections column",
    "resizeAiAssistant": "Resize AI Assistant panel",
    "aiAssistant": "AI Assistant",
    "connectionRail": "Connection Rail",
    "openConnectedConnection": "Open {{name}}",
    "openPinnedConnection": "Open pinned Connection {{name}}",
    "trayDontSleep": "Don't Sleep",
    "trayExit": "Exit",
    "titlebar": {
      "minimize": "Minimize",
      "maximize": "Maximize",
      "restore": "Restore",
      "close": "Close"
    }
  },
  "dashboard": {
    "title": "Dashboard",
    "moduleLabel": "Widget playground",
    "subtitle": "Select local utility widgets, reports, and AI Created Widgets for the tools you want close at hand.",
    "statusReady": "Dashboard widgets are local.",
    "viewsLabel": "Dashboard views",
    "defaultView": "Default view",
    "addView": "Add view",
    "addWidgetLabel": "Add Widget",
    "newViewName": "View {{count}}",
    "newViewPrompt": "View name",
    "renameView": "Rename view",
    "removeView": "Remove view",
    "viewTabGradient": "View tab color for {{view}}",
    "clearViewTabGradient": "Use theme tab color for {{view}}",
    "editLayout": "Edit",
    "editDone": "Done",
    "density": {
      "compact": "Compact",
      "default": "Default",
      "roomy": "Roomy"
    },
    "catalogTitle": "Widget Catalog",
    "catalogSearch": "Search widgets…",
    "catalogAll": "All",
    "catalogGroupBuiltIn": "Built-in",
    "catalogGroupCustom": "AI Created",
    "catalogBadgeAiGenerated": "AI generated",
    "catalogBadgeImported": "Imported",
    "catalogNoMatches": "No widgets match.",
    "presetLabel": "Style preset",
    "preset": {
      "panel": "Panel",
      "ambient": "Ambient",
      "hero": "Hero"
    },
    "glassBackground": "Frosted glass background",
    "hideTitle": "Hide title bar",
    "canvasOpacity": "Canvas opacity",
    "accent": "Accent",
    "accentDefault": "Default",
    "icon": "Icon",
    "titleLabel": "Title",
    "titlePlaceholder": "Custom title…",
    "renameTitleHint": "Double-click to rename",
    "advanced": "Advanced",
    "changeBackground": "Change Background…",
    "backgroundModeDefault": "Theme Default",
    "backgroundModePreset": "Color & Gradient",
    "backgroundModeImage": "Image",
    "backgroundModeMedia": "Image / Video",
    "backgroundModeDynamic": "Dynamic",
    "backgroundLivePreview": "Live preview",
    "backgroundLivePreviewTitle": "Dynamic background preview",
    "backgroundDefaultHint": "Uses the active color scheme background.",
    "backgroundDynamicHint": "WARNING: some backgrounds may impact performance",
    "backgroundChooseImage": "Choose Image…",
    "backgroundChooseMedia": "Choose File…",
    "backgroundRemoveImage": "Remove",
    "backgroundImageFilter": "Images",
    "backgroundMediaFilter": "Images and Videos",
    "backgroundImageHint": "Choose an image to use as this view's background.",
    "backgroundMediaHint": "Choose an image or video to use as this view's background.",
    "backgroundMediaSourcePrefix": "You can find high quality royalty free wallpapers at",
    "backgroundMediaSourceLink": "Pixabay",
    "backgroundFitLabel": "Fit",
    "backgroundDimLabel": "Dim / Lighten",
    "backgroundFit": {
      "fill": "Fill",
      "fit": "Fit",
      "stretch": "Stretch",
      "tile": "Tile",
      "center": "Center"
    },
    "backgroundPresets": {
      "mist": "Mist",
      "sand": "Warm Sand",
      "sage": "Sage",
      "sky": "Sky",
      "blush": "Blush",
      "lavender": "Lavender",
      "slate": "Slate",
      "graphite": "Graphite",
      "midnight": "Midnight",
      "pine": "Pine",
      "aubergine": "Aubergine",
      "ember": "Ember",
      "harbor": "Harbor",
      "moss": "Moss",
      "wine": "Wine",
      "steel": "Steel",
      "gDawn": "Dawn",
      "gFog": "Fog",
      "gMeadow": "Meadow",
      "gDusk": "Dusk",
      "gLinen": "Linen",
      "gHorizon": "Horizon",
      "gPetal": "Petal",
      "gTwilight": "Twilight",
      "gMidnight": "Midnight",
      "gHarbor": "Harbor",
      "gEmber": "Ember",
      "gOrchid": "Orchid",
      "gForest": "Forest",
      "gEclipse": "Eclipse",
      "gCobalt": "Cobalt",
      "gNocturne": "Nocturne"
    },
    "dynamicBackgrounds": {
      "fuji": "Mt. Fuji",
      "aurora": "Aurora",
      "halftone": "Halftone",
      "clouds": "Clouds",
      "ocean": "Ocean",
      "raindrops": "Raindrops",
      "rainyWindow": "Rainy Window",
      "frostedWindow": "Frosted Window",
      "snow": "Snowfall",
      "sakura": "Sakura",
      "fireflies": "Fireflies",
      "bubbles": "Bubbles",
      "aquarium": "Aquarium",
      "jellyfish": "Jellyfish",
      "lighthouse": "Lighthouse",
      "balloons": "Balloons",
      "ricefield": "Ricefield",
      "lanterns": "Sky Lanterns",
      "starfield": "Night Sky",
      "nebula": "Nebula",
      "orbitals": "Orbitals",
      "embers": "Embers",
      "lava": "Lava Lamp",
      "ink": "Ink",
      "dunes": "Desert Dunes",
      "savanna": "Savanna",
      "matrix": "Matrix",
      "topo": "Topo Map",
      "synthwave": "Synthwave",
      "circuit": "Circuit",
      "crystals": "Crystals",
      "cyberpunk": "Cyberpunk",
      "taipei101": "Taipei 101",
      "thunderstorm": "Thunderstorm",
      "confetti": "Confetti",
      "particleCursor": "Particle Cursor"
    },
    "scriptNetwork": "Allow network",
    "scriptPollSeconds": "Poll interval (seconds)",
    "scriptViewSource": "View source",
    "scriptInvalidBody": "Script body is not valid JSON.",
    "invalidScriptWidgetBody": "Script widget body is not valid JSON.",
    "widgetLibraryLoadFailed": "Failed to load widget libraries: {{error}}",
    "missingBuiltInWidget": "Missing built-in widget: {{sourceId}}",
    "missingCustomWidget": "Missing AI Created Widget: {{sourceId}}",
    "scriptWidgetCapped": "Click to activate (max {{max}} active widgets)",
    "scriptWidgetFrameTitle": "Dashboard script widget",
    "untitledWidget": "Widget",
    "properties": "Properties",
    "customize": "Customize widget",
    "customizeSectionCommon": "Common",
    "customizeSectionWidget": "Widget",
    "widgetSettings": "Widget settings",
    "widgetSettingsEmpty": "No custom settings for this widget.",
    "widgetSettingsInvalid": "Widget settings schema is not valid.",
    "secretStored": "Stored securely",
    "secretPlaceholder": "Paste secret to store",
    "secretClear": "Clear secret",
    "cidrInput": "CIDR block",
    "network": "Network",
    "broadcast": "Broadcast",
    "mask": "Subnet mask",
    "usable": "Usable hosts",
    "subnetInvalid": "That is not a valid IPv4 subnet or range.",
    "reportStep1": "Confirm current backup age.",
    "reportStep2": "Review changed Connections before maintenance.",
    "reportStep3": "Capture terminal evidence only when explicitly needed.",
    "reportStep4": "Keep command execution approval-based.",
    "tool": "Tool",
    "input": "Input",
    "output": "Output",
    "assistantContextLabel": "Dashboard page context",
    "assistantContextSource": "Dashboard {{view}}",
    "assistantContextIntro": "The user is viewing this Dashboard view. Use the active widgets and reports as page context.",
    "assistantSummary": "Browse and manage Dashboard widgets through the AI Assistant.",
    "catalog": "Widget catalog",
    "widgetCount": "{{count}} widgets",
    "categoriesLabel": "Widget categories",
    "categoryAll": "All",
    "playground": "Playground",
    "playgroundHint": "Add widgets from the catalog, then remove or replace them as your workflow changes.",
    "addAgentWidget": "Add Agent Widget",
    "addWidget": "Add {{name}}",
    "widgetAlreadySelected": "{{name}} is already selected",
    "removeWidget": "Remove {{name}}",
    "removeConfirmHint": "Click again to remove",
    "deleteViewBody": "Delete \"{{name}}\" and all widgets in this Dashboard view? This cannot be undone.",
    "deleteWidgetBody": "Remove \"{{name}}\" from this Dashboard view? This cannot be undone.",
    "deleteCustomWidget": "Delete {{name}}",
    "widgetDeleted": "Dashboard widget deleted.",
    "connectionPaneTitle": "Connection Pane",
    "connectionPaneSummary": "Pin saved Connections into a live, interactive Dashboard pane.",
    "connectionWidgetSelect": "Connection",
    "connectionWidgetSelectPlaceholder": "Select a saved Connection…",
    "connectionWidgetLoadError": "Could not load Connections: {{message}}",
    "connectionWidgetNoConnectionsTitle": "No saved Connections",
    "connectionWidgetNoConnectionsHint": "Create a Connection in the Workspace module, then add it here.",
    "connectionWidgetEmptyTitle": "No Connections pinned",
    "connectionWidgetEmptyHint": "Add a saved Connection to show its live pane directly inside this widget.",
    "connectionWidgetActivePane": "Pinned Connection panes",
    "connectionWidgetRemove": "Remove {{name}} from this widget",
    "connectionWidgetNoResults": "No Connections match your search",
    "connectionWidgetOpenWorkspace": "Open in Workspace",
    "aiCodingUsageTitle": "AI Coding Usage",
    "aiCodingUsageSummary": "Monitor Codex and Claude Code usage windows from the Dashboard.",
    "aiCodingUsageSubtitle": "Codex and Claude Code quota windows",
    "aiCodingUsageProvider": {
      "codex": "Codex",
      "claudeCode": "Claude Code"
    },
    "aiCodingUsageProviderProduct": {
      "codex": "OpenAI Codex",
      "claudeCode": "Anthropic Claude Code"
    },
    "aiCodingUsageNotConnected": "Not connected",
    "aiCodingUsageProviderHint": "Connect this provider to start monitoring usage.",
    "aiCodingUsageAddTool": "Add AI coding tool",
    "aiCodingUsageEmptyTitle": "No AI coding tools added",
    "aiCodingUsageEmptyHint": "Click Add to add Codex or Claude Code to this widget.",
    "aiCodingUsageConnectProvider": "Connect {{provider}}",
    "aiCodingUsageConnecting": "Connecting…",
    "aiCodingUsageDisconnectProvider": "Disconnect {{provider}}",
    "aiCodingUsageReconnectProvider": "Reconnect/Refresh {{provider}}",
    "aiCodingUsageRemoveProvider": "Remove {{provider}} from this widget",
    "aiCodingUsageInstallHelp": "Install {{provider}} on Windows",
    "aiCodingUsageRefreshNow": "Refresh usage now",
    "aiCodingUsageFiveHour": "5h",
    "aiCodingUsageWeekly": "Weekly",
    "aiCodingUsageUnknownUsage": "Unknown",
    "aiCodingUsagePercent": "{{percent}}%",
    "aiCodingUsageResetsAt": "Resets {{time}}",
    "aiCodingUsageResetUnknown": "Reset time unknown",
    "aiCodingUsageLastRefresh": "{{time}}",
    "aiCodingUsageNeverRefreshed": "Not refreshed yet",
    "aiCodingUsageProviderError": "{{message}}",
    "aiCodingUsageRefreshError": "Could not refresh usage: {{message}}",
    "aiCodingUsageShowInStatusBar": "Show in status bar",
    "aiCodingUsageHideFromStatusBar": "Hide from status bar",
    "aiCodingUsageStatusBarResetsIn": "resets in {{time}}",
    "notesTitle": "Notes",
    "notesSummary": "A post-it style note for quick reminders, with adjustable paper color and font.",
    "notesPlaceholder": "Jot a note…",
    "notesAriaLabel": "Note text",
    "notesToolbarLabel": "Note appearance",
    "notesPagesToolbarLabel": "Note pages",
    "notesAddPage": "Add note page",
    "notesDeletePage": "Delete note page",
    "notesPageIndicator": "Page {{page}} of {{total}}",
    "notesRotationDegrees": "Rotation degrees",
    "notesFoldDepth": "Fold depth",
    "notesFoldCorner": "Fold corner",
    "notesMarkdownEnabled": "Render Markdown",
    "notesBackgroundColor": "Background color",
    "notesFont": "Font",
    "notesFoldCornerOption": {
      "topRight": "Top right",
      "topLeft": "Top left",
      "bottomRight": "Bottom right",
      "bottomLeft": "Bottom left"
    },
    "notesColor": {
      "yellow": "Yellow",
      "pink": "Pink",
      "blue": "Blue",
      "green": "Green",
      "orange": "Orange",
      "purple": "Purple",
      "white": "White"
    },
    "notesFontOption": {
      "handwriting": "Handwriting",
      "marker": "Marker",
      "system": "System",
      "serif": "Serif",
      "mono": "Mono"
    },
    "urlViewerTitle": "URL Viewer",
    "urlViewerSummary": "Open a website with the native URL viewer and optional auto-reload.",
    "urlWidgetUrl": "URL",
    "urlWidgetReloadSeconds": "Reload seconds",
    "urlWidgetEmptyTitle": "No URL configured",
    "urlWidgetEmptyHint": "Enter a URL to open it inside the Dashboard.",
    "deleteCustomWidgetTitle": "Delete AI Created Widget",
    "deleteCustomWidgetBody": "This deletes the AI Created Widget \"{{name}}\" and all its instances from every Dashboard view. This cannot be undone.",
    "deleteCustomWidgetConfirm": "Delete Widget",
    "exportWidget": "Export Widget",
    "exportCustomWidget": "Export {{name}}",
    "exportAllWidgets": "Export All",
    "importWidget": "Import Widget",
    "importWidgetFromFile": "Load from File",
    "importWidgetPasteLabel": "Widget JSON",
    "importWidgetPasteHint": "Paste a .kkwidget JSON export or load one from disk.",
    "importWidgetPastePlaceholder": "Paste widget JSON here",
    "importWidgetPreviewEmpty": "Load or paste widget JSON to preview it before importing.",
    "importWidgetPreviewInvalid": "Widget JSON is not valid.",
    "importWidgetPreviewTitle": "{{count}} widget(s) ready to import",
    "importWidgetPreviewMore": "+{{count}} more",
    "widgetFileFilter": "KKTerm Widget",
    "exportWidgetsComplete": "Exported {{count}} widget(s).",
    "importWidgetsComplete": "Imported {{count}} widget(s).",
    "emptyTitle": "No widgets selected",
    "emptyHint": "Choose a widget from the catalog to build a focused Dashboard workspace.",
    "hashTitle": "Hash & Encoding",
    "hashSample": "KKTerm",
    "hashInput": "Text to hash",
    "hashUnavailable": "Unavailable",
    "characters": "Characters",
    "bytes": "Bytes",
    "sha1": "SHA-1",
    "sha256": "SHA-256",
    "subnetTitle": "Subnet Calculator",
    "subnetSample": "192.168.10.44/27",
    "subnetInput": "CIDR block",
    "networkAddress": "Network",
    "broadcastAddress": "Broadcast",
    "firstUsable": "First usable",
    "lastUsable": "Last usable",
    "subnetMask": "Subnet mask",
    "wildcardMask": "Wildcard mask",
    "totalAddresses": "Total addresses",
    "usableHosts": "Usable hosts",
    "quickToolsTitle": "Quick Tools",
    "quickToolsSummary": "Encode, decode, and convert small operational strings.",
    "quickTool": "Tool",
    "quickSample": "https://kkterm.local/a b",
    "quickInput": "Input",
    "quickOutput": "Output",
    "reportTitle": "Maintenance Report",
    "reportSummary": "A lightweight checklist report for routine operator review.",
    "reportBody": "1. Confirm current backup age.\n2. Review changed Connections before maintenance.\n3. Capture terminal evidence only when explicitly needed.\n4. Keep command execution approval-based.",
    "copyValue": "Copy {{label}}",
    "agentWidgetDialogTitle": "Add agent-authored widget",
    "agentWidgetDialogHint": "Paste a reviewed widget JSON block from the AI Assistant or a coding agent. KKTerm saves it locally and does not run code.",
    "agentWidgetJson": "Widget JSON",
    "agentWidgetExample": "{\n  \"id\": \"agent-weekly-checklist\",\n  \"title\": \"Weekly Ops Checklist\",\n  \"category\": \"report\",\n  \"summary\": \"A locally saved report widget.\",\n  \"body\": \"Review backup status before maintenance windows.\"\n}",
    "saveWidget": "Save Widget",
    "agentWidgetSaved": "Dashboard widget saved.",
    "agentWidgetBuiltInId": "Use a different widget id; that id belongs to a built-in widget.",
    "widgetCopyValue": "Click to copy",
    "widgetCopied": "Copied",
    "subnetPlaceholder": "192.168.1.0/24 or 10.0.0.5 - 10.0.0.200",
    "subnetHint": "Enter a CIDR block, an address and mask, or an address range.",
    "subnetNetwork": "Network",
    "subnetNetmask": "Netmask",
    "subnetWildcard": "Wildcard",
    "subnetBroadcast": "Broadcast",
    "subnetFirstHost": "First host",
    "subnetLastHost": "Last host",
    "subnetUsableHosts": "Usable hosts",
    "subnetBitsLabel": "Prefix length is {{prefix}} bits. Click a bit to change the prefix.",
    "subnetPrefixBit": "Set prefix to /{{bit}}",
    "qrTitle": "QR Code",
    "qrPlaceholder": "Enter text or a URL to encode…",
    "qrHint": "Enter text above to generate a code.",
    "qrError": "That value could not be encoded.",
    "qrModeLabel": "Code type",
    "qrModeQr": "QR",
    "qrModeBarcode": "Barcode",
    "qrSaveImage": "Save as PNG",
    "cronTitle": "Cron Builder",
    "cronPlaceholder": "*/5 * * * *",
    "cronHint": "Enter a cron expression to see its schedule.",
    "cronInvalid": "That is not a valid cron expression.",
    "cronPresetsLabel": "Common cron presets",
    "cronNextRuns": "Next runs",
    "timeTitle": "Timestamp Converter",
    "timePlaceholder": "Epoch seconds, milliseconds, or a date string…",
    "timeHint": "Enter a timestamp or date to convert.",
    "timeInvalid": "That timestamp or date could not be parsed.",
    "timeNow": "Now",
    "timeLocal": "Local",
    "timeUtc": "UTC (ISO 8601)",
    "timeEpochSeconds": "Epoch seconds",
    "timeEpochMillis": "Epoch milliseconds",
    "hashPlaceholder": "Enter text to hash or encode…",
    "hashJwtPlaceholder": "Paste a JWT to decode its header and payload…",
    "hashHint": "Enter text above to see results.",
    "hashSelectFile": "Select file to hash",
    "hashSelectedFile": "File: {{name}}",
    "hashFileReadError": "Could not read that file.",
    "hashInvalidInput": "That input could not be decoded.",
    "hashTabHash": "Hash",
    "hashDirectionLabel": "Encode or decode",
    "hashEncode": "Encode",
    "hashDecode": "Decode",
    "hashJwtHeader": "Header",
    "hashJwtPayload": "Payload",
    "hashJwtInvalid": "That is not a valid JWT.",
    "passwordTitle": "Password Generator",
    "passwordRegenerate": "Generate a new value",
    "passwordModePassword": "Password",
    "passwordModePassphrase": "Passphrase",
    "passwordLength": "Length: {{length}}",
    "passwordWords": "Words: {{words}}",
    "passwordEntropyBits": "{{bits}} bits",
    "passwordStrength": {
      "weak": "Weak",
      "fair": "Fair",
      "strong": "Strong",
      "excellent": "Excellent"
    },
    "passwordToggle": {
      "uppercase": "Include uppercase letters",
      "digits": "Include digits",
      "symbols": "Include symbols"
    },
    "dnsTitle": "DNS Lookup",
    "dnsPlaceholder": "example.com",
    "dnsHint": "Enter a domain name and run a lookup.",
    "dnsError": "The lookup failed. Check the name and your connection.",
    "dnsLoading": "Looking up…",
    "dnsNoRecords": "No records of that type were found.",
    "dnsLookup": "Look up",
    "dnsTypeLabel": "Record type",
    "dnsTtl": "{{seconds}}s TTL",
    "dnsMyIp": "My IP",
    "speedtestTitle": "Network Speedtest",
    "speedtestStart": "Start test",
    "speedtestRetest": "Test again",
    "speedtestLatency": "Latency",
    "speedtestJitter": "Jitter",
    "speedtestPhaseLatency": "Measuring latency…",
    "speedtestPhaseDownload": "Measuring download…",
    "speedtestError": "The test could not complete.",
    "speedtestNote": "Runs only when you start it. Uses real bandwidth.",
    "speedtestTargetLabel": "Target",
    "speedtestTargets": {
      "cloudflareAuto": "Automatic - Cloudflare global edge",
      "newYork": "North America - New York",
      "losAngeles": "North America - Los Angeles",
      "london": "Europe - London",
      "frankfurt": "Europe - Frankfurt",
      "tokyo": "Asia - Tokyo",
      "singapore": "Asia - Singapore",
      "johannesburg": "Africa - Johannesburg"
    },
    "pcInfoTitle": "PC Info",
    "pcInfoSummary": "A Speccy-style snapshot of this PC: OS, CPU, memory, motherboard, graphics, storage, network, and audio.",
    "pcInfoDesktopOnly": "PC Info runs in the desktop app.",
    "pcInfoLoading": "Collecting system information…",
    "pcInfoEmpty": "No system information yet.",
    "pcInfoSectionEmpty": "Nothing reported for this section.",
    "pcInfoUpdatedAt": "Updated {{time}}",
    "pcInfoYes": "Yes",
    "pcInfoNo": "No",
    "pcInfoSlotsValue": "{{used}} of {{total}}",
    "pcInfoSection": {
      "summary": "Summary",
      "os": "Operating System",
      "cpu": "CPU",
      "memory": "Memory",
      "motherboard": "Motherboard",
      "graphics": "Graphics",
      "storage": "Storage",
      "network": "Network",
      "audio": "Audio",
      "battery": "Battery"
    },
    "pcInfoField": {
      "os": "OS",
      "hostname": "Host name",
      "cpu": "CPU",
      "ram": "RAM",
      "gpu": "Graphics",
      "motherboard": "Motherboard",
      "pcModel": "PC model",
      "uptime": "Uptime",
      "name": "Name",
      "version": "Version",
      "build": "Build",
      "architecture": "Architecture",
      "loggedInUser": "Logged-in user",
      "registeredUser": "Registered to",
      "locale": "Locale",
      "timeZone": "Time zone",
      "systemDrive": "System drive",
      "productId": "Product ID",
      "installDate": "Installed",
      "lastBoot": "Last boot",
      "vendor": "Vendor",
      "family": "Family",
      "cores": "Cores",
      "threads": "Threads",
      "maxClock": "Max clock",
      "currentClock": "Current clock",
      "l1Cache": "L1 cache",
      "l2Cache": "L2 cache",
      "l3Cache": "L3 cache",
      "socket": "Socket",
      "virtualization": "Virtualization",
      "addressWidth": "Address width",
      "total": "Total",
      "available": "Available",
      "used": "Used",
      "slots": "Slots",
      "maxCapacity": "Max capacity",
      "capacity": "Capacity",
      "speed": "Speed",
      "type": "Type",
      "formFactor": "Form factor",
      "bank": "Bank",
      "voltage": "Voltage",
      "manufacturer": "Manufacturer",
      "partNumber": "Part number",
      "product": "Product",
      "serialNumber": "Serial number",
      "systemType": "System type",
      "chassis": "Chassis",
      "systemSku": "System SKU",
      "systemUuid": "System UUID",
      "bios": "BIOS",
      "date": "Date",
      "vram": "VRAM",
      "chip": "Chip",
      "driver": "Driver",
      "driverDate": "Driver date",
      "mode": "Display mode",
      "displays": "Displays",
      "health": "Health",
      "rpm": "Spindle speed",
      "interface": "Interface",
      "volumes": "Volumes",
      "status": "Status",
      "macAddress": "MAC address",
      "adapterType": "Adapter type",
      "linkSpeed": "Link speed",
      "ipAddresses": "IP addresses",
      "subnetMask": "Subnet mask",
      "gateway": "Gateway",
      "dns": "DNS",
      "dnsSuffix": "DNS suffix",
      "dhcp": "DHCP",
      "dhcpServer": "DHCP server",
      "charge": "Charge",
      "wear": "Wear",
      "designCapacity": "Design capacity",
      "fullCapacity": "Full-charge capacity"
    },
    "pcInfoTab": {
      "summary": "Summary",
      "os": "OS",
      "cpu": "CPU",
      "memory": "Memory",
      "motherboard": "Board",
      "graphics": "GPU",
      "storage": "Disk",
      "network": "Net",
      "audio": "Audio",
      "battery": "Battery"
    },
    "pcInfoLabel": {
      "systemInventory": "System inventory",
      "cpuLoad": "CPU load",
      "liveLoad": "Live load",
      "liveThroughput": "Live throughput",
      "inUse": "In use",
      "daysUp": "Days up",
      "maxGhz": "GHz max",
      "gbTotal": "GB total",
      "gbFree": "GB free",
      "slotsPopulated": "Slots populated",
      "typeSpeed": "Type · Speed",
      "freeOfTotal": "{{free}} free · {{total}}",
      "audioDevices": "Audio devices",
      "sourceCached": "Source: {{source}} · snapshot cached",
      "monitorOff": "Live metrics off — enable the status-bar monitor"
    },
    "networkToolsTitle": "Network Tools",
    "networkToolsSummary": "Subnet math, DNS, speed tests, ping sweeps, and WHOIS in one tabbed widget.",
    "networkToolsTab": {
      "subnet": "Subnet",
      "dns": "DNS",
      "speedtest": "Speed",
      "ping": "Ping",
      "whois": "Whois"
    },
    "pingTitle": "Ping Monitor",
    "pingTargetsLabel": "Ping targets",
    "pingTargetsPlaceholder": "Paste IPs, CIDR blocks, or text containing IP addresses",
    "pingDuration": "Duration (s)",
    "pingInterval": "Interval (ms)",
    "pingStart": "Start",
    "pingStop": "Stop",
    "pingHint": "Paste targets, set the duration and interval, then start the run.",
    "pingDesktopOnly": "Ping runs in the desktop app.",
    "pingTargetCount": "{{count}} targets",
    "pingTargetCountCapped": "{{count}} targets, capped",
    "pingRunning": "Running",
    "pingDone": "Done",
    "pingCurrent": "Current",
    "pingAverage": "Average",
    "pingLoss": "Loss",
    "whoisTitle": "Whois Lookup",
    "whoisDomainLabel": "Domain",
    "whoisPlaceholder": "example.com",
    "whoisLookup": "Search",
    "whoisHint": "Enter a domain to query public WHOIS records.",
    "whoisDesktopOnly": "Whois runs in the desktop app.",
    "whoisLoading": "Searching WHOIS…",
    "whoisError": "Whois failed: {{message}}",
    "generatorToolsTitle": "Generators",
    "generatorToolsSummary": "QR codes, cron schedules, passwords, timestamps, and hashes in one tabbed widget.",
    "generatorToolsTab": {
      "qr": "QR",
      "cron": "Cron",
      "password": "Password",
      "time": "Time",
      "hash": "Hash"
    },
    "convertersTitle": "Converters",
    "convertersSummary": "Unit, currency, and image conversion in one widget.",
    "convertersTab": {
      "unit": "Unit",
      "currency": "Currency",
      "image": "Image"
    },
    "imageConverter": {
      "imageFiles": "Image files",
      "chooseImage": "Choose image",
      "outputFormat": "Output format",
      "quality": "Quality {{value}}%",
      "pngLossless": "PNG is lossless",
      "resizeMode": "Resize mode",
      "exact": "Exact",
      "percentage": "Percentage",
      "width": "Width",
      "height": "Height",
      "lockAspectRatio": "Lock aspect ratio",
      "outputDimensions": "Output: {{width}} × {{height}} px",
      "selectHint": "Choose a JPG, PNG, or WebP image.",
      "convertAndSave": "Convert & Save",
      "converting": "Converting…",
      "desktopOnly": "Image conversion is available in the desktop app.",
      "fileTooLarge": "The image file exceeds the 100 MB input limit.",
      "dimensionLimit": "Width and height must not exceed 16,384 px.",
      "pixelLimit": "The image must not exceed 50 megapixels.",
      "invalidDimensions": "Enter valid output dimensions.",
      "unsupportedFormat": "This system cannot encode {{format}} images.",
      "openFailed": "Could not open the image.",
      "convertFailed": "Image conversion failed.",
      "saved": "Saved {{name}}"
    },
    "unitCategoryLabel": "Unit category",
    "unitCategory": {
      "length": "Length",
      "mass": "Weight / mass",
      "area": "Area",
      "temperature": "Temperature"
    },
    "converterAmount": "Amount",
    "currencyAmount": "Currency amount",
    "currencyEstimate": "Rates are estimates. Fetch latest before relying on them.",
    "currencyLastRefresh": "Estimate from {{date}}",
    "currencyFetchLatest": "Fetch latest",
    "currencyRefresh": "Refresh",
    "currencyError": "Could not refresh rates.",
    "currencyName": {
      "USD": "US dollar",
      "EUR": "Euro",
      "TWD": "New Taiwan dollar",
      "JPY": "Japanese yen",
      "CNY": "Chinese yuan",
      "HKD": "Hong Kong dollar",
      "KRW": "South Korean won",
      "GBP": "British pound",
      "CAD": "Canadian dollar",
      "AUD": "Australian dollar",
      "SGD": "Singapore dollar",
      "THB": "Thai baht",
      "IDR": "Indonesian rupiah",
      "VND": "Vietnamese dong",
      "CHF": "Swiss franc",
      "SEK": "Swedish krona",
      "MXN": "Mexican peso",
      "BRL": "Brazilian real"
    },
    "converterUnit": {
      "millimeter": "Millimeter",
      "centimeter": "Centimeter",
      "meter": "Meter",
      "kilometer": "Kilometer",
      "inch": "Inch",
      "foot": "Foot",
      "yard": "Yard",
      "mile": "Mile",
      "nauticalMile": "Nautical mile",
      "gram": "Gram",
      "kilogram": "Kilogram",
      "metricTon": "Metric tonne",
      "ounce": "Ounce",
      "pound": "Pound",
      "stone": "Stone",
      "usTon": "US ton",
      "ukTon": "UK ton",
      "cattyTaiwan": "Taiwan catty",
      "squareMeter": "Square meter",
      "hectare": "Hectare",
      "squareKilometer": "Square kilometer",
      "squareFoot": "Square foot",
      "squareYard": "Square yard",
      "acre": "Acre",
      "squareMile": "Square mile",
      "ping": "Ping (Taiwan)",
      "tsubo": "Tsubo",
      "celsius": "Celsius",
      "fahrenheit": "Fahrenheit",
      "kelvin": "Kelvin"
    }
  },
  "appLauncher": {
    "title": "App Launcher",
    "subtitle": "Add local apps, shortcuts, scripts, and files for quick launch from a Dashboard widget.",
    "entriesLabel": "Pinned applications",
    "viewModeLabel": "App Launcher view mode",
    "showFileExtensions": "Show file extensions",
    "iconView": "Icons",
    "listView": "List",
    "detailsView": "Details",
    "detailsNameColumn": "Name",
    "detailsTypeColumn": "Type",
    "detailsSizeColumn": "Size",
    "detailsModifiedColumn": "Modified",
    "detailsPathColumn": "Path",
    "folderType": "Folder",
    "fileType": "File",
    "fileTypeWithExtension": "{{extension}} file",
    "unknownFileType": "Unknown",
    "notAvailable": "-",
    "addMenuApp": "App",
    "addMenuFile": "Document",
    "addMenuFolder": "Folder",
    "selectAppTitle": "Add an app or script",
    "selectFileTitle": "Add a file",
    "selectFolderTitle": "Add a folder",
    "fileFilter": "Apps, shortcuts, and scripts",
    "allFilesFilter": "All files (*.*)",
    "emptyTitle": "No apps pinned",
    "emptyHint": "Add a desktop app, shortcut, script, or file to launch it from this widget.",
    "dialogLabel": "Launcher entry",
    "dialogTitle": "Edit launcher entry",
    "name": "Name",
    "path": "Path",
    "arguments": "Arguments",
    "argumentsPlaceholder": "Optional launch arguments",
    "workingDirectory": "Working directory",
    "workingDirectoryPlaceholder": "Optional folder path",
    "launchApp": "Launch {{name}}",
    "runNormal": "Run",
    "runAdmin": "Run as Administrator",
    "runAsUser": "Run as another user",
    "openFolder": "Open Folder",
    "edit": "Edit",
    "remove": "Remove",
    "selectError": "Could not read App Launcher selection: {{message}}",
    "saveError": "Could not save App Launcher pins: {{message}}",
    "launchError": "Could not launch app: {{message}}",
    "savedStatus": "App Launcher entry saved: {{name}}.",
    "removedStatus": "App Launcher entry removed: {{name}}.",
    "launchStatus": "Launching {{name}}."
  },
  "installer": {
    "title": "Install Helper",
    "powerShell7": {
      "installTitle": "Install PowerShell 7?",
      "installPrompt": "PowerShell 7 (pwsh) is not installed. Install it now and open it, or use Windows PowerShell instead?",
      "installing": "Installing PowerShell 7…",
      "installFailed": "PowerShell 7 install failed, opening Windows PowerShell instead. {{message}}"
    },
    "psmux": {
      "installTitle": "Install psmux?",
      "installPrompt": "psmux is not installed. Install it now to enable session management?",
      "installing": "Installing psmux…"
    },
    "railLabel": "Install Helper",
    "refresh": "Refresh",
    "checkingForUpdates": "Checking for updates",
    "updateAll": "Update all",
    "search": "Search tools",
    "view": {
      "list": "List view",
      "gallery": "Gallery view"
    },
    "sidebar": {
      "status": "Status",
      "categories": "Categories",
      "allTools": "All Tools",
      "updates": "Updates",
      "show": "Show sidebar",
      "hide": "Hide sidebar"
    },
    "listColumn": {
      "name": "Name",
      "status": "Status",
      "action": "Action"
    },
    "footer": {
      "tools": "{{count}} tools",
      "installed": "{{count}} installed",
      "updates": "{{count}} updates available"
    },
    "section": {
      "installed": "Installed",
      "available": "Available",
      "updates": "Updates available",
      "essentials": "Essentials",
      "aiAgents": "AI Agents",
      "aiPlatforms": "AI Platforms",
      "development": "Development",
      "windowsPowerUser": "Windows Power User",
      "remoteAccess": "Remote Access",
      "packageManagers": "Package Managers",
      "utilities": "Utilities",
      "design": "Design"
    },
    "actions": {
      "install": "Install",
      "update": "Update",
      "uninstall": "Uninstall",
      "run": "Run",
      "stop": "Stop",
      "openWebUi": "Open web UI",
      "installService": "Install service",
      "registerService": "Register as service",
      "removeService": "Remove service",
      "cancel": "Cancel",
      "addToWorkspace": "Add to workspace"
    },
    "options": {
      "scope": "Install mode",
      "scopeUser": "User Mode",
      "scopeMachine": "System Mode(UAC)",
      "scopeSelfElevatingHint": "This installer may still show UAC in user mode.",
      "version": "Version",
      "versionLatest": "Latest",
      "location": "Install location",
      "addToPath": "Add to PATH",
      "pinVersion": "Pin version (skip from Update all)",
      "provider": "Provider"
    },
    "status": {
      "scanning": "Scanning installed tools…",
      "installing": "Installing…",
      "uninstalling": "Uninstalling…",
      "completed": "Done",
      "failed": "Failed: {{message}}",
      "cancelled": "Cancelled",
      "running": "Running",
      "stopped": "Stopped",
      "unknown": "Unknown",
      "serviceInstalled": "Windows service helper completed.",
      "addedToWorkspace": "Added \"{{name}}\" to Connections.",
      "serviceRemoved": "Windows service removal completed.",
      "partial": "Partially installed ({{installed}}/{{total}})",
      "noVersion": "(version unknown)",
      "web": "Web",
      "notInstalled": "Not installed",
      "retrieving": "Retrieving...",
      "neverChecked": "Never"
    },
    "empty": {
      "loading": "Loading catalog…",
      "noMatches": "No tools match your search."
    },
    "confirm": {
      "installTitle": "Install {{name}}?",
      "installWithPrereqsBody": "This will also install the following prerequisite(s):",
      "uacFooter": "May show up to {{count}} UAC prompt(s).",
      "adminChocolateyFooter": "Chocolatey requires Administrator — you'll see a UAC prompt, and the change affects all users on this machine.",
      "installConfirm": "Install",
      "uninstallTitle": "Uninstall {{name}}?",
      "uninstallSimpleBody": "This will remove {{name}} from your system.",
      "uninstallDependentsBody": "Uninstalling {{name}} will leave these installed tools without a prerequisite:",
      "uninstallDependentsFooter": "Uninstall anyway?",
      "uninstallConfirm": "Uninstall",
      "updateTitle": "Update {{name}}?",
      "updateAllTitle": "Update all installed tools?",
      "updateAllBody": "{{count}} update(s) will be installed.",
      "updateAllConfirm": "Update all"
    },
    "wslReboot": "WSL was enabled this session. Reboot Windows before installing Docker Desktop.",
    "lastChecked": "Last checked: {{time}}",
    "checkingDots": "Checking…",
    "dialog": {
      "installLocation": "Install location",
      "provider": "Provider",
      "installedVersion": "Installed version",
      "latestVersion": "Latest version",
      "lastChecked": "Last checked",
      "homepage": "Website",
      "releaseNotes": "Release notes",
      "webUi": "Web UI",
      "windowsService": "Windows service",
      "runtimeStatus": "Status",
      "serviceStartup": "Startup",
      "runHints": "Run tips",
      "quickLaunch": "Quick launch",
      "prerequisites": "Prerequisites",
      "prereqInstalled": "Installed",
      "prereqMissing": "Missing",
      "adminRequiredChocolatey": "Chocolatey runs as Administrator (UAC) and installs machine-wide for all users.",
      "checkNow": "Check now",
      "checkingDots": "Checking…",
      "updateAvailable": "Update available: {{from}} → {{to}}",
      "installingTitle": "Installing {{name}}…",
      "uninstallingTitle": "Uninstalling {{name}}…",
      "installedTitle": "Installed {{name}}",
      "failedTitle": "Install failed: {{name}}",
      "cancelledTitle": "Install cancelled: {{name}}"
    },
    "quickLaunch": {
      "search": "Search tools…",
      "openTerminal": "Open elevated PowerShell",
      "cli": "CLI",
      "launch": "Launch",
      "noMatches": "No tools match your search."
    },
    "stepper": {
      "failedBadge": "Failed"
    },
    "steps": {
      "resolve": "Resolve version",
      "download": "Download",
      "verifyChecksum": "Verify checksum",
      "extract": "Extract",
      "placeFiles": "Place files",
      "updatePath": "Update PATH",
      "install": "Install",
      "verify": "Verify",
      "enable": "Enable feature"
    },
    "wsl": {
      "manageDistros": "Manage distros",
      "installedHeading": "Installed distros",
      "installHeading": "Install a distro",
      "default": "Default",
      "setDefault": "Set default",
      "unregister": "Unregister",
      "selectPlaceholder": "Select a distro",
      "noInstalled": "No WSL distros installed yet.",
      "noOnline": "No additional distros available to install.",
      "loading": "Loading distros…",
      "versionLabel": "WSL {{version}}",
      "installing": "Installing {{name}}… This can take several minutes.",
      "setDefaultDone": "{{name}} is now the default distro.",
      "unregisterDone": "{{name}} was unregistered.",
      "installDone": "{{name}} was installed.",
      "unregisterTitle": "Unregister {{name}}?",
      "unregisterBody": "This permanently deletes the {{name}} distribution and all of its files. This cannot be undone."
    }
  },
  "itops": {
    "railLabel": "IT Ops",
    "title": "IT Ops",
    "tabs": {
      "sites": "Sites",
      "hosts": "Hosts",
      "runs": "Batch Runs",
      "autos": "Automations"
    },
    "actions": {
      "newSite": "New Site",
      "newBatchRun": "New Batch Run",
      "startBatchRun": "Start a Batch Run",
      "newAutomation": "New Automation",
      "runTask": "Run task",
      "cancel": "Cancel",
      "rerun": "Re-run",
      "viewReport": "View report",
      "save": "Save",
      "addAction": "Add action",
      "addConnections": "Add connections…",
      "rename": "Rename",
      "removeFromGroup": "Remove from site",
      "more": "More",
      "create": "Create",
      "delete": "Delete",
      "edit": "Edit",
      "editDone": "Done",
      "export": "Export",
      "run": "Run",
      "back": "Back",
      "viewActions": "View actions"
    },
    "transport": {
      "auto": "Auto"
    },
    "sites": {
      "heading": "Sites",
      "emptyTitle": "No Sites yet",
      "emptyBody": "A Site is a named selection of existing Connections used as the target for Batch Runs and Automations.",
      "createHelp": "A Site is the top-level container for Server Rooms, Racks, and Connections. Use one for a region, location, customer, project, or any other way you organize infrastructure.",
      "dynamicBadge": "DYN",
      "connectionsCount": "{{count}} connections",
      "dynamicMembership": "dynamic membership",
      "transportDefaultLabel": "Transport default",
      "perHostTransport": "Per-host transport",
      "perHostTransportHint": "How a Batch Run reaches each host. Auto derives it from the Connection.",
      "dynamicFilter": "Dynamic filter",
      "dynamicFilterHint": "Resolved at run time — newly added Connections are picked up automatically.",
      "filterTypeKey": "type",
      "filterFolderKey": "folder",
      "membersLabel": "Members",
      "membersCount": "· {{count}} connections",
      "editTitle": "Edit Site",
      "nameLabel": "Name",
      "namePlaceholder": "e.g. Production Web",
      "connectionsLabel": "Connections",
      "noConnections": "No Connections in this Workspace yet.",
      "selectedCount": "{{count}} selected",
      "noMembers": "No Connections match this Site yet.",
      "savedNotice": "Saved Site “{{name}}”.",
      "deletedNotice": "Deleted Site “{{name}}”.",
      "deleteTitle": "Delete Site?",
      "deleteBody": "“{{name}}” will be removed. Its Connections are not affected.",
      "viewToggleLabel": "Site view",
      "viewMembers": "Members",
      "viewRacks": "Racks",
      "viewLabel": "Site view mode",
      "viewOverview": "Overview",
      "autoOrganize": "Auto Organize"
    },
    "hosts": {
      "empty": "No Hosts yet. Import a hostname list to build this Site's inventory.",
      "hostCount_one": "{{count}} Host",
      "hostCount_other": "{{count}} Hosts",
      "importAction": "Import Hosts",
      "addAction": "Add Host",
      "addChildAction": "Add child Host",
      "rescanAction": "Rescan",
      "rescanAllAction": "Scan all",
      "editAction": "Edit",
      "deleteAction": "Delete",
      "bindingsAction": "Connection bindings",
      "childCount_one": "{{count}} child host",
      "childCount_other": "{{count}} child hosts",
      "childOverflow": "+{{count}} more",
      "scanning": "scanning…",
      "scanPending": "not scanned",
      "scanNone": "no remote access",
      "kindLabel": "Kind",
      "kind": {
        "physical": "Physical device",
        "vm": "Virtual machine",
        "container": "Container",
        "other": "Other"
      },
      "hostnameLabel": "Hostname",
      "labelLabel": "Display name",
      "parentLabel": "Parent Host",
      "parentNone": "None (top level)",
      "notesLabel": "Notes",
      "dialogTitleAdd": "Add Host",
      "dialogTitleEdit": "Edit Host",
      "importTitle": "Import Hosts",
      "importHint": "Paste hostnames — one per line (commas also separate, # starts a comment). Imported Hosts are scanned for SSH, WinRM, and HTTPS access automatically.",
      "importSubmit_one": "Import {{count}} Host",
      "importSubmit_other": "Import {{count}} Hosts",
      "importedNotice_one": "Imported {{count}} Host ({{skipped}} skipped).",
      "importedNotice_other": "Imported {{count}} Hosts ({{skipped}} skipped).",
      "bindingsTitle": "Host Connection bindings",
      "bindingsHint": "Bind one or more Connections to this Host — e.g. its SSH terminal and an HTTPS URL Connection to its management interface.",
      "deleteConfirmTitle": "Delete Host \"{{name}}\"?",
      "deleteConfirmBody": "Its child Hosts are kept and move up one level. No Connection is deleted."
    },
    "racks": {
      "heading": "Racks",
      "empty": "No racks yet. Arrange this Site's hosts into a virtual datacenter.",
      "rackCount": "{{count}} racks",
      "unitCount": "{{count}}U",
      "deviceCount": "{{count}} devices",
      "newTitle": "New rack",
      "newServerRoomTitle": "New server room",
      "editTitle": "Edit rack",
      "deleteTitle": "Delete rack?",
      "deleteBody": "“{{name}}” and its placed devices will be removed. The referenced Connections are not affected.",
      "deleteServerRoomTitle": "Delete server room?",
      "deleteServerRoomBody": "“{{name}}” and its {{count}} rack(s) will be removed. Referenced Connections are not affected.",
      "deleteItemTitle": "Delete device?",
      "deleteItemBody": "“{{name}}” will be removed from the rack. Referenced Connections are not affected.",
      "nameLabel": "Name",
      "namePlaceholder": "e.g. A12",
      "siteLabel": "Site",
      "serverRoomLabel": "Server room",
      "serverRoomSiteLabel": "Site",
      "serverRoomNameLabel": "Server room name",
      "serverRoomSelectLabel": "Server room",
      "serverRoomPlaceholder": "e.g. Room B",
      "serverRoomCreateHelp": "Server Rooms belong to a Site and can remain empty until racks are added.",
      "serverRoomRequiredOption": "Select a server room",
      "firstRackLabel": "First rack",
      "firstRackHint": "Server Rooms are stored through their racks, so this creates the first rack in the room.",
      "shellLabel": "Shell",
      "shell": {
        "black": "Metallic black",
        "white": "Milky white",
        "grey": "Metal grey"
      },
      "unassigned": "Unassigned",
      "ungrouped": "Ungrouped",
      "groupLabel": "Group",
      "groupPlaceholder": "e.g. Web tier",
      "treeSearchPlaceholder": "Search racks…",
      "placedDevices": "Placed devices",
      "changeBackground": "Change background",
      "backgroundDefaultHint": "Uses the theme's default background.",
      "portsSpec": "{{count}} ports",
      "disksSpec": "{{count}} bays",
      "addNode": "Add…",
      "addSite": "New site",
      "addServerRoom": "New server room",
      "addRack": "New rack",
      "heightLabel": "Height (U)",
      "depthLabel": "Depth",
      "powerCapacityLabel": "Power capacity (W)",
      "powerCapacityPlaceholder": "Optional",
      "powerDrawLabel": "Power draw (W)",
      "powerDrawHint": "Nameplate or typical wattage; sums into the room's power heatmap.",
      "depthNetworkOption": "600 mm (Network)",
      "depthServerOption": "1000 mm (Server)",
      "customOption": "Custom…",
      "heightDecrease": "Fewer rack units",
      "heightIncrease": "More rack units",
      "addItemTitle": "Add device",
      "addDeviceCallout": "Add Device",
      "editItemTitle": "Edit device",
      "placeAction": "Place",
      "addAtUnit": "Add a device at U{{unit}}",
      "openTitle": "Open {{name}}",
      "ghostBadge": "missing",
      "runRack": "Run a task on this rack",
      "runScope": "Run a task on this scope",
      "kindLabel": "Type",
      "kindPreviewLabel": "Rack device type previews",
      "connectionLabel": "Connection",
      "hostLabel": "Host",
      "hostHint": "The IT Ops Host this device is; its child Hosts show in the rack callout.",
      "hostNone": "None",
      "noMembers": "Add Connections to this Site first to place a host.",
      "labelLabel": "Label",
      "labelHint": "Optional. Defaults to the device type or Connection name.",
      "labelPlaceholder": "e.g. core-switch-1",
      "accentLabel": "Accent",
      "accentNone": "No accent",
      "startULabel": "Position (U)",
      "startUDecrease": "Lower position",
      "startUIncrease": "Higher position",
      "itemHeightLabel": "Height (U)",
      "itemHeightDecrease": "Shorter device",
      "itemHeightIncrease": "Taller device",
      "statusLabel": "Status",
      "status": {
        "online": "Online",
        "warning": "Warning",
        "offline": "Offline"
      },
      "portsLabel": "Ports",
      "portsDecrease": "Fewer ports",
      "portsIncrease": "More ports",
      "disksLabel": "Drive bays",
      "disksDecrease": "Fewer drive bays",
      "disksIncrease": "More drive bays",
      "batteryLabel": "Battery (%)",
      "batteryDecrease": "Lower battery level",
      "batteryIncrease": "Higher battery level",
      "loadLabel": "Load (%)",
      "loadDecrease": "Lower load",
      "loadIncrease": "Higher load",
      "notesLabel": "Notes",
      "notesHint": "Persistent notes can appear as random callouts in rack or server room views.",
      "tagsLabel": "Tags",
      "listHint": "Use commas or one value per line.",
      "bindingsLabel": "Additional Connections",
      "bindingsHint": "Optional Connection ids for devices that map to multiple Connections.",
      "bindingsAction": "Bind Connections",
      "portSpeedsLabel": "Port speeds",
      "portSpeedsHint": "Use values such as gigabit or 10g; SNMP polling can refresh these later.",
      "snmpLabel": "SNMP polling",
      "snmpHint": "Store an SNMP target or OID hint for data retrieval.",
      "formFactorLabel": "Form factor",
      "formFactor": {
        "rack": "Rack",
        "tower": "Tower"
      },
      "serverPanelStyleLabel": "Front panel style",
      "serverPanelStyle": {
        "default": "Default",
        "style1": "Style 1",
        "style2": "Style 2"
      },
      "vendorLabel": "Model",
      "vendorHint": "Use Dell 740XD, HP DL380, or another chassis model for the graphical preview.",
      "expiryLabel": "Expiry",
      "rotationLabel": "Rotation",
      "rotationDecrease": "Rotate left",
      "rotationIncrease": "Rotate right",
      "kind": {
        "connection": "Host",
        "switch": "Switch",
        "pdu": "PDU",
        "patchPanel": "Patch panel",
        "blank": "Blank",
        "label": "Label",
        "server": "Server",
        "storage": "Disk array",
        "router": "Router",
        "firewall": "Firewall",
        "ups": "UPS",
        "kvm": "KVM switch",
        "equipment": "Equipment",
        "general": "General",
        "kuaiguai": "Kuai Kuai"
      },
      "kuaiguaiSize": {
        "small": "Small",
        "regular": "Regular",
        "large": "Large"
      },
      "kuaiguaiStyleLabel": "Package style",
      "kuaiguaiStyle": {
        "full": "Full (standing)",
        "laidDown": "Laid down (face up)"
      },
      "portState": {
        "unknown": "Unknown",
        "up": "Up",
        "down": "Down"
      },
      "addNetworkPort": "Add network port",
      "snmpOidLabel": "OID",
      "refreshSnmp": "Refresh SNMP",
      "snmpRefreshComplete": "SNMP refresh completed.",
      "boundConnectionCount_one": "{{count}} bound Connection",
      "boundConnectionCount_other": "{{count}} bound Connections",
      "connectAction": "Connect",
      "goToSessionAction": "Go to session",
      "connectOpenedNotice": "Opened {{name}} in the Workspace."
    },
    "floorPlan": {
      "viewLabel": "Room view mode",
      "viewElevation": "Elevations",
      "viewFloor": "Floor plan",
      "view25d": "2.5D",
      "viewAngleLabel": "View angle",
      "rotateViewLeft": "Rotate view left",
      "rotateViewRight": "Rotate view right",
      "zoomLabel": "Zoom",
      "zoomSet": "Set zoom to {{percent}}%",
      "floorColorLabel": "Floor color",
      "utilizationValue": "{{percent}}% full",
      "powerValue": "{{used}} W / {{capacity}} W",
      "powerDrawOnly": "{{watts}} W",
      "tileTitle": "{{name}} — {{detail}}",
      "isoEditHint": "Drag cabinets and objects onto floor tiles. Pick a card in the object picker to carry it with the cursor and click a tile to place it; right-click cancels. Click an empty tile to add a rack.",
      "blueprintEditHint": "Drag racks and objects between floor cells. Pick a card in the object picker to carry it with the cursor and click a cell to place it; right-click cancels. The rotate control turns a rack's front.",
      "isoAddHere": "Add a rack on this tile",
      "pickerTitle": "Object picker",
      "pickerSearchPlaceholder": "Search objects…",
      "pickerRack": "Rack",
      "rotateTitle": "Rotate",
      "cornerTitle": "Next corner",
      "raiseTitle": "Raise",
      "lowerTitle": "Lower",
      "deleteObjectTitle": "Remove object",
      "objectLevel": "Bottom at {{z}}U",
      "objectNoSpace": "No free vertical space in that spot.",
      "floorColor": {
        "default": "Default",
        "concrete": "Concrete",
        "graphite": "Graphite",
        "green": "Green tile",
        "blue": "Blue tile"
      },
      "health": {
        "empty": "Empty",
        "ok": "Healthy",
        "warning": "Warning",
        "critical": "Critical"
      },
      "object": {
        "camera": "Security camera",
        "aircon": "Air conditioner",
        "fireExtinguisher": "Fire extinguisher",
        "cableTray": "Cable tray",
        "ups": "UPS",
        "sensor": "Environment sensor",
        "smokeDetector": "Smoke detector",
        "crashCart": "Crash cart",
        "kuaikuai": "Kuai Kuai"
      }
    },
    "export": {
      "pdf": "PDF",
      "excel": "Excel",
      "pdfFilter": "PDF",
      "excelFilter": "Excel workbook",
      "complete": "Exported {{name}}.",
      "devices": "Devices",
      "noRacks": "No racks",
      "noDevices": "No devices",
      "inventory": "Inventory",
      "rack": "Rack",
      "specs": "Specs"
    },
    "batchRuns": {
      "emptyTitle": "No Batch Runs yet",
      "emptyBody": "Send a script or an interactive playbook to every host in a Site at once, with per-host live output and a saved report.",
      "stateRunning": "Running",
      "stateCompleted": "Completed",
      "stateCompletedWithFailures": "Completed with failures",
      "hostsCount": "{{count}} hosts",
      "statOk": "OK",
      "statFailed": "Failed",
      "statInFlight": "In flight",
      "statTotal": "Total",
      "legendOk": "{{count}} ok",
      "legendFailed": "{{count}} failed",
      "legendRunning": "{{count}} running",
      "legendQueued": "{{count}} queued",
      "progressLive": "{{done}} of {{total}} complete  ·  bounded to {{concurrency}} concurrent",
      "progressDone": "Finished in {{duration}}  ·  started {{time}}",
      "codeExit": "exit {{code}}",
      "codeFailed": "failed",
      "codeRunning": "running",
      "codeQueued": "queued",
      "savedReport": "Consolidated report saved to run history · source manual · {{ok}}/{{total}} succeeded",
      "launchTitle": "New Batch Run",
      "siteLabel": "Site",
      "scopeRack": "Targeting rack {{name}} only",
      "scopeServerRoom": "Targeting server room {{name}} only",
      "scriptLabel": "Script",
      "scriptPlaceholder": "sudo apt-get update && sudo apt-get upgrade -y",
      "noGroups": "Create a Site first to run a Batch Run.",
      "startedNotice": "Batch Run started.",
      "stateCanceled": "Canceled",
      "progressComplete": "{{done}} of {{total}} complete",
      "historyHeading": "Recent runs",
      "historySummary": "{{ok}}/{{total}} ok",
      "waitingOutput": "Waiting for output…",
      "noOutput": "No output captured",
      "reportStarted": "Started {{time}}",
      "taskTypeLabel": "Task",
      "taskTypeScript": "Script",
      "taskTypePlaybook": "Playbook",
      "playbookNameLabel": "Playbook name",
      "playbookNamePlaceholder": "e.g. Restart web tier",
      "stepHeading": "Step {{number}}",
      "stepNameLabel": "Label",
      "stepNamePlaceholder": "e.g. trigger restart",
      "stepSendLabel": "Send",
      "stepSendPlaceholder": "command or input, e.g. sudo systemctl restart nginx",
      "stepExpectLabel": "Wait for",
      "stepExpectHint": "Optional. Advance once this text appears in the output.",
      "stepExpectPlaceholder": "e.g. [sudo] password:",
      "stepTimeoutLabel": "Timeout (seconds)",
      "stepTimeoutPlaceholder": "Default per run",
      "addStep": "Add step",
      "removeStep": "Remove"
    },
    "automations": {
      "emptyTitle": "No Automations yet",
      "emptyBody": "A durable rule — one trigger, an optional condition, and ordered actions — that re-arms every time KKTerm launches. The evolved Watchdog.",
      "armed": "Armed",
      "disabled": "Disabled",
      "builder": {
        "back": "Automations",
        "armedStatus": "Armed · re-arms on launch",
        "whenTrigger": "When — Trigger",
        "onlyIfCondition": "Only if — Condition",
        "thenActions": "Then — Actions · in order",
        "target": "Target {{target}}",
        "sampledValue": "Sampled value",
        "evaluatedBy": "evaluated by the pure predicate"
      },
      "nameLabel": "Name",
      "namePlaceholder": "e.g. Disk usage alert",
      "metricLabel": "Metric",
      "conditionLabel": "Condition",
      "thresholdLabel": "Threshold",
      "pollLabel": "Check every (seconds)",
      "notifyLabel": "Notification",
      "savedNotice": "Saved Automation “{{name}}”.",
      "deletedNotice": "Deleted Automation “{{name}}”.",
      "deleteTitle": "Delete Automation?",
      "deleteBody": "“{{name}}” will be removed and its Watchdog disarmed.",
      "actionsLabel": "Actions",
      "noActionsHint": "No actions yet — the Automation just records the trigger.",
      "actionNotify": "Notify",
      "actionPopup": "Popup",
      "actionEmail": "Email",
      "actionWebhook": "Webhook",
      "actionRunBatch": "Run Batch",
      "levelInApp": "In-app",
      "levelToast": "Toast",
      "levelSound": "Sound",
      "popupTitle": "Title",
      "popupBody": "Message",
      "emailTo": "To (comma-separated)",
      "emailSubject": "Subject",
      "webhookUrl": "URL",
      "webhookMethod": "Method",
      "webhookBody": "Body (optional)",
      "triggeredNotice": "Automation “{{name}}” triggered.",
      "triggerTypeLabel": "Trigger",
      "triggerPerf": "Performance counter",
      "triggerSchedule": "Schedule",
      "cronLabel": "Cron schedule",
      "cronHint": "minute hour day month weekday, local time (e.g. 0 3 * * * = daily at 03:00)",
      "triggerLogFile": "Log file",
      "logPathLabel": "Log file path",
      "patternLabel": "Match (substring)",
      "patternPlaceholder": "ERROR",
      "triggerPing": "Host reachable (ping)",
      "triggerTcp": "TCP port reachable"
    },
    "errorNotice": "IT Ops: {{message}}",
    "editor": {
      "title": "Edit Automation",
      "triggerNode": "Trigger",
      "conditionNode": "Condition",
      "actionNode": "Action",
      "test": "Test",
      "testing": "Testing…",
      "testResult": "Test result",
      "unset": "not set",
      "hostLabel": "Host",
      "siteLabel": "Site",
      "siteNone": "No Site",
      "sessionIdLabel": "Session ID",
      "silenceSecondsLabel": "Silence duration (seconds)",
      "portLabel": "Port",
      "conditionHint": "Fires when the sampled value matches this comparison.",
      "actionKindLabel": "Action",
      "levelLabel": "Level",
      "methodLabel": "Method",
      "runBatchSub": "Run batch task",
      "selectHint": "Select a node to edit it, or add an action.",
      "sampledValue": "Sampled value",
      "wouldFire": "Condition",
      "fireYes": "Would fire",
      "fireNo": "Would not fire",
      "valueUnavailable": "unavailable",
      "noteSchedule": "Schedule triggers fire when the cron expression matches the current minute, so a test rarely fires on demand.",
      "noteNeedsSession": "This trigger samples a live Session; start the watched Session for a meaningful test value.",
      "dryRunActions": "Actions (dry run)",
      "dryNotify": "Show {{level}} notification",
      "dryPopup": "Show popup “{{title}}”",
      "dryEmail": "Send email to {{to}}",
      "dryWebhook": "{{method}} {{url}}",
      "dryRunBatch": "Start the configured Batch Run"
    }
  },
  "settings": {
    "title": "Settings",
    "workspace": "Workspace",
    "sectionsNav": "Settings sections",
    "sectionGeneral": "General",
    "sectionAppearance": "Appearance",
    "sectionDashboard": "Dashboard",
    "sectionWorkspace": "Workspace",
    "sectionDontSleep": "Don't Sleep",
    "sectionInstaller": "Install Helper",
    "sectionCredentials": "Credentials",
    "credentialsTitle": "Credentials",
    "credentialsStored": "Stored credentials",
    "credentialsHint": "Manage saved passwords, website input data, AI provider keys, and widget secrets. Secret values stay hidden in the selected secret store.",
    "credentialStorage": "Secret storage",
    "credentialStorageHint": "Choose where KKTerm reads and writes secret values on this device.",
    "credentialStorageBackend": "Secret store",
    "credentialStorageOs": "OS keystore",
    "credentialStorageFile": "Encrypted database",
    "credentialStorageActive": "Active backend: {{backend}}.",
    "credentialStorageUnavailable": "Current backend unavailable: {{error}}",
    "credentialStorageUnknownStatus": "Status unknown",
    "credentialStorageOsComparison": "OS keystore uses the operating system's credential protection and unlocks with your signed-in account. Use it when you want native prompts, OS account recovery, and less master-password handling.",
    "credentialStorageEncryptedComparison": "Encrypted database stores KKTerm secrets in SQLite protected by your master password. It works across platforms and can be unlocked with an environment variable, but anyone with the database and master password can decrypt it, and KKTerm cannot recover a lost password.",
    "credentialStorageEncryptedLinuxReminder": "Linux uses encrypted database storage in this build. Protect your KKTerm database, use a long unique master password, and avoid putting KKTERM_SECRET_STORE_PASSWORD in shell history, logs, or shared startup scripts.",
    "credentialStorageSwitchNote": "Switching stores does not move existing credentials. Save new credentials again if you want them available in the selected store.",
    "credentialStorageSaved": "Credential storage updated.",
    "encryptedSecretStoreSetupTitle": "Set up encrypted database storage",
    "encryptedSecretStoreSetupAction": "Set up",
    "encryptedSecretStoreSetupRequiredTitle": "Encrypted database storage needs setup",
    "encryptedSecretStoreSetupBody": "Enter the master password for the encrypted secrets database.",
    "encryptedSecretStoreSecurityTradeoff": "Compared with the OS keystore, encrypted database storage is more portable but puts recovery and file protection on you. Keep the database private and do not expose the master password through scripts, logs, or shell history.",
    "encryptedSecretStoreLinuxSafety": "On Linux, encrypted database storage is the available credential backend in this build. Keep the KKTerm database private, back it up carefully, and store the master password outside KKTerm.",
    "encryptedSecretStoreCreateBody": "Create a master password for the encrypted secrets database.",
    "encryptedSecretStorePasswordGuidance": "Use a long, unique password or passphrase and keep it somewhere safe. KKTerm cannot recover it if it is lost.",
    "encryptedSecretStoreEnvironmentHint": "To avoid this prompt on app launch, set the KKTERM_SECRET_STORE_PASSWORD environment variable before starting KKTerm.",
    "encryptedSecretStoreUnlock": "Unlock existing database",
    "encryptedSecretStoreCreate": "Create database key",
    "encryptedSecretStorePassword": "Master password",
    "encryptedSecretStoreConfirmPassword": "Confirm master password",
    "encryptedSecretStorePasswordRequired": "Enter the master password for encrypted database storage.",
    "encryptedSecretStorePasswordMismatch": "The passwords do not match.",
    "encryptedSecretStoreUnlockAction": "Unlock",
    "encryptedSecretStoreCreateAction": "Create master password",
    "encryptedSecretStoreResetOffer": "Create a new master password",
    "encryptedSecretStoreResetBody": "Create a new master password and clear the encrypted credentials that were saved with the previous password.",
    "encryptedSecretStoreResetWarning": "Existing encrypted credentials will be invalidated and removed.",
    "encryptedSecretStoreResetAction": "Reset master password",
    "encryptedSecretStoreLater": "Later",
    "encryptedSecretStoreConfigured": "Encrypted database storage is ready.",
    "credentialsEmpty": "No stored credentials found.",
    "widgetCredentialsStored": "Widget credentials",
    "widgetCredentialsHint": "Credentials saved for Dashboard widget settings. Values stay in the selected secret store; widgets only keep references.",
    "widgetCredentialsEmpty": "No widget credentials found.",
    "credentialDeleted": "Credential deleted.",
    "credentialMissingSecret": "Secret value missing",
    "credentialSavedPassword": "Saved Password",
    "credentialSavedApiKey": "Saved API key",
    "credentialSavedSecret": "Saved Secret",
    "deleteCredential": "Delete credential",
    "deleteCredentialConfirmBody": "Are you sure? This cannot be undone",
    "assistantSkillsTitle": "Assistant Skills",
    "assistantSkillsHint": "Local SKILL.md folders that teach the AI Assistant focused workflows. Bundled starter skills are copied here automatically. Scripts are not executed in this version; use the folder button to add or edit skills.",
    "assistantCustomSkillsTitle": "Custom Skills",
    "assistantCustomSkillsHint": "Load extra SKILL.md folders from assistant-skills\\custom when the AI Assistant starts a request or when you refresh this list.",
    "assistantSkillsEmpty": "No Assistant Skills found.",
    "assistantSkillsOpenFolder": "Open skills folder",
    "assistantCustomSkillsOpenFolder": "Open custom folder",
    "assistantSkillsOpen": "Open {{name}}",
    "assistantSkillsEnabled": "Enabled",
    "assistantSkillsDisabled": "Disabled",
    "mcpServersTitle": "Remote MCP servers",
    "mcpServersHint": "Connect to remote Model Context Protocol servers so the AI assistant and Dashboard widgets can call their tools. KKTerm supports HTTP streamable MCP servers only; stdio configurations that spawn local processes are not supported.",
    "mcpServersEmpty": "No MCP servers configured.",
    "mcpAddServer": "Add MCP server",
    "mcpDeleteServer": "Remove MCP server",
    "mcpDeleteConfirmBody": "Remove the \"{{name}}\" MCP server? Its auth secret will be deleted from the keychain and widgets that reference this server will fail until reconfigured.",
    "mcpRefreshTools": "Refresh tools",
    "mcpStatusOk": "Connected",
    "mcpStatusUnreachable": "Unreachable",
    "mcpStatusAuthError": "Auth error",
    "mcpStatusProtocolError": "Protocol error",
    "mcpStatusUnknown": "Not yet probed",
    "mcpToolsCount": "{{count}} tools",
    "mcpToolsCount_one": "{{count}} tool",
    "mcpAuthBadge": "Auth",
    "mcpPasteHint": "Paste an HTTP MCP server JSON config. Common shapes work: a single { \"url\": ..., \"headers\": ... } object or a Claude Desktop-style { \"mcpServers\": { \"name\": { ... } } } map.",
    "mcpPastePlaceholder": "{\n  \"url\": \"https://example.com/mcp\",\n  \"headers\": {\n    \"Authorization\": \"Bearer ...\"\n  }\n}",
    "mcpPasteContinue": "Continue",
    "mcpConfirmHint": "Review the parsed configuration before saving. KKTerm will probe the server's tool list immediately after creation.",
    "mcpCreateServer": "Save MCP server",
    "mcpServerName": "Name",
    "mcpServerUrl": "URL",
    "mcpHeadersLabel": "Headers",
    "mcpDetectedSecretHint": "An authentication header was detected. The token will be stored in the OS keychain; only a {SECRET} placeholder is persisted in the SQLite config.",
    "mcpSecretHeaderName": "Auth header",
    "mcpSecretValueTemplate": "Auth value template",
    "mcpSecretValue": "Auth secret (stored in keychain)",
    "mcpAddInvalidJson": "Could not parse JSON. Check that the pasted text is valid.",
    "mcpAddInvalidShape": "Configuration must be a JSON object with at least a url field.",
    "mcpAddNoServers": "The mcpServers map is empty.",
    "mcpAddMissingUrl": "Missing required url field.",
    "mcpAddStdioUnsupported": "This MCP server uses local process execution (stdio transport), which KKTerm does not support.",
    "mcpStdioGuidance": "Look for an HTTP-based MCP endpoint from the same provider, or check their documentation for a hosted option.",
    "mcpErrorNotFound": "MCP server not found.",
    "mcpErrorDuplicateName": "An MCP server with that name already exists.",
    "mcpErrorKeychain": "OS keychain is unavailable; secrets cannot be stored.",
    "credentialKindConnectionPassword": "Connection passwords",
    "credentialKindUrlPassword": "Website credentials",
    "credentialKindAiApiKey": "AI provider keys",
    "credentialKindEmailApiKey": "Email provider keys",
    "credentialKindEmailSmtpPassword": "SMTP passwords",
    "credentialKindWidgetSecret": "Widget secrets",
    "sectionAiAssistant": "AI Assistant",
    "sectionSsh": "SSH",
    "sectionTerminal": "Terminal",
    "sectionRdp": "Remote Desktop",
    "sectionVnc": "VNC",
    "sectionAbout": "About",
    "generalDefaults": "General defaults",
    "appearanceInterface": "Interface",
    "save": "Save",
    "appUiFontFamily": "App UI font family",
    "layout": "Layout",
    "resetLayoutDescription": "Reset panel widths, collapsed panels, and saved terminal pane layouts.",
    "resetLayout": "Reset Layout",
    "colorScheme": "Color Scheme",
    "schemeDefault": "Default",
    "schemeDark": "Dark",
    "schemeLight": "Light",
    "schemeMatchOs": "Match OS",
    "schemeMac": "Mac",
    "schemeOrange": "Orange",
    "schemePurple": "Purple",
    "schemePink": "Pink",
    "schemeGreenKuaiKuai": "Green Kuai Kuai",
    "schemeBlueSee": "Blue See",
    "schemeBlueGreenWhite": "Blue, Green and white",
    "schemeConfetti": "Confetti",
    "schemeBubbleTea": "Bubble Tea",
    "schemeSemiconductor": "Semiconductor",
    "schemeCanarinho": "Canarinho",
    "schemeLaAlbiceleste": "La Albiceleste",
    "schemeLesBleus": "Les Bleus",
    "schemeOranje": "Oranje",
    "schemeDieMannschaft": "Die Mannschaft",
    "schemeLaRoja": "La Roja",
    "schemeOsNavegadores": "Os Navegadores",
    "schemeVatreni": "Vatreni",
    "schemeElTri": "El Tri",
    "schemeThreeLions": "Three Lions",
    "schemeSamuraiBlue": "Samurai Blue",
    "schemeStarsAndStripes": "The Stars and Stripes",
    "schemeMatchOsBadge": "AUTO",
    "colorSchemePreview": "Preview",
    "language": "Language",
    "workspaceAccess": "Window",
    "workspaceAccessHint": "Controls quick access and local runtime permissions.",
    "performance": "Performance",
    "performanceHint": "Controls local rendering and screen capture acceleration.",
    "useDirectxScreenCapture": "Use DirectX for screen capture",
    "useDirectxScreenCaptureHint": "Use DXGI Desktop Duplication when available, with GDI fallback.",
    "statusBar": "Status Bar",
    "statusBarHint": "Controls bottom Status Bar indicators.",
    "statusBarVisible": "Show Status Bar",
    "statusBarVisibleHint": "Show the bottom bar with notifications and status indicators.",
    "statusBarMonitor": "Show CPU/RAM/Network Monitor toggle",
    "statusBarMonitorHint": "When off, KKTerm stops collecting host usage snapshots.",
    "statusBarMonitorInterval": "Monitor interval",
    "statusBarMonitorInterval5": "Every 5 seconds",
    "statusBarMonitorInterval15": "Every 15 seconds",
    "statusBarMonitorInterval30": "Every 30 seconds",
    "statusBarMonitorInterval60": "Every 60 seconds",
    "statusBarMonitorInterval300": "Every 5 minutes",
    "settingsData": "Settings data",
    "autoBackup": "Auto backup",
    "autoBackupHint": "Runs at startup; backups older than 1 week are removed.",
    "autoUpdateChecks": "On startup",
    "generalDefaultsSaved": "General settings saved.",
    "dontSleepForegroundOnly": "Enable Don't Sleep only when app is in foreground",
    "dontSleepForegroundOnlyHint": "When off, Don't Sleep keeps the OS awake globally while KKTerm is running.",
    "dontSleepSettingsSaved": "Don't Sleep settings saved.",
    "autoStartWithWindows": "Start with Windows minimized",
    "autoStartWithWindowsHint": "Launch KKTerm minimized when you sign in to Windows.",
    "minimizeToTray": "Minimize/Close to tray",
    "minimizeToTrayHint": "Keep KKTerm in the tray instead of quitting when minimized or closed.",
    "lastBackup": "Last Backup: {{value}}",
    "lastBackupNever": "Never",
    "importSettings": "Import",
    "importSettingsConfirm": "Importing settings closes open Sessions and replaces the settings database. Continue?",
    "importSettingsComplete": "Settings imported. Previous database backup: {{filename}}.",
    "openDatabaseFolder": "Open Database Folder",
    "resetAllSettings": "Reset All Settings",
    "resetAllSettingsConfirm": "Reset all Settings pages to defaults, close open Sessions, reset saved layouts, clear the saved language override, and remove saved AI/email secrets?",
    "resetAllSettingsComplete": "All settings reset to defaults.",
    "settingsDataActions": "Settings export and import actions",
    "debug": "Debug",
    "debugHint": "Controls verbose local diagnostics.",
    "advancedDebugging": "Advanced Debugging",
    "advancedDebuggingHint": "Write full debug logs even in release builds. May include prompts, tool arguments, command output, and screenshots.",
    "openLogFolder": "Open Log Folder",
    "rdpWebviewStability": "RDP session stability (WebView2)",
    "rdpWebviewStabilityHint": "Force software rendering so KKTerm stays responsive inside an RDP host across reconnects. Disables GPU acceleration, so leave it off for local installs. Restart to apply.",
    "settingsBackupFilter": "KKTerm backup",
    "selectiveExport": "Export Selection…",
    "selectiveImport": "Import Selection…",
    "selectiveBackupFilter": "KKTerm selective backup",
    "importBackupFileHint": "Choose a KKTerm backup (.kkbackup or .zip) to import.",
    "selectiveExportPickHint": "Choose what to export",
    "selectiveCredentials": "Credentials",
    "includeCredentials": "Include passwords",
    "includeCredentialsHint": "Connection, URL, and SOCKS proxy passwords.",
    "includeCredentialsWarning": "Passwords are encrypted with the passphrase below. Anyone importing this file must enter the same passphrase. Without it, the export contains no passwords — safe to share.",
    "exportPassphrase": "Passphrase",
    "exportPassphraseConfirm": "Confirm passphrase",
    "exportPassphraseMismatch": "Passphrases do not match.",
    "importPassphrase": "Passphrase",
    "selectiveExportComplete": "Exported selection to {{filename}}.",
    "selectiveImportComplete": "Imported {{count}} categor(ies).",
    "selectiveImportChooseFile": "Choose Backup File…",
    "fullBackupImport": "Full backup ZIP",
    "fullBackupImportHint": "Imports the complete KKTerm settings database and reloads the app.",
    "selectiveImportActionsHint": "Choose what to do with each category",
    "selectiveImportWarning": "A safety backup of your current data is created before importing. Replace clears that category first; Add keeps your existing items and adds the imported ones.",
    "importActionSkip": "Skip",
    "importActionAdd": "Add",
    "importActionReplace": "Replace",
    "segment_credentials": "Passwords",
    "aiProvider": "AI provider",
    "provider": "Provider",
    "endpoint": "Endpoint",
    "apiMode": "API mode",
    "apiModeChatCompletions": "Chat Completions",
    "apiModeResponses": "Responses",
    "model": "Model",
    "customModelId": "Custom model ID",
    "extraHeaders": "Extra headers",
    "extraHeadersPlaceholder": "sid=1, \"env\"=\"3\"",
    "reasoningEffort": "Reasoning effort",
    "howToGetApiKey": "How to get",
    "sshDefaults": "SSH defaults",
    "defaultUser": "Default user",
    "defaultPort": "Default port",
    "defaultKey": "Default key",
    "defaultKeyPlaceholder": "C:\\Users\\example\\.ssh\\id_ed25519",
    "sshConnectionDefaults": "Connection defaults",
    "sshConnectionDefaultsHint": "Pre-fills new SSH Connections.",
    "sshAuthentication": "Authentication",
    "sshAuthenticationHint": "Default key material for new SSH Connections.",
    "sshTerminal": "SSH terminal",
    "sshTerminalHint": "Scrollback and remote clipboard behavior for SSH Sessions.",
    "defaultKeyHint": "Used by new key-based SSH Connections.",
    "defaultSshUserHint": "Pre-fills new SSH and Telnet Connections.",
    "defaultSshPortHint": "Used when a Connection omits a port.",
    "defaultSshUserRequired": "Default SSH user is required.",
    "defaultSshPortRange": "Default SSH port must be between 1 and 65535.",
    "sshBufferLines": "SSH buffer lines",
    "sshBufferHint": "Default 5,000; used for SSH scrollback and tmux pane history.",
    "defaultTransparency": "Default transparency",
    "defaultTransparencyHint": "Used for new terminal Connections and new Child Connection Tabs.",
    "defaultTransparencyRange": "Default transparency must be between 0 and 100.",
    "randomDynamicBackgroundOnCreate": "Random dynamic background on create",
    "randomDynamicBackgroundOnCreateHint": "When on, new terminal Connections, new tabs, and new Child Connection Tabs start with a random dynamic background.",
    "sshBufferRange": "SSH buffer must be between 100 and 100000 lines.",
    "xServer": "X server",
    "xServerHint": "Start VcXsrv before SSH Sessions that need local X11 windows.",
    "xServerManaged": "Launch VcXsrv for SSH Sessions",
    "xServerManagedHint": "When on, KKTerm starts VcXsrv if it is not already running before opening an SSH Session.",
    "xServerPath": "VcXsrv path",
    "xServerPathPlaceholder": "C:\\Program Files\\VcXsrv\\vcxsrv.exe",
    "xServerPathHint": "Leave blank to use the standard VcXsrv install locations.",
    "xServerDisplay": "Display number",
    "xServerDisplayHint": "Uses :0 by default. Range: 0 to 99.",
    "xServerDisplayRange": "X server display must be between 0 and 99.",
    "xServerArgs": "Launch arguments",
    "xServerArgsHint": "Default: -multiwindow -clipboard -wgl.",
    "xServerLaunch": "Launch VcXsrv",
    "xServerLaunchStarted": "VcXsrv launch requested.",
    "xServerAlreadyRunning": "VcXsrv is already running.",
    "sshDefaultsSaved": "SSH defaults saved.",
    "generateSshKey": "Generate key",
    "sshKeyEmailPrompt": "Email for the SSH key comment:",
    "sshKeyEmailDialogTitle": "Generate SSH key",
    "sshKeyEmailDialogHint": "Use an email comment so the key is easy to recognize.",
    "sshKeyEmailPlaceholder": "admin@example.com",
    "sshKeyPassphraseOptional": "Key passphrase (optional)",
    "sshKeyPassphraseConfirm": "Confirm key passphrase",
    "sshKeyPassphraseMismatch": "Key passphrases do not match.",
    "sshKeyGenerating": "Generating...",
    "sshKeyGenerated": "SSH key generated. Private: {{privateKeyPath}} Public: {{publicKeyPath}}",
    "notSet": "Not set",
    "proxyJump": "ProxyJump",
    "proxyJumpPlaceholder": "bastion.example.com",
    "proxyJumpHint": "Optional ProxyJump host for new SSH Connections.",
    "sshSocksProxyPlaceholder": "127.0.0.1:1080",
    "sshCompression": "SSH compression",
    "sshCompressionFast": "Fast (zlib)",
    "sshCompressionOff": "Off",
    "sshCompressionHint": "Default transport compression for SSH Connections (matches ssh -XC). Fast is recommended for X11 forwarding and slow links; individual Connections can override this.",
    "terminalBehavior": "Local terminal",
    "terminalText": "Text and cursor",
    "terminalTextHint": "Local terminal font, size, line height, and cursor.",
    "terminalSession": "Session defaults",
    "terminalSessionHint": "Default shell and scrollback for local terminal Sessions.",
    "terminalClipboard": "Clipboard and paste",
    "terminalClipboardHint": "Local terminal copy, OSC 52, and paste safety.",
    "fontFamily": "Font family",
    "fontSize": "Font size",
    "lineHeight": "Line height",
    "scrollbackLines": "Scrollback lines",
    "cursorStyle": "Cursor style",
    "defaultShell": "Default shell",
    "block": "Block",
    "bar": "Bar",
    "underline": "Underline",
    "powerShell": "PowerShell",
    "powerShell7": "PowerShell 7 (pwsh)",
    "commandPrompt": "Command Prompt",
    "wsl": "WSL",
    "customShells": "Custom shells",
    "customShellsHint": "Add local shell profiles to reuse in the default shell picker and Local terminal Connections.",
    "customShell": "Custom shell",
    "customShellName": "Name",
    "customShellNamePlaceholder": "Git Bash",
    "customShellCommandLine": "Command line",
    "customShellCommandLinePlaceholder": "C:\\Program Files\\Git\\bin\\bash.exe --login -i",
    "addCustomShell": "Add shell",
    "removeCustomShell": "Remove {{name}}",
    "copyOnSelect": "Copy on select",
    "copyOnSelectHint": "Selecting terminal text copies it immediately in local and regular SSH Sessions. In tmux Sessions with mouse mode enabled, hold Shift while selecting, or turn mouse mode off. Selections made in tmux copy mode are not copied by this option.",
    "allowLocalOsc52Clipboard": "Allow local OSC 52 clipboard writes",
    "allowSshOsc52Clipboard": "Allow SSH OSC 52 clipboard writes",
    "confirmMultilinePaste": "Confirm multiline paste",
    "scrollbackHint": "Default 5,000. Range: 100 to 100,000.",
    "qualityDefaults": "Quality defaults",
    "colorDepth": "Color depth",
    "bitmapCache": "Bitmap cache",
    "performanceFlags": "Performance flags",
    "display": "Display",
    "remoteDesktopViewMode": "View mode",
    "remoteDesktopViewModeFit": "Fit to workspace",
    "remoteDesktopViewModeStretch": "Stretch to fill",
    "remoteDesktopViewModeActualSize": "Actual size with scrollbars",
    "remoteDesktopViewModeFitWidth": "Fit width",
    "remoteDesktopViewModeFitHeight": "Fit height",
    "networkPerformance": "Network and performance",
    "encoding": "Encoding",
    "rdpColorDepth32": "32-bit",
    "rdpColorDepth24": "24-bit",
    "rdpColorDepth16": "16-bit",
    "rdpColorDepth15": "15-bit",
    "rdpBitmapCacheHint": "Maps to BitmapPersistence and CachePersistenceActive.",
    "rdpPerformanceBalanced": "Balanced",
    "rdpPerformanceQuality": "Quality",
    "rdpPerformanceSpeed": "Speed",
    "rdpRemoteResolution": "Remote resolution",
    "rdpRemoteResolutionAutomatic": "Automatic",
    "rdpRedirectClipboard": "Clipboard redirection",
    "rdpRedirectClipboardHint": "Allow clipboard copy and paste between KKTerm and the remote desktop.",
    "rdpRedirectDrives": "Drive redirection",
    "rdpRedirectDrivesHint": "Expose local drives to the remote desktop session.",
    "rdpSettingsSaved": "RDP defaults saved.",
    "quality": "Quality",
    "preferredEncoding": "Preferred encoding",
    "colorLevel": "Color level",
    "vncEncodingTight": "Tight",
    "vncEncodingZrle": "ZRLE",
    "vncEncodingRaw": "Raw",
    "vncColorFull": "Full color",
    "vncColor256": "256 colors",
    "vncColor64": "64 colors",
    "vncColor8": "8 colors",
    "vncSharedSession": "Shared session",
    "vncSharedSessionHint": "Allow another VNC viewer to stay connected when KKTerm opens this session.",
    "vncViewOnly": "View only",
    "vncViewOnlyHint": "Connect without sending pointer or keyboard input.",
    "vncSettingsSaved": "VNC defaults saved.",
    "github": "GitHub",
    "softwareUpdates": "App Update",
    "updates": "Updates",
    "checkForUpdates": "Check now",
    "lastCheckedAt": "Last checked {{time}}",
    "lastCheckedNever": "Never checked",
    "checkingForUpdates": "Checking for updates...",
    "updateNoUpdates": "KKTerm is up to date.",
    "updateAvailableTitle": "Update available",
    "updateAvailableBody": "KKTerm {{version}} is available. You are running {{currentVersion}}.",
    "updatePromptLabel": "KKTerm update prompt",
    "updateOpenDownloadPage": "Open download page",
    "updateDownloadAndInstall": "Download and Install",
    "updateDownloading": "Downloading...",
    "updateDownloadCancel": "Cancel update download",
    "updateDownloadFailed": "Could not download and install the update: {{message}}",
    "updateLater": "Later",
    "updateNotes": "Release notes",
    "updateChecksRequireRuntime": "Update checks require the Tauri desktop runtime.",
    "updateCheckFailed": "Could not check for updates: {{message}}",
    "appSlogan": "The terminal tool for keeping every machine on its best behavior.",
    "developer": "Developer",
    "version": "Version",
    "license": "License",
    "repository": "Repository",
    "uiFontDefault": "Default (SF Pro / Inter)",
    "customFont": "Custom font",
    "customFonts": "Custom fonts",
    "recommendedFonts": "Recommended",
    "openCustomFontsFolder": "Open fonts folder",
    "typography": "Typography",
    "typographyHint": "App-wide UI font selection.",
    "theme": "Theme",
    "themeHint": "App color scheme and preview.",
    "customFontsHint": "Press the refresh button to get system fonts. To use custom fonts, put them in the fonts folder.",
    "systemFonts": "System fonts",
    "systemFontsRefreshed": "System fonts refreshed.",
    "systemFontsUnavailable": "System font detection isn't available in this app build.",
    "refreshSystemFonts": "Refresh system fonts",
    "terminalFontDefault": "Default ({{font}})",
    "providerDefault": "Provider default",
    "low": "Low",
    "medium": "Medium",
    "high": "High",
    "max": "Max",
    "fontFamilyRequired": "Font family is required.",
    "defaultShellRequired": "Default shell is required.",
    "fontSizeRange": "Terminal font size must be between 8 and 32.",
    "lineHeightRange": "Terminal line height must be between 1.0 and 2.0.",
    "scrollbackRange": "Terminal scrollback must be between 100 and 100000 lines.",
    "terminalSaved": "Terminal settings saved.",
    "appearanceSaved": "Appearance settings saved.",
    "aiProviderSaved": "AI provider saved.",
    "secretSaveFailed": "Couldn't save the credential to the secret store: {{error}}",
    "keychainSaveFailedTitle": "Couldn't save to the secret store",
    "keychainResetHint": "Reset removes the stored entry and saves again, which asks the operating system to grant access. On macOS, choose Allow when the keychain prompt appears.",
    "keychainResetAndRetry": "Reset & retry",
    "refreshModels": "Refresh models",
    "refreshingModels": "Refreshing models",
    "modelListRefreshed": "Model list refreshed.",
    "showAllModels": "Show All Models",
    "showAllModelsHint": "Show every provider model returned by refresh instead of only the curated recommendations.",
    "outputLanguage": "Output language",
    "outputLanguageUiLanguage": "UI Language",
    "settingsContent": "Settings",
    "dashboardGeneral": "General",
    "dashboardDefaultLanding": "Default view on open",
    "dashboardLandingLast": "Last active view",
    "dashboardLayoutEnforcement": "Generated widget layout",
    "dashboardLayoutEnforcementHint": "How strictly KKTerm forces AI-created widgets to fill their frame. Strict makes the widget body act as the frame so content cannot collapse into a small centered card; Moderate keeps the standard behavior; Low gives the most freedom and lets widgets size to their content.",
    "dashboardLayoutEnforcementStrict": "Strict — fill the frame",
    "dashboardLayoutEnforcementModerate": "Moderate — standard",
    "dashboardLayoutEnforcementLow": "Low — most freedom",
    "dashboardSaved": "Dashboard settings saved.",
    "dashboardPerformance": "Performance",
    "dashboardMaxActiveScriptWidgets": "Active script widgets cap",
    "dashboardMaxActiveScriptWidgetsHint": "Maximum script widgets that render their iframe at once on a Dashboard. Excess widgets show a click-to-activate placeholder. Allowed range {{min}}–{{max}}.",
    "dashboardUseRandomDynamicBackground": "Use Random Dynamic Background",
    "dashboardUseRandomDynamicBackgroundDesc": "New Dashboard Views automatically start with a random dynamic background.",
    "dashboardAllowWidgetNetworkTools": "Allow network tools in widgets",
    "dashboardAllowWidgetNetworkToolsDesc": "When enabled, script widgets that request permissions.networkTools can run ping, port scan, DNS, WHOIS, and Wake-on-LAN. Disable to globally block these from all widgets.",
    "workspaceTabs": "Tabs",
    "hideTopTabButtons": "Use Child Connection Tabs in the Connection Tree",
    "hideTopTabButtonsDesc": "When enabled, the top Tab Strip is hidden and saved Child Connection Tabs appear as italic rows under their parent Connection.",
    "doubleClickOpensConnection": "Double-click to open Connections",
    "doubleClickOpensConnectionDesc": "When enabled, single-clicking a Connection in the Connection Tree only selects it and double-clicking opens it. Use the right-click Rename action to rename Connections.",
    "fileExplorer": "File Explorer",
    "fileExplorerOpenMode": "Open files",
    "fileExplorerOpenModeHint": "Choose whether File Explorer opens local files inside KKTerm or with the operating system's default app.",
    "fileExplorerOpenModeExternal": "External app",
    "fileExplorerOpenModeInlineEditor": "Inline editor",
    "fileExplorerTerminal": "Terminal for current folder",
    "fileExplorerTerminalHint": "Choose the shell used by the File Explorer terminal button. Custom shells are managed in Terminal settings.",
    "submitAiAttachmentsDirectly": "Submit screenshot/text to AI Assistant directly",
    "submitAiAttachmentsDirectlyDesc": "When enabled, Send to AI Assistant submits the attached screenshot or terminal buffer with a default help request. When disabled, it only attaches the context so you can type your own question.",
    "terminalBackgrounds": "Terminal backgrounds",
    "separateSplitTerminalBackgrounds": "Separate background for each terminal in split panes",
    "separateSplitTerminalBackgroundsDesc": "When off, one background fills the terminal workspace content area for a Connection Tab. When on, split terminal panes can keep separate backgrounds.",
    "workspaceSaved": "Workspace settings saved.",
    "fileExplorerSaved": "File Explorer settings saved.",
    "activityRail": "Activity Rail",
    "installerUpdateChecks": "Update checks",
    "installerCheckInterval": "Check for latest versions",
    "installerCheckIntervalDesc": "How often the Install Helper automatically checks for the latest available versions when you open it. Use Refresh to check immediately.",
    "installerSaved": "Install Helper settings saved.",
    "sectionUrl": "URL",
    "urlDefaults": "URL settings",
    "urlSecurity": "URL security",
    "urlSecurityHint": "Certificate handling for URL Connections.",
    "ignoreCertificateErrors": "Ignore invalid HTTPS certificates",
    "ignoreCertificateErrorsHint": "Allows self-signed or untrusted certificates in new URL tabs.",
    "proxy": "Proxy",
    "proxyHint": "Network proxy for all KKTerm activity — connections, app updates, AI providers, and other web requests.",
    "proxyMode": "Proxy Settings",
    "proxyModeSystem": "Use system settings",
    "proxyModeNone": "No proxy",
    "proxyModeManual": "Manual",
    "proxyProtocol": "Type",
    "proxyHttp": "HTTP",
    "proxyHttps": "HTTPS",
    "proxySocks5": "SOCKS5",
    "proxyHost": "Proxy host",
    "proxyHostPlaceholder": "proxy.example.com",
    "proxyPort": "Proxy port",
    "proxyPlatformHint": "System settings use the OS proxy (Windows WinINET, macOS CFNetwork, Linux environment variables). A manual SOCKS5 proxy also routes SSH/SFTP and Telnet sessions; HTTP and HTTPS proxies apply to web and app requests only.",
    "proxySettingsSaved": "Proxy settings saved.",
    "urlProxyMode": "Proxy type",
    "urlProxyDirect": "Direct (no proxy)",
    "urlProxyHttp": "HTTP / HTTPS",
    "urlProxySocks5": "SOCKS5",
    "urlProxyHost": "Proxy host",
    "urlProxyHostPlaceholder": "proxy.example.com",
    "urlProxyPort": "Proxy port",
    "urlSettingsSaved": "URL settings saved.",
    "savedWebsitePasswords": "Saved website password/input data",
    "savedWebsitePasswordsHint": "Passwords stay in the selected secret store; non-secret input data and page details stay in SQLite for Autofill.",
    "noSavedWebsitePasswords": "No saved website password/input data yet.",
    "urlPasswordDeleted": "Saved website data deleted.",
    "urlPasswordUpdated": "Saved website data updated.",
    "urlPasswordDetails": "Username: {{username}} · Updated: {{updatedAt}}",
    "urlCredentialUsername": "Username",
    "urlCredentialPassword": "New password",
    "urlCredentialPasswordPlaceholder": "Leave blank to keep current password",
    "urlCredentialShowValue": "Show input value",
    "urlCredentialHideValue": "Hide input value",
    "urlCredentialMaskValue": "Mask input value",
    "urlCredentialUnmaskValue": "Unmask input value",
    "urlCredentialUsernameSelector": "Username field selector",
    "urlCredentialPasswordSelector": "Password field selector",
    "urlDataShards": "URL data shards",
    "urlDataShardsHint": "Clearing a shard removes its partition label from matching URL Connections.",
    "noUrlDataShards": "No URL data shards configured.",
    "urlDataShardConnectionCount": "{{count}} URL Connection",
    "clearShard": "Clear shard",
    "urlDataShardCleared": "Cleared URL data shard {{name}}.",
    "urlDataShardConnectionCountPlural": "{{count}} URL Connections",
    "aiToolsTitle": "Assistant tools",
    "aiProviderConnection": "Provider connection",
    "aiProviderConnectionHint": "Endpoint, model, reasoning, and API key.",
    "useCodexCli": "Use Codex CLI",
    "useCodexCliHint": "Use the local Codex CLI as the OpenAI backend. The API key field is disabled; Codex CLI authentication is used instead.",
    "useClaudeCli": "Use Claude Code CLI",
    "useClaudeCliHint": "Use the local Claude Code CLI as the Anthropic backend. The API key field is disabled; Claude Code authentication is used instead.",
    "aiCliStatusUnknown": "CLI status has not been checked.",
    "aiCliStatusMissing": "CLI is not installed.",
    "aiCliStatusAuthRequired": "CLI is installed but not authenticated.",
    "aiCliStatusReady": "CLI is installed and authenticated.",
    "aiCliRefreshStatus": "Check status",
    "aiCliInstall": "Install CLI",
    "aiCliAuthenticate": "Authenticate",
    "aiCliInstallStarted": "AI CLI installation completed.",
    "aiCliInstallFailed": "AI CLI installation did not complete.",
    "aiCliAuthStarted": "AI CLI authentication opened in an external terminal.",
    "copilotConnectionHint": "Uses GitHub device sign-in. The returned token stays in the OS keychain.",
    "copilotCliInstallHelp": "How to get Copilot CLI",
    "copilotCliStatusUnknown": "Copilot CLI status has not been checked.",
    "copilotCliStatusReady": "Copilot CLI detected.",
    "copilotCliStatusMissing": "Copilot CLI not found. Install it or set COPILOT_CLI_PATH.",
    "copilotConnect": "Connect GitHub Copilot",
    "copilotDisconnect": "Disconnect GitHub Copilot",
    "copilotAuthCode": "Enter code {{code}} on GitHub.",
    "copilotAuthPending": "Waiting for GitHub authorization...",
    "copilotOpenDevicePage": "Open GitHub device page",
    "copilotConnected": "GitHub Copilot connected.",
    "copilotDisconnected": "GitHub Copilot disconnected.",
    "aiAllowInsecureTls": "Allow insecure TLS for AI providers",
    "aiAllowInsecureTlsHint": "Ignore invalid or self-signed certificates for AI provider requests. Use only for trusted local or internal endpoints.",
    "aiResponseDefaults": "Response defaults",
    "aiResponseDefaultsHint": "Language preferences for Assistant replies.",
    "aiCustomInstructions": "Custom instructions",
    "aiCustomInstructionsHint": "Optional Assistant guidance, up to {{count}} characters. KKTerm safety, approval, and local-first constraints still apply.",
    "aiCustomInstructionsTooLong": "AI Assistant custom instructions must be {{count}} characters or fewer.",
    "aiToolsDescription": "Choose the built-in tools the AI Assistant may call.",
    "aiToolsSafety": "Safeguards: file tools stay in app data, shell commands run from app data, and destructive requests are blocked.",
    "aiTools": {
      "currentTime": {
        "label": "Current time",
        "description": "Get local time in RFC 3339 format."
      },
      "performanceCounters": {
        "label": "Performance counters",
        "description": "Read low-overhead local CPU, memory, network, process, uptime, and drive-space counters."
      },
      "webSearch": {
        "label": "Web search",
        "description": "Return compact titles, links, and snippets."
      },
      "webFetch": {
        "label": "Fetch web page",
        "description": "Read and summarize one http/https page."
      },
      "appDataFileSearch": {
        "label": "Search app data files",
        "description": "Find files inside app data only."
      },
      "appDataFileRead": {
        "label": "Read app data file",
        "description": "Read small text files in app data only."
      },
      "shellCommand": {
        "label": "PowerShell / batch commands",
        "description": "Run non-destructive commands from app data only."
      },
      "email": {
        "label": "Send Email",
        "description": "Send reviewed messages through Resend, SendGrid, Mailgun, Postmark, or SMTP."
      },
      "dashboard": {
        "label": "Dashboard",
        "description": "Read and modify Dashboard views, widget instances, and AI Created Widgets."
      },
      "connections": {
        "label": "Connections",
        "description": "List, create, edit, and delete saved Connections."
      },
      "sessions": {
        "label": "Live Sessions",
        "description": "Read visible session context and interact with active terminal, remote desktop, and file browser Sessions."
      },
      "tutorial": {
        "label": "Tutorial",
        "description": "Highlight visible app controls, dim the rest of the window, and show one-step balloon help."
      },
      "manual": {
        "label": "Operation Manual",
        "description": "Search and read the bundled KKTerm Operation Manual to answer how-to questions about app features."
      },
      "network": {
        "label": "Network admin tools",
        "description": "Ping hosts, check TCP ports, resolve DNS, run WHOIS, list interfaces, and send Wake-on-LAN."
      },
      "memory": {
        "label": "Assistant memory",
        "description": "Let the assistant save and recall short notes about your hosts and preferences across chats. Never stores secrets."
      }
    },
    "searchProvider": "Search provider",
    "searchProviderScraper": "Built-in (DuckDuckGo)",
    "searchProviderBrave": "Brave Search",
    "searchProviderTavily": "Tavily",
    "searchProviderSearxng": "SearXNG",
    "braveSearchApiKey": "Brave Search API key",
    "tavilySearchApiKey": "Tavily API key",
    "searxngUrl": "SearXNG instance URL",
    "emailProvider": "Email provider",
    "emailProviderResend": "Resend",
    "emailProviderSendGrid": "SendGrid",
    "emailProviderMailgun": "Mailgun",
    "emailProviderPostmark": "Postmark",
    "emailProviderSmtp": "SMTP",
    "emailFrom": "From address",
    "emailApiKey": "Email provider API key",
    "mailgunDomain": "Mailgun domain",
    "smtpHost": "SMTP host",
    "smtpPort": "SMTP port",
    "smtpSecurity": "SMTP security",
    "smtpSecurityStartTls": "STARTTLS",
    "smtpSecurityNone": "None",
    "smtpUsername": "SMTP username",
    "smtpPassword": "SMTP password",
    "connectedConnectionsRail": "Show connected Connections",
    "connectedConnectionsRailHint": "Adds connected Connection icons to the Activity Rail.",
    "builtInMcpServerEnabled": "Built-in MCP Server enabled",
    "builtInMcpServerEnabledHint": "Expose kkterm-cli as a stdio MCP server for external tools.",
    "builtInMcpAllowAllDangerous": "Built-in MCP dangerous tools: Allow all",
    "builtInMcpAllowAllDangerousHint": "When enabled, MCP tools with a dangerous namespace segment execute without confirmation prompts.",
    "allowInsecureMcpHttp": "Allow insecure Remote MCP HTTP servers",
    "allowInsecureMcpHttpHint": "When enabled, Remote MCP servers on local or network http:// URLs are allowed; leave this off unless you trust the network and server.",
    "builtInMcpShowConfig": "Show config",
    "builtInMcpConfigTitle": "Built-in MCP config",
    "builtInMcpConfigIntro": "Paste one of these snippets into an MCP-capable tool, or use a setup command below. The command path uses the kkterm-cli binary beside your running KKTerm app.",
    "builtInMcpConfigCopy": "Copy config",
    "builtInMcpConfigCopied": "Config copied",
    "builtInMcpConfigLocationsTitle": "Common setup commands",
    "builtInMcpConfigFormatJson": "JSON",
    "builtInMcpConfigFormatToml": "TOML",
    "builtInMcpConfigAgentHeader": "Agent",
    "builtInMcpConfigMethodHeader": "Method",
    "builtInMcpConfigProjectScopeHeader": "Project scoped (run in project folder)",
    "builtInMcpConfigGlobalScopeHeader": "Global scope (run anywhere)",
    "builtInMcpConfigMethodRunCommand": "Run command",
    "builtInMcpConfigMethodRunCommandOrManualEdit": "Run command / manual edit",
    "builtInMcpConfigMethodManualEdit": "Manual edit",
    "exportSettings": "Export",
    "changesNotSaved": "Change not saved",
    "unsavedQuitTitle": "Unsaved settings",
    "unsavedQuitBody": "Save your changes before closing Settings?",
    "saveAndQuit": "Save and quit",
    "quitWithoutSaving": "Quit without saving",
    "sectionItOps": "IT Ops",
    "urlUserAgent": "User agent",
    "urlUserAgentHint": "Choose the default user-agent string for URL Connections. Leave blank to use each platform webview default; paste a custom value when a site requires one.",
    "urlUserAgentDefault": "Default user agent",
    "urlUserAgentDefaultPlaceholder": "Platform default",
    "urlUserAgentChromeWindows": "Chrome on Windows",
    "urlUserAgentChromeMac": "Chrome on macOS",
    "urlUserAgentChromeLinux": "Chrome on Linux",
    "urlUserAgentEdgeWindows": "Edge on Windows",
    "urlUserAgentEdgeMac": "Edge on macOS",
    "urlUserAgentFirefoxWindows": "Firefox on Windows",
    "urlUserAgentFirefoxMac": "Firefox on macOS",
    "urlUserAgentFirefoxLinux": "Firefox on Linux",
    "urlUserAgentSafariMac": "Safari on macOS",
    "terminalColorScheme": "Color scheme",
    "terminalColorSchemeHint": "Default palette for every terminal. A Connection can override it from the terminal pane menu.",
    "terminalIntegrations": "Integrations",
    "terminalIntegrationsHint": "Protocol extras for programs running inside the terminal.",
    "enableInlineImages": "Inline images (Sixel and iTerm2)",
    "enableInlineImagesHint": "Let programs such as imgcat draw images directly in the terminal.",
    "allowTerminalNotifications": "Terminal notifications (OSC 9/777)",
    "allowTerminalNotificationsHint": "Show a Status Bar notice when a program raises a terminal notification.",
    "hyperlinkRules": "Hyperlink rules",
    "hyperlinkRulesHint": "Turn matching terminal text into Ctrl+click links. $0–$9 in the URL insert capture groups.",
    "hyperlinkRule": "rule",
    "hyperlinkRulePattern": "Pattern (regular expression)",
    "hyperlinkRuleUrl": "URL template",
    "addHyperlinkRule": "Add rule",
    "removeHyperlinkRule": "Remove rule {{pattern}}",
    "hyperlinkRuleIncomplete": "Each hyperlink rule needs both a pattern and a URL.",
    "hyperlinkRuleInvalidPattern": "The pattern \"{{pattern}}\" is not a valid regular expression.",
    "hyperlinkRuleUrlInvalid": "Hyperlink rule URLs must start with http:// or https://."
  },
  "connections": {
    "title": "Connections",
    "addConnection": "Add connection",
    "collapseColumn": "Collapse Connections column",
    "searchPlaceholder": "Search hosts, folders",
    "quickConnect": "Quick connect",
    "newFolder": "New folder",
    "panoramaView": "Panorama View",
    "collapseAll": "Collapse All",
    "expandAll": "Expand All",
    "showConnected": "Show Connected",
    "hideFolders": "Hide Folders",
    "connectionTree": "Connection tree",
    "expand": "Expand",
    "collapse": "Collapse",
    "newSubfolderIn": "New subfolder in",
    "newConnection": "New Connection",
    "rename": "Rename",
    "changeIcon": "Change Icon",
    "openAllInFolder": "Open all connections",
    "openAllInTabs": "In separate Tabs",
    "openAllInPanorama": "In a Panorama",
    "closeAllInFolder": "Close all connections",
    "delete": "Delete",
    "pinToRail": "Pin",
    "unpinFromRail": "Unpin",
    "pinnedToRailStatus": "Pinned {{name}}.",
    "unpinnedFromRailStatus": "Unpinned {{name}}.",
    "pinRailError": "Could not update pinned Connections: {{message}}",
    "addTo": "Add to...",
    "newTabShortcut": "Ctrl+Left Click",
    "layout": "Layout",
    "left": "Left",
    "right": "Right",
    "lower": "Lower",
    "upper": "Upper",
    "properties": "Properties",
    "renameFolder": "Rename folder",
    "renameConnection": "Rename connection",
    "deleteFolderConfirm": "Delete folder",
    "deleteConnectionConfirm": "Delete connection",
    "cannotBeUndone": "This cannot be undone.",
    "quickConnectDialog": "Quick connect",
    "ssh": "SSH",
    "telnet": "Telnet",
    "serial": "Serial",
    "hostname": "Hostname",
    "port": "Port",
    "exampleHost": "example.internal",
    "connect": "Connect",
    "cancel": "Cancel",
    "normal": "Normal",
    "admin": "Admin",
    "noRecent": "No recent connections",
    "moreRecent": "More...",
    "secureShell": "Secure shell",
    "telnetShell": "Password terminal",
    "serialLine": "Serial line",
    "localShell": "Local shell",
    "embeddedWebApp": "Embedded web app",
    "windowsRdp": "Windows RDP",
    "screenControl": "Screen control",
    "type": "Type",
    "connectionProperties": "Connection properties",
    "connectionNotFound": "Connection was not found.",
    "childConnectionProperties": "Edit Child Connection Tab Properties",
    "newConnectionTitle": "New Connection",
    "openOneOffSession": "Quick connect — saved to your connections",
    "saveAndConnect": "Save & connect",
    "editIcon": "Edit Connection icon",
    "iconPickerLabel": "Connection icon",
    "editIconBackground": "Edit Connection icon background",
    "iconForeground": "Icon foreground",
    "defaultIconForeground": "Use default icon foreground",
    "selectIconForeground": "Use {{color}} icon foreground",
    "iconBackground": "Icon background",
    "transparentIconBackground": "Use transparent icon background",
    "selectIconBackground": "Use {{color}} icon background",
    "predefinedIcons": "Predefined",
    "lucideIcons": "Lucide icons",
    "customImage": "Selected image",
    "currentCustomIcon": "Current custom icon",
    "savedImages": "Saved images",
    "chooseImage": "Choose",
    "useDefaultIcon": "Use default icon",
    "removeCustomIcon": "Remove custom icon",
    "selectPredefinedIcon": "Use {{icon}} icon",
    "selectLucideIcon": "Use Lucide {{icon}} icon",
    "selectSavedIcon": "Use saved image {{index}}",
    "iconReadError": "Could not read that image.",
    "iconFileTooLarge": "Choose an image under 20 MB.",
    "wsl": "WSL",
    "close": "Close",
    "folder": "Folder",
    "root": "Root",
    "nameOptional": "Name(Optional)",
    "connectionName": "Connection name",
    "shell": "Shell",
    "wslDistribution": "Distribution",
    "localStartupDirectory": "Startup path",
    "localStartupDirectoryPlaceholder": "C:\\Work\\Project",
    "localStartupDirectoryPickerTitle": "Choose startup path",
    "localStartupScript": "Startup script",
    "localStartupScriptPlaceholder": "Optional commands to run after launch",
    "sshStartupScript": "Startup script",
    "sshStartupScriptToggle": "Enable startup script",
    "sshStartupScriptEdit": "Edit script",
    "sshStartupScriptEmpty": "No startup script yet — open the editor to add one.",
    "sshStartupScriptEditorTitle": "SSH startup script",
    "sshStartupScriptEditorHint": "These commands are typed into the remote shell each time a session opens.",
    "sshStartupScriptPlaceholder": "cd /srv/app\nsource .venv/bin/activate",
    "sshStartupScriptApplyExistingTmux": "Apply to existing tmux sessions on attach",
    "sshStartupScriptApplyExistingTmuxDesc": "Run the script again when re-attaching to a running tmux session, not only when it is first created.",
    "sshStartupScriptGenerateWithAi": "Generate with AI",
    "sshStartupScriptAiPromptLabel": "Describe what the startup script should do",
    "sshStartupScriptAiPromptPlaceholder": "e.g. activate the project virtualenv and cd into the app",
    "sshStartupScriptAiGenerate": "Generate",
    "sshStartupScriptAiGenerating": "Generating…",
    "sshStartupScriptAiFailed": "AI generation failed: {{message}}",
    "environmentVariables": "Environment variables",
    "environmentVariablesUnsupportedShell": "Environment variables support Command Prompt, PowerShell, WSL, Bash, and zsh.",
    "environmentVariablesHint": "These variables are set when this Connection starts.",
    "environmentVariablesNonSecret": "Values are stored in the Startup script. Do not store passwords, tokens, or API keys here.",
    "environmentVariablesMalformed": "KKTerm cannot safely edit the existing managed environment block. Fix or remove it in the Startup script first.",
    "environmentVariable": "environment variable",
    "environmentVariableName": "Name",
    "environmentVariableValue": "Value",
    "environmentVariableAdd": "Add variable",
    "environmentVariableRemove": "Remove {{name}}",
    "environmentVariableApply": "Apply",
    "environmentVariableInvalidName": "Names must start with a letter or underscore and contain only letters, numbers, and underscores.",
    "environmentVariableDuplicateName": "Each variable name must be unique.",
    "environmentVariableMultilineValue": "Values must stay on one line.",
    "cliAccountHelper": "Set up CLI account",
    "cliAccountAlternateProfileHint": "Set AI Coding Agent alternate account profile",
    "cliAccountUnsupportedShell": "Alternate CLI account profiles support Command Prompt, PowerShell, WSL, Bash, and zsh.",
    "cliAccountHint": "Choose one CLI account. KKTerm sets an isolated data directory; sign in normally after opening the terminal.",
    "cliAccountTool": "CLI",
    "cliAccountClaudeCode": "Claude Code",
    "cliAccountCodex": "Codex",
    "cliAccountLabel": "Account label",
    "cliAccountLabelPlaceholder": "For example, Work or Personal",
    "cliAccountDirectory": "Account directory",
    "cliAccountInvalidLabel": "Enter an account label containing a letter or number.",
    "cliAccountApply": "Set account profile",
    "line": "Line",
    "speed": "Speed",
    "serialLinePlaceholder": "e.g. COM3 or /dev/cu.usbserial-1410",
    "serialLineDetect": "Show detected serial ports",
    "serialLineNoneDetected": "No serial ports detected",
    "url": "URL",
    "urlPlaceholder": "https://example.com",
    "dataPartition": "Data partition",
    "urlProxy": "URL proxy",
    "urlOptions": "URL Options",
    "urlProxyOverrideHint": "Inherit the URL Settings default, force a direct connection, or choose a proxy for this Connection.",
    "default": "Default",
    "credentialUser": "Credential user",
    "password": "Password",
    "optionalUsername": "Optional username",
    "storedInKeychain": "Stored in OS keychain",
    "leaveBlankPassword": "Leave blank to keep stored password",
    "passwordOptionalHint": "Leave blank to enter the password in the terminal",
    "savedPassword": "Saved password",
    "typeNewPassword": "Type a new password",
    "host": "Host",
    "user": "User",
    "domainAdmin": "DOMAIN\\admin",
    "auth": "Auth",
    "keyFile": "Key file",
    "sshAgent": "SSH agent",
    "proxyJumpLabel": "Proxy jump",
    "proxyJumpOptional": "Proxy jump",
    "sshProxyOptions": "SSH proxy options",
    "sshOptions": "SSH Options",
    "sshSocksProxyOptional": "SOCKS proxy",
    "sshSocksProxyHint": "Routes this Connection's terminals, tmux, and SFTP through a SOCKS proxy natively. Cannot be combined with ProxyJump.",
    "sshSocksProxyUsernameOptional": "SOCKS proxy username",
    "sshSocksProxyPasswordOptional": "SOCKS proxy password",
    "sshSocksProxyPasswordPlaceholder": "Leave blank to keep saved password",
    "jumpInternal": "jump.internal",
    "passwordLabel": "Password",
    "keyPath": "Key path",
    "keyPathExample": "C:\\Users\\example\\.ssh\\id_ed25519",
    "keyPassphraseOptional": "Key passphrase (optional)",
    "keyPassphraseHint": "Stored in the configured secret store. Leave blank to be prompted when the key requires one.",
    "leaveBlankPassphrase": "Leave blank to keep the saved passphrase",
    "browse": "Browse",
    "useTmux": "Auto tmux sessions",
    "sshCompression": "Compression",
    "usePsmux": "psmux session management",
    "rdpOptions": "RDP options",
    "vncOptions": "VNC options",
    "vncUsername": "Username (Apple Remote Desktop)",
    "vncUsernameHint": "Optional. Use the Mac account name for macOS Screen Sharing / Apple Remote Desktop login. Leave blank for password-only VNC.",
    "inheritSettingsDefaults": "Use Settings defaults",
    "localTerminal": "Local terminal",
    "sshTerminal": "SSH terminal",
    "rdp": "RDP",
    "vnc": "VNC",
    "ftp": "FTP",
    "ftpOptions": "FTP options",
    "ftpProtocol": "Protocol",
    "ftpProtocolFtp": "Plain FTP",
    "ftpProtocolFtps": "FTPS (TLS)",
    "ftpProtocolSftp": "SFTP (over SSH)",
    "ftpMode": "Connection mode",
    "ftpModePassive": "Passive (PASV)",
    "ftpModeActive": "Active (PORT)",
    "ftpTlsMode": "TLS mode",
    "ftpTlsExplicit": "Explicit (AUTH TLS)",
    "ftpTlsImplicit": "Implicit (port 990)",
    "ftpTransferType": "Transfer type",
    "ftpTransferBinary": "Binary",
    "ftpTransferAscii": "ASCII",
    "ftpUtf8": "Negotiate UTF-8 paths",
    "ftpShowHidden": "Show hidden files",
    "ftpIgnoreCertErrors": "Allow invalid TLS certificates",
    "ftpConnectTimeoutSecs": "Connect timeout (s)",
    "ftpKeepaliveSecs": "Keepalive (s, 0 = off)",
    "ftpLocalPath": "Local start path",
    "ftpLocalPathPlaceholder": "Home directory",
    "ftpLocalPathPickerTitle": "Choose local start path",
    "ftpRemotePath": "Remote start path",
    "ftpRemotePathPlaceholder": "Remote home directory",
    "addToPane": "Add to pane",
    "transferSshPublicKey": "TransferSSH pub key",
    "transferSshPublicKeyAction": "Transfer key",
    "transferSshPublicKeyHint": "Transfers only the selected public key to the remote user's authorized_keys using password authentication.",
    "transferSshPublicKeyComplete": "SSH public key transferred from {{path}}.",
    "transferSshPublicKeyProxyJumpUnsupported": "TransferSSH pub key does not support ProxyJump connections yet.",
    "createConnectionComplete": "Connection \"{{name}}\" added.",
    "deleteConnectionComplete": "Connection \"{{name}}\" deleted.",
    "expandFolder": "Expand folder",
    "collapseFolder": "Collapse folder",
    "folderTreeControls": "Folder tree controls",
    "quickSessionFallbackName": "Quick session",
    "newFolderName": "New folder name",
    "deleteFolderMessage": "Delete folder",
    "deleteConnectionMessage": "Delete connection",
    "folderConnectionsCount": "connection(s)",
    "folderSubfoldersCount": "subfolder(s)",
    "import": {
      "tileTitle": "Import",
      "tileSubtitle": "From file, bookmarks, or network scan",
      "title": "Import connections",
      "back": "Back",
      "chooseSource": "Choose an import source",
      "fromFileTitle": "Import from file",
      "fromFileSubtitle": "CSV, TSV, RDCMan, MobaXterm, PuTTY",
      "scanTitle": "Scan network",
      "scanSubtitle": "Probe a range for open SSH, Telnet, RDP",
      "chooseFile": "Choose file",
      "noFileChosen": "No file chosen",
      "fileFormatsHint": "Supported: CSV/TSV/text, RDCMan (.rdg), MobaXterm (.mxtsessions), PuTTY (.reg).",
      "scanTargetLabel": "Target",
      "scanTargetPlaceholder": "192.168.1.0/24, 10.0.0.10-10.0.0.50, or single IP/host",
      "scanTargetHint": "Light TCP probe of the selected ports. Limited to 1024 hosts per scan.",
      "scanPortsLabel": "Ports to probe",
      "portSsh": "SSH",
      "portTelnet": "Telnet",
      "portRdp": "RDP",
      "portHttpHttps": "HTTP/HTTPS",
      "scanStart": "Start scan",
      "scanRunning": "Scanning",
      "scanNoResults": "No open ports found in the scanned range.",
      "scanTargetRequired": "Enter a target IP, hostname, range, or CIDR.",
      "scanPortRequired": "Select at least one port to probe.",
      "previewHeading": "{{selected}} of {{count}} selected",
      "selectAll": "Select all",
      "selectNone": "Select none",
      "previewAll": "All",
      "previewSelected": "Selected",
      "previewMissingUser": "Missing user",
      "previewEmpty": "No matches. Adjust the filter or choose an import source.",
      "selectColumn": "Select",
      "selectRow": "Select row",
      "colName": "Name",
      "colType": "Type",
      "colHost": "Host",
      "colPort": "Port",
      "colUser": "User",
      "colPassword": "Password",
      "bulkUserLabel": "Username",
      "bulkUserPlaceholder": "Username for selected rows",
      "bulkUserRequired": "Enter a username to apply.",
      "bulkPasswordRequired": "Enter a password to apply.",
      "bulkPasswordLabel": "Password (optional)",
      "bulkPasswordPlaceholder": "Password for selected rows",
      "setUsernameButton": "Set username",
      "setPasswordButton": "Set password",
      "bulkScopeAll": "Apply to all selected",
      "bulkScopeUnfilled": "Only fill unfilled entries",
      "bulkApply": "Apply",
      "bulkCancel": "Cancel",
      "warningsHeading": "Warnings",
      "destinationLabel": "Destination",
      "destinationNewFolder": "Create new folder",
      "destinationRoot": "Root",
      "newFolderNameLabel": "New folder name",
      "folderNameRequired": "Enter a folder name.",
      "noneSelected": "Select at least one row to import.",
      "importCount": "Import {{count}}",
      "importFileComplete": "Imported {{count}} Connections from file.",
      "importScanComplete": "Imported {{count}} Connections from scan.",
      "bookmarksTitle": "Import browser bookmarks",
      "bookmarksSubtitle": "Edge, Chrome, Firefox URL bookmarks",
      "bookmarksLoading": "Looking for browser bookmark sources...",
      "bookmarksNoSources": "No Edge, Chrome, or Firefox bookmark sources were found on this device.",
      "bookmarksSourceLabel": "Browser profile",
      "bookmarksSourcePath": "Source file: {{path}}",
      "bookmarksTreeLabel": "Bookmark folders and links",
      "bookmarksPreview": "Preview {{count}} selected",
      "bookmarksSourceRequired": "Choose a browser bookmark source.",
      "bookmarksSelectionRequired": "Select at least one folder or bookmark to import.",
      "bookmarksNoImportable": "The selected bookmarks did not include any http or https URLs.",
      "bookmarkFallbackName": "Imported bookmark",
      "importBookmarksComplete": "Imported {{count}} Connections from bookmarks.",
      "importedFromBookmarks": "Bookmarks",
      "importedFromScan": "Scan",
      "importedFromRdcman": "RDCMan",
      "importedFromMobaxterm": "MobaXterm",
      "importedFromPutty": "PuTTY",
      "importedDefault": "Imported"
    },
    "closeConnection": "Close Connection",
    "localFiles": "File Explorer",
    "homeDirectory": "Home Directory",
    "localFilesSubtitle": "Local file browser",
    "localFilesRootDirectory": "Starting folder",
    "localFilesRootDirectoryPlaceholder": "Home folder",
    "fileView": "Document",
    "fileViewPath": "File",
    "fileViewPathPlaceholder": "Select a file to view",
    "fileViewPickerTitle": "Select a file to view",
    "fileViewOpenExternal": "Open in external editor",
    "fileViewOpenExternalHint": "Open this Document Connection with the operating system's default app instead of creating a KKTerm tab."
  },
  "terminal": {
    "openSftp": "Open SFTP browser",
    "sftp": "SFTP",
    "sshPortRedirect": "SSH port redirect",
    "splitLayout": "Split layout",
    "splitRight": "Split Right",
    "splitLeft": "Split Left",
    "splitDown": "Split Down",
    "splitUp": "Split Up",
    "actions": "Terminal actions",
    "saveBuffer": "Save Buffer",
    "startRecording": "Start recording",
    "stopRecording": "Stop recording",
    "recording": "Recording",
    "recordingStarted": "Terminal recording started.",
    "recordingStopped": "Terminal recording stopped.",
    "recordingSaved": "Terminal recording saved to {{path}}.",
    "recordingFailed": "Terminal recording failed: {{message}}",
    "recordingUnavailable": "Terminal recording requires an active desktop terminal Session.",
    "openRecordings": "Open Recordings",
    "recordingsTitle": "Terminal recordings",
    "openRecordingsFolder": "Open recordings folder",
    "noRecordings": "No recordings for this Connection.",
    "recordingMetadata": "{{metadata}}",
    "font": "Font",
    "increaseSize": "Increase size",
    "decreaseSize": "Decrease size",
    "resetSize": "Reset size",
    "opacity": "Transparency",
    "opacityValue": "{{value}}% transparency",
    "background": "Background",
    "backgroundDefaultHint": "Use the default terminal background for this Connection.",
    "appearanceSaveFailed": "Could not save terminal appearance: {{message}}",
    "save": "Save",
    "reset": "Reset",
    "starting": "Starting",
    "bufferSaveFailed": "Could not save terminal buffer: {{message}}",
    "startingSessionFor": "Starting {{type}} session for {{name}}...",
    "desktopRuntimeRequired": "Terminal sessions require the Tauri desktop runtime.",
    "verifyingHostKey": "Verifying SSH host key...",
    "failedToStart": "failed to start session",
    "failedToStartDetail": "Failed to start session: {{message}}",
    "find": "Find",
    "noResults": "No results",
    "findInScrollback": "Find in terminal scrollback",
    "closeSearch": "Close terminal search",
    "copySelection": "Copy terminal selection (Ctrl+Shift+C)",
    "sendToAi": "Send terminal buffer to AI Assistant",
    "detachTmux": "Detach tmux session",
    "closePane": "Close pane",
    "connectLabel": "Connection: {{name}}",
    "copy": "Copy",
    "copyShortcut": "Ctrl+Shift+C",
    "paste": "Paste",
    "pasteMultilineConfirm": "Paste multiple lines into this terminal?",
    "terminalBuffer": "terminal buffer",
    "showTmux": "Show tmux sessions",
    "showPsmux": "Show psmux sessions",
    "editTmuxSession": "Edit tmux session name",
    "tmuxSessionName": "tmux session name",
    "tmuxSessionNameRequired": "Enter a tmux session name.",
    "tmuxSessionNameInvalid": "Use a name without spaces, colons, or semicolons.",
    "tmuxSessionRenamed": "tmux session renamed.",
    "tmuxSessions": "tmux sessions",
    "psmuxSessions": "psmux sessions",
    "refreshTmux": "Refresh tmux sessions",
    "loading": "Loading...",
    "noTmuxSessions": "No tmux sessions.",
    "open": "Active",
    "attached": "attached",
    "detached": "detached",
    "focusPane": "Focus pane",
    "openInPane": "Open in pane",
    "mouseOn": "Mouse: on",
    "mouseOff": "Mouse: off",
    "closeTmux": "Close tmux session",
    "openLeft": "Open left",
    "openAbove": "Open above",
    "openBelow": "Open below",
    "openRight": "Open right",
    "previousSearch": "Previous search result",
    "nextSearch": "Next search result",
    "sshContextUnavailable": "SSH system context unavailable: {{message}}",
    "replaceChangedHostKeyTitle": "SSH host key changed",
    "replaceChangedHostKeyWarning": "The SSH host key for {{host}} has changed, and now presents {{algorithm}} {{fingerprint}}. This usually means the server was reinstalled or rotated its key, but it can also indicate a man-in-the-middle attack. Only replace the trusted key if you expected this change.",
    "trustHostKey": "Trust SSH host key for",
    "hostKeyNotTrusted": "SSH host key was not trusted.",
    "selectKeyFile": "Select SSH key file",
    "targetLabel": "Target: {{target}}",
    "saveDialog": "Save Buffer",
    "logFiles": "Log files",
    "textFiles": "Text files",
    "tauriRequired": "Tauri runtime unavailable",
    "noSaveDialog": "No save dialog is available in this runtime",
    "quickCommandsBar": "Quick commands",
    "quickCommandsShow": "Show quick commands",
    "quickCommandsHide": "Hide quick commands",
    "quickCommandsAddFirst": "Add quick command",
    "quickCommandsManage": "Manage Quick Commands",
    "quickCommandsNoPane": "No active terminal Pane for quick commands.",
    "quickCommandsRun": "Run command",
    "quickCommandsDangerous": "Dangerous",
    "quickCommandsConfirmTitle": "Run quick command?",
    "quickCommandsConfirm": "Run \"{{label}}\" in the focused terminal Pane?",
    "quickCommandsEmpty": "No quick commands yet.",
    "quickCommandsDelete": "Delete quick command {{label}}",
    "quickCommandsMoveUp": "Move {{label}} up",
    "quickCommandsMoveDown": "Move {{label}} down",
    "quickCommandsLibrary": "From Library",
    "quickCommandsAddCommand": "Add Command",
    "quickCommandsSearch": "Search command library",
    "quickCommandsAdd": "Add",
    "quickCommandsNoLibraryMatches": "No library commands match.",
    "quickCommandsLabel": "Label",
    "quickCommandsCommand": "Command",
    "quickCommandsSendEnter": "Send Enter after command",
    "quickCommandsRequireConfirm": "Require confirmation before running",
    "quickCommandsGenerateWithAi": "Generate command with AI",
    "quickCommandsAiPromptLabel": "Describe command",
    "quickCommandsAiPromptPlaceholder": "update apt packages",
    "quickCommandsAiGenerate": "Generate",
    "quickCommandsAiGenerating": "Generating...",
    "quickCommandsAiFailed": "AI could not generate a command: {{message}}",
    "quickCommandsColor": "Color",
    "quickCommandsIcon": "Icon",
    "quickCommandsCreate": "Create command",
    "quickCommandsTitle": "Quick Commands",
    "quickCommandsManageSubtitle": "Pinned to the bar above the terminal for this connection. Drag to reorder.",
    "quickCommandsLibraryAction": "Library",
    "quickCommandsDone": "Done",
    "quickCommandsEditTitle": "Edit Command",
    "quickCommandsSendEnterTitle": "Send Enter",
    "quickCommandsSendEnterDesc": "Press return after inserting the command",
    "quickCommandsRequireConfirmTitle": "Require confirmation",
    "quickCommandsRequireConfirmDesc": "Ask before running this command",
    "quickCommandLibrary": {
      "categoryTabs": "Quick Command Library categories",
      "subcategoryTabs": "Quick Command Library subcategories",
      "categories": {
        "aiAgents": "AI Agents",
        "developerWorkflow": "Developer Workflow",
        "containersKubernetes": "Containers & Kubernetes",
        "linuxAdministration": "Linux Administration",
        "macosAdministration": "macOS Administration"
      },
      "subcategories": {
        "codingAgents": "Coding Agents",
        "autonomousAgents": "Autonomous Agents",
        "git": "Git",
        "packageManagersRuntimes": "Package Managers & Runtimes",
        "docker": "Docker",
        "dockerCompose": "Docker Compose",
        "kubectl": "kubectl",
        "servicesLogs": "Services & Logs",
        "packages": "Packages",
        "softwareUpdate": "Software Update",
        "networking": "Networking",
        "launchdPower": "launchd & Power",
        "preferences": "Preferences"
      },
      "entries": {
        "aiClaudeNativeInstall": {
          "label": "Install Claude Code",
          "description": "Install Claude Code with Anthropic's native installer."
        },
        "aiClaudeStart": {
          "label": "Claude",
          "description": "Start an interactive Claude Code session."
        },
        "aiClaudeBypass": {
          "label": "Claude bypass permissions",
          "description": "Run Claude Code without permission prompts. Use only in a trusted sandbox."
        },
        "aiClaudeBrewInstall": {
          "label": "Install Claude Code with Homebrew",
          "description": "Install Claude Code through Homebrew Cask on macOS."
        },
        "aiClaudeBrewUpgrade": {
          "label": "Upgrade Claude Code",
          "description": "Upgrade the Homebrew Cask install of Claude Code."
        },
        "aiCodexNpmInstall": {
          "label": "Install Codex with npm",
          "description": "Install the OpenAI Codex CLI globally with npm."
        },
        "aiCodexBrewInstall": {
          "label": "Install Codex with Homebrew",
          "description": "Install the OpenAI Codex CLI through Homebrew."
        },
        "aiCodexStart": {
          "label": "Codex",
          "description": "Start an interactive OpenAI Codex CLI session."
        },
        "aiCodexPrompt": {
          "label": "Codex explain codebase",
          "description": "Start Codex with a prompt to explain the current repository."
        },
        "aiCodexMcpContext7": {
          "label": "Add Context7 MCP to Codex",
          "description": "Register the documented Context7 MCP server example with Codex CLI."
        },
        "aiCodexNpmUpgrade": {
          "label": "Upgrade Codex with npm",
          "description": "Install the latest OpenAI Codex CLI package globally."
        },
        "aiGeminiInstall": {
          "label": "Install Gemini CLI",
          "description": "Install Google's Gemini CLI globally with npm."
        },
        "aiGeminiStart": {
          "label": "Gemini",
          "description": "Start an interactive Gemini CLI session."
        },
        "aiQwenNpmInstall": {
          "label": "Install Qwen Code with npm",
          "description": "Install the latest Qwen Code terminal agent with npm."
        },
        "aiQwenBrewInstall": {
          "label": "Install Qwen Code with Homebrew",
          "description": "Install Qwen Code through Homebrew."
        },
        "aiQwenStart": {
          "label": "Qwen Code",
          "description": "Start an interactive Qwen Code session. Configure a provider or API key first."
        },
        "aiAiderInstall": {
          "label": "Install Aider",
          "description": "Install Aider with the official Mac/Linux installer."
        },
        "aiAiderMessage": {
          "label": "Aider one-shot edit",
          "description": "Run Aider with a single edit request against a target file."
        },
        "aiAiderGemini": {
          "label": "Aider with Gemini",
          "description": "Launch Aider using the Gemini model setting."
        },
        "aiOpenclawInstall": {
          "label": "Install OpenClaw",
          "description": "Run the OpenClaw hosted installer."
        },
        "aiOpenclawNpmInstall": {
          "label": "Install OpenClaw with npm",
          "description": "Install the latest OpenClaw package globally with npm."
        },
        "aiOpenclawOnboard": {
          "label": "OpenClaw onboard",
          "description": "Start the recommended OpenClaw onboarding flow."
        },
        "aiOpenclawDaemon": {
          "label": "OpenClaw daemon onboarding",
          "description": "Run OpenClaw onboarding and install its background daemon."
        },
        "aiOpenclawUpdate": {
          "label": "Update OpenClaw",
          "description": "Update the OpenClaw installation."
        },
        "aiHermesInstall": {
          "label": "Install Hermes Agent",
          "description": "Run the Hermes Agent installer from the Nous Research repository."
        },
        "aiHermesSourceBashrc": {
          "label": "Reload bash shell",
          "description": "Reload bash startup configuration after installing Hermes."
        },
        "aiHermesStart": {
          "label": "Hermes",
          "description": "Start an interactive Hermes Agent chat."
        },
        "aiHermesSetup": {
          "label": "Hermes setup",
          "description": "Open the Hermes provider and account setup flow."
        },
        "aiHermesModel": {
          "label": "Hermes model",
          "description": "Configure or inspect the active Hermes model."
        },
        "aiHermesDoctor": {
          "label": "Hermes doctor",
          "description": "Run Hermes health checks."
        },
        "aiHermesDashboard": {
          "label": "Hermes dashboard",
          "description": "Open the local Hermes dashboard."
        },
        "aiGooseInstall": {
          "label": "Install Goose",
          "description": "Run the stable Goose CLI installer."
        },
        "devGitSwitch": {
          "label": "Create feature branch",
          "description": "Create and switch to a new Git feature branch."
        },
        "devGitPullRebase": {
          "label": "Pull with rebase",
          "description": "Fetch and replay local commits on top of the upstream branch."
        },
        "devGitRestoreHead": {
          "label": "Restore working tree",
          "description": "Restore tracked files from HEAD. This can discard local edits."
        },
        "devGitClean": {
          "label": "Clean untracked files",
          "description": "Remove untracked files and folders from the working tree."
        },
        "devGitRevert": {
          "label": "Revert commit",
          "description": "Create a history-preserving commit that undoes a selected commit."
        },
        "devHomebrewInstall": {
          "label": "Install Homebrew",
          "description": "Run the standard Homebrew install script."
        },
        "devBrewBundleGlobal": {
          "label": "Install global Brewfile",
          "description": "Install packages from the global Homebrew Brewfile."
        },
        "devNvmInstall": {
          "label": "Install nvm",
          "description": "Install nvm using the official install script."
        },
        "devNvmInstallNode24": {
          "label": "Install Node 24",
          "description": "Install Node.js 24 with nvm."
        },
        "devNvmUseNode24": {
          "label": "Use Node 24",
          "description": "Switch the current shell to Node.js 24 with nvm."
        },
        "devBrewClaude": {
          "label": "Brew install Claude Code",
          "description": "Install Claude Code through Homebrew Cask."
        },
        "devBrewCodex": {
          "label": "Brew install Codex",
          "description": "Install the OpenAI Codex CLI through Homebrew."
        },
        "devBrewDocker": {
          "label": "Brew install Docker Desktop",
          "description": "Install Docker Desktop through Homebrew Cask."
        },
        "devBrewKubectl": {
          "label": "Brew install kubectl",
          "description": "Install kubectl through Homebrew."
        },
        "containerDockerPs": {
          "label": "Docker containers",
          "description": "List running Docker containers."
        },
        "containerDockerLogs": {
          "label": "Docker follow logs",
          "description": "Follow logs for a container. Replace the placeholder before running."
        },
        "containerDockerStop": {
          "label": "Docker stop container",
          "description": "Stop a container. Replace the placeholder before running."
        },
        "containerComposeUp": {
          "label": "Compose up detached",
          "description": "Start the Docker Compose project in the background."
        },
        "containerComposeExec": {
          "label": "Compose shell",
          "description": "Open a shell in the web service container."
        },
        "containerKubectlVersion": {
          "label": "kubectl client version",
          "description": "Show the installed kubectl client version."
        },
        "containerKubectlPods": {
          "label": "kubectl pods",
          "description": "List pods across all namespaces."
        },
        "containerKubectlLogs": {
          "label": "kubectl follow logs",
          "description": "Follow logs for a pod. Replace the placeholder before running."
        },
        "containerKubectlExec": {
          "label": "kubectl pod shell",
          "description": "Open a shell in a pod. Replace the placeholder before running."
        },
        "containerKubectlApply": {
          "label": "kubectl apply",
          "description": "Apply Kubernetes resources from k8s.yaml."
        },
        "linuxSystemctlStatusSshd": {
          "label": "SSH service status",
          "description": "Check the status of the sshd systemd service."
        },
        "linuxSystemctlRestartSshd": {
          "label": "Restart SSH service",
          "description": "Restart the sshd systemd service with sudo."
        },
        "linuxSystemctlEnableDocker": {
          "label": "Enable Docker service",
          "description": "Enable and start the Docker systemd service."
        },
        "linuxJournalctlSshd": {
          "label": "SSH service logs",
          "description": "Read journal logs for the sshd service."
        },
        "linuxAptUpgrade": {
          "label": "APT update and upgrade",
          "description": "Update package metadata and upgrade Debian packages."
        },
        "linuxAptInstallDocker": {
          "label": "APT install Docker packages",
          "description": "Install Docker Engine and the Compose plugin with apt."
        },
        "linuxDnfUpgrade": {
          "label": "DNF upgrade",
          "description": "Upgrade Fedora packages with dnf."
        },
        "linuxDnfInstallCompose": {
          "label": "DNF install Compose plugin",
          "description": "Install the Docker Compose plugin with dnf."
        },
        "macosSoftwareupdateInstallers": {
          "label": "List macOS installers",
          "description": "List available full macOS installers."
        },
        "macosNetworksetupServices": {
          "label": "List network services",
          "description": "List macOS network services with networksetup."
        },
        "macosNetworksetupManual": {
          "label": "Set manual Ethernet IP",
          "description": "Set a manual IP configuration for Ethernet. Edit values before running."
        },
        "macosScutilSmbProtocol": {
          "label": "Edit SMB protocol map",
          "description": "Open an advanced scutil preferences command for SMB protocol settings."
        },
        "macosLaunchctlUnloadNetbiosd": {
          "label": "Unload netbiosd",
          "description": "Unload the macOS netbiosd launch daemon."
        },
        "macosLaunchctlLoadNetbiosd": {
          "label": "Load netbiosd",
          "description": "Load the macOS netbiosd launch daemon."
        },
        "macosPmsetSchedule": {
          "label": "Show power schedule",
          "description": "Show scheduled macOS power events."
        },
        "macosPmsetRepeatWake": {
          "label": "Schedule Monday wake",
          "description": "Schedule a repeating Monday wake event."
        },
        "macosPmsetRepeatCancel": {
          "label": "Cancel repeat power schedule",
          "description": "Cancel repeating macOS power events."
        },
        "macosDefaultsRead": {
          "label": "Read defaults domain",
          "description": "Read a macOS preferences domain. Replace the placeholder before running."
        },
        "macosDefaultsWrite": {
          "label": "Write defaults value",
          "description": "Write a macOS preferences value. Replace placeholders before running."
        }
      }
    },
    "sshPortForwardingTitle": "SSH Port Forwarding",
    "addForward": "Add forward",
    "sshRemoteGatewayPortsHint": "Remote wildcard listeners require GatewayPorts clientspecified; GatewayPorts no restricts them to loopback.",
    "sshPortForwardInvalid": "Enter a valid listen port and destination.",
    "sshPortForwardBindConflict": "{{address}}:{{port}} is already in use by another SSH forward.",
    "sshPortForwardSessionUnavailable": "Open this dialog from a connected native SSH Pane and try again.",
    "sshPortForwardStartupFailed": "SSH connected, but one or more saved port forwards failed to start: {{message}}",
    "sshPortForwardSomeFailed": "Some port forwards failed to start.",
    "sshPortForwardFailed": "Failed to start",
    "thisPc": "This PC",
    "internet": "Internet",
    "anyHost": "any host",
    "runningForwards": "Running",
    "noSshForwards": "No {{mode}} forwards running yet.",
    "opening": "opening",
    "active": "active",
    "enableForwarding": "Enable forwarding",
    "disabled": "disabled",
    "remoteListener": "Remote listener",
    "localListener": "Local listener",
    "onServer": "on the server",
    "onThisPc": "on this PC",
    "bindAddress": "Bind address",
    "socksPort": "SOCKS port",
    "listenPort": "Listen port",
    "forwardTo": "Forward to",
    "destination": "Destination",
    "reachableFromServer": "reachable from the server",
    "host": "Host",
    "port": "Port",
    "sshForwardModeLocal": "Local",
    "sshForwardModeLocalTagline": "Bring a remote service to this PC",
    "sshForwardModeRemote": "Remote",
    "sshForwardModeRemoteTagline": "Expose a service on this PC to the server",
    "sshForwardModeDynamic": "Dynamic",
    "sshForwardModeDynamicTagline": "Route traffic through the server (SOCKS)",
    "sshForwardListening": "Listening",
    "colorScheme": "Color scheme",
    "colorSchemeGlobalDefault": "Use global default",
    "colorSchemeSaveFailed": "Saving the color scheme failed: {{message}}",
    "quickSelect": "Quick select",
    "quickSelectHint": "Click or type a label to copy. Ctrl-click or Shift-click a URL to open it. Esc to cancel.",
    "quickSelectNoMatches": "No copyable text is visible on the screen.",
    "quickSelectCopied": "Copied {{text}}",
    "notification": "Notification from {{name}}: {{message}}",
    "notificationWithTitle": "Notification from {{name}}: {{title}} — {{message}}"
  },
  "sftp": {
    "connecting": "Connecting",
    "verifyingHost": "Verifying host",
    "connected": "Connected",
    "refreshing": "Refreshing",
    "openingFolder": "Opening folder",
    "tauriUnavailable": "Tauri runtime unavailable",
    "loadingLocal": "Loading local files",
    "noSshConnection": "No SSH connection selected",
    "upload": "Upload",
    "download": "Download",
    "local": "Local",
    "remote": "Remote",
    "noFiles": "No files",
    "loading": "Loading...",
    "clear": "Clear",
    "noTransfers": "No transfers yet",
    "copyPath": "Copy Path",
    "getInfo": "Get Info",
    "protocolSftp": "SFTP",
    "protocolFtp": "FTP",
    "protocolFtpsExplicit": "FTPS",
    "protocolFtpsImplicit": "Implicit FTPS",
    "protocolSelectorAria": "File transfer protocol",
    "plainFtpWarning": "Plain FTP",
    "plainFtpWarningTitle": "Plain FTP is not encrypted.",
    "ftpConnectionErrorTitle": "FTP connection failed",
    "plainFtpFallbackWarningTitle": "FTPS failed, so this browser is using plain FTP without encryption.",
    "openingProtocol": "Opening {{protocol}}",
    "ftpsFallbackStatus": "FTPS failed. Trying plain FTP.",
    "passwordDialogTitle": "Enter file browser password",
    "passwordDialogBody": "Enter the password for {{user}}@{{host}} to open this file browser.",
    "passwordDialogPlaceholder": "Password",
    "passwordDialogSubmit": "Connect",
    "passwordRequired": "Enter a password to connect.",
    "passwordPromptCanceled": "Password entry was canceled.",
    "notConnected": "Not connected",
    "editPathTitle": "Double-click to edit path",
    "viewMode": "View mode",
    "listView": "List view",
    "galleryView": "Gallery view",
    "searchPlaceholder": "Search",
    "searchAria": "Search files in this folder",
    "searchClear": "Clear search",
    "searchNoResults": "No matches for \"{{query}}\"",
    "viewOptions": "View options",
    "zoom": "Zoom",
    "zoomAria": "Adjust item size",
    "background": "Background…",
    "backgroundDefaultHint": "Use the default background for this view.",
    "sidebar": {
      "title": "Sidebar",
      "show": "Show Sidebar",
      "hide": "Hide Sidebar",
      "favorites": "Favorites",
      "commonFolders": "Common",
      "locations": "Locations",
      "noFavorites": "No favorites yet — drag a file or folder here, or hover a folder below and tap +.",
      "loadingPlaces": "Loading places…",
      "addFavorite": "Add to Favorites",
      "removeFavorite": "Remove from Favorites",
      "inFavorites": "In Favorites",
      "driveFree": "{{free}} free of {{total}}"
    },
    "itemsCount": "{{count}} items",
    "foldersCount": "{{count}} folders",
    "availableSpace": "{{size}} available",
    "transferringStatus": "{{count}} transferring · {{percent}}%",
    "transfersIdleStatus": "{{count}} completed · idle",
    "transferHint": "Drag files between panes, or use the transfer arrows to start a transfer.",
    "transferState": {
      "queued": "Queued",
      "active": "Active",
      "done": "Done",
      "failed": "Failed",
      "canceled": "Canceled"
    },
    "canceled": "canceled",
    "waiting": "Waiting",
    "preparing": "Preparing",
    "canceling": "Canceling",
    "canceledBeforeStart": "Canceled before start",
    "skippedExisting": "Skipped existing target",
    "transferCanceled": "Transfer canceled",
    "cancelTransfer": "Cancel",
    "newRemoteFolder": "New remote folder name",
    "folderNameBlank": "Remote folder name cannot be blank",
    "remoteNameBlank": "Remote name cannot be blank",
    "renaming": "Renaming",
    "deleting": "Deleting",
    "creatingFolder": "Creating folder",
    "deleteRemoteConfirm": "Delete remote",
    "folder": "Folder",
    "symlink": "Symbolic link",
    "file": "File",
    "openParent": "Open parent folder",
    "createFolder": "Create folder",
    "deleteSelected": "Delete selected item",
    "refreshFiles": "Refresh files",
    "name": "Name",
    "date": "Date",
    "doubleClickToOpen": "Double-click to open",
    "renameItem": "Rename",
    "transfer": "Transfer",
    "deleteLabel": "Delete",
    "sftpProperties": "SFTP properties",
    "type": "Type",
    "size": "Size",
    "modified": "Modified",
    "accessed": "Accessed",
    "owner": "Owner",
    "group": "Group",
    "mode": "Mode",
    "chmod": "chmod",
    "chownUid": "chown uid",
    "chownGid": "chown gid",
    "save": "Save",
    "modeHint": "Mode must be octal, for example 755 or 0644",
    "folderExists": "Folder exists",
    "fileExists": "File exists",
    "uploadConflict": "Upload conflict",
    "downloadConflict": "Download conflict",
    "targetExists": "The target already exists",
    "moreConflicts": "more selected conflict(s) may follow.",
    "skip": "Skip",
    "overwrite": "Overwrite",
    "overwriteAll": "Overwrite All",
    "sessionUnavailable": "SFTP session unavailable",
    "waitingToOverwrite": "Waiting to overwrite",
    "localFiles": "Local files",
    "doubleClickToOpenFile": "Double-click to open {{name}}",
    "openParentFolderAria": "Open parent {{pane}} folder",
    "openTerminalHereAria": "Open terminal in {{pane}} folder",
    "createFolderAria": "Create {{pane}} folder",
    "refreshFilesAria": "Refresh {{pane}} files",
    "transferConflict": "Transfer conflict",
    "moreConflictsDetail": "{{count}} more selected conflict(s) may follow.",
    "cancelTransferName": "Cancel {{name}}",
    "ownerMustBeNumber": "Owner must be a non-negative number",
    "groupMustBeNumber": "Group must be a non-negative number",
    "deleteRemoteItemConfirm": "Delete remote {{kind}} \"{{name}}\"?",
    "deleteRemoteItemsMultiple": "Delete {{count}} remote items?",
    "renameFileAria": "Rename {{name}}",
    "fileTypeLabel": "{{ext}} file",
    "targetExistsDetail": "The target {{kind}} already exists. Choose whether to overwrite {{name}}.",
    "windowsDrives": "This PC",
    "pathInputAria": "Enter {{pane}} path",
    "recentPathsAria": "Open recent {{pane}} paths"
  },
  "webview": {
    "goBack": "Go back",
    "back": "Back",
    "goForward": "Go forward",
    "forward": "Forward",
    "reload": "Reload",
    "autoRefresh": "Auto refresh",
    "autoRefreshOff": "No auto refresh",
    "autoRefreshSeconds": "{{count}} seconds",
    "address": "Address",
    "urlPlaceholder": "https://example.com",
    "fill": "Autofill",
    "fillCredential": "Fill saved credential",
    "noSavedCredential": "No saved form data",
    "fillingCredential": "Restoring form data",
    "credentialFilled": "Form data restored",
    "downloadStarted": "Download started",
    "downloadComplete": "Download complete",
    "downloadFailed": "Download failed",
    "invalidCertificateWarning": "This site cannot be opened because its HTTPS certificate is invalid. Disable certificate validation in Settings → URL to continue.",
    "noUrlConfigured": "This URL Connection has no URL configured.",
    "openExternally": "Open externally",
    "savePassword": "Save form data",
    "savePasswordTitle": "Save everything typed into this page so you can restore it later",
    "fillSavedCredential": "Restore saved form data",
    "screenshotTarget": "{{title}} URL view",
    "desktopRuntimeOnly": "Embedded browser only available in the desktop runtime. Open externally:",
    "capturingPassword": "Collecting typed fields",
    "savingPassword": "Saving form data",
    "passwordSaved": "Form data saved",
    "savePasswordInvalidCapture": "The page returned an invalid form capture response.",
    "savePasswordNoPasswordField": "No fillable fields with values were found on this page.",
    "savePasswordFailed": "Could not save the form data from this page."
  },
  "compare": {
    "title": "Compare Files",
    "selectLeft": "Select Left Side for Compare",
    "compareTo": "Compare to '{{name}}'",
    "leftSelected": "Selected '{{name}}' as the left side to compare.",
    "versus": "vs",
    "loading": "Loading comparison…",
    "modeLabel": "Comparison mode",
    "mode": {
      "text": "Text",
      "image": "Image",
      "hex": "Hex"
    },
    "imageLeft": "Left",
    "imageRight": "Right",
    "heatmap": "Difference Heatmap",
    "tolerance": "Tolerance",
    "differingPixels": "{{percent}}% differing",
    "hexTruncated": "Showing the first part of each file; the rest was truncated.",
    "hexOffset": "Offset",
    "mismatch": "Select two files or two folders to compare.",
    "folderTitle": "Folder Compare",
    "folderRemoteUnsupported": "Folder compare is available for local folders only.",
    "folderDesktopOnly": "Folder compare is only available in the desktop app.",
    "folderScanning": "Scanning folders…",
    "folderNoEntries": "No entries to show",
    "folderFilter": "Folder compare filter",
    "folderSummary": "Comparison summary",
    "folderCopyToRight": "Copy to right",
    "folderCopyToLeft": "Copy to left",
    "folderDelete": "Delete",
    "folderRefresh": "Rescan",
    "folderExpand": "Expand",
    "folderCollapse": "Collapse",
    "folderCopied": "Copied {{name}}",
    "folderDeleted": "Deleted {{name}}",
    "folderDeleteConfirm": "Delete \"{{name}}\" from {{side}}?",
    "folderCountDifferent": "{{count}} different",
    "folderCountLeftOnly": "{{count}} left only",
    "folderCountRightOnly": "{{count}} right only",
    "folderCountSame": "{{count}} same",
    "folderTruncated": "This tree is very large — showing the first {{count}} entries."
  },
  "git": {
    "title": "Git — {{repo}}",
    "openBrowser": "Open Git Browser",
    "loading": "Loading repository…",
    "loadFailed": "Could not load this repository.",
    "columnCommit": "Commit",
    "columnAuthor": "Author",
    "columnSha": "SHA",
    "columnWhen": "When",
    "workingTree": "Working tree",
    "uncommittedChanges": "Uncommitted changes",
    "now": "now",
    "fetch": "Fetch",
    "pull": "Pull",
    "push": "Push",
    "branch": "Branch",
    "merge": "Merge",
    "stash": "Stash",
    "history": "History",
    "commit": "Commit",
    "searchCommits": "Search commits…",
    "local": "Local",
    "remotes": "Remotes",
    "tags": "Tags",
    "showMoreTags": "… {{count}} more",
    "showFewerTags": "Show fewer",
    "stashes": "Stashes",
    "stashApply": "Apply stash",
    "stashPop": "Pop stash",
    "stashDrop": "Drop stash",
    "committed": "committed",
    "commitLabel": "commit",
    "parentLabel": "parent",
    "mergeLabel": "merge",
    "copySha": "Copy SHA",
    "copyMessage": "Copy message",
    "copied": "Copied to clipboard",
    "changedFiles": "Changed files",
    "selectFileForDiff": "Select a file to view its diff",
    "loadingDiff": "Loading diff…",
    "noDiff": "No changes to show",
    "filteredLines": "{{count}} filtered lines — click to expand",
    "collapseLines": "{{count}} lines — click to collapse",
    "advancedDiffTitle": "Compare — {{file}}",
    "searchDiff": "Search diff…",
    "previousDifference": "Previous difference",
    "nextDifference": "Next difference",
    "wordWrap": "Word wrap",
    "diffOriginal": "Original",
    "diffModified": "Modified",
    "diffDisplayMode": "Display mode",
    "diffMode": {
      "all": "All",
      "diff": "Differences",
      "same": "Same"
    },
    "diffNavigationMap": "Difference map",
    "jumpToDifference": "Jump to difference {{number}}",
    "staged": "Staged",
    "changes": "Changes",
    "stageAll": "Stage all",
    "unstageAll": "Unstage all",
    "nothingStaged": "Nothing staged",
    "noChanges": "No changes",
    "commitMessagePlaceholder": "Commit message",
    "amend": "Amend",
    "commitFiles_one": "Commit {{count}} file",
    "commitFiles_other": "Commit {{count}} files",
    "stagedUnstagedCount": "{{staged}} staged · {{unstaged}} unstaged",
    "fetchDone": "Fetched from remotes",
    "pullDone": "Pulled changes",
    "pushConfirmTitle": "Push to remote?",
    "pushConfirmBody": "Push commits from {{branch}} to its upstream remote.",
    "pushDone": "Pushed to remote",
    "newBranchTitle": "New branch",
    "branchName": "Branch name",
    "createBranch": "Create branch",
    "branchCreated": "Created branch {{name}}",
    "mergeTitle": "Merge",
    "mergeRef": "Branch or commit to merge",
    "mergeRefPlaceholder": "e.g. feature/login",
    "mergeDone": "Merged {{ref}}",
    "stashed": "Saved a stash",
    "stagedNotice": "Staged file",
    "unstagedNotice": "Unstaged file",
    "stagedAllNotice": "Staged all changes",
    "unstagedAllNotice": "Unstaged all changes",
    "committedDone": "Committed changes",
    "checkoutCommit": "Checkout commit",
    "checkoutConfirmTitle": "Checkout commit?",
    "checkoutConfirmBody": "Checking out {{sha}} will detach HEAD from your branch.",
    "checkout": "Checkout",
    "checkedOut": "Checked out",
    "createBranchHere": "Create branch here",
    "createTag": "Create tag…",
    "newTagTitle": "New tag",
    "tagName": "Tag name",
    "tagCreated": "Created tag {{name}}",
    "cherryPick": "Cherry-pick",
    "cherryPickConfirmTitle": "Cherry-pick commit?",
    "cherryPickConfirmBody": "Apply the changes from {{sha}} onto the current branch.",
    "cherryPicked": "Cherry-picked commit",
    "revertCommit": "Revert commit",
    "revertConfirmTitle": "Revert commit?",
    "revertConfirmBody": "Create a new commit that undoes {{sha}}.",
    "revert": "Revert",
    "reverted": "Reverted commit",
    "stashApplied": "Applied stash",
    "stashPopped": "Popped stash",
    "stashDropped": "Dropped stash",
    "sync": "Sync",
    "syncConfirmTitle": "Sync with remote?",
    "syncConfirmBody": "Pull (rebase) then push commits for {{branch}}.",
    "syncDone": "Synced with remote",
    "defaultBranch": "default",
    "switchRefConfirmTitle": "Switch?",
    "switchRefConfirmBody": "Check out {{ref}} in this working tree.",
    "trackRemoteConfirmBody": "Create a local branch {{branch}} tracking {{ref}} and check it out.",
    "renameBranch": "Rename branch…",
    "renameBranchTitle": "Rename branch",
    "rename": "Rename",
    "branchRenamed": "Renamed branch to {{name}}",
    "deleteBranch": "Delete branch",
    "deleteBranchConfirmTitle": "Delete branch?",
    "deleteBranchConfirmBody": "Delete the local branch {{name}}.",
    "delete": "Delete",
    "branchDeleted": "Deleted branch {{name}}",
    "discard": "Discard changes",
    "discardAll": "Discard all",
    "discardConfirmTitle": "Discard changes?",
    "discardConfirmBody": "Discard working-tree changes to {{path}}. This cannot be undone.",
    "discardAllConfirmBody": "Discard working-tree changes to {{count}} files. This cannot be undone.",
    "discardedNotice": "Discarded changes",
    "reset": "Reset",
    "resetSoft": "Reset (soft) to here",
    "resetMixed": "Reset (mixed) to here",
    "resetHard": "Reset (hard) to here",
    "resetConfirmTitle": "Reset branch?",
    "resetSoftConfirmBody": "Move the current branch to {{sha}}, keeping all changes staged.",
    "resetMixedConfirmBody": "Move the current branch to {{sha}}, keeping changes in the working tree.",
    "resetHardConfirmBody": "Move the current branch to {{sha}} and discard all changes. This cannot be undone.",
    "resetDone": "Reset branch",
    "worktrees": "Worktrees",
    "addWorktree": "Add worktree…",
    "addWorktreeTitle": "Add worktree",
    "worktreePath": "Worktree path",
    "worktreePathPlaceholder": "e.g. ../my-feature-worktree",
    "worktreeAdded": "Added worktree",
    "removeWorktree": "Remove worktree",
    "removeWorktreeConfirmTitle": "Remove worktree?",
    "removeWorktreeConfirmBody": "Remove the worktree at {{path}}.",
    "worktreeRemoved": "Removed worktree",
    "remove": "Remove",
    "switchWorktree": "Switch to worktree",
    "switchWorktreeConfirmTitle": "Switch worktree?",
    "switchWorktreeConfirmBody": "Point the Git Browser at the worktree {{path}}.",
    "resizeWindow": "Resize window",
    "resizeSidebar": "Resize sidebar",
    "resizeDetail": "Resize detail pane",
    "resizeWorktree": "Resize working-tree pane",
    "resizeColumn": "Resize {{column}} column",
    "gitNeededTitle": "Git is not installed",
    "gitNeededBody": "The Git Browser needs the git command-line tool. Install it to continue.",
    "installGit": "Install Git",
    "installing": "Installing…",
    "recheck": "Re-check"
  },
  "remoteDesktop": {
    "typeLabel": "Remote desktop",
    "sendCtrlAltDel": "Send Ctrl+Alt+Delete",
    "sendCtrlAltDelHint": "Press CTRL+ALT+END to Send CTRL+ALT+DEL",
    "reconnect": "Reconnect",
    "reconnecting": "Reconnecting",
    "connecting": "Connecting",
    "connected": "Connected",
    "preparingDisplay": "Preparing display",
    "disconnected": "Disconnected",
    "waitingFramebuffer": "Connected, waiting for framebuffer",
    "rdpDesktopRequired": "RDP uses the Windows desktop runtime.",
    "vncDesktopRequired": "VNC uses the desktop runtime.",
    "rdpActiveX": "Microsoft RDP ActiveX host is running in this workspace.",
    "rdpErrorStatus": "RDP error: {{message}}",
    "vncFramebuffer": "VNC framebuffer is running in this workspace.",
    "transportUnavailable": "Remote desktop transport unavailable.",
    "session": "session",
    "displayAria": "VNC display",
    "viewModeButton": "View mode: {{mode}}",
    "viewModeSaved": "View mode saved: {{mode}}"
  },
  "ai": {
    "title": "AI Assistant",
    "refresh": "Refresh AI Assistant",
    "settings": "AI Assistant settings",
    "newChat": "New chat",
    "collapsePanel": "Collapse AI Assistant panel",
    "noActiveSession": "No active session",
    "workspace": "Workspace",
    "settingsContextLabel": "Current Settings page",
    "skillInvoked": "Using skill: {{skills}}",
    "extensionDraft": "Extension draft",
    "extensionReviewOnly": "Review-only; no install or run without explicit approval.",
    "dashboardToolsDisabledTitle": "Dashboard tools are off",
    "dashboardToolsDisabledHint": "Turn on Settings > AI Assistant > Assistant tools > Dashboard before the Assistant can create or change widgets.",
    "tutorialInvalidRequest": "Tutorial requests need a target, title, and help text.",
    "tutorialTargetNotFound": "That tutorial target is not visible right now.",
    "tutorialSurfaceNotOpen": "That control lives inside a Tab that is not open right now.",
    "chats": "Chats",
    "viewAll": "View All",
    "noChatsYet": "No chats yet.",
    "noMessages": "No messages",
    "saved": "saved",
    "close": "Close",
    "closeChatHistory": "Close chat history",
    "allChats": "All chats",
    "deleteChat": "Delete chat {{title}}",
    "clearContext": "Clear selected output context",
    "addContext": "Add context",
    "contextUsage": "Context usage",
    "contextUsageUnavailable": "Context usage appears after the next request.",
    "contextUsageModel": "Model",
    "contextUsageEstimate": "Estimate",
    "contextUsageTokens": "{{used}} / {{limit}} tokens",
    "contextUsageHistory": "History chars",
    "contextUsageCurrent": "Current chars",
    "contextUsageMessages": "Messages",
    "contextUsageMessageCounts": "{{retained}} kept, {{omitted}} omitted",
    "contextUsageApproximate": "Estimated with a provider-agnostic token approximation.",
    "contextUsageExact": "Estimated from the known model context window.",
    "addFiles": "Add Files/Photos",
    "addScreenshot": "Add Screenshot",
    "addTerminalBuffer": "Add Terminal Buffer",
    "createWidget": "Create Widget",
    "watchdog": "Watchdog",
    "selectedIntent": "Selected Assistant intent",
    "queuedPrompts": "Queued prompts",
    "queuedPromptIndex": "Next {{index}}",
    "deleteQueuedPrompt": "Delete queued prompt: {{prompt}}",
    "clearIntent": "Clear {{intent}}",
    "extensions": "Extensions",
    "draftExtension": "Draft Extension",
    "pastedImageSource": "Pasted image",
    "pastedImageSourceWithNumber": "Pasted image {{number}}",
    "pastedImages": "Pasted images ({{count}})",
    "attachedFiles": "Attached files ({{count}})",
    "removeImageAttachment": "Remove {{label}}",
    "removeFileAttachment": "Remove {{label}}",
    "openImagePreview": "Open {{label}} preview",
    "imagePreviewTitle": "{{label}} preview",
    "fileTooLarge": "{{name}} is larger than 10 MB.",
    "imageInputNotSupported": "This model does not support image input, so pasted screenshots are not sent.",
    "composerPlaceholder": "Ask AI Assistant anything.",
    "createWidgetPlaceholder": "Describe the widget to create.",
    "watchdogPlaceholder": "Describe what to watch.",
    "createWidgetExamples": [
      "round clock",
      "CPU & RAM mini monitor",
      "SSH quick-connect list",
      "memory & swap bar",
      "disk usage by partition",
      "system uptime",
      "network in/out graph",
      "ping latency monitor",
      "Docker container list",
      "git branch & status",
      "systemd service list",
      "log tail viewer",
      "weather widget",
      "SSL certificate expiry",
      "HTTP endpoint health check",
      "next cron run display",
      "custom shell metric display",
      "API health status badges",
      "world clock (multi-timezone)",
      "top processes by CPU",
      "failed login counter",
      "pending package updates",
      "countdown timer",
      "stopwatch",
      "kernel & OS info",
      "Snake game",
      "Tetris",
      "Breakout",
      "2048",
      "Minesweeper",
      "Pong",
      "Flappy Bird clone",
      "Space Invaders clone",
      "Wordle clone",
      "Simon Says",
      "Conway's Game of Life",
      "bouncing physics balls",
      "Matrix rain animation",
      "spinning 3D cube",
      "fireworks display",
      "pixel art canvas",
      "idle cookie clicker",
      "reaction time tester",
      "magic 8-ball",
      "dice roller",
      "dad joke of the day",
      "is it Friday yet?",
      "fidget spinner",
      "lava lamp animation",
      "random cat fact"
    ],
    "watchdogExamples": [
      "alert if CPU over 90% for 5 min",
      "alert when RAM usage over 80%",
      "alert when disk usage over 85%",
      "alert if disk free drops below 10%",
      "alert when commit memory over 90%",
      "alert if process count spikes over 800",
      "alert when handle count exceeds 50000",
      "alert if KKTerm RAM over 1 GB",
      "alert when network upstream over 50 MB/s",
      "let me know when CPU drops back under 50%",
      "ping my-server.example.com — alert if it goes offline",
      "monitor 192.168.1.10 and notify if it stops responding",
      "alert if SSH on my-host stops accepting connections",
      "alert if port 443 on api.example.com closes",
      "alert if my database port 5432 stops listening",
      "watch port 8080 — tell me when it becomes available again",
      "watch my codex CLI session — nudge it if silent for 60 seconds",
      "watch this SSH session for 2 minutes of silence then notify me",
      "monitor my long-running build — alert if output stops for 5 min",
      "if codex hangs on a prompt, send it /continue automatically"
    ],
    "toolPermissionMode": "Tool permissions",
    "toolPermissionPrompt": "Default permissions",
    "toolPermissionAllowAll": "Allow all",
    "toolApprovalTitle": "Approve tool call?",
    "toolApprovalTool": "{{tool}} tool",
    "toolApprovalBody": "This action can change KKTerm or the local machine.",
    "toolApprovalDetails": "Request details",
    "toolApprovalRiskTitle": "Flagged as risky",
    "watchdogApproval": {
      "lede": "Create watchdog \"{{name}}\" with AI intervention?",
      "target": "Target",
      "trigger": "Trigger",
      "poll": "Poll interval",
      "stop": "Stop when",
      "goal": "Intervention goal",
      "allowedTools": "Allowed tools ({{count}})",
      "allowedToolsCaveat": "The AI may call any of these without further prompts during this watchdog's lifetime. Other tools are refused at runtime.",
      "caps": "Hard cap: {{max}} interventions max · {{suppression}}s cooldown between actions"
    },
    "toolApprovalWaiting": "Waiting for your answer.",
    "toolApprovalSelectAction": "Select action",
    "toolApprovalAllow": "Allow",
    "toolApprovalAllowSession": "Allow in this session",
    "toolApprovalDeny": "Deny",
    "toolApprovalApproved": "Allowed. Resuming...",
    "toolApprovalAllowedSession": "Allowed for this session. Resuming...",
    "toolApprovalDenied": "Denied.",
    "toolApprovalCancelled": "Cancelled. Resuming...",
    "sendMessage": "Send message",
    "stopMessage": "Stop response",
    "copy": "Copy",
    "send": "Send",
    "code": "code",
    "copyMessage": "Copy message",
    "directAttachmentPrompt": "Help me with this. Explain what you see, and if it looks like an error, warning, or problem, do your best to explain how to fix it.",
    "sendToTerminal": "Send to focused terminal",
    "extensionReviewTooltip": "Extension drafts are review-only",
    "showLess": "Show less",
    "more": "More",
    "errorPrefix": "AI Assistant error",
    "providerError": "AI provider settings error",
    "copilotConnectRequired": "Connect GitHub Copilot in Settings before AI Assistant can chat.",
    "chargingBeacon": "Charging the answer beacon",
    "preparingResponse": "Preparing response...",
    "extensionDraftPrompt": "Create an KKTerm extension draft for: ",
    "providerEndpointRequired": "Provider endpoint is required.",
    "modelRequired": "Model is required.",
    "apiKeyRequired": "{{provider}} needs an API key before AI Assistant can chat.",
    "secretCardAiProviderMessage": "{{provider}} needs an API key before AI Assistant can chat.",
    "secretCardAiProviderDescription": "Saved as the AI provider key for {{provider}}.",
    "secretCardDefaultDescription": "Saved directly to {{backend}}.",
    "secretCardStorageBackendOs": "the OS keystore",
    "secretCardStorageBackendFile": "the encrypted database",
    "secretCardPrivacy": "Enter it here; it will be saved locally and will not be sent to the AI model.",
    "secretCardInputLabel": "Secret",
    "secretCardPlaceholder": "Paste secret",
    "secretCardShow": "Show secret",
    "secretCardHide": "Hide secret",
    "secretCardSave": "Save to vault",
    "secretCardSaved": "Saved",
    "secretCardStoredInline": "Stored in {{backend}}",
    "secretCardStoredStatus": "{{label}} stored in {{backend}}.",
    "secretCardStoredMessage": "{{label}} is stored. You can continue.",
    "secretCardRuntimeRequired": "Secret storage requires the KKTerm desktop runtime.",
    "secretCardInvalidWidgetRequest": "The widget secret request is invalid.",
    "secretCardMissingWidget": "The widget instance could not be found.",
    "newAiChat": "New AI Assistant chat",
    "addedToPane": "Added to pane",
    "thinking": "Thinking…",
    "thoughtFor": "Thought for",
    "workedFor": "Worked for {{duration}}",
    "thinkingStep": "Thinking",
    "workPlanTitle": "Plan",
    "toolCallRunning": "Running",
    "toolCallUsing": "Using {{tool}} tool...",
    "toolCallComplete": "Complete",
    "workDurationUnderSecond": "<1s",
    "workDurationSeconds": "{{count}}s",
    "workDurationMinutesSeconds": "{{minutes}}m {{seconds}}s",
    "toolWebSearch": "Searching the web…",
    "toolWebFetch": "Fetching web page…",
    "toolShellCommand": "Running command…",
    "toolFileSearch": "Searching files…",
    "toolFileRead": "Reading file…",
    "toolCurrentTime": "Checking current time…",
    "toolPerformanceCounters": "Reading performance counters…",
    "toolEmail": "Sending email…",
    "toolSecretRequest": "Requesting secret entry…",
    "toolDashboard": "Updating Dashboard...",
    "toolConnections": "Managing Connections...",
    "toolSessions": "Working with Sessions...",
    "toolTutorial": "Showing tutorial help...",
    "toolWebSearchDone": "Searched the web",
    "toolWebFetchDone": "Fetched web page",
    "toolShellCommandDone": "Ran command",
    "toolFileSearchDone": "Searched files",
    "toolFileReadDone": "Read file",
    "toolCurrentTimeDone": "Checked current time",
    "toolPerformanceCountersDone": "Read performance counters",
    "toolEmailDone": "Sent email",
    "toolSecretRequestDone": "Requested secret entry",
    "toolDashboardDone": "Updated Dashboard",
    "toolConnectionsDone": "Managed Connections",
    "toolSessionsDone": "Worked with Sessions",
    "toolTutorialDone": "Showed tutorial help",
    "waitingPhrases": [
      "Compiling the tsundere kernel",
      "Defragmenting the chakra network",
      "Loading the beach episode",
      "Calibrating the senpai detector",
      "Buffering the epic transformation sequence",
      "Recompiling the friendship algorithm",
      "Optimizing the catgirl neural net",
      "Syncing the Nendoroid collection",
      "Deploying the spirit bomb patch",
      "Forking the isekai timeline",
      "Indexing the mecha schematics",
      "Rendering the sakuga frames",
      "Rebooting the magical girl mascot",
      "Flushing the filler episode cache",
      "Training the onii-chan classifier",
      "Spinning up a new isekai instance",
      "Patching the plot hole daemon",
      "Validating the fan-service quota",
      "Hashing the legendary sword registry",
      "Polling the god-tier waifu endpoint",
      "Resolving the love triangle deadlock",
      "JIT-compiling the ultimate technique",
      "Derefragmenting the kuudere heap",
      "Streaming the OVA from the spirit realm",
      "Mounting the dimensional gap volume",
      "Sanitizing the forbidden jutsu input",
      "Linting the overpowered protagonist",
      "Parsing the subtitles of destiny",
      "Dockerizing the giant robot hangar",
      "Serializing the crying anime food scene",
      "Decrypting the childhood promise",
      "Spawning the shadow clone thread",
      "Throttling the transformation stock footage",
      "Hydrating the onsen episode assets",
      "Checking for hidden sensei DLC",
      "Building the tournament arc scaffold",
      "Prefetching the next episode preview",
      "Broadcasting the nakama power boost",
      "Magnetizing the harem protagonist",
      "Seeding the slice-of-life torrent",
      "Caching the dramatic wind effect",
      "Unlocking the second form DLC",
      "Pinning the tsundere version",
      "Federating the alternate universe",
      "Linting the power scaling curve",
      "Signing the summoning contract",
      "Cloning the protag-kun repository",
      "Backing up the emotional flashback",
      "Warming up the karaoke ED sequence",
      "Ejecting the anime-onlies volume",
      "Snapping the emotional damage snapshot",
      "Warming the kotatsu workload",
      "CRUD-ing the gacha pull history",
      "Assembling the seasonal waifu tier list",
      "Charging the special move bar",
      "Rolling back the tragic backstory",
      "Muxing the seiyuu vocal track",
      "Tuning the hyperdimensional AI",
      "Slicing the beach episode into microservices",
      "Fusing the mecha with the power of friendship",
      "Connecting the yandere socket",
      "Segfaulting in the dojo",
      "Retrying the confession scene",
      "Swapping the gender-bend config",
      "Loading the light novel canon",
      "Decoding the chuunibyou cipher",
      "Spinning the gacha of suffering",
      "Tethering the anime planet express",
      "Baking the Melonpan binary",
      "IDOR-ing the student council records",
      "Inflating the anime physics engine",
      "Crunching the sakura blossom particles",
      "Overclocking the cat ear sensitivity",
      "Suspending the deredere co-routine",
      "Generating the raging fandom token",
      "Routing the magic circle ring buffer",
      "Hydrating the onigiri SSR state",
      "Parking the flashback episode buffer",
      "Claiming the seasonal drop from CDN",
      "Fetching the sensei wisdom data",
      "Giga-deploying the overpowered slime",
      "Timeout on the spirit beast quest",
      "Publishing the isekai truck-kun event",
      "Refreshing the anime eyeshine shader",
      "Training the moe blob classifier",
      "Rendering the uguu particle system",
      "Synthesizing the tsundere token",
      "Replicating the kuudere database",
      "Proxying the ninja mailbox",
      "Self-healing the hero party",
      "Pod-scheduling the studio crunch pods",
      "Spinning up the beach filler container",
      "Merging the dere-dere pull request",
      "Tagging the latest doujin release",
      "Replaying the cooking battle log",
      "Amplifying the insert song signal",
      "Quiescing the student council meeting",
      "Pip-installing the ramen topping plugin",
      "Generating the anime betrayal event",
      "Strikethrough-ing the anime death flag",
      "Synchronizing the gattai sequence",
      "Bursting the power level budget",
      "Freeze-framing the mid-air slash",
      "Checking the tsundere checksum",
      "Resolving the notice-me-senpai request",
      "Logging the ara-ara event",
      "Committing the power-up sequence",
      "Repairing the broken katana instance",
      "Sequencing the idol dance frames",
      "Enqueuing the tournament spectators",
      "Federating the hidden village cloud",
      "Polling the big three status",
      "Sideloading the OVA into the canon",
      "Bundling the josei smut module",
      "Hydrating the water-bending demo data",
      "Failing over to the spare protag",
      "Restoring the cherry blossom checkpoint",
      "Syncing the light novel volumes",
      "Containerizing the giant of light",
      "Expiring the psychological damage token",
      "Migrating the amnesia arc schema",
      "Sharding the harem across dimensions",
      "Cosplaying the 503 maid service",
      "Overfitting the fan theory model",
      "OOM-killing the overpowered ability",
      "Transcoding the BGM nostalgia format",
      "Pushing the blush sticker to production",
      "Liquibasing the hot spring episode",
      "Crash-looping the resurrection spell",
      "Resampling the kamehame sound bite",
      "Throttling the speed lines generator",
      "Electrifying the love-love attack",
      "Flipping the gender-bend flag",
      "Rooting the evil organization hierarchy",
      "Sanitizing the yandere inputs",
      "Sniping the tournament arc spoiler",
      "Baking the kendo-club cookie",
      "Validating the onii-chan token",
      "De-essing the EHHHHH waveform",
      "Reheating the bento box CDN",
      "Rerouting the spirit bullet trajectory",
      "Rehashing the beach volleyball physics",
      "Consensus-building the waifu wars",
      "Unarchiving the basement dweller arc",
      "Enabling the 120 FPS sakuga mode",
      "Observing the gloomy sunday script",
      "Cranking the guitar case reveal",
      "Color-grading the flashback sepia",
      "Linking the pinky promise socket",
      "Sending the I'll protect you packet",
      "Overriding the childhood friend route",
      "Injecting the fan-service beach episode",
      "Segmenting the I'm home scene",
      "Stub-CRUD-ing the school festival",
      "Enumerating the inherited technique list",
      "Rescaling the friendship multiplier",
      "Cascading the tragic backstory cascade",
      "Rate-limiting the dattebayo endpoint",
      "Time-freezing the omae-wa-mou-shindeiru trigger",
      "Recompiling the shared universe",
      "Dere-referencing the clingy kohai pointer",
      "Fail-fasting the sports tournament scheme",
      "Chunking the epic speech monologue",
      "Batch-inserting the club recruitment forms",
      "Bus-factor-ing the hero party",
      "Isolating the childhood friend zone container",
      "Resolving the baka dependency conflict",
      "Repainting the school rooftop scene",
      "Intercepting the love letter payload",
      "Watching the last-episode-before-hiatus hook",
      "Reheating the giant mecha laser cooldown",
      "Repopulating the academy roster",
      "Unscheduling the emotional gut-punch",
      "Sealing the nine-tailed fox daemon",
      "Queueing the ramen shop regular loadout",
      "Thesis-moding the world-building lore dump",
      "BEAST-ing the legendary sword generator",
      "Nerfing the overpowered sensei",
      "Buffering the silent stare-down",
      "Rebasing the adaptation off the source material",
      "Linting the beach volleyball character design",
      "Parrying the not-bad smirk response",
      "Enabling the headpat trigger",
      "Transcribing the speech bubble IDE",
      "Rebooting the familiar spirit daemon",
      "Pre-caching the friendship cutscene",
      "Reloading the embarrassing thing plan",
      "Normalizing the isekai cheat-skill table",
      "Caching the I-see comprehension state",
      "Bootstrapping the mecha pilot sync rate",
      "Embedding the nakama memory vector",
      "A/B testing the love triangle route",
      "Layering the this-isnt-even-my-final-form model",
      "Gatekeeping the seasonal metadata api",
      "Purifying the evil-bits in the corrupted amulet",
      "Composing the 8-bit ending theme",
      "Kubernetifying the flying castle",
      "Repairing the spacetime hole with duct tape",
      "Bin-packing the beach toys into 4:3",
      "Chaos-monkeying the festival schedule"
    ],
    "tmuxSessionLabels": [
      "Airlock",
      "Andromeda",
      "Antimatter",
      "Asteroid",
      "Astronaut",
      "Atmosphere",
      "Aurora",
      "Binary",
      "Biosphere",
      "Blackhole",
      "Blazar",
      "Capsule",
      "Celestial",
      "Chromosphere",
      "Chronos",
      "Cluster",
      "Comet",
      "Constellation",
      "Corona",
      "Cosmos",
      "Crater",
      "Cryo",
      "Cyber",
      "Datasphere",
      "Deepspace",
      "Docking",
      "Domeshield",
      "Drift",
      "Dwarfstar",
      "Eclipse",
      "Electromag",
      "Equinox",
      "Event",
      "Exoplanet",
      "Exosphere",
      "Filament",
      "Flyby",
      "Fusion",
      "Galaxy",
      "Gateway",
      "Geodesic",
      "Gluon",
      "Gravity",
      "Hangar",
      "Helix",
      "Holodeck",
      "Horizon",
      "Hydrogen",
      "Hypernova",
      "Hyperspace",
      "Ignition",
      "Impulse",
      "Inertia",
      "Infrared",
      "Iondrive",
      "Ionosphere",
      "Jetstream",
      "Jumpgate",
      "Jupiter",
      "Kepler",
      "Launchpad",
      "Lightyear",
      "Lithium",
      "Lodestar",
      "Mainframe",
      "Mars",
      "Mercury",
      "Meteor",
      "Mission",
      "Moonbase",
      "Moonshot",
      "Nebula",
      "Neptune",
      "Netrunner",
      "Neutron",
      "Nextgen",
      "Nova",
      "Observatory",
      "Orbit",
      "Orion",
      "Parsec",
      "Payload",
      "Photon",
      "Planetoid",
      "Plasma",
      "Polaris",
      "Probe",
      "Pulsar",
      "Quantum",
      "Quasar",
      "Redshift",
      "Rover",
      "Satellite",
      "Singularity",
      "Solarwind",
      "Spacelab",
      "Stardust",
      "Starship",
      "Sunspot",
      "Supernova"
    ]
  },
  "watchdog": {
    "openDetail": "Open {{name}}",
    "cancel": "Cancel",
    "completedAction": "Completed",
    "close": "Close",
    "saveReport": "Save report",
    "state": {
      "armed": "Armed",
      "running": "Running",
      "triggered": "Triggered",
      "intervening": "Intervening",
      "suppressed": "Suppressed",
      "completed": "Completed",
      "canceled": "Canceled",
      "error": "Error"
    },
    "detail": {
      "lastValue": "Last value",
      "elapsed": "Elapsed",
      "watchSummary": "Watch summary",
      "nextCheck": "Next check",
      "exitCondition": "Exit condition",
      "notificationMethod": "Notification",
      "actionMode": "Action",
      "polls": "Polls",
      "triggers": "Triggers",
      "interval": "Interval",
      "targetPerformance": "Performance: {{metric}}",
      "targetSshSilence": "SSH Session output silence",
      "targetPing": "Ping {{host}}",
      "targetTcp": "TCP {{host}}:{{port}}",
      "targetMock": "Test counter",
      "stopAfterDuration": "After {{duration}}",
      "stopAfterTriggerCount": "After {{count}} triggers",
      "stopAfterFirstTrigger": "After first trigger",
      "stopAfterPollCount": "After {{count}} polls",
      "stopUntilCanceled": "Until canceled",
      "notification": {
        "inAppOnly": "In-app only",
        "inAppPlusToast": "In-app plus toast",
        "inAppPlusSound": "In-app plus sound"
      },
      "action": {
        "notify": "Notify only",
        "aiIntervene": "AI intervention"
      },
      "notEnoughData": "Collecting data…",
      "sparkline": "Recent values",
      "triggerEvents": "Trigger events",
      "interventions": "AI interventions",
      "aiSummary": "AI summary",
      "summarize": "Summarize",
      "regenerate": "Regenerate",
      "summarizing": "Summarizing…",
      "summaryEmpty": "Click Summarize to generate a natural-language post-mortem of this watchdog.",
      "targetSchedule": "Schedule: {{cron}}",
      "targetLogFile": "Log file {{path}} contains “{{pattern}}”",
      "targetOutputMatch": "Session output contains “{{pattern}}”"
    }
  },
  "workspace": {
    "tabs": "Workspace tabs",
    "noActiveSession": "No active session",
    "openFromTree": "Open a Connection from the tree, or create a new Connection:",
    "syncInput": "Sync input to all terminals",
    "syncInputEnabledNotice": "Input is now mirrored to every open terminal.",
    "newTab": "New tab",
    "hostUsage": "Host usage",
    "cpu": "CPU",
    "cpuUsage": "CPU usage",
    "ram": "RAM",
    "ramUsage": "RAM usage",
    "network": "Network",
    "networkUsage": "Network throughput",
    "networkDownstream": "Downstream",
    "networkDownstreamUsage": "Downstream transfer rate",
    "networkUpstream": "Upstream",
    "networkUpstreamUsage": "Upstream transfer rate",
    "takeScreenshot": "Take screenshot",
    "copyRegion": "Capture Region(Clipboard)",
    "copyEntirePanel": "Capture Entire Window(Clipboard)",
    "sendEntirePanelToAi": "Capture Entire Window(AI Assistant)",
    "sentToAi": "Sent to AI",
    "copied": "Copied",
    "selectRegion": "Select screenshot region",
    "screenshotsRequireRuntime": "Screenshots require the Tauri desktop runtime.",
    "screenshotCaptureError": "Could not capture screenshot: {{message}}",
    "screenshot": "screenshot",
    "scrollTabsLeft": "Scroll tabs left",
    "scrollTabsRight": "Scroll tabs right",
    "renameTab": "Rename {{title}}",
    "closeTab": "Close {{title}}",
    "terminalPane": "terminal Pane",
    "sftpBrowser": "SFTP browser",
    "webview": "Webview",
    "workspace": "Workspace",
    "terminal": "Terminal",
    "connectionKind": "{{type}} connection",
    "localTerminalSession": "Local terminal session",
    "workspaceSwitcher": "Workspaces",
    "defaultWorkspace": "Default",
    "defaultWorkspaceTitle": "Default Workspace",
    "newWorkspace": "New Workspace",
    "workspaceName": "Name",
    "workspaceNamePlaceholder": "Workspace name",
    "editWorkspaceIcon": "Edit Workspace icon",
    "iconPickerLabel": "Workspace icon picker",
    "importConnections": "Import connections",
    "importConnectionsHint": "Copy connections from existing workspaces into this one.",
    "importFromWorkspace": "Import from Workspace",
    "searchConnections": "Search connections",
    "filterConnectionTypes": "Filter Connection types",
    "allConnectionTypes": "All",
    "selectAllConnections": "Select all",
    "deselectAllConnections": "Deselect all",
    "noImportConnections": "No matching Connections.",
    "createWorkspace": "Create Workspace",
    "editWorkspace": "Edit Workspace",
    "deleteWorkspace": "Delete Workspace",
    "deleteWorkspaceConfirm": "Delete \"{{name}}\" and all of its connections? This cannot be undone.",
    "workspaceCreated": "Workspace \"{{name}}\" created",
    "fileViewer": {
      "loading": "Loading…",
      "noFile": "No file selected for this Document Connection.",
      "truncated": "This file is large; showing a partial preview.",
      "invalidJson": "Invalid JSON — showing raw text.",
      "imageTooLarge": "This image is too large to preview.",
      "filterRows": "Filter rows…",
      "filterLines": "Filter lines…",
      "rowCount": "{{count}} rows",
      "tableTruncated": "Showing the first {{count}} rows.",
      "follow": "Follow",
      "followOn": "Following — click to pause",
      "following": "Following",
      "parser": "Parser",
      "parserType": {
        "auto": "Auto",
        "generic": "Generic",
        "json": "JSON",
        "logfmt": "logfmt",
        "syslog": "Syslog",
        "http-access": "HTTP access",
        "windows-event": "Windows event",
        "java-stack": "Java stack",
        "container": "Container"
      },
      "find": "Find",
      "softWrap": "Soft wrap",
      "expandAll": "Expand all",
      "collapseAll": "Collapse all",
      "valid": "Valid",
      "invalid": "Invalid",
      "keyCount": "{{count}} keys",
      "tableShape": "{{rows}} rows × {{cols}} columns",
      "lineCountOf": "{{count}} of {{total}} lines",
      "wordCount": "{{count}} words",
      "dimensions": "{{width}} × {{height}}",
      "byteCount": "{{count}} bytes",
      "hexOffset": "Offset",
      "zoomIn": "Zoom in",
      "zoomOut": "Zoom out",
      "fit": "Fit",
      "actualSize": "Actual size",
      "rotate": "Rotate",
      "readOnly": "Read-only",
      "saved": "Saved",
      "unsaved": "Unsaved",
      "view": {
        "preview": "Preview",
        "split": "Split",
        "source": "Source"
      },
      "kind": {
        "text": "Text",
        "markdown": "Markdown",
        "csv": "Table",
        "json": "JSON",
        "image": "Image",
        "log": "Log",
        "hex": "Hex",
        "pdf": "PDF",
        "unsupported": "Unsupported"
      },
      "level": {
        "error": "Error",
        "warn": "Warn",
        "info": "Info",
        "debug": "Debug",
        "trace": "Trace"
      },
      "retry": "Retry",
      "pdfPage": "{{page}} / {{count}}",
      "dependencyNeededTitle": "Preview needs an add-on",
      "dependencyNeededBody": "Previewing this file type uses {{tool}}, a small add-on KKTerm downloads on demand instead of bundling it.",
      "dependencyInstall": "Install {{tool}}",
      "dependencyInstalling": "Installing {{tool}}…",
      "dependencyManualHint": "Install {{tool}} and make sure it is on your PATH, then retry.",
      "dependencyToolNote": "Downloaded once to your user folder — no admin needed.",
      "dep": {
        "poppler": "Poppler"
      },
      "save": "Save",
      "saving": "Saving…",
      "discardConfirm": "Discard unsaved changes?",
      "saveConflictConfirm": "This file changed on disk since you opened it. Overwrite it with your changes?",
      "viewOptions": "View options",
      "background": "Background",
      "backgroundDefaultHint": "Use the default Document viewer background for this Connection.",
      "textMenu": "Font & encoding",
      "font": "Font",
      "fontDefault": "Default (monospace)",
      "fontSize": "Size",
      "fontSizeDefault": "Default",
      "encoding": "Encoding",
      "encodingAuto": "Auto",
      "encodingDetected": "Auto ({{label}})",
      "unsupportedTitle": "Unsupported file",
      "unsupportedBody": "KKTerm does not have an inline viewer for {{name}}. Choose how to open it.",
      "openAsText": "Open as Text",
      "openAsBinary": "Open as Binary",
      "openExternalEditor": "Open in External Editor"
    }
  },
  "common": {
    "allFilesFilter": "All files (*.*)",
    "clear": "Clear",
    "collapse": "Collapse",
    "customColor": "Custom color",
    "properties": "Properties",
    "expand": "Expand",
    "hexColor": "Hex color",
    "save": "Save",
    "cancel": "Cancel",
    "close": "Close",
    "delete": "Delete",
    "copy": "Copy",
    "cut": "Cut",
    "paste": "Paste",
    "search": "Search",
    "searchForMore": "Search for more",
    "loading": "Loading...",
    "ok": "OK",
    "back": "Back",
    "forward": "Forward",
    "refresh": "Refresh",
    "reset": "Reset",
    "edit": "Edit",
    "add": "Add",
    "remove": "Remove",
    "open": "Open",
    "am": "AM",
    "pm": "PM"
  },
  "languages": {
    "en": "English",
    "fr": "Français",
    "it": "Italiano",
    "de": "Deutsch",
    "es": "Español (España)",
    "es-MX": "Español (México)",
    "pt-BR": "Português (Brasil)",
    "zh-TW": "中文 (繁體)",
    "zh-CN": "中文 (简体)",
    "ja": "日本語",
    "ko": "한국어",
    "th": "ไทย",
    "id": "Bahasa Indonesia",
    "vi": "Tiếng Việt"
  },
  "manual": {
    "title": "Operation Manual",
    "subtitle": "How to operate KKTerm. Shipped with each release.",
    "chaptersLabel": "Chapters",
    "back": "Back",
    "loading": "Loading…",
    "loadError": "Could not load manual: {{message}}",
    "tauriRequired": "The manual is available only in the desktop runtime."
  }
}
