2025-12-20 20:18:54 +05:30
{
"common" : {
"save" : "Save" ,
"cancel" : "Cancel" ,
"close" : "Close" ,
"clear" : "Clear" ,
"edit" : "Edit" ,
"delete" : "Delete" ,
2026-10-08 16:20:15 +09:00
"loading" : "Loading.."
2025-12-20 20:18:54 +05:30
},
"nav" : {
"editor" : "Editor" ,
2026-10-08 16:20:15 +09:00
"newChat" : "New diagram" ,
2025-12-22 21:54:25 +08:00
"github" : "GitHub" ,
2025-12-20 20:18:54 +05:30
"settings" : "Settings" ,
2026-10-08 16:20:15 +09:00
"hidePanel" : "Hide chat panel" ,
"showPanel" : "Show chat panel" ,
"aiChat" : "AI chat"
2025-12-20 20:18:54 +05:30
},
"providers" : {
"useServerDefault" : "Use Server Default" ,
"openai" : "OpenAI" ,
"anthropic" : "Anthropic" ,
"google" : "Google" ,
"azure" : "Azure OpenAI" ,
"openrouter" : "OpenRouter" ,
"deepseek" : "DeepSeek" ,
2026-01-06 18:41:25 +08:00
"siliconflow" : "SiliconFlow" ,
2026-03-07 17:53:47 +08:00
"modelscope" : "ModelScope" ,
"minimax" : "MiniMax" ,
"glm" : "GLM" ,
"qwen" : "Qwen" ,
"kimi" : "Kimi" ,
2026-07-12 08:10:12 +08:00
"qiniu" : "Qiniu" ,
"mimo" : "MiMo (Xiaomi)"
2025-12-20 20:18:54 +05:30
},
"chat" : {
"placeholder" : "Describe your diagram or upload a file..." ,
2026-10-08 16:20:15 +09:00
"inputLabel" : "Chat input" ,
2025-12-20 20:18:54 +05:30
"send" : "Send" ,
2026-01-29 19:10:25 +05:30
"stopGeneration" : "Stop generation" ,
2025-12-20 20:18:54 +05:30
"sendMessage" : "Send message" ,
"clearConversation" : "Clear conversation" ,
"uploadFile" : "Upload file (image, PDF, text)" ,
"minimalStyle" : "Minimal" ,
"styledMode" : "Styled" ,
"minimalTooltip" : "Use minimal for faster generation (no colors)" ,
"regenerate" : "Regenerate response" ,
"copyResponse" : "Copy response" ,
"copied" : "Copied!" ,
2025-12-30 19:52:57 +08:00
"failedToCopyDetail" : "Failed to copy message. Please copy manually or check clipboard permissions." ,
2025-12-20 20:18:54 +05:30
"goodResponse" : "Good response" ,
"badResponse" : "Bad response" ,
"clickToEdit" : "Click to edit" ,
"editMessage" : "Edit message" ,
2026-10-08 16:20:15 +09:00
"saveAndSubmit" : "Save & submit" ,
"ExtractURL" : "Extract from URL" ,
"attach" : "Add" ,
"placeholderFollowUp" : "Ask for a change, or select shapes to edit them" ,
"emptyThread" : "Draw on the canvas, or describe what you want below." ,
"attachedImage" : "Attached image" ,
"retry" : "Retry"
2025-12-20 20:18:54 +05:30
},
"examples" : {
2026-10-08 16:20:15 +09:00
"paperToDiagram" : "Paper to diagram" ,
2025-12-20 20:18:54 +05:30
"paperDescription" : "Upload .pdf, .txt, .md, .json, .csv, .py, .js, .ts and more" ,
2026-10-08 16:20:15 +09:00
"animatedDiagram" : "Animated diagram" ,
2025-12-20 20:18:54 +05:30
"animatedDescription" : "Draw a transformer architecture with animated connectors" ,
2026-10-08 16:20:15 +09:00
"awsArchitecture" : "AWS architecture" ,
2025-12-20 20:18:54 +05:30
"awsDescription" : "Create a cloud architecture diagram with AWS icons" ,
2026-10-08 16:20:15 +09:00
"replicateFlowchart" : "Replicate a flowchart" ,
2025-12-20 20:18:54 +05:30
"replicateDescription" : "Upload and replicate an existing flowchart" ,
2026-10-08 16:20:15 +09:00
"creativeDrawing" : "Creative drawing" ,
2025-12-20 20:18:54 +05:30
"creativeDescription" : "Draw something fun and creative" ,
2026-10-10 08:22:36 +09:00
"cachedNote" : "Examples use saved answers: they appear instantly and don't call the AI." ,
2025-12-20 20:18:54 +05:30
"mcpServer" : "MCP Server" ,
2026-04-06 10:17:38 +09:00
"mcpDescription" : "Use in Claude Desktop, VS Code & Cursor"
2025-12-20 20:18:54 +05:30
},
"settings" : {
"title" : "Settings" ,
"description" : "Configure your application settings." ,
2026-10-08 16:20:15 +09:00
"accessCode" : "Access code" ,
2025-12-20 20:18:54 +05:30
"accessCodePlaceholder" : "Enter access code" ,
"accessCodeDescription" : "Required to use this application." ,
"aiProvider" : "AI Provider Settings" ,
"aiProviderDescription" : "Use your own API key to bypass usage limits. Your key is stored locally in your browser and is never stored on the server." ,
"provider" : "Provider" ,
"modelId" : "Model ID" ,
"apiKey" : "API Key" ,
"apiKeyPlaceholder" : "Your API key" ,
"baseUrl" : "Base URL (optional)" ,
"customEndpoint" : "Custom endpoint URL" ,
"overrides" : "Overrides" ,
"clearSettings" : "Clear Settings" ,
"useServerDefault" : "Use Server Default" ,
2025-12-22 21:54:25 +08:00
"language" : "Language" ,
"languageDescription" : "Choose your interface language." ,
2025-12-20 20:18:54 +05:30
"theme" : "Theme" ,
2026-10-10 08:22:36 +09:00
"themeDescription" : "Light or dark interface. The canvas follows the same theme." ,
2026-10-08 16:20:15 +09:00
"diagramStyle" : "Diagram style" ,
"diagramStyleDescription" : "How the AI draws new diagrams: Styled uses colors and icons, Minimal keeps shapes plain." ,
"sendShortcut" : "Send shortcut" ,
2026-01-11 07:54:32 +06:00
"sendShortcutDescription" : "Choose how to send messages." ,
"enterToSend" : "Enter to send" ,
"ctrlEnterToSend" : "Cmd/Ctrl+Enter to send" ,
2025-12-28 18:46:10 +05:30
"diagramActions" : "Diagram Actions" ,
"diagramActionsDescription" : "Manage diagram history and exports" ,
"history" : "History" ,
2026-01-09 09:26:19 +09:00
"download" : "Download" ,
2026-10-08 16:20:15 +09:00
"proxy" : "Proxy settings" ,
2026-01-09 09:26:19 +09:00
"proxyDescription" : "Configure HTTP/HTTPS proxy for API requests (Desktop only)" ,
2026-10-08 16:20:15 +09:00
"httpProxy" : "HTTP proxy" ,
"httpsProxy" : "HTTPS proxy" ,
2026-01-09 09:26:19 +09:00
"applyProxy" : "Apply" ,
2026-01-20 20:52:04 +09:00
"proxyApplied" : "Proxy settings applied" ,
2026-10-08 16:20:15 +09:00
"diagramValidation" : "Check diagrams with a screenshot (experimental)" ,
"diagramValidationDescription" : "After each drawing, a model that can read images looks at a screenshot and asks for fixes. Needs a model that can read images." ,
"customSystemMessage" : "Custom instructions" ,
2026-03-07 19:07:54 +09:00
"customSystemMessageDescription" : "Add custom instructions appended to the AI's system prompt." ,
2026-04-03 11:16:01 +08:00
"customSystemMessagePlaceholder" : "e.g., Always use blue color scheme for diagrams..." ,
2026-10-10 08:38:26 +09:00
"maxOutputTokens" : "Output token limit" ,
2026-08-22 20:47:10 +09:00
"maxOutputTokensDescription" : "Budget for one reply, shared by thinking and the diagram XML. Raise it if the AI keeps thinking and no diagram appears. Leave empty for the default." ,
2026-10-08 18:10:07 +09:00
"tabModels" : "Models" ,
2026-10-08 16:20:15 +09:00
"tabAbout" : "About" ,
"themeLight" : "Light" ,
"themeDarkMode" : "Dark" ,
"themeSystem" : "System" ,
"accessCodeSaved" : "Access code saved" ,
"proxyInvalid" : "Proxy addresses must start with http:// or https://" ,
"proxyFailed" : "Couldn't apply the proxy settings" ,
"appVersion" : "Version" ,
2026-10-08 18:10:07 +09:00
"projectWebsite" : "Project website" ,
"tabGeneral" : "General" ,
"tabDrawing" : "Drawing" ,
"sectionInterface" : "Interface" ,
"sectionAccess" : "Access"
2025-12-20 20:18:54 +05:30
},
"save" : {
2026-10-08 16:20:15 +09:00
"title" : "Export diagram" ,
"description" : "Pick a format and a file name." ,
2025-12-20 20:18:54 +05:30
"format" : "Format" ,
"filename" : "Filename" ,
"filenamePlaceholder" : "Enter filename" ,
"formats" : {
2026-10-08 16:20:15 +09:00
"drawio" : "draw.io file" ,
"png" : "PNG image" ,
"svg" : "SVG image" ,
2026-04-03 07:50:57 +08:00
"xmlsvg" : "Editable SVG"
2026-01-04 09:41:32 +05:30
},
2026-10-08 16:20:15 +09:00
"savedSuccessfully" : "Diagram exported" ,
"hints" : {
"drawio" : "Keeps everything editable" ,
"png" : "A picture for slides and documents" ,
"svg" : "A picture that scales without blur" ,
"xmlsvg" : "A picture that still opens in draw.io"
}
2025-12-20 20:18:54 +05:30
},
"dialogs" : {
"clearSuccess" : "Started a fresh chat"
},
"errors" : {
"maxFiles" : "Too many files. Maximum {max} allowed." ,
"onlyMoreAllowed" : "Only {slots} more file(s) allowed" ,
"fileExceeds" : "\"{name}\" is {size} (exceeds {max}MB)" ,
"unsupportedType" : "\"{name}\" is not a supported file type" ,
"filesRejected" : "{count} files rejected:" ,
"andMore" : "...and {count} more" ,
"invalidAccessCode" : "Invalid or missing access code. Please configure it in Settings." ,
"networkError" : "Network error. Please check your connection." ,
"retryLimit" : "Auto-retry limit reached ({max}). Please try again manually." ,
2025-12-30 19:52:57 +08:00
"continuationRetryLimit" : "Continuation retry limit reached ({max}). The diagram may be too complex." ,
2025-12-20 20:18:54 +05:30
"sessionCorrupted" : "Session data was corrupted. Starting fresh." ,
"failedToSave" : "Failed to save messages to localStorage" ,
"failedToRestore" : "Failed to restore from localStorage" ,
"failedToPersist" : "Failed to persist state before unload" ,
"failedToExport" : "Error fetching chart data" ,
2025-12-30 19:52:57 +08:00
"failedToLoadExample" : "Error loading example image" ,
"failedToRecordFeedback" : "Failed to record your feedback. Please try again." ,
2026-10-05 22:39:32 +09:00
"storageUpdateFailed" : "Chat cleared but browser storage could not be updated" ,
"sessionSaveFailed" : "Could not save this chat. Browser storage may be full: delete old chats from history and try again." ,
"sessionSaveFailedLeave" : "Could not save this chat. Browser storage may be full. You can go on without saving it, then delete old chats from the list in the new chat." ,
"continueWithoutSaving" : "Continue without saving" ,
2026-10-08 16:20:15 +09:00
"notADiagramFile" : "{name} isn't a draw.io diagram." ,
"fileTooLong" : "{name}: Content exceeds {limit}k character limit ({size}k chars)" ,
"fileReadFailed" : "Failed to read file: {name}" ,
"answerEndedEarly" : "The answer ended before the diagram was finished." ,
"attachmentsStillReading" : "Attachments are still being read. Send again when they are ready." ,
"sendInProgress" : "The last message is still being sent. Try again in a moment." ,
"answerInProgress" : "An answer is still coming. Send again when it is done." ,
"cannotResend" : "This message can't be sent again: the diagram from when it was sent wasn't saved." ,
2026-10-05 22:39:32 +09:00
"llm" : {
"invalid_api_key" : "The provider rejected the API key. Check it in model settings." ,
"forbidden" : "The provider refused the request. The key may not have access to this model or region." ,
2026-10-06 09:49:48 +09:00
"server_key_forbidden" : "Today's free quota is used up. It resets tomorrow. You can also add your own API key in model settings to keep going." ,
2026-10-05 22:39:32 +09:00
"model_not_found" : "The provider does not know this model. Check the model ID in model settings." ,
"insufficient_quota" : "The provider account has no credit or quota left." ,
"rate_limited" : "The provider is limiting requests. Wait a moment and try again." ,
"context_too_long" : "The conversation is too long for this model. Start a new chat or pick a model with a larger context." ,
"images_unsupported" : "This model doesn't support image input." ,
"tools_unsupported" : "This model doesn't support tool calls, which drawing needs. Pick another model." ,
"output_truncated" : "The output was cut off before the diagram was complete. Try a simpler request or raise the output limit in settings." ,
"provider_unavailable" : "The provider is having problems. Try again later." ,
"cannot_connect" : "Could not reach the provider. Check the base URL and your network." ,
"timeout" : "The provider did not answer in time." ,
"openModelSettings" : "Open model settings"
}
2025-12-20 20:18:54 +05:30
},
"quota" : {
"dailyLimit" : "Daily Quota Reached" ,
"tokenLimit" : "Daily Token Limit Reached" ,
"tpmLimit" : "Rate Limit" ,
"tpmMessage" : "Too many requests. Please wait a moment." ,
2025-12-22 19:30:20 +05:30
"tpmMessageDetailed" : "Rate limit reached ({limit} tokens/min). Please wait {seconds} seconds before sending another request." ,
2026-10-10 08:22:16 +09:00
"messageApi" : "Looks like you've reached today's demo limit. We're glad you're enjoying it; the limit keeps the demo fair for everyone." ,
2026-02-27 07:34:05 -08:00
"messageApiSelfHosted" : null ,
2026-10-10 08:22:16 +09:00
"messageToken" : "Looks like you've reached today's token limit. We're glad you're enjoying it; the limit keeps the demo fair for everyone." ,
2026-02-27 07:34:05 -08:00
"messageTokenSelfHosted" : null ,
2025-12-20 20:18:54 +05:30
"tip" : "<strong>Tip:</strong> You can use your own API key (click the Settings icon) or self-host the project to bypass these limits." ,
2026-02-27 07:34:05 -08:00
"tipSelfHosted" : "<strong>Tip:</strong> You can configure your own API key in the settings to continue using the service." ,
2025-12-29 12:12:22 +09:00
"reset" : "Your limit resets tomorrow. Thanks for understanding." ,
"configModel" : "Use Your API Key" ,
2025-12-20 20:18:54 +05:30
"selfHost" : "Self-host" ,
"sponsor" : "Sponsor" ,
"learnMore" : "Learn more →" ,
"usedOf" : "{used}/{limit}"
},
"tools" : {
"truncated" : "Truncated"
},
"file" : {
"reading" : "Reading..." ,
"chars" : "chars" ,
"removeFile" : "Remove file"
},
2026-01-05 20:53:50 +05:30
"url" : {
"title" : "Extract Content from URL" ,
"description" : "Paste a URL to extract and analyze its content" ,
"Extracting" : "Extracting..." ,
"extract" : "Extract" ,
"Cancel" : "Cancel" ,
"enterUrl" : "Please enter a URL" ,
2026-10-08 16:20:15 +09:00
"invalidFormat" : "Invalid URL format" ,
"failed" : "Couldn't read that page"
2026-01-05 20:53:50 +05:30
},
2025-12-20 20:18:54 +05:30
"reasoning" : {
"thinking" : "Thinking..." ,
"thoughtFor" : "Thought for {duration} seconds" ,
2026-10-05 22:39:32 +09:00
"thoughtForOne" : "Thought for 1 second" ,
2025-12-20 20:18:54 +05:30
"thoughtBrief" : "Thought for a few seconds"
},
2025-12-30 19:52:57 +08:00
"dev" : {
"title" : "Dev: XML Streaming Simulator" ,
"preset" : "Preset:" ,
"selectPreset" : "Select a preset..." ,
"clear" : "Clear" ,
"placeholder" : "Paste mxCell XML here or select a preset..." ,
"interval" : "Interval:" ,
"chars" : "Chars:" ,
"streaming" : "Streaming..." ,
"simulate" : "Simulate" ,
"stop" : "Stop" ,
"testQuotaToast" : "Test Quota Toast" ,
"simulatingMessage" : "[Dev] Simulating XML streaming" ,
"successMessage" : "Successfully displayed the diagram."
},
2025-12-20 20:18:54 +05:30
"about" : {
"modelChange" : "Model Change & Usage Limits" ,
"walletCrying" : "(Or: Why My Wallet is Crying)" ,
"seekingSponsorship" : "Call for Sponsorship" ,
"contactMe" : "Contact Me" ,
"usageNotice" : "Due to high usage, I have changed the model from Claude to minimax-m2 and added some usage limits. See About page for details."
2025-12-22 22:36:36 +09:00
},
2026-01-04 10:25:19 +09:00
"sessionHistory" : {
"tooltip" : "Chat History" ,
"newChat" : "New Chat" ,
2026-10-08 16:20:15 +09:00
"empty" : "No diagrams yet" ,
2026-01-04 10:25:19 +09:00
"emptyHint" : "Start a conversation to begin" ,
"today" : "Today" ,
"yesterday" : "Yesterday" ,
"thisWeek" : "This Week" ,
"earlier" : "Earlier" ,
2026-10-08 16:20:15 +09:00
"deleteTitle" : "Delete this diagram?" ,
"deleteDescription" : "The diagram and its conversation are deleted for good." ,
2026-01-04 10:25:19 +09:00
"justNow" : "Just now" ,
2026-10-08 16:20:15 +09:00
"searchPlaceholder" : "Search diagrams…" ,
"noResults" : "No chats found" ,
"rename" : "Rename" ,
"busyHint" : "Available when the answer is finished"
2026-01-04 10:25:19 +09:00
},
2026-04-03 11:16:01 +08:00
"templates" : {
2026-10-08 16:20:15 +09:00
"emptyTitle" : "No saved prompts yet" ,
"emptyDescription" : "Save a prompt you reuse, for example \"Draw an AWS architecture for…\". It shows up here." ,
"createFirst" : "Save your first prompt" ,
2026-04-03 11:16:01 +08:00
"neverUsed" : "Not used yet" ,
"usedCount" : "{count} uses" ,
2026-10-08 16:20:15 +09:00
"myTemplates" : "Saved prompts" ,
"createTitle" : "Save a prompt" ,
"createDescription" : "Save a prompt to use again later." ,
2026-04-03 11:16:01 +08:00
"promptLabel" : "Prompt" ,
"promptPlaceholder" : "Describe the diagram you want to create..." ,
"promptRequired" : "Prompt is required" ,
"titleLabel" : "Title" ,
"titlePlaceholder" : "Enter a title" ,
"titleHint" : "Leave empty to use the first 20 characters of prompt" ,
"descriptionLabel" : "Description" ,
2026-10-08 16:20:15 +09:00
"descriptionPlaceholder" : "What this prompt is for" ,
"pinnedLabel" : "Pin to top" ,
"pinnedHint" : "Pinned prompts appear at the top of the list" ,
"createButton" : "Save prompt" ,
"createFailed" : "Couldn't save the prompt. Try again." ,
"editTitle" : "Edit saved prompt" ,
"editDescription" : "Change the prompt and its settings." ,
"updateFailed" : "Couldn't update the prompt. Try again." ,
2026-04-03 11:16:01 +08:00
"duplicate" : "Duplicate" ,
"copySuffix" : "(copy)" ,
2026-10-08 16:20:15 +09:00
"deleteTitle" : "Delete this saved prompt?" ,
"deleteDescription" : "The prompt is deleted for good." ,
2026-04-03 11:16:01 +08:00
"confirmSendTitle" : "Replace current input?" ,
2026-10-08 16:20:15 +09:00
"confirmSendDescription" : "You have unsent text in the message box. Sending this prompt replaces it." ,
"confirmSendButton" : "Send prompt" ,
"searchPlaceholder" : "Search saved prompts…" ,
"searchNoResults" : "No saved prompts match" ,
2026-04-03 11:16:01 +08:00
"pin" : "Pin to top" ,
"unpin" : "Unpin from top" ,
2026-10-08 16:20:15 +09:00
"saveAsTemplate" : "Save this prompt" ,
"exportTemplates" : "Export saved prompts" ,
"importTemplates" : "Import saved prompts" ,
"exportEmpty" : "No saved prompts to export" ,
"exportSuccess" : "Exported {count} saved prompt(s)" ,
2026-04-03 11:16:01 +08:00
"importNoFile" : "Please select a JSON file" ,
"importFailed" : "Import failed: {error}" ,
2026-10-08 16:20:15 +09:00
"importSuccess" : "Imported {imported} saved prompt(s), skipped {skipped} duplicate(s)" ,
"saveDisabledHint" : "Type a prompt first"
2026-04-03 11:16:01 +08:00
},
2026-01-20 20:52:04 +09:00
"validation" : {
"title" : "Validate Diagram" ,
"capturing" : "Capturing" ,
"validating" : "Validating" ,
"validatingWithAttempt" : "Validating ({attempt}/{max})" ,
"valid" : "Valid" ,
"validWithWarnings" : "Valid with Warnings" ,
"issuesFound" : "Issues Found" ,
"error" : "Error" ,
"skipped" : "Skipped" ,
"capturedScreenshot" : "Captured Screenshot:" ,
"issuesFoundLabel" : "Issues Found:" ,
"suggestions" : "Suggestions:" ,
"passedValidation" : "Diagram passed visual validation - no issues detected." ,
"improvementRequested" : "Improvement requested - check the new diagram below" ,
"improveWithSuggestions" : "Improve with Suggestions" ,
"regenerateWithFeedback" : "Regenerate the diagram using the validation feedback"
},
2025-12-22 22:36:36 +09:00
"modelConfig" : {
"configure" : "Configure" ,
2026-10-08 18:10:07 +09:00
"addProvider" : "Add provider" ,
2025-12-22 22:36:36 +09:00
"addModel" : "Add Model" ,
"modelId" : "Model ID" ,
"modelLabel" : "Display Label" ,
"streaming" : "Enable Streaming" ,
2026-10-08 18:10:07 +09:00
"deleteProvider" : "Delete provider" ,
2025-12-22 22:36:36 +09:00
"deleteModel" : "Delete Model" ,
"noModels" : "No models configured. Add a model to get started." ,
2026-10-08 18:10:07 +09:00
"validationError" : "The test failed" ,
"addModelFirst" : "Add a model first." ,
2025-12-23 11:42:27 +09:00
"displayName" : "Display Name" ,
2026-10-08 16:20:15 +09:00
"bedrockApiKey" : "Bedrock API key" ,
"bedrockApiKeyHint" : "With an API key, the access keys below are not needed." ,
2025-12-23 11:42:27 +09:00
"awsAccessKeyId" : "AWS Access Key ID" ,
"awsSecretAccessKey" : "AWS Secret Access Key" ,
"awsRegion" : "AWS Region" ,
"selectRegion" : "Select region" ,
2026-10-08 18:10:07 +09:00
"apiKey" : "API key" ,
2025-12-23 11:42:27 +09:00
"enterApiKey" : "Enter your API key" ,
"enterSecretKey" : "Enter your secret access key" ,
"baseUrl" : "Base URL" ,
"optional" : "(optional)" ,
2026-10-05 22:39:32 +09:00
"getApiKey" : "Get API key" ,
"noTools" : "no tool calls" ,
"mayNotDraw" : "models.dev lists no tool call support for this model, so it may not be able to draw." ,
"requestUrl" : "Requests go to {url}" ,
2026-01-20 13:39:33 +00:00
"baseUrlWithExample" : "Base URL (optional, e.g. {example})" ,
2025-12-23 11:42:27 +09:00
"customEndpoint" : "Custom endpoint URL" ,
2026-03-07 17:53:47 +08:00
"minimaxBaseUrlHint" : "Use /anthropic for Anthropic-compatible API (recommended), or /v1 for OpenAI-compatible API" ,
2026-07-12 08:10:12 +08:00
"mimoBaseUrlHint" : "Default works with pay-as-you-go keys (sk-...). Token Plan subscribers (tp-... keys) must set https://token-plan-cn.xiaomimimo.com/v1" ,
2025-12-23 11:42:27 +09:00
"models" : "Models" ,
"customModelId" : "Custom model ID..." ,
"allAdded" : "All added" ,
"modelIdEmpty" : "Model ID cannot be empty" ,
"modelIdExists" : "This model ID already exists" ,
"deleteConfirmDesc" : "Are you sure you want to delete {name}? This will remove all configured models and cannot be undone." ,
"typeToConfirm" : "Type \"{name}\" to confirm" ,
2026-10-08 18:10:07 +09:00
"typeProviderName" : "Type the provider name..." ,
2026-10-08 16:20:15 +09:00
"requestFailed" : "Request failed ({status})" ,
2025-12-23 11:42:27 +09:00
"cancel" : "Cancel" ,
"delete" : "Delete" ,
"clickToChange" : "(click to change)" ,
"usingServerDefault" : "Using server default model" ,
"selectModel" : "Select Model" ,
"searchModels" : "Search models..." ,
"noModelsFound" : "No models found." ,
"default" : "Default" ,
2026-10-10 08:22:36 +09:00
"serverDefault" : "Server model" ,
2026-01-15 21:28:22 +05:30
"serverModels" : "Server Models" ,
"userModels" : "User Models" ,
2025-12-23 11:42:27 +09:00
"configureModels" : "Configure Models..." ,
2026-06-15 00:40:35 +09:00
"serverDefaultModel" : "Server default model" ,
"showValue" : "Show value" ,
2026-10-08 16:20:15 +09:00
"hideValue" : "Hide value" ,
2026-10-08 18:10:07 +09:00
"myProviders" : "My providers" ,
"inUse" : "In use" ,
"listSeparator" : ", " ,
"serverModelsTitle" : "Models from this server" ,
"serverDefaultSummary" : "No API key needed: the server's default model." ,
"statusError" : "{count} failed" ,
"statusIncomplete" : "Not set up yet" ,
"statusUntested" : "{count} untested" ,
"statusOk" : "{count} working" ,
"noModelsYet" : "No models yet" ,
"keysStayLocal" : "API keys stay in this browser on this device and go to the server only with your requests." ,
"useOwnKey" : "Use your own API key" ,
"useOwnKeyHint" : "Add a provider to use its models from the chat's model picker. Pick one to start:" ,
"viewAllProviders" : "See all {count} providers" ,
"searchProviders" : "Search providers, e.g. DeepSeek, Qwen, Ollama" ,
"noProvidersFound" : "No provider matches." ,
"groupVendors" : "Model makers" ,
"groupAggregators" : "Aggregators" ,
"groupCloud" : "Cloud platforms" ,
"groupSelfHosted" : "Self-hosted" ,
"noteBedrock" : "AWS credentials" ,
"noteVertex" : "Express mode key" ,
"noteAzure" : "Key and resource URL" ,
"noteEdgeone" : "No key needed" ,
"noteOllama" : "Key optional" ,
"noteSglang" : "Your server's URL" ,
"added" : "Added" ,
"awsCredentials" : "AWS credentials" ,
"bedrockAuthApiKey" : "Bedrock API key" ,
"bedrockAuthAccessKey" : "Access keys" ,
"moreOptions" : "More options: base URL, display name" ,
"moreOptionsName" : "More options: display name" ,
"keyRejected" : "The provider rejected this API key. Check that the key above was copied in full." ,
"modelNotFound" : "The provider can't find this model ID. Check its spelling." ,
"modelWorks" : "Works" ,
"modelWorksTime" : "Works · {seconds} s" ,
"modelFailed" : "Failed" ,
"modelUntested" : "Untested" ,
"needKey" : "Fill in the API key first." ,
"needAws" : "Fill in the AWS credentials and region first." ,
"needModel" : "Add a model first." ,
"stepConnect" : "Connection" ,
"edgeoneNoKey" : "EdgeOne Pages uses the model service that comes with this site's deployment: no API key needed." ,
"stepModels" : "Models" ,
"fetchAllModels" : "Get all models from {name}" ,
"suggestedLabel" : "Suggested:" ,
"orTypeModelId" : "Or type another model ID" ,
"add" : "Add" ,
"browseModels" : "Browse models" ,
"stepTest" : "Test" ,
"testHint" : "Sends each model a very short message to check that the key and the model work." ,
"testOne" : "Test {model}" ,
"testAll" : "Test all {count} models" ,
"testPassedOne" : "{model} works" ,
"testPassedAll" : "All {count} models work" ,
"answeredIn" : "(answered in {seconds} s)" ,
"useInChat" : "Use {model} in the chat" ,
"backToProviders" : "Back to providers" ,
"deleteProviderOnly" : "Delete {name}" ,
"addProviderEntry" : "Add a provider…" ,
"awsKeysRejected" : "AWS rejected these access keys. Check that both were copied in full." ,
"needAzure" : "Fill in the API key and your Azure resource's base URL first." ,
"validationFailedCountOne" : "{count} model failed the test" ,
"validationFailedCountOther" : "{count} models failed the test" ,
"deleteProviderNamedOne" : "Delete {name} and its model" ,
"deleteProviderNamedOther" : "Delete {name} and its {count} models" ,
"serverModelsSummaryOne" : "No API key needed. {count} model: {names}" ,
"serverModelsSummaryOther" : "No API key needed. {count} models: {names}" ,
"noModelsReturned" : "The provider returned no models." ,
"awsSessionToken" : "AWS session token (optional)" ,
"awsSessionTokenHint" : "Only for temporary credentials: access keys that start with ASIA." ,
"bedrockBothSaved" : "This provider also keeps an access key pair, unused while there is an API key." ,
"removeAccessKeys" : "Remove the access keys"
2026-06-15 00:40:35 +09:00
},
"admin" : {
"title" : "Admin Settings" ,
2026-10-10 08:38:26 +09:00
"loginPrompt" : "Enter the admin password (the ADMIN_PASSWORD environment variable)" ,
2026-06-15 00:40:35 +09:00
"password" : "Password" ,
"signIn" : "Sign In" ,
2026-10-10 08:38:26 +09:00
"signingIn" : "Signing in…" ,
2026-06-15 00:40:35 +09:00
"loginFailed" : "Login failed" ,
2026-10-10 08:38:26 +09:00
"precedence" : "Priority: this page > environment variables > defaults" ,
"notWritable" : "Settings can't be saved on this deployment, only viewed; use environment variables instead" ,
2026-06-15 00:40:35 +09:00
"settingGroups" : "Setting groups" ,
2026-10-10 08:38:26 +09:00
"enabled" : "On" ,
"disabled" : "Off" ,
"enableGroup" : "Turn on {group}" ,
2026-06-15 00:40:35 +09:00
"unsavedChanges" : "Unsaved changes" ,
2026-10-10 08:38:26 +09:00
"saved" : "Saved. Changes apply right away, except items marked \"Needs restart\"" ,
"saveFailed" : "Save failed. Check your connection and try again" ,
"invalidSettings" : "Some settings are invalid; see the notes under them" ,
"discard" : "Discard changes" ,
"saveChanges" : "Save changes" ,
2026-06-15 00:40:35 +09:00
"saving" : "Saving…" ,
2026-10-10 08:38:26 +09:00
"sourceSaved" : "This page" ,
2026-06-15 00:40:35 +09:00
"sourceEnv" : "Env" ,
2026-10-10 08:38:26 +09:00
"sourceSavedTitle" : "Set on this page" ,
"sourceEnvTitle" : "From an environment variable" ,
"restartRequired" : "Needs restart" ,
2026-06-15 00:40:35 +09:00
"modified" : "Modified" ,
"notSet" : "Not set" ,
2026-10-10 08:38:26 +09:00
"savedReplace" : "Saved ({hint}); type a new value to replace it" ,
"showValue" : "Show" ,
"hideValue" : "Hide" ,
"removeValue" : "Clear" ,
"removeValueTitle" : "Clear the saved value" ,
2026-06-15 00:40:35 +09:00
"resetToDefault" : "Reset to default" ,
"models" : "Models" ,
2026-10-10 08:38:26 +09:00
"modelsDescription" : "Models every user can use, no personal API key needed" ,
"addProviderHint" : "Add a provider to offer models to all users" ,
"selectProviderHint" : "Select or add a provider, then enter its key and models" ,
"addProviderToOfferModels" : "Add at least one model before users can see this provider" ,
"managedViaEnv" : "(environment variables)" ,
"envReadOnly" : "Defined in AI_MODELS_CONFIG / ai-models.json; view only here, edit it there" ,
2026-06-15 00:40:35 +09:00
"defaultModel" : "Default Model" ,
2026-10-10 08:38:26 +09:00
"noModelsConfigured" : "No models yet" ,
2026-06-15 00:40:35 +09:00
"modelCount" : "{count} model" ,
"modelCountPlural" : "{count} models" ,
"default" : "Default" ,
"setAsDefault" : "Set as default provider" ,
"defaultProvider" : "Default provider" ,
"modelIdPlaceholder" : "Model ID…" ,
"addModel" : "Add model" ,
"suggested" : "Suggested" ,
"test" : "Test" ,
2026-10-10 08:38:26 +09:00
"testOk" : "Passed ({ms} ms)" ,
2026-06-15 00:40:35 +09:00
"testFailed" : "Failed" ,
2026-10-10 08:38:26 +09:00
"removeModel" : "Delete {model}" ,
2026-06-15 00:40:35 +09:00
"deleteProviderTitle" : "Delete {name}?" ,
2026-10-10 08:38:26 +09:00
"deleteProviderDesc" : "After you save, its key and models are deleted from the server" ,
2026-06-15 00:40:35 +09:00
"cancel" : "Cancel" ,
"delete" : "Delete" ,
"groups" : {
"generation" : {
2026-10-10 08:38:26 +09:00
"title" : "Replies" ,
"description" : "How the AI replies, for every conversation"
2026-06-15 00:40:35 +09:00
},
"access" : {
2026-10-10 08:38:26 +09:00
"title" : "Access" ,
"description" : "Limit who can use this site"
2026-06-15 00:40:35 +09:00
},
"features" : {
2026-10-10 08:38:26 +09:00
"title" : "Optional Features" ,
"description" : "Extra features and safety options"
2026-06-15 00:40:35 +09:00
},
"observability" : {
2026-10-10 08:38:26 +09:00
"title" : "Call Logs" ,
"description" : "Record model calls with Langfuse"
2026-06-15 00:40:35 +09:00
},
"quota" : {
2026-10-10 08:38:26 +09:00
"title" : "Usage Limits" ,
"description" : "Per-IP limits; they take effect only with a DynamoDB table"
2026-06-15 00:40:35 +09:00
}
},
"settings" : {
"TEMPERATURE" : {
"label" : "Temperature" ,
2026-10-10 08:38:26 +09:00
"description" : "Higher is more random; leave empty for reasoning models that don't support it"
2026-06-15 00:40:35 +09:00
},
"MAX_OUTPUT_TOKENS" : {
2026-10-10 08:38:26 +09:00
"label" : "Output Token Limit"
2026-06-15 00:40:35 +09:00
},
"ACCESS_CODE_LIST" : {
"label" : "Access Codes" ,
2026-10-10 08:38:26 +09:00
"description" : "Separate several with commas; users must enter one to chat; empty means no limit"
2026-06-15 00:40:35 +09:00
},
"ENABLE_VLM_VALIDATION" : {
2026-10-10 08:38:26 +09:00
"label" : "Diagram Check" ,
"description" : "After drawing, a model that can see images checks a screenshot"
2026-06-15 00:40:35 +09:00
},
"VALIDATION_MODEL" : {
2026-10-10 08:38:26 +09:00
"label" : "Check Model" ,
"description" : "Empty means the default model"
2026-06-15 00:40:35 +09:00
},
"VALIDATION_TIMEOUT" : {
2026-10-10 08:38:26 +09:00
"label" : "Check Timeout (ms)"
2026-06-15 00:40:35 +09:00
},
"ENABLE_HISTORY_XML_REPLACE" : {
2026-10-10 08:38:26 +09:00
"label" : "Trim Old Diagrams" ,
"description" : "Old diagrams in the chat history are kept as a short marker"
2026-06-15 00:40:35 +09:00
},
"ALLOW_PRIVATE_URLS" : {
"label" : "Allow Private URLs" ,
2026-10-10 08:38:26 +09:00
"description" : "When off, custom model URLs can't point to private networks; safer"
2026-06-15 00:40:35 +09:00
},
"LANGFUSE_PUBLIC_KEY" : {
"label" : "Langfuse Public Key"
},
"LANGFUSE_SECRET_KEY" : {
"label" : "Langfuse Secret Key"
},
"LANGFUSE_BASEURL" : {
2026-10-10 08:38:26 +09:00
"label" : "Langfuse URL"
2026-06-15 00:40:35 +09:00
},
"DAILY_REQUEST_LIMIT" : {
2026-10-10 08:38:26 +09:00
"label" : "Daily Requests" ,
"description" : "Requests per IP per day"
2026-06-15 00:40:35 +09:00
},
"DAILY_TOKEN_LIMIT" : {
2026-10-10 08:38:26 +09:00
"label" : "Daily Tokens" ,
"description" : "Tokens per IP per day"
2026-06-15 00:40:35 +09:00
},
"TPM_LIMIT" : {
"label" : "Tokens Per Minute"
},
"DYNAMODB_QUOTA_TABLE" : {
2026-10-10 08:38:26 +09:00
"label" : "DynamoDB Table Name" ,
"description" : "Empty means no usage limits"
2026-06-15 00:40:35 +09:00
},
"DYNAMODB_REGION" : {
"label" : "DynamoDB Region"
},
"QUOTA_TIMEZONE" : {
2026-10-10 08:38:26 +09:00
"label" : "Time Zone" ,
"description" : "Daily usage resets at midnight in this time zone"
2026-06-15 00:40:35 +09:00
}
}
2026-10-08 16:20:15 +09:00
},
"workspace" : {
"export" : "Export" ,
"openFile" : "Open .drawio file" ,
"canvasLoading" : "Loading the canvas…" ,
"askAi" : "Ask AI to change this" ,
"untitled" : "Untitled diagram" ,
"mobileCanvas" : "Canvas" ,
"mobileChat" : "Chat"
},
"selection" : {
"one" : "Selected: {label}" ,
"many" : "{count} shapes selected" ,
"shape" : "shape" ,
"connector" : "connector" ,
"remove" : "Don't send the selection" ,
"placeholder" : "Describe how to change the selected shapes"
},
"versions" : {
"strip" : "Versions" ,
"created" : "Drew the diagram" ,
"edited" : "Changed the diagram" ,
"undone" : "Change undone" ,
"undo" : "Undo change" ,
"redo" : "Redo change" ,
"compare" : "Compare" ,
"compareTitle" : "Compare versions" ,
"currentCanvas" : "Canvas now" ,
"versionLabel" : "Version {n}" ,
"previous" : "Previous version" ,
"next" : "Next version" ,
"rendering" : "Rendering preview…" ,
"showCode" : "Show XML" ,
"hideCode" : "Hide XML" ,
"drawing" : "Drawing the diagram…" ,
"editing" : "Changing the diagram…" ,
"loadingLibrary" : "Loading a shape library…" ,
"libraryLoaded" : "Loaded a shape library" ,
"failed" : "This attempt failed" ,
"failedRetrying" : "This attempt failed, trying again" ,
"stopped" : "Stopped" ,
2026-10-08 18:10:07 +09:00
"truncatedHint" : "The reply hit the output limit before the diagram was complete. Ask for a simpler diagram, or raise Max output tokens in Settings > Drawing." ,
2026-10-08 16:20:15 +09:00
"noChanges" : "No visible changes" ,
"listSeparator" : ", " ,
"shapesAddedOne" : "added 1 shape" ,
"shapesAddedOther" : "added {count} shapes" ,
"edgesAddedOne" : "added 1 connector" ,
"edgesAddedOther" : "added {count} connectors" ,
"shapesChangedOne" : "changed 1 shape" ,
"shapesChangedOther" : "changed {count} shapes" ,
"edgesChangedOne" : "changed 1 connector" ,
"edgesChangedOther" : "changed {count} connectors" ,
"shapesRemovedOne" : "removed 1 shape" ,
"shapesRemovedOther" : "removed {count} shapes" ,
"edgesRemovedOne" : "removed 1 connector" ,
"edgesRemovedOther" : "removed {count} connectors" ,
"totals" : "{shapes}, {edges}" ,
"shapesTotalOne" : "1 shape" ,
"shapesTotalOther" : "{count} shapes" ,
"edgesTotalOne" : "1 connector" ,
"edgesTotalOther" : "{count} connectors" ,
"restoreVersion" : "Restore v{n}" ,
"restoredVersion" : "Restored v{n}" ,
"undoRestore" : "Undo" ,
"noPreview" : "No preview" ,
"compareSince" : "Since version {n}, the canvas has changed:" ,
"isOnCanvas" : "This version is what the canvas shows now." ,
"differsElsewhere" : "The shapes and connectors on the first page are the same as in version {n}; their order, other pages or the page settings differ."
},
"lobby" : {
"title" : "What would you like to draw?" ,
2026-10-10 08:22:36 +09:00
"lede" : "Describe a diagram or upload a screenshot or PDF. You get a draw.io diagram you can keep editing and export." ,
2026-10-08 16:20:15 +09:00
"placeholder" : "For example: a login sequence diagram with SMS codes and retries" ,
"recent" : "Recent diagrams" ,
"drawYourself" : "Start with a blank canvas" ,
"openFileHint" : "Keep working on a diagram you have"
2026-10-11 13:04:32 +09:00
},
"shell" : {
"waiting" : "Waiting for the MCP server…" ,
"toggleTheme" : "Switch between light and dark"
2025-12-20 20:18:54 +05:30
}
}