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" ,
"restarting" : "Restarting..."
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" ,
"globalActions" : "Global actions" ,
2026-04-19 06:39:06 +00:00
"collapse" : "Collapse sidebar" ,
"toggleTheme" : "Toggle theme" ,
2026-05-06 14:15:36 +00:00
"home" : "Home" ,
2026-04-19 06:39:06 +00:00
"newChat" : "New chat" ,
2026-05-06 14:15:36 +00:00
"searchAria" : "Search chats" ,
"searchPlaceholder" : "Search chats" ,
"searchResults" : "Results" ,
"noSearchResults" : "No matching chats." ,
2026-04-19 06:39:06 +00:00
"recent" : "Recent" ,
"refreshSessions" : "Refresh sessions" ,
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-08 15:31:52 +00:00
"settings" : {
"backToChat" : "Back to chat" ,
"sidebar" : {
"title" : "Settings" ,
"ariaLabel" : "Settings sections"
},
"nav" : {
"general" : "General" ,
"byok" : "BYOK"
},
"sections" : {
"interface" : "Interface" ,
"ai" : "AI" ,
"system" : "System"
},
"rows" : {
"theme" : "Theme" ,
"language" : "Language" ,
"provider" : "Provider" ,
"model" : "Model" ,
"restart" : "Restart nanobot" ,
"configPath" : "Config path"
},
"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." ,
"configPath" : "The gateway configuration file currently in use."
},
"values" : {
"light" : "Light" ,
"dark" : "Dark" ,
"notAvailable" : "Not available"
},
"status" : {
"loading" : "Loading settings..." ,
"loadError" : "Could not load settings" ,
"unsaved" : "Unsaved changes." ,
"savedRestart" : "Saved. Restart nanobot to apply."
},
"actions" : {
"save" : "Save" ,
"saving" : "Saving" ,
"edit" : "Edit" ,
"cancel" : "Cancel"
},
"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-08 15:31:52 +00:00
}
},
2026-04-19 06:39:06 +00:00
"chat" : {
"fallbackTitle" : "Chat {{id}}" ,
"loading" : "Loading…" ,
"noSessions" : "No sessions yet." ,
"actions" : "Chat actions for {{title}}" ,
"delete" : "Delete" ,
2026-05-06 14:15:36 +00:00
"newChat" : "New chat" ,
"groups" : {
"today" : "Today" ,
"yesterday" : "Yesterday" ,
"earlier" : "Earlier"
}
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" ,
"confirm" : "Delete"
},
"connection" : {
"idle" : "Idle" ,
"connecting" : "Connecting…" ,
"open" : "Connected" ,
"reconnecting" : "Reconnecting…" ,
"closed" : "Disconnected" ,
"error" : "Connection error"
},
"thread" : {
"loadingConversation" : "Loading conversation…" ,
"empty" : {
2026-05-06 14:15:36 +00:00
"greeting" : "What can I do for you?" ,
"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" ,
"settings" : "Open settings"
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-04-21 10:29:47 +00:00
"send" : "Send message" ,
2026-05-08 09:40:15 +00:00
"stop" : "Stop response" ,
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-05-06 15:54:15 +00:00
"slash" : {
"ariaLabel" : "Slash commands" ,
"label" : "commands" ,
"navigateHint" : "↑↓ Navigate" ,
"selectHint" : "Enter/Tab Select" ,
"closeHint" : "Esc Close" ,
"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."
},
"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."
},
"help" : {
"title" : "Show help" ,
"description" : "List available slash commands."
}
}
},
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-04-19 06:39:06 +00:00
},
"scrollToBottom" : "Scroll to bottom"
},
"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-13 06:27:53 +00:00
"reasoning" : "Thinking" ,
2026-05-06 14:15:36 +00:00
"imageAttachment" : "Image attachment" ,
"copyReply" : "Copy reply" ,
"copiedReply" : "Copied reply"
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
},
"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-04-19 06:39:06 +00:00
}
}