{
    "common": {
        "save": "Save",
        "cancel": "Cancel",
        "close": "Close",
        "confirm": "Confirm",
        "clear": "Clear",
        "edit": "Edit",
        "delete": "Delete",
        "loading": "Loading..",
        "new": "NEW"
    },
    "nav": {
        "about": "About",
        "editor": "Editor",
        "newChat": "Start fresh chat",
        "settings": "Settings",
        "hidePanel": "Hide chat panel (Ctrl+B)",
        "showPanel": "Show chat panel (Ctrl+B)",
        "aiChat": "AI Chat"
    },
    "providers": {
        "useServerDefault": "Use Server Default",
        "openai": "OpenAI",
        "anthropic": "Anthropic",
        "google": "Google",
        "azure": "Azure OpenAI",
        "openrouter": "OpenRouter",
        "deepseek": "DeepSeek",
        "siliconflow": "SiliconFlow"
    },
    "chat": {
        "placeholder": "Describe your diagram or upload a file...",
        "send": "Send",
        "sending": "Sending...",
        "sendMessage": "Send message",
        "clearConversation": "Clear conversation",
        "diagramHistory": "Diagram history",
        "saveDiagram": "Save diagram",
        "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!",
        "failedToCopy": "Failed to copy",
        "goodResponse": "Good response",
        "badResponse": "Bad response",
        "clickToEdit": "Click to edit",
        "editMessage": "Edit message",
        "saveAndSubmit": "Save & Submit"
    },
    "examples": {
        "title": "Create diagrams with AI",
        "subtitle": "Describe what you want to create or upload an image to replicate",
        "quickExamples": "Quick Examples",
        "paperToDiagram": "Paper to Diagram",
        "paperDescription": "Upload .pdf, .txt, .md, .json, .csv, .py, .js, .ts and more",
        "animatedDiagram": "Animated Diagram",
        "animatedDescription": "Draw a transformer architecture with animated connectors",
        "awsArchitecture": "AWS Architecture",
        "awsDescription": "Create a cloud architecture diagram with AWS icons",
        "replicateFlowchart": "Replicate Flowchart",
        "replicateDescription": "Upload and replicate an existing flowchart",
        "creativeDrawing": "Creative Drawing",
        "creativeDescription": "Draw something fun and creative",
        "cachedNote": "Examples are cached for instant response",
        "mcpServer": "MCP Server",
        "mcpDescription": "Use in Claude Desktop, VS Code & Cursor",
        "preview": "PREVIEW"
    },
    "settings": {
        "title": "Settings",
        "description": "Configure your application settings.",
        "accessCode": "Access Code",
        "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",
        "theme": "Theme",
        "themeDescription": "Dark/Light mode for interface and DrawIO canvas.",
        "drawioStyle": "DrawIO Style",
        "drawioStyleDescription": "Canvas style:",
        "switchTo": "Switch to",
        "minimal": "Minimal",
        "sketch": "Sketch",
        "closeProtection": "Close Protection",
        "closeProtectionDescription": "Show confirmation when leaving the page."
    },
    "save": {
        "title": "Save Diagram",
        "description": "Choose a format and filename to save your diagram.",
        "format": "Format",
        "filename": "Filename",
        "filenamePlaceholder": "Enter filename",
        "formats": {
            "drawio": "Draw.io XML",
            "png": "PNG Image",
            "svg": "SVG Image"
        }
    },
    "history": {
        "title": "Diagram History",
        "description": "Here saved each diagram before AI modification.\nClick on a diagram to restore it",
        "noHistory": "No history available yet. Send messages to create diagram history.",
        "version": "Version",
        "restoreTo": "Restore to Version {version}?"
    },
    "dialogs": {
        "clearTitle": "Clear Everything?",
        "clearDescription": "This will clear the current conversation and reset the diagram. This action cannot be undone.",
        "clearEverything": "Clear Everything",
        "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.",
        "validationFailed": "Diagram validation failed. Please try regenerating.",
        "malformedXml": "AI generated invalid diagram XML. Please try regenerating.",
        "failedToProcess": "Failed to process diagram. Please try regenerating.",
        "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",
        "failedToLoadExample": "Error loading example image"
    },
    "quota": {
        "dailyLimit": "Daily Quota Reached",
        "tokenLimit": "Daily Token Limit Reached",
        "tpmLimit": "Rate Limit",
        "tpmMessage": "Too many requests. Please wait a moment.",
        "messageApi": "Oops — you've reached the daily API limit for this demo! As an indie developer covering all the API costs myself, I have to set these limits to keep things sustainable.",
        "messageToken": "Oops — you've reached the daily token limit for this demo! As an indie developer covering all the API costs myself, I have to set these limits to keep things sustainable.",
        "tip": "<strong>Tip:</strong> You can use your own API key (click the Settings icon) or self-host the project to bypass these limits.",
        "reset": "Your limit resets tomorrow. Thanks for understanding!",
        "selfHost": "Self-host",
        "sponsor": "Sponsor",
        "learnMore": "Learn more →",
        "usedOf": "{used}/{limit}"
    },
    "tools": {
        "generateDiagram": "Generate Diagram",
        "editDiagram": "Edit Diagram",
        "appendDiagram": "Continue Diagram",
        "complete": "Complete",
        "error": "Error",
        "truncated": "Truncated"
    },
    "file": {
        "reading": "Reading...",
        "chars": "chars",
        "removeFile": "Remove file"
    },
    "reasoning": {
        "thinking": "Thinking...",
        "thoughtFor": "Thought for {duration} seconds",
        "thoughtBrief": "Thought for a few seconds"
    },
    "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."
    },
    "modelConfig": {
        "title": "AI Model Configuration",
        "description": "Configure multiple AI providers and models",
        "configure": "Configure",
        "addProvider": "Add Provider",
        "addModel": "Add Model",
        "modelId": "Model ID",
        "modelLabel": "Display Label",
        "streaming": "Enable Streaming",
        "deleteProvider": "Delete Provider",
        "deleteModel": "Delete Model",
        "noModels": "No models configured. Add a model to get started.",
        "selectProvider": "Select a provider or add a new one",
        "configureMultiple": "Configure multiple AI providers and switch between them easily",
        "apiKeyStored": "API keys are stored locally in your browser",
        "test": "Test",
        "validationError": "Validation failed",
        "addModelFirst": "Add at least one model to validate"
    }
}
