Files
nanobot/webui/src/i18n/locales/en/common.json
T

341 lines
11 KiB
JSON

{
"app": {
"brand": "nanobot",
"loading": {
"connecting": "Connecting to nanobot…",
"boot": "Loading nanobot…"
},
"error": {
"title": "Couldn't reach nanobot",
"gatewayHint": "Make sure the gateway is running (`nanobot gateway`) and that this page is open on the same machine."
},
"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"
},
"system": {
"section": "System",
"restartHint": "Restart nanobot to apply runtime changes.",
"restart": "Restart nanobot",
"restarting": "Restarting..."
},
"restart": {
"completed": "Restart completed in {{seconds}}s."
},
"documentTitle": {
"base": "nanobot",
"chat": "{{title}} · nanobot"
},
"meta": {
"description": "nanobot web UI — chat with your nanobot workspace."
}
},
"sidebar": {
"navigation": "Sidebar navigation",
"globalActions": "Global actions",
"collapse": "Collapse sidebar",
"toggleTheme": "Toggle theme",
"home": "Home",
"newChat": "New chat",
"searchAria": "Search chats",
"searchPlaceholder": "Search chats",
"searchResults": "Results",
"noSearchResults": "No matching chats.",
"recent": "Recent",
"refreshSessions": "Refresh sessions",
"settings": "Settings",
"language": {
"label": "Language",
"ariaLabel": "Change language"
}
},
"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.",
"openByok": "Open BYOK"
}
},
"chat": {
"fallbackTitle": "Chat {{id}}",
"loading": "Loading…",
"noSessions": "No sessions yet.",
"actions": "Chat actions for {{title}}",
"delete": "Delete",
"newChat": "New chat",
"groups": {
"today": "Today",
"yesterday": "Yesterday",
"earlier": "Earlier"
}
},
"deleteConfirm": {
"title": "Delete this chat?",
"description": "This action cannot be undone.",
"cancel": "Cancel",
"confirm": "Delete"
},
"connection": {
"idle": "Idle",
"connecting": "Connecting…",
"open": "Connected",
"reconnecting": "Reconnecting…",
"closed": "Disconnected",
"error": "Connection error"
},
"thread": {
"loadingConversation": "Loading conversation…",
"empty": {
"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."
}
},
"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."
}
}
},
"header": {
"toggleSidebar": "Toggle sidebar",
"newChat": "Start a new chat",
"toggleTheme": "Toggle theme from header",
"settings": "Open settings"
},
"composer": {
"placeholderThread": "Type your message…",
"placeholderHero": "Ask anything...",
"placeholderOpening": "Opening a new chat…",
"placeholderStreaming": "Model is responding…",
"inputAria": "Message input",
"sendHint": "Enter to send · Shift+Enter for newline",
"send": "Send message",
"stop": "Stop response",
"attachImage": "Attach image",
"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"
}
},
"tools": {
"search": "Search",
"reason": "Reason",
"deepResearch": "Deep research",
"voice": "Voice input"
},
"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."
}
}
},
"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"
}
},
"scrollToBottom": "Scroll to bottom"
},
"message": {
"streaming": "streaming",
"assistantTyping": "Assistant is typing",
"toolSingle": "Using a tool",
"toolMany": "Used {{count}} tools",
"imageAttachment": "Image attachment",
"copyReply": "Copy reply",
"copiedReply": "Copied reply"
},
"lightbox": {
"title": "Image preview",
"open": "View image",
"prev": "Previous image",
"next": "Next image",
"close": "Close image preview"
},
"code": {
"fallbackLanguage": "code",
"copyAria": "Copy code",
"copy": "Copy",
"copied": "Copied"
},
"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."
}
}
}