{
  "title": "Settings",
  "general": {
    "title": "General Settings",
    "language": "Language",
    "languageDescription": "Choose your preferred display language.",
    "theme": "Theme",
    "themeSystem": "System",
    "themeLight": "Light",
    "themeDark": "Dark",
    "zoom": "Zoom level",
    "zoomDescription": "Adjusts the zoom level to make content easier to read.",
    "selectZoom": "Select zoom level",
    "appVersion": "App Version:",
    "autoUpdate": "Auto-update app",
    "autoUpdateDescription": "This will automatically update the app when new versions are available.",
    "releaseChannel": "Release channel",
    "releaseChannelDescription": "Controls which update channel the app uses.",
    "stable": "Stable",
    "beta": "Beta",
    "selectReleaseChannel": "Select release channel",
    "runtimeMode": "Runtime Mode",
    "runtimeModeDescription": "Select the runtime to use for running the app.",
    "selectRuntimeMode": "Select runtime mode",
    "nodePath": "Node.js Path Configuration",
    "browseForNode": "Browse for Node.js",
    "selecting": "Selecting...",
    "resetToDefault": "Reset to Default",
    "customPath": "Custom Path:",
    "systemPath": "System PATH:",
    "notFound": "Not found",
    "nodeConfigured": "Node.js is properly configured and ready to use.",
    "nodeSelectFolder": "Select the folder where Node.js is installed if it's not in your system PATH."
  },
  "workflow": {
    "title": "Workflow Settings",
    "defaultChatMode": "Default Chat Mode",
    "defaultChatModeDescription": "Controls the default chat mode when you open a new chat.",
    "selectDefaultChatMode": "Select default chat mode",
    "autoApprove": "Auto-approve changes",
    "autoApproveDescription": "This will automatically approve code changes and run them.",
    "autoFixProblems": "Auto-fix problems",
    "autoFixProblemsDescription": "This will automatically fix TypeScript errors."
  },
  "ai": {
    "title": "AI Settings",
    "thinkingBudget": "Thinking Budget",
    "thinkingBudgetDescription": "Controls how long the AI model can think. Higher budgets mean more thorough reasoning.",
    "selectThinkingBudget": "Select thinking budget",
    "low": "Low",
    "medium": "Medium",
    "high": "High",
    "maxChatTurns": "Max Chat Turns in Context",
    "maxChatTurnsDescription": "Limits how many recent chat turns are included in context.",
    "selectMaxChatTurns": "Select max turns",
    "unlimited": "Unlimited",
    "turnCount_one": "{{count}} turn",
    "turnCount_other": "{{count}} turns",
    "providers": "AI Providers",
    "failedToLoadProviders": "Failed to load AI providers: {{message}}",
    "freeTierAvailable": "Free tier available",
    "addCustomProvider": "Add custom provider",
    "connectCustomEndpoint": "Connect to a custom LLM API endpoint",
    "editProvider": "Edit Provider",
    "deleteProvider": "Delete Provider",
    "deleteCustomProvider": "Delete Custom Provider",
    "deleteProviderConfirmation": "This will permanently delete this custom provider and all its associated models. This action cannot be undone.",
    "deleteProviderAction": "Delete Provider",
    "configureProvider": "Configure {{name}}",
    "setupComplete": "Setup Complete",
    "notSetup": "Not Setup",
    "createApiKey": "Create your API key with {{name}}",
    "manageApiKeys": "Manage API Keys",
    "setupApiKey": "Setup API Key",
    "providerNotFound": "Provider Not Found",
    "providerNotFoundDescription": "The provider with ID \"{{provider}}\" could not be found.",
    "errorLoadingProvider": "Error Loading Provider Details",
    "errorLoadingSettings": "Error Loading Settings",
    "couldNotLoadProvider": "Could not load provider data: {{message}}",
    "couldNotLoadSettings": "Could not load configuration data: {{message}}",
    "enableDyadPro": "Enable Dyad Pro",
    "toggleDyadPro": "Toggle to enable Dyad Pro",
    "apiKeyEmpty": "API Key cannot be empty.",
    "errorTogglingPro": "Error toggling Dyad Pro: {{error}}",
    "failedSaveApiKey": "Failed to save API key.",
    "failedDeleteApiKey": "Failed to delete API key."
  },
  "telemetry": {
    "title": "Telemetry",
    "description": "This records anonymous usage data to improve the product.",
    "telemetryId": "Telemetry ID:",
    "enable": "Enable Telemetry",
    "privacyNotice": "We use anonymous telemetry data to improve the product. No personal data is collected.",
    "acceptAndContinue": "Accept and Continue",
    "shareAnonymousData": "Share anonymous data?",
    "helpImprove": "Help improve Dyad with anonymous usage data.",
    "noCodeOrMessages": "Note: this does not log your code or messages.",
    "learnMore": "Learn more",
    "accept": "Accept",
    "reject": "Reject",
    "later": "Later"
  },
  "integrations": {
    "title": "Integrations"
  },
  "agentPermissions": {
    "title": "Agent Permissions (Pro)",
    "description": "Configure permissions for Agent built-in tools.",
    "defaultAllowedTools": "Default allowed tools ({{count}})",
    "ask": "Ask",
    "alwaysAllow": "Always allow",
    "neverAllow": "Never allow"
  },
  "toolsMcp": {
    "title": "Tools (MCP)",
    "name": "Name",
    "namePlaceholder": "My MCP Server",
    "transport": "Transport",
    "stdio": "stdio",
    "http": "http",
    "command": "Command",
    "commandPlaceholder": "node",
    "args": "Args",
    "argsPlaceholder": "path/to/mcp-server.js --flag",
    "url": "URL",
    "urlPlaceholder": "http://localhost:3000",
    "addServer": "Add Server",
    "environmentVariables": "Environment Variables",
    "key": "Key",
    "keyPlaceholder": "e.g., PATH",
    "value": "Value",
    "valuePlaceholder": "e.g., /usr/local/bin",
    "addEnvVar": "Add Environment Variable",
    "noEnvVars": "No environment variables configured",
    "keyValueRequired": "Both key and value are required",
    "duplicateKey": "Environment variable with this key already exists",
    "noToolsDiscovered": "No tools discovered.",
    "noServersConfigured": "No servers configured yet.",
    "prefilledServer": "Prefilled {{name}} MCP server",
    "deny": "Deny"
  },
  "experiments": {
    "title": "Experiments",
    "enableNativeGit": "Enable Native Git",
    "enableNativeGitDescription": "This doesn't require any external Git installation and offers a faster, native-Git performance experience."
  },
  "dangerZone": {
    "title": "Danger Zone",
    "resetEverything": "Reset Everything",
    "resetDescription": "This will delete all your apps, chats, and settings. This action cannot be undone.",
    "resetConfirmation": "Are you sure you want to reset everything? This will delete all your apps, chats, and settings. This action cannot be undone.",
    "resetting": "Resetting...",
    "resetSuccess": "Successfully reset everything. Restart the application."
  },
  "apiKey": {
    "fromSettings": "API Key from Settings",
    "currentKey": "Current Key (Settings)",
    "thisKeyActive": "This key is currently active.",
    "setKey": "Set {{name}} API Key",
    "updateKey": "Update {{name}} API Key",
    "enterKey": "Enter new {{name}} API Key here",
    "pasteAndSave": "Paste from clipboard and save",
    "saveKey": "Save Key",
    "overrideEnvVar": "Setting a key here will override the environment variable (if set).",
    "fromEnvVar": "API Key from Environment Variable",
    "envVarKey": "Environment Variable Key ({{name}})",
    "envVarActive": "This key is currently active (no settings key set).",
    "envVarOverridden": "This key is currently being overridden by the key set in Settings.",
    "envVarNotSet": "Environment Variable Not Set",
    "envVarNotSetDescription": "The {{name}} environment variable is not set.",
    "envVarHelpText": "This key is set outside the application. If present, it will be used only if no key is configured in the Settings section above. Requires app restart to detect changes."
  },
  "azure": {
    "configured": "Azure OpenAI Configured",
    "configuredDescription": "Dyad will use the credentials saved in Settings for Azure OpenAI models.",
    "usingEnvVars": "Using Environment Variables",
    "usingEnvVarsDescription": "AZURE_API_KEY and AZURE_RESOURCE_NAME are set. Values saved below will override them.",
    "configRequired": "Azure OpenAI Configuration Required",
    "configRequiredDescription": "Provide your Azure resource name and API key below, or configure the AZURE_API_KEY and AZURE_RESOURCE_NAME environment variables.",
    "resourceName": "Resource Name",
    "resourceNamePlaceholder": "your-azure-openai-resource",
    "apiKey": "API Key",
    "apiKeyPlaceholder": "Enter your Azure OpenAI API key",
    "saveSettings": "Save Settings",
    "saved": "Saved",
    "configNeeded": "Configuration Needed",
    "configNeededDescription": "Azure OpenAI requests require both a resource name and API key. Enter them above or supply the environment variables instead.",
    "saveError": "Save Error",
    "envVarsOptional": "Environment Variables (optional)",
    "envVarsHelpText": "You can continue to configure Azure via environment variables. If both variables are present and no settings are saved, Dyad will use them automatically.",
    "envVarsPrecedence": "Values saved in Settings take precedence over environment variables. Restart Dyad after changing environment variables."
  },
  "vertex": {
    "projectId": "Project ID",
    "projectIdPlaceholder": "your-gcp-project-id",
    "location": "Location",
    "locationPlaceholder": "us-central1",
    "locationHelp": "If you see a \"model not found\" error, try a different region. Some partner models (MaaS) are only available in specific locations (e.g., us-central1, us-west2).",
    "serviceAccountKey": "Service Account JSON Key",
    "serviceAccountKeyPlaceholder": "Paste the full JSON contents of your service account key here",
    "saveSettings": "Save Settings",
    "saved": "Saved",
    "configRequired": "Configuration Required",
    "configRequiredDescription": "Provide Project, Location, and a service account JSON key with Vertex AI access.",
    "saveError": "Save Error",
    "invalidJson": "Service account JSON is invalid: {{message}}"
  },
  "models": {
    "title": "Models",
    "description": "Manage specific models available through this provider.",
    "errorLoading": "Error Loading Models",
    "noCustomModels": "No custom models have been added for this provider yet.",
    "addCustomModel": "Add Custom Model",
    "deleteConfirmTitle": "Are you sure you want to delete this model?",
    "deleteConfirmDescription": "This action cannot be undone. This will permanently delete the custom model \"{{name}}\" (API Name: {{apiName}}).",
    "yesDeleteIt": "Yes, delete it",
    "contextTokens": "Context: {{count}} tokens",
    "maxOutputTokens": "Max Output: {{count}} tokens",
    "modelIdRequired": "Model API name is required",
    "modelNameRequired": "Model display name is required",
    "invalidMaxOutput": "Max Output Tokens must be a valid number",
    "invalidContextWindow": "Context Window must be a valid number",
    "addModelTitle": "Add Custom Model",
    "addModelDescription": "Configure a new language model for the selected provider.",
    "editModelTitle": "Edit Custom Model",
    "editModelDescription": "Modify the configuration of the selected language model.",
    "modelId": "Model ID*",
    "modelIdHelp": "This must match the model expected by the API",
    "modelName": "Name*",
    "modelNameHelp": "Human-friendly name for the model",
    "modelDescription": "Description",
    "modelDescriptionHelp": "Optional: Describe the model's capabilities",
    "maxOutputTokensLabel": "Max Output Tokens",
    "maxOutputTokensHelp": "Optional: e.g., 4096",
    "contextWindowLabel": "Context Window",
    "contextWindowHelp": "Optional: e.g., 8192",
    "adding": "Adding...",
    "addModel": "Add Model",
    "updateModel": "Update Model",
    "modelCreated": "Custom model created successfully!",
    "modelUpdated": "Custom model updated successfully!",
    "failedUpdateSettings": "Failed to update settings"
  },
  "customProvider": {
    "addTitle": "Add Custom Provider",
    "editTitle": "Edit Custom Provider",
    "addDescription": "Connect to a custom language model provider API.",
    "editDescription": "Update your custom language model provider configuration.",
    "providerId": "Provider ID",
    "providerIdPlaceholder": "E.g., my-provider",
    "providerIdHelp": "A unique identifier for this provider (no spaces).",
    "displayName": "Display Name",
    "displayNamePlaceholder": "E.g., My Provider",
    "displayNameHelp": "The name that will be displayed in the UI.",
    "apiBaseUrl": "API Base URL",
    "apiBaseUrlPlaceholder": "E.g., https://api.example.com/v1",
    "apiBaseUrlHelp": "The base URL for the API endpoint.",
    "envVar": "Environment Variable (Optional)",
    "envVarPlaceholder": "E.g., MY_PROVIDER_API_KEY",
    "envVarHelp": "Environment variable name for the API key.",
    "addProvider": "Add Provider",
    "updateProvider": "Update Provider",
    "failedCreate": "Failed to create custom provider"
  },
  "manageDyadPro": "Manage Dyad Pro Subscription",
  "setupDyadPro": "Setup Dyad Pro Subscription"
}
