2026-04-19 06:39:06 +00:00
{
"app" : {
"brand" : "nanobot" ,
"loading" : {
"connecting" : "Connecting to nanobot…" ,
"boot" : "Loading nanobot…"
},
"error" : {
"title" : "Couldn't reach nanobot" ,
2026-04-21 14:33:44 +00:00
"gatewayHint" : "Make sure the gateway is running (`nanobot gateway`) and that this page is open on the same machine."
2026-04-19 06:39:06 +00:00
},
2026-05-06 23:15:18 +08:00
"auth" : {
"title" : "Authentication required" ,
"hint" : "Enter the secret configured as tokenIssueSecret in your gateway config." ,
"placeholder" : "Password" ,
"submit" : "Connect" ,
"invalid" : "Invalid password. Try again."
},
"account" : {
"section" : "Account" ,
"logoutHint" : "Disconnect this browser from the gateway." ,
"logout" : "Sign out"
},
2026-05-08 09:40:15 +00:00
"system" : {
"section" : "System" ,
"restartHint" : "Restart nanobot to apply runtime changes." ,
2026-05-08 15:31:52 +00:00
"restart" : "Restart nanobot" ,
2026-05-29 03:42:53 +08:00
"restarting" : "Restarting..." ,
"restartEngine" : "Restart engine" ,
"restartingEngine" : "Restarting engine..."
2026-05-08 09:40:15 +00:00
},
"restart" : {
"completed" : "Restart completed in {{seconds}}s."
},
2026-04-19 06:39:06 +00:00
"documentTitle" : {
"base" : "nanobot" ,
"chat" : "{{title}} · nanobot"
},
"meta" : {
"description" : "nanobot web UI — chat with your nanobot workspace."
}
},
"sidebar" : {
2026-05-06 14:15:36 +00:00
"navigation" : "Sidebar navigation" ,
2026-04-19 06:39:06 +00:00
"collapse" : "Collapse sidebar" ,
"newChat" : "New chat" ,
2026-05-19 22:42:38 +08:00
"searchAria" : "Search" ,
"searchPlaceholder" : "Search" ,
2026-05-06 14:15:36 +00:00
"searchResults" : "Results" ,
"noSearchResults" : "No matching chats." ,
2026-04-19 06:39:06 +00:00
"recent" : "Recent" ,
2026-05-06 14:15:36 +00:00
"settings" : "Settings" ,
2026-04-19 06:39:06 +00:00
"language" : {
"label" : "Language" ,
"ariaLabel" : "Change language"
2026-05-25 20:07:02 +08:00
},
2026-06-06 19:49:33 +08:00
"apps" : "Apps" ,
2026-06-13 20:08:18 +08:00
"automations" : "Automations" ,
2026-06-06 19:49:33 +08:00
"skills" : {
"title" : "Skills"
}
2026-04-19 06:39:06 +00:00
},
2026-05-08 15:31:52 +00:00
"settings" : {
"backToChat" : "Back to chat" ,
"sidebar" : {
"title" : "Settings" ,
"ariaLabel" : "Settings sections"
},
"nav" : {
"general" : "General" ,
2026-05-19 22:42:38 +08:00
"byok" : "BYOK" ,
"overview" : "Overview" ,
"appearance" : "Appearance" ,
"models" : "Models" ,
"providers" : "Providers" ,
"image" : "Image" ,
2026-06-09 01:08:49 +08:00
"voice" : "Voice" ,
2026-05-29 03:42:53 +08:00
"browser" : "Web" ,
2026-05-22 22:25:12 +08:00
"cliApps" : "CLI Apps" ,
2026-05-24 13:38:37 +08:00
"mcp" : "MCP" ,
2026-05-29 03:42:53 +08:00
"runtime" : "System" ,
"advanced" : "Security" ,
2026-06-06 19:49:33 +08:00
"apps" : "Apps" ,
2026-06-13 20:08:18 +08:00
"automations" : "Automations" ,
2026-06-06 19:49:33 +08:00
"skills" : "Skills"
2026-05-08 15:31:52 +00:00
},
"sections" : {
"interface" : "Interface" ,
"ai" : "AI" ,
2026-05-19 22:42:38 +08:00
"system" : "System" ,
2026-06-14 00:19:57 +08:00
"about" : "About" ,
2026-05-19 22:42:38 +08:00
"status" : "Status" ,
"localPreferences" : "Local preferences" ,
"presets" : "Presets" ,
"imageGeneration" : "Image generation" ,
"imageDefaults" : "Defaults" ,
"webSearch" : "Web search" ,
"webBehavior" : "Behavior" ,
2026-05-25 20:07:02 +08:00
"cliApps" : "CLI apps" ,
"mcp" : "MCP services" ,
2026-05-19 22:42:38 +08:00
"identity" : "Identity" ,
2026-05-29 03:42:53 +08:00
"webuiSafety" : "Web safety" ,
2026-05-19 22:42:38 +08:00
"capabilities" : "Capabilities" ,
2026-05-29 03:42:53 +08:00
"apps" : "Apps" ,
"nativeHost" : "Native host" ,
2026-06-09 01:08:49 +08:00
"hostSafety" : "App safety" ,
"voiceInput" : "Voice input"
2026-05-08 15:31:52 +00:00
},
2026-05-24 13:38:37 +08:00
"models" : {
"selectModel" : "Select model" ,
"addConfiguration" : "Add configuration" ,
"newConfiguration" : "New model configuration" ,
"newConfigurationHelp" : "Save a provider and model as a one-click option." ,
2026-05-30 23:45:26 +08:00
"configurationName" : "Configuration name" ,
2026-05-29 03:42:53 +08:00
"configurationNameHelp" : "Rename this saved model configuration." ,
2026-05-30 23:45:26 +08:00
"configurationNamePlaceholder" : "Fast writing" ,
"searchModels" : "Search or type model ID" ,
"useCustomModel" : "Use" ,
"loadingModels" : "Loading models..." ,
"searchCatalog" : "Search provider catalog to choose a model." ,
"modelsAvailable" : "available" ,
"noModelResults" : "No matching models." ,
"loadFailed" : "Model list unavailable." ,
"unsupportedModelList" : "Type a model ID manually." ,
"providerNotConfigured" : "Configure this provider before loading models." ,
"autoProviderCustomOnly" : "Auto provider mode uses custom model IDs."
2026-05-24 13:38:37 +08:00
},
2026-05-08 15:31:52 +00:00
"rows" : {
"theme" : "Theme" ,
"language" : "Language" ,
"provider" : "Provider" ,
"model" : "Model" ,
"restart" : "Restart nanobot" ,
2026-05-19 22:42:38 +08:00
"configPath" : "Config path" ,
"activePreset" : "Active preset" ,
"gateway" : "Gateway" ,
"restartState" : "Restart state" ,
"pendingChanges" : "Pending changes" ,
2026-05-30 23:45:26 +08:00
"currentModel" : "Current configuration" ,
2026-05-19 22:42:38 +08:00
"selectedPreset" : "Selected preset" ,
"presetModel" : "Preset model" ,
"density" : "Density" ,
"activityMode" : "Activity detail" ,
"codeWrap" : "Code wrapping" ,
2026-05-22 22:25:12 +08:00
"brandLogos" : "Brand logos" ,
2026-05-19 22:42:38 +08:00
"maxResults" : "Max results" ,
"timeout" : "Timeout" ,
"jinaReader" : "Jina reader" ,
"imageGeneration" : "Image generation" ,
"imageProvider" : "Image provider" ,
"imageProviderStatus" : "Provider status" ,
"imageProviderBase" : "Provider base" ,
"imageModel" : "Image model" ,
"defaultAspectRatio" : "Default aspect" ,
"defaultImageSize" : "Default size" ,
"maxImagesPerTurn" : "Max images per turn" ,
"imageSaveDir" : "Save directory" ,
"botName" : "Bot name" ,
"botIcon" : "Bot icon" ,
"timezone" : "Timezone" ,
2026-05-29 03:42:53 +08:00
"workspacePath" : "Default workspace" ,
"localServiceAccess" : "Local services" ,
"webuiDefaultAccess" : "Default access" ,
2026-05-22 22:25:12 +08:00
"cliAppsCatalog" : "Catalog" ,
"cliAppsFilter" : "Filter" ,
2026-05-29 03:42:53 +08:00
"engine" : "Engine" ,
"logs" : "Logs" ,
2026-05-29 04:23:30 +08:00
"diagnostics" : "Diagnostics" ,
2026-06-09 01:08:49 +08:00
"contextWindow" : "Context window" ,
"transcription" : "Transcription" ,
"transcriptionProvider" : "Provider" ,
"transcriptionProviderStatus" : "Provider status" ,
"transcriptionModel" : "Model" ,
"transcriptionLanguage" : "Language" ,
"voiceLimits" : "Limits"
2026-05-08 15:31:52 +00:00
},
"help" : {
"theme" : "Switch between light and dark appearance." ,
"language" : "Choose the language used by the WebUI." ,
"provider" : "Select the provider that should serve new model requests." ,
"model" : "Set the default model name used by nanobot." ,
2026-05-19 22:42:38 +08:00
"configPath" : "The gateway configuration file currently in use." ,
2026-05-30 23:45:26 +08:00
"currentModel" : "Used for new replies." ,
2026-05-24 13:38:37 +08:00
"selectedModelProvider" : "Set by the selected model." ,
"selectedModelValue" : "Set by the selected model." ,
2026-05-19 22:42:38 +08:00
"selectedPreset" : "Named presets are read-only here; edit them in config.json." ,
"presetModel" : "Switch to Default to edit model and provider from the WebUI." ,
"density" : "Stored only in this browser." ,
"activityMode" : "Choose how much agent activity chrome to show by default." ,
"codeWrap" : "Keep long code lines readable on smaller screens." ,
2026-05-22 22:25:12 +08:00
"brandLogos" : "Show third-party provider and CLI logos in Settings." ,
2026-05-19 22:42:38 +08:00
"maxResults" : "Results returned by each web_search call." ,
"timeout" : "Seconds before a search provider request times out." ,
"jinaReader" : "Use Jina Reader for web_fetch when available." ,
"imageGeneration" : "Expose generate_image in chats when a configured image provider is available." ,
"imageProvider" : "Choose the registry provider used by generate_image." ,
"imageProviderStatus" : "Image generation reuses provider credentials from Providers." ,
"imageModel" : "Model name sent to the selected image provider." ,
"defaultAspectRatio" : "Used when the prompt does not choose an aspect ratio." ,
"defaultImageSize" : "Size hint sent to providers that support it." ,
"maxImagesPerTurn" : "Upper bound for one generate_image request." ,
2026-05-29 03:42:53 +08:00
"botName" : "Shown wherever nanobot uses a display name." ,
"botIcon" : "Short emoji or text shown with the bot name." ,
"timezone" : "Used for schedules and time-aware replies." ,
"cliAppsCatalog" : "Install only the app-specific CLI adapters nanobot can run locally; native apps stay untouched." ,
2026-05-22 22:25:12 +08:00
"cliAppsFilter" : "Search by app, category, or capability." ,
2026-05-29 03:42:53 +08:00
"localServiceAccess" : "Allow Full Access shell commands to reach localhost services." ,
"webuiDefaultAccess" : "Used by web chats without a project-specific permission." ,
"securityManagedControls" : "Web fetches always protect local, private, and metadata services. Core channel safety stays in config.json." ,
"logs" : "Open the native engine log folder." ,
"diagnostics" : "Export a small runtime report for support." ,
"localServiceAccessNative" : "Allow Full Access shell commands to reach services on this Mac." ,
2026-05-29 04:23:30 +08:00
"webuiDefaultAccessNative" : "Used by native chats without a project-specific permission." ,
2026-06-09 01:08:49 +08:00
"contextWindow" : "Choose the default context budget for this model configuration." ,
"transcription" : "Transcribe microphone input before sending it. Chat channel voice messages use the same settings." ,
"transcriptionProvider" : "Uses the matching provider credentials from Providers." ,
"transcriptionProviderStatus" : "API keys stay under providers, not in transcription settings." ,
"transcriptionModel" : "Leave as the resolved default unless your provider needs a custom model id." ,
"transcriptionLanguage" : "Optional ISO-639 hint such as en, zh, ja, or ko."
2026-05-08 15:31:52 +00:00
},
2026-05-24 13:38:37 +08:00
"timezone" : {
"select" : "Select timezone" ,
"search" : "Search timezone" ,
"empty" : "No matching timezones."
},
2026-05-22 22:25:12 +08:00
"cliApps" : {
"allCategories" : "All categories" ,
"availableCount" : "{{count}} apps" ,
"installedCount" : "{{count}} CLIs installed" ,
"summary" : "{{installed}} of {{total}} CLIs installed" ,
"filterAll" : "All" ,
"filterInstalled" : "Installed CLIs" ,
"filterNotInstalled" : "Not installed" ,
"searchPlaceholder" : "Search CLIs" ,
"loading" : "Loading CLI Apps..." ,
"empty" : "No CLI Apps match this filter." ,
"statusInstalled" : "CLI installed" ,
"statusMissing" : "Missing" ,
"statusAvailable" : "Available" ,
"statusUnsupported" : "Unsupported" ,
"statusNotInstalled" : "CLI not installed" ,
"requires" : "Requires" ,
"test" : "Test CLI" ,
"update" : "Update CLI" ,
"uninstall" : "Uninstall CLI" ,
"install" : "Install CLI" ,
"readyTitle" : "@{{name}} is ready" ,
"readyStatus" : "Ready" ,
"readyTry" : "Try @{{name}}" ,
"readyCopied" : "Copied" ,
"readyPrompt" : "Use @{{name}} to inspect what this CLI can do." ,
"openChat" : "Open chat" ,
"unsupported" : "Unsupported" ,
"unavailable" : "Unavailable" ,
"noDescription" : "No description available."
},
2026-06-14 00:19:57 +08:00
"about" : {
"version" : "Version" ,
"checking" : "Checking..." ,
"checkForUpdates" : "Check for updates" ,
"upToDate" : "You're up to date" ,
"updateAvailable" : "Update available v{{version}}"
},
2026-05-24 13:38:37 +08:00
"mcp" : {
"allCategories" : "All categories" ,
"summary" : "{{installed}} of {{total}} presets enabled" ,
"filterAll" : "All" ,
"filterInstalled" : "Enabled" ,
"filterNotInstalled" : "Not enabled" ,
"searchPlaceholder" : "Search MCP presets" ,
"moreOptions" : "More MCP options" ,
"moreOptionsSubtitle" : "Add a custom server or import mcp.json." ,
"customTitle" : "Custom MCP" ,
"customSubtitle" : "Add any stdio, HTTP, or SSE MCP server." ,
"customAction" : "Custom" ,
"importAction" : "Import" ,
"serverName" : "Server name" ,
"serverUrl" : "URL" ,
"transport" : "Transport" ,
"command" : "Command" ,
"args" : "Args JSON" ,
"headers" : "Headers JSON" ,
"env" : "Env JSON" ,
"timeout" : "Tool timeout" ,
"advancedOptions" : "Advanced options" ,
"hideAdvanced" : "Hide advanced" ,
"saveCustom" : "Save MCP" ,
"configImport" : "Import mcp.json" ,
"importConfig" : "Import" ,
"restartRequired" : "Restart nanobot to connect updated MCP tools." ,
"toolsFound" : "{{count}} tools" ,
"loading" : "Loading MCP presets..." ,
"empty" : "No MCP presets match this filter." ,
"openDocs" : "Open docs" ,
"test" : "Test" ,
"remove" : "Remove" ,
"enable" : "Enable" ,
"enabled" : "Enabled" ,
"setup" : "Connect" ,
"configure" : "Connect" ,
"connectTitle" : "Connect {{name}}" ,
"connectHint" : "Add the key from your account settings." ,
"saveAndEnable" : "Save and enable" ,
"updateSetup" : "Update setup" ,
"configured" : "configured" ,
"keepExisting" : "Leave blank to keep existing" ,
"statusConfigured" : "Configured" ,
"statusMissingCredentials" : "Needs key" ,
"statusMissingDependency" : "Needs dependency" ,
"statusComingSoon" : "Coming soon" ,
"statusNotInstalled" : "Not enabled" ,
"toolScope" : "Tools" ,
"allTools" : "All" ,
"noTools" : "None" ,
"testForTools" : "Run Test to inspect and choose individual tools."
},
2026-05-08 15:31:52 +00:00
"values" : {
"light" : "Light" ,
"dark" : "Dark" ,
2026-05-19 22:42:38 +08:00
"notAvailable" : "Not available" ,
"enabled" : "Enabled" ,
"disabled" : "Disabled" ,
"restartPending" : "Restart pending" ,
"ready" : "Ready" ,
2026-06-06 19:49:33 +08:00
"privateEngine" : "Private engine" ,
"unixSocket" : "Unix socket" ,
"defaultWorkspace" : "Default workspace" ,
2026-05-19 22:42:38 +08:00
"comfortable" : "Comfortable" ,
"compact" : "Compact" ,
"auto" : "Auto" ,
"expanded" : "Expanded" ,
"on" : "On" ,
"off" : "Off" ,
2026-05-29 03:42:53 +08:00
"defaultPermission" : "Default Permission" ,
"fullAccess" : "Full Access" ,
2026-05-19 22:42:38 +08:00
"configured" : "Configured" ,
2026-05-29 03:42:53 +08:00
"notConfigured" : "Not configured" ,
"pending" : "Pending" ,
"restartingEngine" : "Restarting"
2026-05-08 15:31:52 +00:00
},
"status" : {
"loading" : "Loading settings..." ,
"loadError" : "Could not load settings" ,
"unsaved" : "Unsaved changes." ,
2026-05-19 22:42:38 +08:00
"upToDate" : "Up to date." ,
"savedRestart" : "Saved. Restart nanobot to apply." ,
"restartAfterSaving" : "Save changes, then restart when ready." ,
"savedRestartApply" : "Saved. Restart when ready." ,
2026-05-29 03:42:53 +08:00
"imageProviderRestart" : "Image provider changes saved. Restart when ready." ,
"hostRestartAfterSaving" : "Save changes and nanobot will restart its engine." ,
"hostRestartPending" : "Saved. Restarting engine when ready." ,
"hostApiUnavailable" : "Host actions are only available inside the native app." ,
"logsOpened" : "Opened logs folder." ,
"logsOpenFailed" : "Could not open logs folder." ,
"diagnosticsExported" : "Diagnostics exported to {{path}}." ,
"diagnosticsExportFailed" : "Could not export diagnostics."
2026-05-08 15:31:52 +00:00
},
"actions" : {
"save" : "Save" ,
"saving" : "Saving" ,
"edit" : "Edit" ,
2026-05-19 22:42:38 +08:00
"cancel" : "Cancel" ,
2026-05-29 03:42:53 +08:00
"open" : "Open" ,
"export" : "Export" ,
"opening" : "Opening..." ,
"exporting" : "Exporting..."
2026-05-08 15:31:52 +00:00
},
"byok" : {
"description" : "Bring your own provider keys. Nanobot reads these values from the current config and only configured providers can be selected in General." ,
"configured" : "Configured" ,
"notConfigured" : "Not configured" ,
"configuredSection" : "Configured" ,
"notConfiguredSection" : "Not configured" ,
"showMore" : "Show {{count}} more" ,
"showLess" : "Show fewer" ,
"apiKey" : "API key" ,
"apiBase" : "API base" ,
"apiKeyPlaceholder" : "Enter API key" ,
"apiKeyConfiguredPlaceholder" : "Leave blank to keep the current key" ,
"configuredKeyHint" : "Configured key" ,
"apiBasePlaceholder" : "Use provider default" ,
"apiKeyRequired" : "API key is required to configure this provider." ,
"showApiKey" : "Show API key" ,
"hideApiKey" : "Hide API key" ,
"noConfiguredProviders" : "No configured providers" ,
"configureFirst" : "Configure a provider in BYOK first." ,
2026-05-09 06:48:26 +00:00
"openByok" : "Open BYOK" ,
"tabs" : {
"ariaLabel" : "BYOK credential type" ,
"llm" : "LLM" ,
"webSearch" : "Web Search"
},
"webSearch" : {
"provider" : "Search provider" ,
"providerHelp" : "Choose the backend used by the web search tool." ,
"selectProvider" : "Select provider" ,
"credentials" : "Credentials" ,
"noCredentialRequired" : "No key required" ,
"noCredentialHelp" : "DuckDuckGo works without a saved API key." ,
"apiKeyHelp" : "Stored in config and masked after saving." ,
"baseUrl" : "Base URL" ,
"baseUrlHelp" : "SearXNG needs the URL of your own instance." ,
"baseUrlPlaceholder" : "https://search.example.com" ,
"apiKeyRequired" : "API key is required for this search provider." ,
"baseUrlRequired" : "Base URL is required for SearXNG." ,
"missingCredential" : "Add the required credential before saving." ,
"saveHint" : "Changes apply to new web search requests."
}
2026-05-19 22:42:38 +08:00
},
"overview" : {
"model" : "Current model" ,
"providers" : "Providers" ,
"configuredCount" : "{{count}} configured" ,
"totalProviders" : "{{count}} available" ,
"webSearch" : "Web search" ,
"imageGeneration" : "Image generation" ,
2026-06-09 01:08:49 +08:00
"voiceInput" : "Voice input" ,
2026-05-19 22:42:38 +08:00
"workspace" : "Workspace"
},
2026-06-06 19:49:33 +08:00
"usage" : {
"title" : "Token activity" ,
"shortTitle" : "Token Usage" ,
"subtitle" : "Provider-reported usage over the last 12 months." ,
"empty" : "Token activity will appear after new model replies." ,
"totalTokens" : "Total tokens" ,
"peakTokens" : "Peak tokens" ,
"thirtyDayTokens" : "30-day tokens" ,
"currentStreak" : "Current streak" ,
"longestStreak" : "Longest streak" ,
"daysValue" : "{{count}}d" ,
"last30" : "30 days" ,
"activeDays" : "Active days" ,
"requests" : "Requests" ,
"estimated" : "estimated" ,
"includesEstimates" : "includes estimates" ,
"cellTitle" : "{{date}}: {{tokens}} tokens, {{requests}} requests" ,
"sources" : {
"user" : "Chat" ,
"api" : "API" ,
"cron" : "Automations" ,
"dream" : "Memory" ,
"system" : "System"
}
},
2026-05-19 22:42:38 +08:00
"providers" : {
"searchPlaceholder" : "Search providers" ,
2026-05-24 13:38:37 +08:00
"noMatches" : "No providers match this search." ,
"saveProvider" : "Save provider"
2026-05-19 22:42:38 +08:00
},
2026-05-22 22:25:12 +08:00
"legal" : {
"thirdPartyBrands" : "Product names, logos, and brands are property of their respective owners. Use is for identification only and does not imply endorsement."
},
2026-05-19 22:42:38 +08:00
"image" : {
"selectProvider" : "Select provider" ,
"selectAspect" : "Select aspect" ,
"selectSize" : "Select size" ,
"configureProvider" : "Configure provider" ,
"missingCredential" : "Configure this provider before enabling image generation."
2026-05-25 20:07:02 +08:00
},
"apps" : {
"description" : "Add app CLIs and MCP services nanobot can use from chat." ,
"cliLabel" : "CLI" ,
"mcpLabel" : "MCP" ,
"filterAll" : "All" ,
"filterCli" : "CLI apps" ,
"filterMcp" : "MCP services" ,
"enabledSummary" : "{{count}} enabled" ,
"caption" : "{{cli}} CLI · {{mcp}} MCP" ,
"searchPlaceholder" : "Search Apps" ,
"featured" : "Featured" ,
"loading" : "Loading Apps..." ,
"empty" : "No apps match this filter."
2026-05-29 03:42:53 +08:00
},
2026-06-13 20:08:18 +08:00
"automations" : {
"kicker" : "Workspace automations" ,
"title" : "Automations" ,
"stats" : {
"active" : "Active" ,
"paused" : "Paused" ,
2026-06-14 18:24:59 +08:00
"failed" : "Needs attention" ,
2026-06-13 20:08:18 +08:00
"system" : "System"
},
"filters" : {
"all" : "All" ,
"active" : "Active" ,
"paused" : "Paused" ,
2026-06-14 18:24:59 +08:00
"failed" : "Needs attention" ,
2026-06-13 20:08:18 +08:00
"system" : "System"
},
2026-06-14 18:24:59 +08:00
"sort" : {
"next" : "Next run" ,
"last" : "Last run" ,
"updated" : "Updated" ,
"name" : "Name"
},
2026-06-16 00:59:42 +08:00
"search" : "name:quiz chat:WeChat cron:09-23" ,
2026-06-13 20:08:18 +08:00
"queue" : "Queue" ,
"loading" : "Loading automations..." ,
"noMatches" : "No automations match this view." ,
"empty" : "No automations yet." ,
2026-06-14 18:24:59 +08:00
"emptyHint" : "Create one from the chat or channel where it should run so nanobot keeps the right context." ,
2026-06-13 20:08:18 +08:00
"oneShot" : "One-time" ,
"systemTask" : "System-managed automation" ,
"labels" : {
"schedule" : "Schedule" ,
"next" : "Next" ,
"last" : "Last" ,
2026-06-15 16:35:15 +08:00
"origin" : "Linked chat" ,
"created" : "Created" ,
"updated" : "Updated"
2026-06-13 20:08:18 +08:00
},
"runNow" : "Run now" ,
"pause" : "Pause" ,
"resume" : "Resume" ,
2026-06-14 18:24:59 +08:00
"edit" : "Edit" ,
2026-06-13 20:08:18 +08:00
"delete" : "Delete" ,
"protected" : "Protected" ,
2026-06-14 18:24:59 +08:00
"editTitle" : "Edit automation" ,
"editDescription" : "Update the prompt and schedule. The linked chat stays unchanged." ,
"save" : "Save" ,
2026-06-13 20:08:18 +08:00
"deleteTitle" : "Delete automation" ,
"deleteDescription" : "This removes {{name}} from the cron store. Past chat messages stay in the session." ,
"cancel" : "Cancel" ,
"status" : {
"system" : "System" ,
"pending" : "Pending" ,
2026-06-14 18:24:59 +08:00
"running" : "Running now" ,
2026-06-13 20:08:18 +08:00
"paused" : "Paused" ,
"failed" : "Failed" ,
2026-06-14 18:24:59 +08:00
"completed" : "Completed" ,
"noSchedule" : "No schedule" ,
2026-06-13 20:08:18 +08:00
"active" : "Active"
},
"origin" : {
"system" : "System" ,
2026-06-16 00:26:06 +08:00
"unknown" : "No linked chat"
2026-06-13 20:08:18 +08:00
},
2026-06-14 00:32:53 +08:00
"channels" : {
"api" : "API" ,
"cli" : "CLI" ,
"dingtalk" : "DingTalk" ,
"discord" : "Discord" ,
"email" : "Email" ,
"feishu" : "Feishu" ,
"matrix" : "Matrix" ,
"msteams" : "Microsoft Teams" ,
"qq" : "QQ" ,
"slack" : "Slack" ,
"telegram" : "Telegram" ,
"wechat" : "WeChat" ,
"wecom" : "WeCom" ,
"weixin" : "WeChat" ,
"whatsapp" : "WhatsApp"
},
2026-06-13 20:08:18 +08:00
"schedule" : {
"at" : "At {{time}}" ,
"every" : "Every {{duration}}" ,
"cron" : "Cron {{expr}}" ,
"cronWithTz" : "Cron {{expr}} · {{tz}}" ,
2026-06-14 18:24:59 +08:00
"withTz" : "{{summary}} · {{tz}}" ,
"dailyAt" : "Daily at {{time}}" ,
"weekdaysAt" : "Weekdays at {{time}}" ,
"hourlyAt" : "Hourly at :{{minute}}" ,
"hourlyWindow" : "Hourly {{start}}-{{end}} at :{{minute}}" ,
2026-06-13 20:08:18 +08:00
"custom" : "Custom schedule"
},
"next" : {
"paused" : "Paused" ,
2026-06-14 18:24:59 +08:00
"pending" : "Running now" ,
2026-06-13 20:08:18 +08:00
"none" : "No next run"
},
"last" : {
"never" : "Never" ,
"unknown" : "unknown"
2026-06-13 21:30:31 +08:00
},
2026-06-15 20:29:18 +08:00
"message" : {
"showMore" : "Show full message" ,
"showLess" : "Show less"
},
2026-06-14 18:24:59 +08:00
"meta" : {
"created" : "Created {{time}}" ,
"updated" : "Updated {{time}}"
},
"fields" : {
"name" : "Name" ,
"message" : "Message" ,
"scheduleType" : "Schedule type" ,
"every" : "Every" ,
"unit" : "Unit" ,
"cronExpression" : "Cron expression" ,
"timezone" : "Timezone" ,
"runAt" : "Run at"
},
"scheduleTypes" : {
"every" : "Interval" ,
"cron" : "Cron" ,
"at" : "Once"
},
"everyUnits" : {
"second" : "Seconds" ,
"minute" : "Minutes" ,
"hour" : "Hours" ,
"day" : "Days"
},
"validation" : {
"nameRequired" : "Name is required." ,
"messageRequired" : "Message is required." ,
"intervalRequired" : "Interval must be a positive number." ,
"cronRequired" : "Cron expression is required." ,
"timeRequired" : "Run time is required." ,
"futureRequired" : "Run time must be in the future."
2026-06-13 20:08:18 +08:00
}
},
2026-05-29 03:42:53 +08:00
"oauth" : {
"authentication" : "OAuth authentication" ,
"signIn" : "Sign in" ,
"signingIn" : "Signing in..." ,
"signInAgain" : "Sign in again" ,
"signOut" : "Sign out" ,
"signedInAs" : "Signed in as {{account}}" ,
"signInHelp" : "Sign in from this device; no API key is stored in config." ,
"signInRequired" : "Sign in required" ,
"signInBeforeSaving" : "Sign in before saving this OAuth provider as the active model provider." ,
"signedIn" : "Signed in" ,
"notSignedIn" : "Not signed in"
2026-06-06 19:49:33 +08:00
},
"skills" : {
"description" : "Review the instruction skills this agent can load during a conversation." ,
"caption" : "{{available}} available · {{total}} total" ,
"featured" : "Agent skills" ,
"empty" : "No skills are available." ,
"sourceWorkspace" : "Custom" ,
"sourceBuiltin" : "Built-in" ,
"statusAvailable" : "Available" ,
"statusUnavailable" : "Unavailable" ,
"unavailableReason" : "Missing: {{reason}}" ,
"openDetails" : "Open details for {{name}}" ,
"loadingDetail" : "Loading skill details..." ,
"loadFailed" : "Could not load skill details." ,
"descriptionTitle" : "Description" ,
"source" : "Source" ,
"status" : "Status" ,
"requirements" : "Requirements" ,
"noRequirements" : "No explicit requirements." ,
"commands" : "Commands" ,
"environment" : "Environment variables" ,
"missingCommands" : "Missing CLI" ,
"missingEnvironment" : "Missing ENV" ,
"unavailableReasonLabel" : "Unavailable reason" ,
"rawInstructions" : "Raw SKILL.md" ,
"rawInstructionsEmpty" : "No raw instructions." ,
"detailDescription" : "Details for {{name}}."
2026-06-09 01:08:49 +08:00
},
"voice" : {
"selectProvider" : "Select provider" ,
"configureProvider" : "Configure provider" ,
"languageAuto" : "Auto"
2026-05-08 15:31:52 +00:00
}
},
2026-04-19 06:39:06 +00:00
"chat" : {
"fallbackTitle" : "Chat {{id}}" ,
2026-06-10 02:07:47 +08:00
"forkTitle" : "Fork: {{title}}" ,
2026-04-19 06:39:06 +00:00
"loading" : "Loading…" ,
"noSessions" : "No sessions yet." ,
2026-05-22 01:55:37 +08:00
"showMore" : "Show {{count}} more" ,
2026-05-29 03:42:53 +08:00
"collapsed" : "{{count}} hidden chats" ,
"showLess" : "Show less" ,
2026-04-19 06:39:06 +00:00
"actions" : "Chat actions for {{title}}" ,
2026-05-29 03:42:53 +08:00
"newInProject" : "Start a new chat in {{project}}" ,
2026-05-19 22:42:38 +08:00
"activity" : {
"running" : "Agent running" ,
2026-06-15 17:30:06 +08:00
"complete" : "Agent finished" ,
"updated" : "New activity"
2026-05-19 22:42:38 +08:00
},
"pin" : "Pin" ,
"unpin" : "Unpin" ,
"rename" : "Rename" ,
"renameTitle" : "Rename chat" ,
"renameDescription" : "Choose a local sidebar name for this chat." ,
"renamePlaceholder" : "Chat name" ,
2026-05-29 03:42:53 +08:00
"renameProjectTitle" : "Rename project" ,
"renameProjectDescription" : "Choose a local sidebar name for this project." ,
"renameProjectPlaceholder" : "Project name" ,
2026-05-19 22:42:38 +08:00
"renameSave" : "Save" ,
"archive" : "Archive" ,
"unarchive" : "Unarchive" ,
"showArchived" : "Show archived" ,
"hideArchived" : "Hide archived" ,
2026-04-19 06:39:06 +00:00
"delete" : "Delete" ,
2026-05-06 14:15:36 +00:00
"newChat" : "New chat" ,
"groups" : {
2026-05-19 22:42:38 +08:00
"pinned" : "Pinned" ,
"all" : "Chats" ,
2026-05-29 03:42:53 +08:00
"projects" : "Projects" ,
2026-05-06 14:15:36 +00:00
"today" : "Today" ,
"yesterday" : "Yesterday" ,
2026-05-19 22:42:38 +08:00
"earlier" : "Earlier" ,
"archived" : "Archived"
2026-05-06 14:15:36 +00:00
}
2026-04-19 06:39:06 +00:00
},
"deleteConfirm" : {
2026-05-08 13:28:34 +00:00
"title" : "Delete this chat?" ,
"description" : "This action cannot be undone." ,
2026-04-19 06:39:06 +00:00
"cancel" : "Cancel" ,
2026-06-12 14:51:02 +08:00
"confirm" : "Delete" ,
"automationsDescription" : "This chat has scheduled automations. Deleting it will also delete them." ,
"moreAutomations" : "+ {{count}} more" ,
"confirmWithAutomations" : "Delete chat and automations" ,
"schedule" : {
"at" : "{{time}}" ,
"every" : "Every {{duration}}" ,
"cron" : "Cron {{expr}}" ,
"cronWithTz" : "Cron {{expr}} · {{tz}}" ,
"unknown" : "Custom schedule"
},
"next" : {
"label" : "Next: {{time}}" ,
"disabled" : "Paused" ,
"none" : "No next run"
}
2026-04-19 06:39:06 +00:00
},
"connection" : {
"idle" : "Idle" ,
"connecting" : "Connecting…" ,
"open" : "Connected" ,
"reconnecting" : "Reconnecting…" ,
"closed" : "Disconnected" ,
"error" : "Connection error"
},
"thread" : {
"loadingConversation" : "Loading conversation…" ,
"empty" : {
2026-05-29 03:42:53 +08:00
"greetings" : {
"workOn" : "What should we work on?" ,
"start" : "Where should we start?" ,
"build" : "What are we building today?" ,
"tackle" : "What should we tackle together?"
},
2026-05-06 14:15:36 +00:00
"quickActions" : {
"plan" : {
"title" : "Create a project plan" ,
"prompt" : "Create a concise project plan for what I should build next."
},
"analyze" : {
"title" : "Analyze this data" ,
"prompt" : "Help me analyze this data and call out the most important patterns."
},
"brainstorm" : {
"title" : "Brainstorm ideas" ,
"prompt" : "Brainstorm a few practical ideas and tradeoffs for this problem."
},
"code" : {
"title" : "Write code" ,
"prompt" : "Help me write the code for this task, starting with the smallest useful change."
},
"summarize" : {
"title" : "Summarize this document" ,
"prompt" : "Summarize this document and list the key takeaways."
},
"more" : {
"title" : "More" ,
"prompt" : "Show me a few useful ways you can help in this workspace."
}
2026-05-08 09:40:15 +00:00
},
"imageQuickActions" : {
"icon" : {
"title" : "Design an app icon" ,
"prompt" : "Generate a clean 1:1 app icon for nanobot: friendly robot, simple vector style, soft blue and white palette, no text."
},
"sticker" : {
"title" : "Make a sticker" ,
"prompt" : "Generate a cute sticker-style image of a tiny robot assistant, transparent-looking background, expressive and playful."
},
"poster" : {
"title" : "Create a poster" ,
"prompt" : "Generate a polished poster concept for a personal AI assistant, modern composition, strong visual hierarchy, suitable for a landing page."
},
"product" : {
"title" : "Product mockup" ,
"prompt" : "Generate a clean product mockup image for a conversational AI web app, minimal interface, premium lighting, realistic device frame."
},
"portrait" : {
"title" : "Stylized portrait" ,
"prompt" : "Generate a stylized portrait of a friendly AI companion, soft lighting, detailed but approachable, modern illustration style."
},
"edit" : {
"title" : "Edit an image" ,
"prompt" : "Help me edit an image. Ask me to upload or reference the image first, then generate the edited result."
}
2026-05-06 14:15:36 +00:00
}
2026-04-19 06:39:06 +00:00
},
"header" : {
2026-05-06 14:15:36 +00:00
"toggleSidebar" : "Toggle sidebar" ,
"newChat" : "Start a new chat" ,
"toggleTheme" : "Toggle theme from header" ,
2026-06-06 19:49:33 +08:00
"settings" : "Open settings" ,
"sessionInfo" : "Session details"
},
"sessionInfo" : {
"title" : "Session" ,
"untitled" : "Untitled chat" ,
"automations" : "Automations" ,
"count" : "{{count}}" ,
"loading" : "Loading automations..." ,
"loadFailed" : "Could not load automations." ,
"empty" : "No automations in this session yet." ,
"disabled" : "Off" ,
"schedule" : {
"at" : "{{time}}" ,
"every" : "Every {{duration}}" ,
"cron" : "Cron {{expr}}" ,
"cronWithTz" : "Cron {{expr}} · {{tz}}" ,
"unknown" : "Custom schedule"
},
"next" : {
"label" : "{{time}}" ,
2026-06-12 18:13:25 +08:00
"pending" : "Runs shortly" ,
2026-06-06 19:49:33 +08:00
"disabled" : "Paused" ,
"none" : "No next run"
}
2026-04-19 06:39:06 +00:00
},
"composer" : {
"placeholderThread" : "Type your message…" ,
2026-05-06 14:15:36 +00:00
"placeholderHero" : "Ask anything..." ,
2026-04-19 06:39:06 +00:00
"placeholderOpening" : "Opening a new chat…" ,
2026-05-01 12:38:22 -03:00
"placeholderStreaming" : "Model is responding…" ,
2026-04-19 06:39:06 +00:00
"inputAria" : "Message input" ,
"sendHint" : "Enter to send · Shift+Enter for newline" ,
2026-05-16 01:14:11 +08:00
"runRuntimeTitle" : "Running · {{elapsed}}" ,
"goalStateStrip" : "Goal · {{label}}" ,
"goalStateFallback" : "Goal" ,
"goalStateExpandAria" : "Show full goal" ,
2026-05-16 04:42:58 +00:00
"goalStateSheetTitle" : "Goal" ,
"goalStateCloseAria" : "Close goal" ,
2026-04-21 10:29:47 +00:00
"send" : "Send message" ,
2026-05-08 09:40:15 +00:00
"stop" : "Stop response" ,
2026-06-06 19:49:33 +08:00
"modelNotConfigured" : "Model not configured" ,
"configureModel" : "Configure model" ,
2026-05-30 23:45:26 +08:00
"queued" : {
"label" : "Queued guidance" ,
"guide" : "Guide" ,
"delete" : "Delete guidance" ,
"edit" : "Edit guidance" ,
"drag" : "Drag to reorder"
},
2026-04-21 10:29:47 +00:00
"attachImage" : "Attach image" ,
2026-05-08 09:40:15 +00:00
"imageMode" : {
"label" : "Image Generation" ,
"toggle" : "Toggle image generation mode" ,
"placeholder" : "Describe or edit an image…" ,
"aspectAria" : "Image aspect ratio" ,
"aspectLabel" : "Image aspect" ,
"aspect" : {
"auto" : "Auto" ,
"1_1" : "Square 1:1" ,
"3_4" : "Portrait 3:4" ,
"9_16" : "Story 9:16" ,
"4_3" : "Landscape 4:3" ,
"16_9" : "Wide 16:9"
}
},
2026-05-06 14:15:36 +00:00
"tools" : {
"search" : "Search" ,
"reason" : "Reason" ,
"deepResearch" : "Deep research" ,
"voice" : "Voice input"
},
2026-06-09 01:08:49 +08:00
"voice" : {
"hint" : "Click to dictate or hold" ,
"stop" : "Stop recording" ,
"transcribing" : "Transcribing..." ,
"recordingStatus" : "Recording {{time}}"
},
"voiceErrors" : {
"unsupported" : "Voice input is not supported in this browser." ,
"permission" : "Microphone permission is required." ,
"notConfigured" : "Configure a transcription provider first." ,
"tooLong" : "Recording is too long." ,
"tooShort" : "Hold a little longer to record voice." ,
"noInput" : "No microphone input detected." ,
"failed" : "Could not transcribe audio."
},
2026-05-06 15:54:15 +00:00
"slash" : {
"ariaLabel" : "Slash commands" ,
"label" : "commands" ,
"navigateHint" : "↑↓ Navigate" ,
"selectHint" : "Enter/Tab Select" ,
"closeHint" : "Esc Close" ,
2026-05-24 20:56:07 +08:00
"badges" : {
"current" : "Current" ,
"recent" : "Recent"
},
"details" : {
"goalActive" : "Goal is running" ,
"goalReady" : "Start a sustained objective" ,
"history" : "Show recent messages" ,
"stopRunning" : "Running now"
},
2026-05-06 15:54:15 +00:00
"commands" : {
"new" : {
"title" : "New chat" ,
"description" : "Stop the current task and start a fresh conversation."
},
"stop" : {
"title" : "Stop current task" ,
"description" : "Cancel the active agent turn for this chat."
},
"restart" : {
"title" : "Restart nanobot" ,
"description" : "Restart the bot process in place."
},
"status" : {
"title" : "Show status" ,
"description" : "Display runtime, provider, and channel status."
},
2026-05-24 20:56:07 +08:00
"model" : {
"title" : "Model" ,
"description" : "Show or switch the active model preset."
},
2026-05-06 15:54:15 +00:00
"history" : {
"title" : "Show conversation history" ,
"description" : "Print the last N persisted conversation messages."
},
"dream" : {
"title" : "Run Dream" ,
"description" : "Manually trigger memory consolidation."
},
"dream_log" : {
"title" : "Show Dream log" ,
"description" : "Show what the last Dream consolidation changed."
},
"dream_restore" : {
"title" : "Restore memory" ,
"description" : "Revert memory to a previous Dream snapshot."
},
2026-05-16 01:14:11 +08:00
"goal" : {
"title" : "Long-running goal" ,
"description" : "Tell the agent to treat this as a sustained multi-step goal."
},
2026-05-06 15:54:15 +00:00
"help" : {
"title" : "Show help" ,
"description" : "List available slash commands."
2026-05-24 20:56:07 +08:00
},
"pairing" : {
"title" : "Pairing" ,
"description" : "Manage pairing requests."
2026-05-06 15:54:15 +00:00
}
}
},
2026-05-22 22:25:12 +08:00
"mentions" : {
2026-05-25 20:07:02 +08:00
"ariaLabel" : "Apps" ,
"label" : "Apps" ,
"cliGroup" : "CLI apps" ,
"mcpGroup" : "MCP services" ,
2026-05-24 13:38:37 +08:00
"cliBadge" : "CLI" ,
"mcpBadge" : "MCP" ,
"cliDescription" : "Use @{{name}} as a local CLI app" ,
"mcpDescription" : "Use @{{name}} as an MCP server"
2026-05-22 22:25:12 +08:00
},
2026-04-21 10:29:47 +00:00
"encoding" : "Encoding…" ,
"remove" : "Remove attachment" ,
"normalizedSizeHint" : "{{orig}} → {{current}} (auto)" ,
"imageRejected" : {
"unsupported_type" : "Unsupported file type" ,
"too_many_images" : "Max {{max}} images per message" ,
"magic_mismatch" : "File doesn't look like a real image" ,
"decode_failed" : "Couldn't decode this image" ,
"too_large" : "Image is too large — try a smaller one" ,
"io" : "Couldn't read this file"
2026-05-29 03:42:53 +08:00
},
"workspace" : {
"accessAria" : "Workspace access mode" ,
"projectAria" : "Choose project" ,
"projectPlaceholder" : "Select project" ,
"default" : "Default Permission" ,
"full" : "Full Access"
2026-04-21 10:29:47 +00:00
}
2026-04-19 06:39:06 +00:00
},
2026-05-17 17:04:57 +08:00
"scrollToBottom" : "Scroll to bottom" ,
2026-06-06 19:49:33 +08:00
"loadEarlier" : "Load earlier messages" ,
2026-06-10 02:54:19 +08:00
"forkedFromHistory" : "Forked from history" ,
2026-06-06 19:49:33 +08:00
"promptNavigator" : {
"open" : "Open prompt navigator" ,
"title" : "Prompts" ,
"search" : "Search prompts" ,
"noResults" : "No matching prompts." ,
"jumpTo" : "Jump to prompt: {{label}}"
}
2026-04-19 06:39:06 +00:00
},
"message" : {
"streaming" : "streaming" ,
"assistantTyping" : "Assistant is typing" ,
"toolSingle" : "Using a tool" ,
2026-04-21 10:29:47 +00:00
"toolMany" : "Used {{count}} tools" ,
2026-05-16 01:14:11 +08:00
"toolSummary" : "{{count}} tool" ,
"toolSummaryMany" : "{{count}} tools" ,
"reasoningTools" : "Reasoning · {{count}} tools" ,
"reasoningToolsSingular" : "Reasoning · 1 tool" ,
2026-05-13 06:27:53 +00:00
"reasoning" : "Thinking" ,
2026-05-13 07:13:43 +00:00
"reasoningStreaming" : "Thinking…" ,
2026-05-16 01:14:11 +08:00
"reasoningSummary" : "Reasoning" ,
"agentActivitySummary" : "{{reasoning}} steps · {{tools}} tool calls" ,
"agentActivityToolsOnly" : "{{tools}} tool calls" ,
"agentActivityLiveSummary" : "Working… · {{reasoning}} steps · {{tools}} tool calls" ,
"agentActivityLiveToolsOnly" : "Working… · {{tools}} tool calls" ,
2026-05-24 13:38:37 +08:00
"activityThinkingFor" : "Thinking for {{duration}}" ,
2026-05-24 18:38:08 +08:00
"activityThought" : "Thought" ,
2026-05-24 13:38:37 +08:00
"activityThoughtFor" : "Thought for {{duration}}" ,
"cliActivityRunningOne" : "Using @{{name}}" ,
"cliActivityRanOne" : "Used @{{name}}" ,
"cliActivityFailedOne" : "Failed @{{name}}" ,
"cliActivityRunningMany" : "Using {{count}} CLI apps" ,
"cliActivityRanMany" : "Used {{count}} CLI apps" ,
"cliActivityFailedMany" : "{{count}} CLI apps failed" ,
"cliRunRunning" : "Using" ,
"cliRunRan" : "Used" ,
"cliRunFailed" : "Failed" ,
2026-05-06 14:15:36 +00:00
"imageAttachment" : "Image attachment" ,
2026-06-06 19:49:33 +08:00
"automationSourceFallback" : "Automation" ,
"automationTriggered" : "Triggered automatically" ,
2026-06-10 02:07:47 +08:00
"forkFromHere" : "Fork" ,
"copyReply" : "Copy" ,
"copiedReply" : "Copied" ,
2026-05-16 01:14:11 +08:00
"turnLatencyTitle" : "Response time (end-to-end)"
2026-04-21 10:29:47 +00:00
},
"lightbox" : {
"title" : "Image preview" ,
"open" : "View image" ,
"prev" : "Previous image" ,
"next" : "Next image" ,
"close" : "Close image preview"
2026-04-19 06:39:06 +00:00
},
2026-06-06 19:49:33 +08:00
"filePreview" : {
"aria" : "File preview" ,
"close" : "Close file preview" ,
"loading" : "Loading preview..." ,
"failed" : "Could not preview this file." ,
"routeMissing" : "File preview needs the latest gateway. Restart nanobot gateway and try again." ,
"resize" : "Resize file preview" ,
"truncated" : "Preview is truncated because this file is large."
},
2026-04-19 06:39:06 +00:00
"code" : {
"fallbackLanguage" : "code" ,
"copyAria" : "Copy code" ,
"copy" : "Copy" ,
"copied" : "Copied"
2026-04-21 10:29:47 +00:00
},
"common" : {
"dismiss" : "Dismiss"
},
"errors" : {
"messageTooBig" : {
"title" : "Message too large" ,
"body" : "The server rejected your last message because it exceeded the size limit. Remove some images or try smaller files, then send again."
2026-05-29 03:42:53 +08:00
},
"workspaceScopeRejected" : {
"title" : "Workspace was not changed" ,
"body" : "Nanobot kept the previous workspace because the requested project or access mode was rejected by the gateway."
}
},
"workspace" : {
"dialog" : {
"defaultProject" : "Default workspace" ,
"manual" : "Paste path" ,
"manualPlaceholder" : "/Users/name/project" ,
"usePath" : "Use Path" ,
"absolutePathRequired" : "Enter an absolute folder path on this machine."
2026-04-21 10:29:47 +00:00
}
2026-04-19 06:39:06 +00:00
}
}