{
  "ai-chat-ui.show-settings": "Show AI Settings",
  "ai.executePlanWithCoder": "Execute Current Plan with Coder",
  "aiConfiguration:open": "Open AI Configuration view",
  "aiHistory:clear": "AI History: Clear History",
  "aiHistory:open": "Open AI History view",
  "aiHistory:sortChronologically": "AI History: Sort chronologically",
  "aiHistory:sortReverseChronologically": "AI History: Sort reverse chronologically",
  "aiHistory:toggleCompact": "AI History: Toggle compact view",
  "aiHistory:toggleHideNewlines": "AI History: Stop interpreting newlines",
  "aiHistory:toggleRaw": "AI History: Toggle raw view",
  "aiHistory:toggleRenderNewlines": "AI History: Interpret newlines",
  "debug.breakpoint.editCondition": "Edit Condition...",
  "debug.breakpoint.removeSelected": "Remove Selected Breakpoints",
  "debug.breakpoint.toggleEnabled": "Toggle Enable Breakpoints",
  "notebook.cell.changeToCode": "Change Cell to Code",
  "notebook.cell.changeToMarkdown": "Change Cell to Markdown",
  "notebook.cell.insertMarkdownCellAbove": "Insert Markdown Cell Above",
  "notebook.cell.insertMarkdownCellBelow": "Insert Markdown Cell Below",
  "terminal:new:profile": "Create New Integrated Terminal from a Profile",
  "terminal:profile:default": "Choose the default Terminal Profile",
  "theia": {
    "ai": {
      "agents": {
        "capabilityOverrides": {
          "mdDescription": "User overrides for template-based capabilities. Keys are capability fragment IDs, values are enabled (true) or disabled (false).",
          "title": "Capability Overrides"
        },
        "completionNotification": {
          "mdDescription": "Notification behavior when this agent completes a task. If not set, the global default notification setting will be used.\n                    - `os-notification`: Show OS/system notifications\n                    - `message`: Show notifications in the status bar/message area\n                    - `blink`: Blink or highlight the UI\n                    - `off`: Disable notifications for this agent",
          "title": "Completion Notification"
        },
        "enable": {
          "mdDescription": "Specifies whether the agent should be enabled (true) or disabled (false).",
          "title": "Enable Agent"
        },
        "genericCapabilitySelections": {
          "agentDelegation": "Selected agent IDs for delegation",
          "functions": "Selected function IDs",
          "mcpFunctions": "Selected MCP function IDs",
          "mdDescription": "User selections for generic capabilities such as skills, functions, and MCP tools.",
          "promptFragments": "Selected prompt fragment IDs",
          "skills": "Selected skill IDs",
          "title": "Generic Capability Selections",
          "variables": "Selected variable names"
        },
        "languageModelRequirements": {
          "identifier": {
            "mdDescription": "The identifier of the language model to be used."
          },
          "mdDescription": "Specifies the used language models for this agent.",
          "purpose": {
            "mdDescription": "The purpose for which this language model is used.",
            "title": "Purpose"
          },
          "title": "Language Model Requirements"
        },
        "mdDescription": "Configure agent settings such as enabling or disabling specific agents, configuring prompts and         selecting LLMs.",
        "selectedVariants": {
          "mdDescription": "Specifies the currently selected prompt variants for this agent.",
          "title": "Selected Variants"
        },
        "showInChat": {
          "mdDescription": "Specifies whether the agent should be shown in the chat UI (true) or hidden (false).",
          "title": "Show in Chat"
        },
        "title": "Agent Settings"
      },
      "anthropic": {
        "apiKey": {
          "description": "Enter an API Key of your official Anthropic Account. **Please note:** By using this preference the Anthropic API key will be stored in clear text            on the machine running Theia. Use the environment variable `ANTHROPIC_API_KEY` to set the key securely."
        },
        "customEndpoints": {
          "apiKey": {
            "title": "Either the key to access the API served at the given url or `true` to use the global Anthropic API key"
          },
          "enableStreaming": {
            "title": "Indicates whether the streaming API shall be used. `true` by default."
          },
          "id": {
            "title": "A unique identifier which is used in the UI to identify the custom model"
          },
          "maxRetries": {
            "title": "Maximum number of retries when a request fails. 3 by default"
          },
          "mdDescription": "Integrate custom models compatible with the Anthropic API. The required attributes are `model` and `url`.            \n            Optionally, you can            \n            - specify a unique `id` to identify the custom model in the UI. If none is given `model` will be used as `id`.            \n            - provide an `apiKey` to access the API served at the given url. Use `true` to indicate the use of the global anthropic API key.            \n            - specify `enableStreaming: false` to indicate that streaming shall not be used.            \n            - specify `useCaching: false` to indicate that prompt caching shall not be used.            \n            - specify `maxRetries: <number>` to indicate the maximum number of retries when a request fails. 3 by default.",
          "modelId": {
            "title": "Model ID"
          },
          "url": {
            "title": "The Anthropic API compatible endpoint where the model is hosted"
          },
          "useCaching": {
            "title": "Indicates whether the model supports prompt caching. `true` by default"
          }
        },
        "models": {
          "description": "Official Anthropic models to use"
        }
      },
      "chat": {
        "agent": {
          "architect": "Architect",
          "coder": "Coder",
          "universal": "Universal"
        },
        "app-tester": {
          "description": "This agent tests your application user interface to verify user-specified test scenarios through browser automation. It can automate testing workflows and provide detailed feedback on application functionality."
        },
        "applySuggestion": "Apply suggestion",
        "bypassModelRequirement": {
          "description": "Bypass the language model requirement check. Enable this if you are using external agents (e.g., Claude Code) that do not require Theia language models."
        },
        "changeSetDefaultTitle": "Suggested Changes",
        "changeSetFileDiffUriLabel": "AI Changes: {0}",
        "chatAgentsVariable": {
          "description": "Returns the list of chat agents available in the system"
        },
        "chatSessionNamingAgent": {
          "description": "Agent for generating chat session names",
          "vars": {
            "conversation": {
              "description": "The content of the chat conversation."
            },
            "listOfSessionNames": {
              "description": "The list of existing session names."
            }
          }
        },
        "chatSessionSummaryAgent": {
          "description": "Agent for generating chat session summaries."
        },
        "clipboardSeparator": "clipboard",
        "confirmApplySuggestion": "The file {0} has changed since this suggestion was created. Are you certain you wish to apply the change?",
        "confirmRevertSuggestion": "The file {0} has changed since this suggestion was created. Are you certain you wish to revert the change?",
        "couldNotFindMatchingLM": "Couldn't find a matching language model. Please check your setup!",
        "couldNotFindReadyLMforAgent": "Couldn't find a ready language model for agent {0}. Please check your setup!",
        "defaultAgent": {
          "description": "Optional: <agent-name> of the Chat Agent that shall be invoked, if no agent is explicitly mentioned with @<agent-name> in the user query.         If no Default Agent is configured, Theia´s defaults will be applied."
        },
        "fromClipboard": "From Clipboard",
        "fromClipboardDescription": "Paste image from clipboard",
        "imageContextVariable": {
          "args": {
            "data": {
              "description": "The image data in base64."
            },
            "mimeType": {
              "description": "The mimetype of the image."
            },
            "name": {
              "description": "The name of the image file if available."
            },
            "wsRelativePath": {
              "description": "The workspace-relative path of the image file if available."
            }
          },
          "description": "Provides context information for an image",
          "label": "Image File"
        },
        "imagePickerPlaceholder": "Select an image file or search by name",
        "orchestrator": {
          "description": "This agent analyzes the user request against the description of all available chat agents and selects the best fitting agent to answer the request     (by using AI).The user's request will be directly delegated to the selected agent without further confirmation.",
          "vars": {
            "availableChatAgents": {
              "description": "The list of chat agents that the orchestrator can delegate to, excluding agents specified in the exclusion list preference."
            }
          }
        },
        "pendingImage": {
          "file": "Pending image: {0}",
          "pasted": "Pending image (pasted)"
        },
        "persistedSessionLimit": {
          "description": "Maximum number of chat sessions to persist. Use -1 for unlimited sessions, 0 to disable session persistence. When the limit is reduced, the oldest sessions exceeding the new limit are automatically removed on the next save."
        },
        "pinChatAgent": {
          "description": "Enable agent pinning to automatically keep a mentioned chat agent active across prompts, reducing the need for repeated mentions.        You can manually unpin or switch agents anytime."
        },
        "revertSuggestion": "Revert suggestion",
        "sessionStorageScope": {
          "description": "Choose whether to persist chat sessions in separate per-workspace stores or in a single global store. If no workspace is open, sessions will fall back to global storage.",
          "global": "Store chat sessions in a single store, shared across all workspaces.",
          "workspace": "Store chat sessions in workspace-specific metadata storage. Sessions are associated with the workspace but stored outside the workspace directory."
        },
        "taskContextService": {
          "summarizeProgressMessage": "Summarize: {0}"
        },
        "taskContextStorageDirectory": {
          "description": "A workspace relative path in which to persist and from which to retrieve task context descriptions. If set to empty value, generated task contexts will be stored in memory rather than on disk."
        },
        "toolConfirmation": {
          "confirm": {
            "description": "Ask for confirmation before executing tools"
          },
          "description": "Configure confirmation behavior for different tools. Key is the tool ID, value is the confirmation mode. Use \"*\" as the key to set a global default for all tools.",
          "disabled": {
            "description": "Disable tool execution"
          },
          "yolo": {
            "description": "Execute tools automatically without confirmation"
          }
        },
        "toolConfirmationTimeout": {
          "denialReason": "Confirmation timed out after {0} seconds",
          "description": "Timeout in seconds for tool confirmation dialogs. When set to a positive value, tool confirmations will automatically be denied after the specified duration. Set to 0 to disable (default)."
        },
        "universal": {
          "description": "This agent is designed to help software developers by providing concise and accurate answers to general programming and software development questions. It is also the fall-back for any generic questions the user might ask. The universal agent currently does not have any context by default, i.e. it cannot access the current user context or the workspace."
        },
        "view": {
          "label": "AI Chat"
        },
        "welcomeScreenSessions": {
          "description": "Number of rows of recent chat sessions to display on the welcome screen. The number of visible sessions depends on the available width. Set to 0 to hide the recent chats section."
        }
      },
      "chat-ui": {
        "addContextVariable": "Add context variable",
        "agentDelegationDescription": "Other AI agents that can be delegated to",
        "aiDisabled": "AI features are disabled",
        "applyAll": "Apply All",
        "applyAllTitle": "Apply all pending changes",
        "askQuestion": "Ask a question",
        "attachToContext": "Attach elements to context",
        "cancel": "Cancel (Esc)",
        "chat-view-tree-widget": {
          "ai": "AI",
          "generating": "Generating",
          "noRenderer": "Error: No renderer found",
          "scrollToBottom": "Jump to latest message",
          "waitingForInput": "Waiting for input",
          "you": "You"
        },
        "chatInput": {
          "clearHistory": "Clear Input Prompt History",
          "cycleMode": "Cycle Chat Mode",
          "nextPrompt": "Next Prompt",
          "pasteWithImageSupport": "Paste (with image support)",
          "previousPrompt": "Previous Prompt",
          "toggleCapabilities": "Toggle Capabilities Configuration"
        },
        "chatInputAriaLabel": "Type your message here",
        "chatResponses": "Chat responses",
        "clearAllSelections": "Clear search string and capability selections to saved defaults",
        "code-part-renderer": {
          "copied": "Copied",
          "generatedCode": "Generated Code"
        },
        "collapseAll": "Collapse all",
        "collapseChangeSet": "Collapse Change Set",
        "command-part-renderer": {
          "commandNotExecutable": "The command has the id \"{0}\" but it is not executable from the Chat window."
        },
        "confirmDeleteChatMsg": "Are you sure you want to delete this chat?",
        "copyCodeBlock": "Copy Code Block",
        "couldNotSendRequestToSession": "Was not able to send request \"{0}\" to session {1}",
        "delegation-response-renderer": {
          "prompt": {
            "label": "Delegated prompt:"
          },
          "response": {
            "label": "Response:"
          },
          "restoredNotAvailable": "Response not available for restored sessions.",
          "starting": "Starting delegation...",
          "status": {
            "canceled": "canceled",
            "error": "error",
            "generating": "generating...",
            "starting": "starting..."
          }
        },
        "deleteChangeSet": "Delete Change Set",
        "deleteChat": "Delete Chat",
        "editRequest": "Edit",
        "edited": "edited",
        "editedTooltipHint": "This prompt variant has been edited. You can reset it in the AI Configuration view.",
        "enterChatName": "Enter chat name",
        "errorChatInvocation": "An error occurred during chat service invocation.",
        "expandChangeSet": "Expand Change Set",
        "failedToDeleteSession": "Failed to delete chat session",
        "failedToLoadChats": "Failed to load chat sessions",
        "failedToRestoreSession": "Failed to restore chat session",
        "failedToRetry": "Failed to retry message",
        "focusInput": "Focus Chat Input",
        "focusResponse": "Focus Chat Response",
        "functions": "Functions",
        "functionsDescription": "Built-in functions provided by Theia extensions",
        "genericCapabilities": "Generic Capabilities",
        "mcpFunctionsDescription": "Model Context Protocol (MCP) functions from connected servers",
        "noChatAgentsAvailable": "No chat agents available.",
        "noMatchingCapabilities": "No matching capabilities",
        "openDiff": "Open Diff",
        "openImage": "Open image",
        "openOriginalFile": "Open Original File",
        "performThisTask": "Perform this task.",
        "persistedSession": "Persisted session (click to restore)",
        "promptFragmentsDescription": "Custom prompt fragments to include in the conversation",
        "removeChat": "Remove Chat",
        "renameChat": "Rename Chat",
        "requestNotFoundForRetry": "Request not found for retry",
        "responseFrom": "Response from {0}",
        "saveCurrentSelectionsToSettings": "Save capability settings",
        "searchCapabilities": "Search capabilities",
        "selectAgentQuickPickPlaceholder": "Select an agent for the new session",
        "selectAllInCategory": "Select all in this category",
        "selectChat": "Select chat",
        "selectContextVariableQuickPickPlaceholder": "Select a context variable to be attached to the message",
        "selectTaskContextQuickPickItem": {
          "currentlyOpen": "currently open"
        },
        "selectTaskContextQuickPickPlaceholder": "Select a task context to attach",
        "selectVariableArguments": "Select variable arguments",
        "send": "Send (Enter)",
        "sessionNotFoundForRetry": "Session not found for retry",
        "skillsDescription": "Reusable skill instructions that can be added to the conversation",
        "switchAgentMode": "Switch Agent Mode",
        "text-part-renderer": {
          "cantDisplay": "Can't display response, please check your ChatResponsePartRenderers!"
        },
        "toggleCapabilitiesConfig": "Toggle Capabilities Configuration",
        "toolcall-part-renderer": {
          "denied": "Execution denied",
          "finished": "Ran",
          "rejected": "Execution canceled"
        },
        "toolconfirmation": {
          "allow-options-dropdown-tooltip": "More Allow Options",
          "allow-session": "Allow for this Chat",
          "allowed": "Tool execution allowed",
          "alwaysAllowConfirm": "I understand, enable auto-approval",
          "alwaysAllowGenericWarning": "This tool requires confirmation before auto-approval can be enabled. Once enabled, all future invocations will execute without confirmation. Only enable this if you trust this tool and understand the potential risks.",
          "alwaysAllowTitle": "Enable Auto-Approval for \"{0}\"?",
          "autoCancel": "Auto-cancels in {0}",
          "canceled": "Tool execution canceled",
          "denied": "Tool execution denied",
          "deny-forever": "Always Deny",
          "deny-options-dropdown-tooltip": "More Deny Options",
          "deny-reason-placeholder": "Enter reason for denial...",
          "deny-session": "Deny for this Chat",
          "deny-with-reason": "Deny with reason...",
          "executionDenied": "Tool execution denied",
          "header": "Confirm Tool Execution"
        },
        "unableToSummarizeCurrentSession": "Unable to summarize current session. Please confirm that the summary agent is not disabled.",
        "unknown-part-renderer": {
          "contentNotRestoreable": "This content (type '{0}') could not be fully restored. It may be from an extension that is no longer available."
        },
        "unpinAgent": "Unpin Agent",
        "unselectAllInCategory": "Unselect all in this category",
        "variablesDescription": "Dynamic variables that provide context information",
        "variantTooltip": "Prompt variant: {0}",
        "yourMessage": "Your message"
      },
      "claude-code": {
        "agentDescription": "Anthropic's coding agent",
        "allowSession": "Allow for this session",
        "apiKey": {
          "description": "Enter an API Key for Claude Code. **Please note:** By using this preference the API key will be stored in clear text on the machine running Theia. Use the environment variable `ANTHROPIC_API_KEY` to set the key securely."
        },
        "askBeforeEdit": "Ask before edit",
        "changeSetTitle": "Changes by Claude Code",
        "clearCommand": {
          "description": "Create a new session"
        },
        "compactCommand": {
          "description": "Compact conversation with optional focus instructions"
        },
        "completedCount": "{0}/{1} completed",
        "configCommand": {
          "description": "Open Claude Code Configuration"
        },
        "currentDirectory": "current directory",
        "differentAgentRequestWarning": "The previous chat request was handled by a different agent. Claude Code does not see those other messages.",
        "directory": "Directory",
        "domain": "Domain",
        "editAutomatically": "Edit automatically",
        "editNumber": "Edit {0}",
        "editing": "Editing",
        "editsCount": "{0} edits",
        "emptyTodoList": "No todos available",
        "entireFile": "Entire File",
        "excludingOnePattern": " (exluding 1 pattern)",
        "excludingPatterns": " (excluding {0} patterns)",
        "executablePath": {
          "description": "Path to the Claude Code executable (cli.js) of the `@anthropic-ai/claude-agent-sdk`.If not specified, the system will attempt to resolve the path automatically from the global npm installation."
        },
        "executedCommand": "Executed: {0}",
        "failedToParseBashToolData": "Failed to parse Bash tool data",
        "failedToParseEditToolData": "Failed to parse Edit tool data",
        "failedToParseGlobToolData": "Failed to parse Glob tool data",
        "failedToParseGrepToolData": "Failed to parse Grep tool data",
        "failedToParseLSToolData": "Failed to parse LS tool data",
        "failedToParseMultiEditToolData": "Failed to parse MultiEdit tool data",
        "failedToParseReadToolData": "Failed to parse Read tool data",
        "failedToParseTodoListData": "Failed to parse todo list data",
        "failedToParseWebFetchToolData": "Failed to parse WebFetch tool data",
        "failedToParseWriteToolData": "Failed to parse Write tool data",
        "fetching": "Fetching",
        "fileFilter": "File Filter",
        "filePath": "File Path",
        "fileType": "File Type",
        "findMatchingFiles": "Find files matching the glob pattern \"{0}\" in the current directory",
        "findMatchingFilesWithPath": "Find files matching the glob pattern \"{0}\" within {1}",
        "finding": "Finding",
        "from": "From",
        "globPattern": "glob pattern",
        "grepOptions": {
          "caseInsensitive": "case-insensitive",
          "glob": "glob: {0}",
          "headLimit": "limit: {0}",
          "lineNumbers": "line numbers",
          "linesAfter": "+{0} after",
          "linesBefore": "+{0} before",
          "linesContext": "±{0} context",
          "multiLine": "multiline",
          "type": "type: {0}"
        },
        "grepOutputModes": {
          "content": "content",
          "count": "count",
          "filesWithMatches": "files with matches"
        },
        "ignoredPatterns": "Ignored Patterns",
        "ignoringPatterns": "Ignoring {0} patterns",
        "initCommand": {
          "description": "Initialize project with CLAUDE.md guide"
        },
        "itemCount": "{0} items",
        "lineLimit": "Line Limit",
        "lines": "Lines",
        "listDirectoryContents": "List directory contents",
        "listing": "Listing",
        "memoryCommand": {
          "description": "Edit CLAUDE.md memory file"
        },
        "multiEditing": "Multi-editing",
        "oneEdit": "1 edit",
        "oneItem": "1 item",
        "oneOption": "1 option",
        "openDirectoryTooltip": "Click to open directory",
        "openFileTooltip": "Click to open file in editor",
        "optionsCount": "{0} options",
        "partial": "Partial",
        "pattern": "Pattern",
        "plan": "Plan mode",
        "project": "project",
        "projectRoot": "project root",
        "readMode": "Read Mode",
        "reading": "Reading",
        "replaceAllCount": "{0} replace-all",
        "replaceAllOccurrences": "Replace all occurrences",
        "resumeCommand": {
          "description": "Resume a session"
        },
        "reviewCommand": {
          "description": "Request code review"
        },
        "searchPath": "Search Path",
        "searching": "Searching",
        "startingLine": "Starting Line",
        "timeout": "Timeout",
        "timeoutInMs": "Timeout: {0}ms",
        "to": "To",
        "todoList": "Todo List",
        "todoPriority": {
          "high": "high",
          "low": "low",
          "medium": "medium"
        },
        "toolApprovalRequest": "Claude Code wants to use the \"{0}\" tool. Do you want to allow this?",
        "totalEdits": "Total Edits",
        "vars": {
          "activeEditor": {
            "description": "The URI of the currently active editor."
          }
        },
        "webFetch": "Web Fetch",
        "writing": "Writing"
      },
      "code-completion": {
        "progressText": "Calculating AI code completion..."
      },
      "codex": {
        "agentDescription": "OpenAI's coding assistant powered by Codex",
        "apiKey": {
          "description": "OpenAI API key for Codex. If not set, falls back to the shared OpenAI API key (`ai-features.openAiOfficial.openAiApiKey`). Can also be set via `OPENAI_API_KEY` environment variable."
        },
        "completedCount": "{0}/{1} completed",
        "exitCode": "Exit code: {0}",
        "fileChangeFailed": "Codex failed to apply changes for: {0}",
        "fileChangeFailedGeneric": "Codex failed to apply file changes.",
        "itemCount": "{0} items",
        "noItems": "No items",
        "oneItem": "1 item",
        "searched": "Searched",
        "searching": "Searching",
        "todoList": "Todo List",
        "webSearch": "Web Search"
      },
      "completion": {
        "agent": {
          "description": "This agent provides inline code completion in the code editor in the Theia IDE.",
          "vars": {
            "file": {
              "description": "The URI of the file being edited"
            },
            "language": {
              "description": "The languageId of the file being edited"
            },
            "prefix": {
              "description": "The code before the current cursor position"
            },
            "suffix": {
              "description": "The code after the current cursor position"
            }
          }
        },
        "automaticEnable": {
          "description": "Automatically trigger AI completions inline within any (Monaco) editor while editing.            \n            Alternatively, you can manually trigger the code via the command \"Trigger Inline Suggestion\" or the default shortcut \"Ctrl+Alt+Space\"."
        },
        "cacheCapacity": {
          "description": "Maximum number of code completions to store in the cache. A higher number can improve performance but will consume more memory.                Minimum value is 10, recommended range is between 50-200.",
          "title": "Code Completion Cache Capacity"
        },
        "debounceDelay": {
          "description": "Controls the delay in milliseconds before triggering AI completions after changes have been detected in the editor.                Requires `Automatic Code Completion` to be enabled. Enter 0 to disable the debounce delay.",
          "title": "Debounce Delay"
        },
        "excludedFileExts": {
          "description": "Specify file extensions (e.g., .md, .txt) where AI completions should be disabled.",
          "title": "Excluded File Extensions"
        },
        "fileVariable": {
          "description": "The URI of the file being edited. Only available in code completion context."
        },
        "languageVariable": {
          "description": "The languageId of the file being edited. Only available in code completion context."
        },
        "maxContextLines": {
          "description": "The maximum number of lines used as context, distributed among the lines before and after the cursor position (prefix and suffix).            Set this to -1 to use the full file as context without any line limit and 0 to only use the current line.",
          "title": "Maximum Context Lines"
        },
        "prefixVariable": {
          "description": "The code before the current cursor position. Only available in code completion context."
        },
        "stripBackticks": {
          "description": "Remove surrounding backticks from the code returned by some LLMs. If a backtick is detected, all content after the closing             backtick is stripped as well. This setting helps ensure plain code is returned when language models use markdown-like formatting.",
          "title": "Strip Backticks from Inline Completions"
        },
        "suffixVariable": {
          "description": "The code after the current cursor position. Only available in code completion context."
        }
      },
      "configuration": {
        "selectItem": "Please select an item."
      },
      "copilot": {
        "auth": {
          "aiConfiguration": "AI Configuration",
          "authorize": "I have authorized",
          "copied": "Copied!",
          "copyCode": "Copy code",
          "expired": "Authorization expired or was denied. Please try again.",
          "hint": "After entering the code and authorizing, click \"I have authorized\" below.",
          "initiating": "Initiating authentication...",
          "instructions": "To authorize Theia to use GitHub Copilot, visit the URL below and enter the code:",
          "openGitHub": "Open GitHub",
          "privacy": "Theia is an open-source project. We only request access to your GitHub username to connect to GitHub Copilot services — no other data is accessed or stored.",
          "success": "Successfully signed in to GitHub Copilot!",
          "successHint": "If your GitHub account has access to Copilot, you can now configure Copilot language models in the ",
          "tos": "By signing in, you agree to the ",
          "tosLink": "GitHub Terms of Service",
          "verifying": "Verifying authorization..."
        },
        "category": "Copilot",
        "commands": {
          "signIn": "Sign in to GitHub Copilot",
          "signOut": "Sign out of GitHub Copilot"
        },
        "enabled": {
          "mdDescription": "Enable the GitHub Copilot provider. When enabled, a status bar entry appears for authentication and available models are discovered from your Copilot subscription."
        },
        "enterpriseUrl": {
          "mdDescription": "GitHub Enterprise domain for Copilot API (e.g., `github.mycompany.com`). Leave empty for GitHub.com."
        },
        "modelOverrides": {
          "mdDescription": "Override the automatically discovered GitHub Copilot models. When empty (default), available models are discovered from your Copilot subscription. Set explicit model IDs to override auto-discovery."
        },
        "signOut": {
          "confirmMessage": "Are you sure you want to sign out of GitHub Copilot?"
        },
        "statusBar": {
          "signedIn": "Signed in to GitHub Copilot as {0}. Click to sign out.",
          "signedOut": "Not signed in to GitHub Copilot. Click to sign in."
        },
        "tokenMigration": "Your GitHub Copilot session used an outdated authentication method and has been cleared. Please sign in again to access all available models."
      },
      "core": {
        "agentConfiguration": {
          "addCustomAgent": "Add Custom Agent",
          "availableCapabilities": "Available Capabilities",
          "completionNotificationDescriptionPrefix": "Select how you want to be notified when this agent completes its task. \"Default\" uses the ",
          "defaultNotificationDescription": "Uses the global AI notification setting",
          "enableAgent": "Enable Agent",
          "llmRequirements": "LLM Requirements",
          "notUsedInPrompt": "Not used in prompt",
          "notUsedInPromptTooltip": "This variable is declared by the agent but not referenced in the current prompt template.",
          "notificationSettings": "Notification Settings",
          "notificationSettingsLink": "AI notification setting",
          "promptTemplates": "Prompt Templates",
          "selectAgentMessage": "Please select an Agent first!",
          "showInChat": "Show in Chat",
          "templateName": "Template",
          "undeclared": "Undeclared",
          "undeclaredTooltip": "This variable is used in the prompt but has no description declared by the agent.",
          "usedAgentSpecificVariables": "Used Agent-Specific Variables",
          "usedFunctions": "Used Functions",
          "usedGlobalVariables": "Used Global Variables",
          "variant": "Variant"
        },
        "agentsVariable": {
          "description": "Returns the list of agents available in the system"
        },
        "aiConfiguration": {
          "label": "AI Configuration"
        },
        "blinkTitle": {
          "agentCompleted": "Theia - Agent Completed",
          "namedAgentCompleted": "Theia - Agent \"{0}\" Completed"
        },
        "capabilityVariable": {
          "argDescription": "The prompt fragment id, optionally followed by \"default on\" or \"default off\" (defaults to off)",
          "completions": {
            "detail": {
              "off": "Capability disabled by default",
              "on": "Capability enabled by default"
            }
          },
          "description": "Conditionally resolves prompt fragments based on default on/off setting"
        },
        "changeSetSummaryVariable": {
          "description": "Provides a summary of the files in a change set and their contents."
        },
        "contextDetailsVariable": {
          "description": "Provides full text values and descriptions for all context elements."
        },
        "contextSummaryVariable": {
          "description": "Describes files in the context for a given session."
        },
        "customAgentTemplate": {
          "description": "This is an example agent. Please adapt the properties to fit your needs."
        },
        "defaultModelAliases": {
          "code": {
            "description": "Optimized for code understanding and generation tasks."
          },
          "code-completion": {
            "description": "Best suited for code autocompletion scenarios."
          },
          "summarize": {
            "description": "Models prioritized for summarization and condensation of content."
          },
          "universal": {
            "description": "Well-balanced for both code and general language use."
          }
        },
        "defaultNotification": {
          "mdDescription": "The default notification method used when an AI agent completes a task. Individual agents can override this setting.",
          "title": "Default Notification Type"
        },
        "discard": {
          "label": "Discard AI Prompt Template"
        },
        "discardCustomPrompt": {
          "tooltip": "Discard Customizations"
        },
        "fileVariable": {
          "description": "Resolves the contents of a file",
          "uri": {
            "description": "The URI of the requested file."
          }
        },
        "languageModelRenderer": {
          "alias": "[alias] {0}",
          "languageModel": "Language Model",
          "purpose": "Purpose"
        },
        "maxRetries": {
          "mdDescription": "The maximum number of retry attempts when a request to an AI provider fails. A value of 0 means no retries.",
          "title": "Maximum Retries"
        },
        "modelAliasesConfiguration": {
          "agents": "Agents using this Alias",
          "defaultList": "[Default list]",
          "evaluatesTo": "Evaluates to",
          "label": "Model Aliases",
          "modelNotReadyTooltip": "Not ready",
          "modelReadyTooltip": "Ready",
          "noAgents": "No agents use this alias.",
          "noModelReadyTooltip": "No model ready",
          "noResolvedModel": "No model ready for this alias.",
          "priorityList": "Priority List",
          "selectAlias": "Please select a Model Alias.",
          "selectedModelId": "Selected Model",
          "unavailableModel": "Selected model is no longer available"
        },
        "noVariableFoundForOpenRequest": "No variable found for open request.",
        "notification": {
          "message": {
            "description": "Show a notification message inside the application"
          },
          "off": {
            "description": "Disable all notifications"
          },
          "osNotification": "OS Notification",
          "windowBlink": "Window Blink"
        },
        "openEditorsShortVariable": {
          "description": "Short reference to all currently open files (relative paths, comma-separated)"
        },
        "openEditorsVariable": {
          "description": "A comma-separated list of all currently open files, relative to the workspace root."
        },
        "preference": {
          "languageModelAliases": {
            "description": "Configure models for each language model alias in the [AI Configuration View]({0}). Alternatiely you can set the settings manually in the settings.json: \n```\n\"default/code\": {\n  \"selectedModel\": \"anthropic/claude-opus-4-20250514\"\n}\n```",
            "selectedModel": "The user-selected model for this alias.",
            "title": "Language Model Aliases"
          }
        },
        "promptFragmentsConfiguration": {
          "activeCustomizationTitle": "Active customization",
          "createCustomizationTitle": "Create Customization",
          "customization": "customization",
          "customizationLabel": "Customization",
          "defaultVariantTitle": "Default variant",
          "deleteCustomizationTitle": "Delete Customization",
          "editTemplateTitle": "Edit template",
          "headerTitle": "Prompt Fragments",
          "label": "Prompt Fragments",
          "noFragmentsAvailable": "No prompt fragments available.",
          "otherPromptFragmentsHeader": "Other Prompt Fragments",
          "promptTemplateText": "Prompt Template Text",
          "promptVariantsHeader": "Prompt Variant Sets",
          "removeCustomizationDialogMsg": "Are you sure you want to remove the {0} customization for prompt fragment \"{1}\"?",
          "removeCustomizationDialogTitle": "Remove Customization",
          "removeCustomizationWithDescDialogMsg": "Are you sure you want to remove the {0} customization for prompt fragment \"{1}\" ({2})?",
          "resetAllButton": "Reset All",
          "resetAllCustomizationsDialogMsg": "Are you sure you want to reset all prompt fragments to their built-in versions? This will remove all customizations.",
          "resetAllCustomizationsDialogTitle": "Reset All Customizations",
          "resetAllCustomizationsTitle": "Reset all customizations",
          "resetAllPromptFragments": "Reset all prompt fragments",
          "resetToBuiltInDialogMsg": "Are you sure you want to reset the prompt fragment \"{0}\" to its built-in version? This will remove all customizations.",
          "resetToBuiltInDialogTitle": "Reset to Built-in",
          "resetToBuiltInTitle": "Reset to this built-in",
          "resetToCustomizationDialogMsg": "Are you sure you want to reset the prompt fragment \"{0}\" to use the {1} customization? This will remove all higher-priority customizations.",
          "resetToCustomizationDialogTitle": "Reset to Customization",
          "resetToCustomizationTitle": "Reset to this customization",
          "selectedVariantLabel": "Selected",
          "selectedVariantTitle": "Selected variant",
          "usedByAgentTitle": "Used by agent: {0}",
          "variantSetError": "The selected variant does not exist and no default could be found. Please check your configuration.",
          "variantSetWarning": "The selected variant does not exist. The default variant is being used instead.",
          "variantsOfSystemPrompt": "Variants of this prompt variant set:"
        },
        "promptTemplates": {
          "description": "Folder for storing customized prompt templates. If not customized the user config directory is used. Please consider to use a folder, which is            under version control to manage your variants of prompt templates."
        },
        "promptVariable": {
          "argDescription": "The prompt template id to resolve",
          "completions": {
            "detail": {
              "builtin": "Built-in prompt fragment",
              "custom": "Customized prompt fragment"
            }
          },
          "description": "Resolves prompt templates via the prompt service"
        },
        "prompts": {
          "category": "AI Prompt Templates"
        },
        "requestSettings": {
          "clientSettings": {
            "description": "Client settings for how to handle messages that are send back to the llm.",
            "keepThinking": {
              "description": "If set to false, all thinking output will be filtered before sending the next user request in a multi-turn conversation."
            },
            "keepToolCalls": {
              "description": "If set to false, all tool request and tool responses will be filtered                                     before sending the next user request in a multi-turn conversation."
            }
          },
          "mdDescription": "Allows specifying custom request settings for multiple models.\n            Each setting consists of:\n            - `scope`: Defines when the setting applies:\n              - `modelId` (optional): The model ID to match\n              - `providerId` (optional): The provider ID to match (e.g., huggingface, openai, ollama, llamafile)\n              - `agentId` (optional): The agent ID to match\n            - `requestSettings`: Model-specific settings as key-value pairs\n            - `clientSettings`: Client-side message handling settings:\n              - `keepToolCalls` (boolean): Whether to keep tool calls in the context\n              - `keepThinking` (boolean): Whether to keep thinking messages\n            Settings are matched based on specificity (agent: 100, model: 10, provider: 1 points).\n            Refer to [our documentation](https://theia-ide.org/docs/user_ai/#custom-request-settings) for more information.",
          "modelSpecificSettings": {
            "description": "Settings for the specific model ID."
          },
          "scope": {
            "agentId": {
              "description": "The (optional) agent id to apply the settings to."
            },
            "modelId": {
              "description": "The (optional) model id"
            },
            "providerId": {
              "description": "The (optional) provider id to apply the settings to."
            }
          },
          "title": "Custom Request Settings"
        },
        "skillDirectories": {
          "description": "Additional directories containing skill definitions (SKILL.md files). Skills provide reusable instructions that can be referenced by AI agents. The .prompts/skills directory in your workspace and the skills directory in your product's configuration folder are always included."
        },
        "skillsVariable": {
          "description": "Returns the list of available skills that can be used by AI agents"
        },
        "taskContextSummary": {
          "description": "Resolves all task context items present in the session context."
        },
        "templateSettings": {
          "edited": "edited",
          "unavailableVariant": "Unavailable"
        },
        "thinkingMode": {
          "mdDescription": "Allows specifying thinking mode settings for models that support extended thinking capabilities.\n            Each setting consists of:\n            - `scope`: Defines when the setting applies:\n              - `modelId` (optional): The model ID to match\n              - `providerId` (optional): The provider ID to match\n              - `agentId` (optional): The agent ID to match\n            - `thinkingMode`: Thinking mode configuration:\n              - `enabled` (boolean): Whether thinking mode is enabled\n              - `budgetTokens` (number, optional): Maximum tokens for thinking (if supported by the model)\n            Settings are matched based on specificity (agent: 100, model: 10, provider: 1 points).",
          "scope": {
            "agentId": {
              "description": "The (optional) agent id to apply the settings to."
            },
            "modelId": {
              "description": "The (optional) model id"
            },
            "providerId": {
              "description": "The (optional) provider id to apply the settings to."
            }
          },
          "thinkingMode": {
            "budgetTokens": {
              "description": "Maximum tokens to use for thinking. Only applicable if the model supports thinking budget."
            },
            "description": "Thinking mode configuration.",
            "enabled": {
              "description": "Whether thinking mode is enabled."
            }
          },
          "title": "Thinking Mode Settings"
        },
        "todayVariable": {
          "description": "Does something for today",
          "format": {
            "description": "The format of the date"
          }
        },
        "unableToDisplayVariableValue": "Unable to display variable value.",
        "unableToResolveVariable": "Unable to resolve variable.",
        "variable-contribution": {
          "builtInVariable": "Theia Built-in Variable",
          "currentAbsoluteFilePath": "The absolute path of the                 currently opened file. Please note that most agents will expect a relative file path (relative to the current workspace).",
          "currentFileContent": "The plain content of the                 currently opened file. This excludes the information where the content is coming from. Please note that most agents will work better with a relative file path                 (relative to the current workspace).",
          "currentRelativeDirPath": "The relative path of the directory                 containing the currently opened file.",
          "currentRelativeFilePath": "The relative path of the                 currently opened file.",
          "currentSelectedText": "The plain text that is currently selected in the                 opened file. This excludes the information where the content is coming from. Please note that most agents will work better with a relative file path                 (relative to the current workspace).",
          "dotRelativePath": "Short reference to the relative path of the                 currently opened file ('currentRelativeFilePath')."
        }
      },
      "editor": {
        "editorContextVariable": {
          "description": "Resolves editor specific context information",
          "label": "EditorContext"
        },
        "explainWithAI": {
          "prompt": "Explain this error",
          "title": "Explain with AI"
        },
        "fixWithAI": {
          "prompt": "Help to fix this error"
        }
      },
      "google": {
        "apiKey": {
          "description": "Enter an API Key of your official Google AI (Gemini) Account. **Please note:** By using this preference the GOOGLE AI API key will be stored in clear text            on the machine running Theia. Use the environment variable `GOOGLE_API_KEY` to set the key securely."
        },
        "maxRetriesOnErrors": {
          "description": "Maximum number of retries in case of errors. If smaller than 1, then the retry logic is disabled"
        },
        "models": {
          "description": "Official Google Gemini models to use"
        },
        "retryDelayOnOtherErrors": {
          "description": "Delay in seconds between retries in case of other errors (sometimes the Google GenAI reports errors such as incomplete JSON syntax returned from the model                 or 500 Internal Server Error). Setting this to -1 prevents retries in these cases. Otherwise a retry happens either immediately (if set to 0) or after                 this delay in seconds (if set to a positive number)."
        },
        "retryDelayOnRateLimitError": {
          "description": "Delay in seconds between retries in case of rate limit errors. See https://ai.google.dev/gemini-api/docs/rate-limits"
        }
      },
      "history": {
        "clear": {
          "tooltip": "Clear History of all agents"
        },
        "edited": "edited",
        "exchange-card": {
          "timestamp": "Started"
        },
        "open-history-tooltip": "Open AI history...",
        "request-card": {
          "promptVariant": "Prompt Variant",
          "request": "Request",
          "timestamp": "Timestamp",
          "title": "Request"
        },
        "sortChronologically": {
          "tooltip": "Sort chronologically"
        },
        "sortReverseChronologically": {
          "tooltip": "Sort reverse chronologically"
        },
        "toggleCompact": {
          "tooltip": "Show compact view"
        },
        "toggleHideNewlines": {
          "tooltip": "Stop interpreting newlines"
        },
        "toggleRaw": {
          "tooltip": "Show raw view"
        },
        "toggleRenderNewlines": {
          "tooltip": "Interpret newlines"
        },
        "view": {
          "label": "AI Agent History",
          "noAgent": "No agent available.",
          "noAgentSelected": "No agent selected.",
          "noHistoryForAgent": "No history available for the selected agent '{0}'"
        }
      },
      "huggingFace": {
        "apiKey": {
          "mdDescription": "Enter an API Key for your Hugging Face Account. **Please note:** By using this preference the Hugging Face API key will be stored in clear text            on the machine running Theia. Use the environment variable `HUGGINGFACE_API_KEY` to set the key securely."
        },
        "models": {
          "mdDescription": "Hugging Face models to use. **Please note:** Only models supporting the chat completion API are supported             (instruction-tuned models like `*-Instruct`) currently. Some models may require accepting license terms on the Hugging Face website."
        }
      },
      "ide": {
        "agent-description": "Configure AI agent settings including enablement, LLM selection, prompt template customization, and custom agent creation in the [AI Configuration View]({0}).",
        "agentConfiguration": {
          "customAgentLocationQuickPick": {
            "createNewFile": "Create new file",
            "openExistingFile": "Open existing file",
            "placeholder": "Choose where to create or open a custom agents file",
            "title": "Select Location for Custom Agents File"
          },
          "genericCapabilitiesSettings": "Generic Capabilities",
          "genericCapabilityType": {
            "agentDelegation": "Agent Delegation",
            "functions": "Functions",
            "mcpFunctions": "MCP Functions",
            "promptFragments": "Prompt Fragments"
          },
          "noDescription": "No description available",
          "resetAllCapabilities": "Reset all capabilities to their default values",
          "resetAllDefaults": "Reset All to Defaults",
          "selections": "Selections"
        },
        "agentMode": {
          "confirmed": {
            "mdDescription": "Whether the user has confirmed the agent mode warning. Agent mode allows autonomous file modifications without further confirmation. Set to `false` to see the confirmation again on the next agent mode request."
          }
        },
        "agentModeConfirmation": {
          "confirm": "Confirm",
          "msg": "This agent uses an **agentic mode**. To enable autonomous flow, it is capable of directly writing to your workspace files without further confirmation.\n\nIt is recommended to use version control (e.g. Git) so you can review and revert changes.\n\nYou can switch to **Edit Mode** using the mode selector in the chat input area below, or use the **Architect** agent for read-only planning.\n\nThis confirmation is saved for this workspace and won't be shown again. To reset or configure it globally, look for `ai-features.agentMode.confirmed` in the Settings.",
          "question": "Do you want to proceed with Agent Mode?",
          "waiting": "Waiting for confirmation..."
        },
        "app-tester": {
          "errorCheckingDevToolsServerStatus": "Error checking DevTools MCP server status: {0}",
          "errorCheckingPlaywrightServerStatus": "Error checking Playwright MCP server status: {0}",
          "startChromeDevToolsMcpServers": {
            "canceled": "Please setup the Chrome DevTools MCP server.",
            "error": "Failed to start Chrome DevTools MCP server: {0}",
            "progress": "Starting Chrome DevTools MCP server.",
            "question": "The Chrome DevTools MCP server is not running. Would you like to start it now? This may install the Chrome DevTools MCP server."
          },
          "startMcpServers": {
            "no": "No, cancel",
            "yes": "Yes, start the servers"
          },
          "startPlaywrightServers": {
            "canceled": "Please setup the Playwright MCP servers.",
            "error": "Failed to start Playwright MCP servers: {0}",
            "progress": "Starting Playwright MCP servers.",
            "question": "The Playwright MCP servers are not running. Would you like to start them now? This may install the Playwright MCP servers."
          }
        },
        "architectAgent": {
          "mode": {
            "plan": "Plan Mode",
            "planNext": "Plan Mode (Next)",
            "simple": "Simple Mode"
          },
          "suggestion": {
            "executePlanWithCoder": "Execute \"{0}\" with Coder"
          }
        },
        "browseAllChats": "Browse all chats...",
        "bypassHint": "Some agents like Claude Code don't require Theia Language Models",
        "chatDisabledMessage": {
          "title": "AI Features are Disabled"
        },
        "codeReviewerAgent": {
          "description": "A code review assistant that analyzes code changes and returns structured verdicts.         Checks completion criteria, build/lint/test evidence, and code quality."
        },
        "coderAgent": {
          "mode": {
            "agentNext": "Agent Mode (Next)",
            "edit": "Edit Mode"
          },
          "suggestion": {
            "fixProblems": {
              "content": "[Fix problems]({0}) in the current file.",
              "prompt": "please look at {1} and fix any problems."
            },
            "startNewChat": "Keep chats short and focused. [Start a new chat]({0}) for a new task or [start a new chat with a summary of this one]({1})."
          }
        },
        "commandAgent": {
          "commandCallback": {
            "confirmAction": "Got it",
            "label": "AI command",
            "message": "Executing callback with args {0}. The first arg is the command id registered for the dynamically registered command. The other args are the actual args for the handler."
          },
          "description": "This agent is aware of all commands that the user can execute within the Theia IDE, the tool that the user is currently working with. Based on the user request, it can find the right command and then let the user execute it.",
          "response": {
            "customHandler": "Try executing this:",
            "noCommand": "Sorry, I can't find such a command",
            "theiaCommand": "I found this command that might help you:"
          },
          "vars": {
            "commandIds": {
              "description": "The list of available commands in Theia."
            }
          }
        },
        "configurationState": "Configuration issues",
        "configureAgent": {
          "header": "Configure a default agent"
        },
        "continueAnyway": "Continue Anyway",
        "createSkillAgent": {
          "mode": {
            "edit": "Default Mode"
          }
        },
        "deleteChat": "Delete Chat",
        "enableAI": {
          "mdDescription": "This setting allows you to access the AI capabilities of Theia IDE.            \n            Please be aware that AI features may generate            continuous requests to the language models (LLMs) you provide access to. This might incur costs that you            need to monitor closely. By enabling this option, you acknowledge these risks.            \n            **Please note! The settings below in this section will only take effect\n            once the main feature setting is enabled. After enabling the feature, you need to configure at least one            LLM provider below. Also see [the documentation](https://theia-ide.org/docs/user_ai/)**."
        },
        "exploreAgent": {
          "description": "A codebase exploration assistant that extracts and distills information from the codebase.         Reports facts about what exists, provides code excerpts, and describes observed patterns."
        },
        "github": {
          "configureGitHubServer": {
            "canceled": "GitHub server configuration cancelled. Please configure the GitHub MCP server to use this agent.",
            "followup": "Settings file opened. Please add your GitHub Personal Access Token to the `serverAuthToken` property in the GitHub server configuration, then  save and try again.\n\nYou can create a Personal Access Token at: https://github.com/settings/tokens",
            "no": "No, cancel",
            "question": "The GitHub MCP server is not configured. Would you like to configure it now? This will open the settings.json file where you can add your GitHub access token.",
            "yes": "Yes, configure GitHub server"
          },
          "description": "This agent helps you interact with GitHub repositories, issues, pull requests, and other GitHub features through the GitHub MCP server. It can help you manage your repositories, create issues, handle pull requests, and perform various GitHub operations.",
          "errorCheckingGitHubServerStatus": "Error checking GitHub MCP server status: {0}",
          "startGitHubServer": {
            "canceled": "Please start the GitHub MCP server to use this agent.",
            "error": "Failed to start GitHub MCP server: {0}",
            "no": "No, cancel",
            "progress": "Starting GitHub MCP server.",
            "question": "The GitHub MCP server is configured but not running. Would you like to start it now?",
            "yes": "Yes, start the server"
          }
        },
        "githubCapability": {
          "description": "Allows the agent to interact with GitHub. For this, the agent can delegate to the GitHub agent,             which can read and write issues, pull requests, comments, and repository contents.",
          "name": "GitHub"
        },
        "githubRepoName": {
          "description": "The name of the current GitHub repository (e.g., \"eclipse-theia/theia\")"
        },
        "howToGetStarted": "How to get started",
        "model-selection-description": "Choose which Large Language Models (LLMs) are used by each AI agent in the [AI Configuration View]({0}).",
        "moreAgentsAvailable": {
          "header": "More agents are available"
        },
        "noRecommendedAgents": "No recommended agents are available.",
        "openSettings": "Open AI Settings",
        "orchestrator": {
          "error": {
            "noAgents": "No chat agent available to handle request. Please check your configuration whether any are enabled."
          },
          "excludedAgents": {
            "mdDescription": "List of agent IDs that the orchestrator is not allowed to delegate to. These agents will not be visible to the orchestrator when selecting an agent to handle a request."
          },
          "progressMessage": "Determining the most appropriate agent",
          "response": {
            "delegatingToAgent": "Delegating to `@{0}`"
          }
        },
        "prompt-template-description": "Select prompt variants and customize prompt templates for AI agents in the [AI Configuration View]({0}).",
        "recentChats": "Recent Chats",
        "renameChat": "Rename Chat",
        "shellAllowlist": {
          "placeholder": "e.g., \"git log\" (exact) or \"git log *\" (with args)"
        },
        "shellDenylist": {
          "placeholder": "e.g., \"git push *\" or \"rm -rf /\""
        },
        "shellExecutionCapability": {
          "description": "Allows the agent to run arbitrary shell commands on the host system. The agent can then delegate to execute scripts             that are not available as tasks, query system information, and perform operations for which no dedicated tool exists.",
          "name": "Shell Execution"
        },
        "skillsConfiguration": {
          "noSkills": "No skills available",
          "noSlashCommands": "No slash commands available",
          "slashCommand": {
            "allAgents": "All agents"
          },
          "slashCommandsSectionHeader": "Slash Commands"
        },
        "toolsConfiguration": {
          "confirmAlwaysAllow": {
            "confirm": "I understand, enable auto-approval",
            "genericWarning": "This tool requires confirmation before auto-approval can be enabled. Once enabled, all future invocations will execute without confirmation. Only enable this if you trust this tool and understand the potential risks.",
            "title": "Enable Auto-Approval for \"{0}\"?"
          },
          "confirmationMode": {
            "label": "Confirmation Mode"
          },
          "default": {
            "label": "Default Tool Confirmation Mode:"
          },
          "resetAll": "Reset All",
          "resetAllConfirmDialog": {
            "msg": "Are you sure you want to reset all tool confirmation modes to the default? This will remove all custom settings.",
            "title": "Reset All Tool Confirmation Modes"
          },
          "resetAllTooltip": "Reset all tools to default",
          "shellAllowlist": {
            "description": "Commands matching these patterns will be automatically allowed without confirmation. Use * as wildcard: \"git log\" (exact match), \"git log *\" (with any arguments). Wildcard must be preceded by a space.",
            "empty": "No patterns configured. All shell commands will require confirmation.",
            "title": "Shell Execute Allowlist"
          },
          "shellDenylist": {
            "description": "Commands matching these patterns will be automatically denied without confirmation. Use this to block dangerous commands like 'git push *' or 'rm -rf /'.",
            "empty": "No patterns configured. No shell commands will be automatically denied.",
            "title": "Shell Execute Denylist"
          },
          "toolOptions": {
            "confirm": {
              "label": "Confirm"
            }
          }
        },
        "tooltip": {
          "lastActivity": "Last activity",
          "lastMessage": "Last message",
          "messages": "Messages",
          "multipleExchanges": "{0} exchanges",
          "oneExchange": "1 exchange",
          "unread": "Unread"
        },
        "variableConfiguration": {
          "selectVariable": "Please select a Variable.",
          "usedByAgents": "Used by Agents"
        }
      },
      "llamaFile": {
        "prefs": {
          "mdDescription": "This setting allows you to configure and manage LlamaFile models in Theia IDE.            \n            Each entry requires a user-friendly `name`, the file `uri` pointing to your LlamaFile, and the `port` on which it will run.            \n            To start a LlamaFile, use the \"Start LlamaFile\" command, which enables you to select the desired model.            \n            If you edit an entry (e.g., change the port), any running instance will stop, and you will need to manually start it again.            \n            [Learn more about configuring and managing LlamaFiles in the Theia IDE documentation](https://theia-ide.org/docs/user_ai/#llamafile-models).",
          "name": {
            "description": "The model name to use for this Llamafile."
          },
          "port": {
            "description": "The port to use to start the server."
          },
          "title": "AI LlamaFile",
          "uri": {
            "description": "The file uri to the Llamafile."
          }
        },
        "start": "Start Llamafile",
        "stop": "Stop Llamafile"
      },
      "llamafile": {
        "error": {
          "noConfigured": "No Llamafiles configured.",
          "noRunning": "No Llamafiles running.",
          "startFailed": "Something went wrong during the llamafile start: {0}.\nFor more information, see the console.",
          "stopFailed": "Something went wrong during the llamafile stop: {0}.\nFor more information, see the console."
        }
      },
      "mcp": {
        "error": {
          "allServersRunning": "All MCP servers are already running.",
          "noRunningServers": "No MCP servers running.",
          "noServersConfigured": "No MCP servers configured.",
          "startFailed": "An error occurred while starting the MCP server."
        },
        "info": {
          "serverStarted": "MCP server \"{0}\" successfully started. Registered tools: {1}"
        },
        "servers": {
          "args": {
            "mdDescription": "An array of arguments to pass to the command.",
            "title": "Arguments for the command"
          },
          "autostart": {
            "mdDescription": "Automatically start this server when the frontend starts. Newly added servers are not immediately auto started, but on restart",
            "title": "Autostart"
          },
          "command": {
            "mdDescription": "The command used to start the MCP server, e.g., \"uvx\" or \"npx\".",
            "title": "Command to execute the MCP server"
          },
          "env": {
            "mdDescription": "Optional environment variables to set for the server, such as an API key.",
            "title": "Environment variables"
          },
          "headers": {
            "mdDescription": "Optional additional headers included with each request to the server.",
            "title": "Headers"
          },
          "mdDescription": "Configure MCP servers either local with command, arguments and optionally environment variables, or remote with server URL, authentication token and optionally an authentication header name. Additionally it is possible to configure autostart (true by default). Each server is identified by a unique key, such as \"brave-search\" or \"filesystem\". To start a server, use the \"MCP: Start MCP Server\" command, which enables you to select the desired server. To stop a server, use the \"MCP: Stop MCP Server\" command. Please note that autostart will only take effect after a restart, you need to start a server manually for the first time.\nExample configuration:\n```{\n  \"brave-search\": {\n    \"command\": \"npx\",\n    \"args\": [\n      \"-y\",\n      \"@modelcontextprotocol/server-brave-search\"\n    ],\n    \"env\": {\n      \"BRAVE_API_KEY\": \"YOUR_API_KEY\"\n    },\n  },\n  \"filesystem\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/Users/YOUR_USERNAME/Desktop\"],\n    \"env\": {\n      \"CUSTOM_ENV_VAR\": \"custom-value\"\n    },\n    \"autostart\": false\n  },\n  \"jira\": {\n    \"serverUrl\": \"YOUR_JIRA_MCP_SERVER_URL\",\n    \"serverAuthToken\": \"YOUR_JIRA_MCP_SERVER_TOKEN\"\n  }\n}\n```",
          "serverAuthToken": {
            "mdDescription": "The authentication token for the server, if required. This is used to authenticate with the remote server.",
            "title": "Authentication Token"
          },
          "serverAuthTokenHeader": {
            "mdDescription": "The header name to use for the server authentication token. If not provided, \"Authorization\" with \"Bearer\" will be used.",
            "title": "Authentication Header Name"
          },
          "serverUrl": {
            "mdDescription": "The URL of the remote MCP server. If provided, the server will connect to this URL instead of starting a local process.",
            "title": "Server URL"
          },
          "title": "MCP Server Configuration"
        },
        "start": {
          "label": "MCP: Start MCP Server"
        },
        "stop": {
          "label": "MCP: Stop MCP Server"
        },
        "useWorkspaceAsRoot": {
          "mdDescription": "Roots define the boundaries of where servers can operate within the filesystem. If enabled, the workspace folders will be used as roots, otherwise the MCP servers will have access to the entire filesystem. Changing this setting will restart all running MCP servers to apply the new roots configuration.",
          "title": "Use Workspace as Root"
        }
      },
      "mcpConfiguration": {
        "autostart": "Autostart",
        "connectServer": "Connect",
        "connectingServer": "Connecting...",
        "copiedAllList": "Copied all tools to clipboard (list of all tools)",
        "copiedAllSingle": "Copied all tools to clipboard (single prompt fragment with                                     all tools)",
        "copiedForPromptTemplate": "Copied all tools to clipboard for prompt template                                     (single prompt fragment with all tools)",
        "copyAllList": "Copy all (list of all tools)",
        "copyAllSingle": "Copy all for chat (single prompt fragment with all tools)",
        "copyForPrompt": "Copy tool (for chat or prompt template)",
        "copyForPromptTemplate": "Copy all for prompt template (single prompt fragment with all tools)",
        "deleteServer": "Delete Server",
        "deleteServerDialogMsg": "Are you sure you want to delete the server \"{0}\"?",
        "deleteServerDialogTitle": "Delete MCP Server",
        "deleteServerError": "Failed to delete MCP server: {0}",
        "editServer": "Edit Server",
        "editServerTitle": "Edit MCP Server",
        "environmentVariables": "Environment Variables",
        "form": {
          "argsPlaceholder": "Space-separated, e.g., -y @modelcontextprotocol/server-brave-search",
          "authHeaderPlaceholder": "Default: Authorization with Bearer",
          "authTokenPlaceholder": "Optional authentication token",
          "autostart": "Autostart",
          "commandPlaceholder": "e.g., npx or uvx",
          "commandRequired": "Command is required for local servers",
          "envPlaceholder": "KEY=value (one per line)",
          "headersPlaceholder": "Header-Name=value (one per line)",
          "localServer": "Local (Command)",
          "nameExists": "A server with this name already exists",
          "nameRequired": "Server name is required",
          "remoteServer": "Remote (URL)",
          "saveChanges": "Save Changes",
          "serverName": "Server Name",
          "serverNamePlaceholder": "e.g., my-mcp-server",
          "serverType": "Server Type",
          "serverUrlPlaceholder": "e.g., https://mcp.example.com",
          "serverUrlRequired": "Server URL is required for remote servers"
        },
        "headers": "Headers",
        "saveServerError": "Failed to save MCP server configuration: {0}",
        "serverAuthToken": "Auth Token",
        "serverAuthTokenHeader": "Auth Header Name",
        "serverUrl": "Server URL",
        "tools": "Tools: "
      },
      "openai": {
        "apiKey": {
          "mdDescription": "Enter an API Key of your official OpenAI Account. **Please note:** By using this preference the Open AI API key will be stored in clear text on the machine running Theia. Use the environment variable `OPENAI_API_KEY` to set the key securely."
        },
        "customEndpoints": {
          "apiKey": {
            "title": "Either the key to access the API served at the given url or `true` to use the global OpenAI API key"
          },
          "apiVersion": {
            "title": "Either the version to access the API served at the given url in Azure or `true` to use the global OpenAI API version"
          },
          "deployment": {
            "title": "The deployment name to access the API served at the given url in Azure"
          },
          "developerMessageSettings": {
            "title": "Controls the handling of system messages: `user`, `system`, and `developer` will be used as a role, `mergeWithFollowingUserMessage` will prefix                         the following user message with the system message or convert the system message to user message if the next message is not a user message.                         `skip` will just remove the system message), defaulting to `developer`."
          },
          "enableStreaming": {
            "title": "Indicates whether the streaming API shall be used. `true` by default."
          },
          "id": {
            "title": "A unique identifier which is used in the UI to identify the custom model"
          },
          "mdDescription": "Integrate custom models compatible with the OpenAI API, for example via `vllm`. The required attributes are `model` and `url`.            \n            Optionally, you can            \n            - specify a unique `id` to identify the custom model in the UI. If none is given `model` will be used as `id`.            \n            - provide an `apiKey` to access the API served at the given url. Use `true` to indicate the use of the global OpenAI API key.            \n            - provide an `apiVersion` to access the API served at the given url in Azure. Use `true` to indicate the use of the global OpenAI API version.            \n            - provide a `deployment` name for your Azure deployment.            \n            - set `developerMessageSettings` to one of `user`, `system`, `developer`, `mergeWithFollowingUserMessage`, or `skip` to control how the developer message is            included (where `user`, `system`, and `developer` will be used as a role, `mergeWithFollowingUserMessage` will prefix the following user message with the system            message or convert the system message to user message if the next message is not a user message. `skip` will just remove the system message).            Defaulting to `developer`.            \n            - specify `supportsStructuredOutput: false` to indicate that structured output shall not be used.            \n            - specify `enableStreaming: false` to indicate that streaming shall not be used.            \n            - specify `useResponseApi: true` to use the newer OpenAI Response API instead of the Chat Completion API (requires compatible endpoint).            \n            Refer to [our documentation](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm) for more information.",
          "modelId": {
            "title": "Model ID"
          },
          "supportsStructuredOutput": {
            "title": "Indicates whether the model supports structured output. `true` by default."
          },
          "url": {
            "title": "The Open AI API compatible endpoint where the model is hosted"
          },
          "useResponseApi": {
            "title": "Use the newer OpenAI Response API instead of the Chat Completion API. `false` by default for custom providers.Note: Will automatically fall back to Chat Completions API when tools are used."
          }
        },
        "models": {
          "description": "Official OpenAI models to use"
        },
        "useResponseApi": {
          "mdDescription": "Use the newer OpenAI Response API instead of the Chat Completion API for official OpenAI models.This setting only applies to official OpenAI models - custom providers must configure this individually.Note that for the response API, tool call definitions must satisfy Open AI's [strict schema definition](https://platform.openai.com/docs/guides/function-calling#strict-mode).Best effort is made to convert non-conformant schemas, but errors are still possible."
        }
      },
      "promptTemplates": {
        "directories": {
          "description": "List of relative paths indicating folders in the current workspace to be scanned for WORKSPACE specific prompt templates. When templates with the same ID (filename) exist in multiple locations, conflicts are resolved by priority: specific template files (highest) > workspace directories > global directories (lowest).",
          "title": "Workspace-specific Prompt Template Directories"
        },
        "extensions": {
          "description": "List of additional file extensions in prompt locations that are considered as prompt templates. '.prompttemplate' is always considered as a default.",
          "title": "Additional Prompt Template File Extensions"
        },
        "files": {
          "description": "List of relative paths to specific files in the current workspace to be used as prompt templates. When templates with the same ID (filename) exist in multiple locations, conflicts are resolved by priority: specific template files (highest) > workspace directories > global directories (lowest).",
          "title": "Workspace-specific Prompt Template Files"
        }
      },
      "scanoss": {
        "changeSet": {
          "clean": "No Matches",
          "error": "Error: Rerun",
          "error-notification": "ScanOSS error encountered: {0}.",
          "match": "View Matches",
          "scan": "Scan",
          "scanning": "Scanning..."
        },
        "mode": {
          "automatic": {
            "description": "Enable automatic scan of code snippets in chat views."
          },
          "description": "Configure the SCANOSS feature for analyzing code snippets in chat views. This will send a hash of suggested code snippets to the SCANOSS\nservice hosted by the [Software Transparency foundation](https://www.softwaretransparency.org/osskb) for analysis.",
          "manual": {
            "description": "User can manually trigger the scan by clicking the SCANOSS item in the chat view."
          },
          "off": {
            "description": "Feature is turned off completely."
          }
        },
        "snippet": {
          "dialog-header": "ScanOSS Results",
          "errored": "SCANOSS - Error - {0}",
          "file-name-heading": "Match found in {0}",
          "in-progress": "SCANOSS - Performing scan...",
          "match-count": "Found {0} match(es)",
          "matched": "SCANOSS - Found {0} match",
          "no-match": "SCANOSS - No match"
        }
      },
      "session-settings-dialog": {
        "advancedSettings": "Advanced Settings (JSON)",
        "budgetTokens": "Budget tokens:",
        "confirmationTimeout": "Confirmation Timeout",
        "confirmationTimeoutNote": "Automatically deny tool confirmations after the specified time. Overrides the global preference for this session.",
        "enableConfirmationTimeout": "Enable confirmation timeout",
        "enableThinking": "Enable extended thinking",
        "thinkingMode": "Thinking Mode",
        "thinkingModeNote": "Some models may ignore this setting.",
        "timeoutSeconds": "Timeout (seconds):",
        "title": "Set Session Settings",
        "tooltip": "Set Session Settings"
      },
      "terminal": {
        "agent": {
          "description": "This agent provides assistance to write and execute arbitrary terminal commands.         Based on the user's request, it suggests commands and allows the user to directly paste and execute them in the terminal.         It accesses the current directory, environment and the recent terminal output of the terminal session to provide context-aware assistance",
          "vars": {
            "cwd": {
              "description": "The current working directory."
            },
            "recentTerminalContents": {
              "description": "The last 0 to 50 recent lines visible in the terminal."
            },
            "shell": {
              "description": "The shell being used, e.g., /usr/bin/zsh."
            },
            "userRequest": {
              "description": "The user's question or request."
            }
          }
        },
        "askAi": "Ask AI",
        "askTerminalCommand": "Ask about a terminal command...",
        "hitEnterConfirm": "Hit enter to confirm",
        "howCanIHelp": "How can I help you?",
        "tryAgain": "Try again...",
        "useArrowsAlternatives": " or use ⇅ to show alternatives..."
      },
      "tokenUsage": {
        "cachedInputTokens": "Input Tokens Written to Cache",
        "cachedInputTokensTooltip": "Tracked additionally to 'Input Tokens'. Usually more expensive than non-cached tokens.",
        "failedToGetTokenUsageData": "Failed to fetch token usage data: {0}",
        "inputTokens": "Input Tokens",
        "label": "Token Usage",
        "lastUsed": "Last Used",
        "noData": "No token usage data available yet.",
        "note": "Token usage is tracked since the start of the application and is not persisted.",
        "outputTokens": "Output Tokens",
        "readCachedInputTokens": "Input Tokens Read From Cache",
        "readCachedInputTokensTooltip": "Tracked additionally to 'Input Token'. Usually much less expensive than not cached. Usually does not count to rate limits.",
        "total": "Total",
        "totalTokensTooltip": "'Input Tokens' + 'Output Tokens'"
      },
      "vercelai": {
        "anthropicApiKey": {
          "mdDescription": "Enter an API Key for Anthropic models used by the Vercel AI SDK.                 **Please note:** By using this preference the API key will be stored in clear text         on the machine running Theia. Use the environment variable `ANTHROPIC_API_KEY` to set the key securely."
        },
        "customEndpoints": {
          "apiKey": {
            "title": "Either the key to access the API served at the given url or `true` to use the global API key"
          },
          "enableStreaming": {
            "title": "Indicates whether the streaming API shall be used. `true` by default."
          },
          "id": {
            "title": "A unique identifier which is used in the UI to identify the custom model"
          },
          "mdDescription": "Integrate custom models compatible with the Vercel AI SDK. The required attributes are `model` and `url`.            \n            Optionally, you can            \n            - specify a unique `id` to identify the custom model in the UI. If none is given `model` will be used as `id`.            \n            - provide an `apiKey` to access the API served at the given url. Use `true` to indicate the use of the global API key.            \n            - specify `supportsStructuredOutput: false` to indicate that structured output shall not be used.            \n            - specify `enableStreaming: false` to indicate that streaming shall not be used.            \n            - specify `provider` to indicate which provider the model is from (openai, anthropic).",
          "modelId": {
            "title": "Model ID"
          },
          "supportsStructuredOutput": {
            "title": "Indicates whether the model supports structured output. `true` by default."
          },
          "url": {
            "title": "The API endpoint where the model is hosted"
          }
        },
        "models": {
          "description": "Official models to use with Vercel AI SDK",
          "id": {
            "title": "Model ID"
          },
          "model": {
            "title": "Model Name"
          }
        },
        "openaiApiKey": {
          "mdDescription": "Enter an API Key for OpenAI models used by the Vercel AI SDK.                 **Please note:** By using this preference the API key will be stored in clear text         on the machine running Theia. Use the environment variable `OPENAI_API_KEY` to set the key securely."
        }
      },
      "workspace": {
        "coderAgent": {
          "description": "An AI assistant integrated into Theia IDE, designed to assist software developers. This agent can access the users workspace, it can get a list of all available files         and folders and retrieve their content. Furthermore, it can suggest modifications of files to the user. It can therefore assist the user with coding tasks or other         tasks involving file changes."
        },
        "considerGitignore": {
          "description": "If enabled, excludes files/folders specified in a global .gitignore file (expected location is the workspace root).",
          "title": "Consider .gitignore"
        },
        "createSkillAgent": {
          "description": "An AI assistant for creating new skills. Skills provide reusable instructions and domain knowledge for AI agents. This agent helps you create well-structured skills in the .prompts/skills directory with proper YAML frontmatter and markdown content. This feature is still in an early stage and may undergo changes."
        },
        "excludedPattern": {
          "description": "List of patterns (glob or regex) for files/folders to exclude.",
          "title": "Excluded File Patterns"
        },
        "fileContentMaxSizeKB": {
          "description": "Maximum size in kilobytes of the content returned by the getFileContent tool. When reading a full file (no offset/limit), files exceeding this limit return an error. When using offset and limit, only the requested range is checked against this limit.",
          "title": "File Content Max Size (KB)"
        },
        "projectInfoAgent": {
          "description": "An AI assistant for managing project information templates. This agent helps create, update, and review the .prompts/project-info.prompttemplate file which provides context about your project to other AI agents. It can analyze your workspace to suggest project information or update existing templates based on your requirements."
        },
        "searchMaxResults": {
          "description": "Maximum number of search results returned by the workspace search function.",
          "title": "Maximum Search Results"
        },
        "workspaceAgent": {
          "description": "An AI assistant integrated into Theia IDE, designed to assist software developers. This agent can access the users workspace, it can get a list of all available files          and folders and retrieve their content. It cannot modify files. It can therefore answer questions about the current project, project files and source code in the          workspace, such as how to build the project, where to put source code, where to find specific code or configurations, etc."
        }
      }
    },
    "ai-chat": {
      "fileChangeSetTitle": "Changes proposed"
    },
    "ai-chat-ui": {
      "confirm": "Confirm",
      "deleteChat": "Delete Chat",
      "initiate-session-task-context": "Task Context: Initiate Session",
      "navigate-back": "Navigate Back",
      "navigate-forward": "Navigate Forward",
      "open-current-session-summary": "Open Current Session Summary",
      "open-settings-tooltip": "Open AI settings...",
      "renameChat": "Rename Chat",
      "scroll-lock": "Lock Scroll",
      "scroll-unlock": "Unlock Scroll",
      "session-settings": "Set Session Settings",
      "showChats": "Show Chats...",
      "summarize-current-session": "Summarize Current Session"
    },
    "ai-claude-code": {
      "open-config": "Open Claude Code Configuration",
      "open-memory": "Open Claude Code Memory (CLAUDE.MD)"
    },
    "ai-core": {
      "agentCompletionMessage": "Agent \"{0}\" has completed its task.",
      "agentCompletionMessageWithSession": "Agent \"{0}\" has completed its task in \"{1}\".",
      "agentCompletionTitle": "Agent \"{0}\" Task Completed",
      "preferences": {
        "title": "AI Features"
      },
      "showChat": "Show Chat"
    },
    "ai-editor": {
      "contextMenu": "Ask AI",
      "sendToChat": "Send to AI Chat"
    },
    "ai-ide": {
      "addressGhReviewCommand": {
        "argumentHint": "<pr-number>",
        "description": "Address review comments on a GitHub pull request"
      },
      "appTester": {
        "description": "Delegates to AppTester agent for browser-based UI verification after implementation.",
        "name": "E2E Test"
      },
      "codeReview": {
        "description": "Delegates to code-reviewer agent after each implementation. Blocks next steps until review passes."
      },
      "fixGhTicketCommand": {
        "argumentHint": "<ticket-number>",
        "description": "Analyze a GitHub ticket and implement the solution"
      },
      "open-agent-settings-tooltip": "Open Agent settings...",
      "rememberCommand": {
        "argumentHint": "[topic-hint]",
        "description": "Extract topics from conversation and update project info"
      },
      "ticketCommand": {
        "argumentHint": "<ticket-number>",
        "description": "Analyze a GitHub ticket and create an implementation plan"
      },
      "todoTool": {
        "noTasks": "No tasks"
      }
    },
    "ai-mcp": {
      "blockedServersLabel": "MCP Servers (autostart blocked)"
    },
    "ai-terminal": {
      "allowAllConfirm": "I understand, allow all",
      "allowAllForever": "Always allow all shell commands...",
      "allowAllSession": "Allow all shell commands for this chat...",
      "allowAllSessionConfirm": "I understand, allow all for this chat",
      "allowAllSessionTitle": "Allow ALL Shell Commands for This Chat?",
      "allowAllSessionWarning": "This will allow the AI to execute any shell command without confirmation for the remainder of this chat session. Shell commands have full system access and can execute any command, modify files outside the workspace, and access network resources. Commands on the deny list will still be blocked.",
      "allowAllTitle": "Allow ALL Shell Commands?",
      "allowAllWarning": "This will allow the AI to execute any shell command without confirmation. Shell commands have full system access and can execute any command, modify files outside the workspace, and access network resources. Commands on the deny list will still be blocked.",
      "alwaysAllowPattern": "Always allow {0}",
      "alwaysAllowPatterns": "Always allow {0} and {1}",
      "alwaysAllowPatternsList": "Always allow {0}",
      "alwaysDenyPattern": "Always deny {0}",
      "alwaysDenyPatterns": "Always deny {0} and {1}",
      "alwaysDenyPatternsList": "Always deny {0}",
      "cancelExecution": "Cancel command execution",
      "canceling": "Canceling...",
      "configurePermissions": "Configure shell command permissions",
      "confirmExecution": "Confirm Shell Command",
      "denialReason": "Reason",
      "executionCanceled": "Canceled",
      "executionDenied": "Denied",
      "executionDeniedWithReason": "Denied with reason",
      "noOutput": "No output",
      "partialOutput": "Partial Output",
      "shellCommandAllowlist": {
        "description": "List of shell command patterns. Use * as wildcard: \"git log\" (exact match), \"git log *\" (with optional arguments), \"* --version\" (any command ending with --version). Wildcard must be preceded by space. Commands with dangerous patterns ($, backticks) are never auto-allowed."
      },
      "shellCommandDenylist": {
        "description": "List of shell command patterns that should always be denied. Commands matching these patterns will be auto-rejected without confirmation. Uses pattern syntax: \"git push\" (exact match) or \"git push *\" (with any arguments). Ships with default patterns for dangerous commands (eval, exec, sudo, rm -rf, etc.)."
      },
      "timeout": "Timeout",
      "workingDirectory": "Working directory"
    },
    "callhierarchy": {
      "noCallers": "No callers have been detected.",
      "open": "Open Call Hierarchy"
    },
    "chat": {
      "taskContextVariable": {
        "args": {
          "contextId": {
            "description": "The ID of the task context to retrieve, or a chat session to summarize."
          }
        },
        "description": "Provides context information for a task, e.g. the plan for completing a task or a summary of a previous sessions",
        "label": "Task Context"
      }
    },
    "collaboration": {
      "collaborate": "Collaborate",
      "collaboration": "Collaboration",
      "collaborationWorkspace": "Collaboration Workspace",
      "connected": "Connected",
      "connectedSession": "Connected to a collaboration session",
      "copiedInvitation": "Invitation code copied to clipboard.",
      "copyAgain": "Copy Again",
      "createRoom": "Create New Collaboration Session",
      "creatingRoom": "Creating Session",
      "end": "End Collaboration Session",
      "endDetail": "Terminate the session, cease content sharing, and revoke access for others.",
      "enterCode": "Enter collaboration session code",
      "failedCreate": "Failed to create room: {0}",
      "failedJoin": "Failed to join room: {0}",
      "fieldRequired": "The {0} field is required. Login aborted.",
      "invite": "Invite Others",
      "inviteDetail": "Copy the invitation code for sharing it with others to join the session.",
      "joinRoom": "Join Collaboration Session",
      "joiningRoom": "Joining Session",
      "leave": "Leave Collaboration Session",
      "leaveDetail": "Disconnect from the current collaboration session and close the workspace.",
      "loginFailed": "Login failed.",
      "loginSuccessful": "Login successful.",
      "noAuth": "No authentication method provided by the server.",
      "optional": "optional",
      "selectAuth": "Select Authentication Method",
      "selectCollaboration": "Select collaboration option",
      "serverUrl": "Server URL",
      "serverUrlDescription": "URL of the Open Collaboration Tools Server instance for live collaboration sessions",
      "sharedSession": "Shared a collaboration session",
      "startSession": "Start or join collaboration session",
      "userWantsToJoin": "User '{0}' wants to join the collaboration room",
      "whatToDo": "What would you like to do with other collaborators?"
    },
    "core": {
      "about": {
        "compatibility": "{0} Compatibility",
        "defaultApi": "Default {0} API",
        "listOfExtensions": "List of extensions",
        "monacoEditor": "Monaco Editor Version"
      },
      "common": {
        "closeAll": "Close All Tabs",
        "closeAllTabMain": "Close All Tabs in Main Area",
        "closeOtherTabMain": "Close Other Tabs in Main Area",
        "closeOthers": "Close Other Tabs",
        "closeRight": "Close Tabs to the Right",
        "closeTab": "Close Tab",
        "closeTabMain": "Close Tab in Main Area",
        "collapseAllTabs": "Collapse All Side Panels",
        "collapseBottomPanel": "Toggle Bottom Panel",
        "collapseLeftPanel": "Toggle Left Panel",
        "collapseRightPanel": "Toggle Right Panel",
        "collapseTab": "Collapse Side Panel",
        "showNextTabGroup": "Switch to Next Tab Group",
        "showNextTabInGroup": "Switch to Next Tab in Group",
        "showPreviousTabGroup": "Switch to Previous Tab Group",
        "showPreviousTabInGroup": "Switch to Previous Tab in Group",
        "toggleMaximized": "Toggle Maximized"
      },
      "copyInfo": "Open a file first to copy its path",
      "copyWarn": "Please use the browser's copy command or shortcut.",
      "cutWarn": "Please use the browser's cut command or shortcut.",
      "enhancedPreview": {
        "classic": "Display a simple preview of the tab with basic information.",
        "enhanced": "Display an enhanced preview of the tab with additional information.",
        "visual": "Display a visual preview of the tab."
      },
      "file": {
        "browse": "Browse"
      },
      "highlightModifiedTabs": "Controls whether a top border is drawn on modified (dirty) editor tabs or not.",
      "keybinding": {
        "duplicateModifierError": "Can't parse keybinding {0} Duplicate modifiers",
        "metaError": "Can't parse keybinding {0} meta is for OSX only",
        "unrecognizedKeyError": "Unrecognized key {0} in {1}"
      },
      "keybindingStatus": "{0} was pressed, waiting for more keys",
      "keyboard": {
        "choose": "Choose Keyboard Layout",
        "chooseLayout": "Choose a keyboard layout",
        "current": "(current: {0})",
        "currentLayout": " - current layout",
        "mac": "Mac Keyboards",
        "pc": "PC Keyboards",
        "tryDetect": "Try to detect the keyboard layout from browser information and pressed keys."
      },
      "navigator": {
        "clipboardWarn": "Access to the clipboard is denied. Check your browser's permission.",
        "clipboardWarnFirefox": "Clipboard API is not available. It can be enabled by '{0}' preference on '{1}' page. Then reload Theia. Note, it will allow FireFox getting full access to the system clipboard."
      },
      "offline": "Offline",
      "pasteWarn": "Please use the browser's paste command or shortcut.",
      "quitMessage": "Any unsaved changes will not be saved.",
      "resetWorkbenchLayout": "Reset Workbench Layout",
      "searchbox": {
        "close": "Close (Escape)",
        "next": "Next (Down)",
        "previous": "Previous (Up)",
        "showAll": "Show all items",
        "showOnlyMatching": "Show only matching items"
      },
      "secondaryWindow": {
        "alwaysOnTop": "When enabled, the secondary window stays above all other windows, including those of different applications.",
        "description": "Sets the initial position and size of the extracted secondary window.",
        "fullSize": "The position and size of the extracted widget will be the same as the running Theia application.",
        "halfWidth": "The position and size of the extracted widget will be half the width of the running Theia application.",
        "originalSize": "The position and size of the extracted widget will be the same as the original widget."
      },
      "severity": {
        "log": "Log"
      },
      "silentNotifications": "Controls whether to suppress notification popups.",
      "tabDefaultSize": "Specifies the default size for tabs.",
      "tabMaximize": "Controls whether to maximize tabs on double click.",
      "tabMinimumSize": "Specifies the minimum size for tabs.",
      "tabShrinkToFit": "Shrink tabs to fit available space.",
      "window": {
        "tabCloseIconPlacement": {
          "description": "Place the close icons on tab titles at the start or end of the tab. The default is end on all platforms.",
          "end": "Place the close icon at the end of the label. In left-to-right languages, this is the right side of the tab.",
          "start": "Place the close icon at the start of the label. In left-to-right languages, this is the left side of the tab."
        }
      },
      "window.menuBarVisibility": "Menu is displayed as a compact button in the side bar. This value is ignored when {0} is {1}."
    },
    "debug": {
      "TheiaIDE": "Theia IDE",
      "addConfigurationPlaceholder": "Select workspace root to add configuration to",
      "breakpoint": "breakpoint",
      "cannotRunToThisLocation": "Could not run the current thread to the specified location.",
      "compound-cycle": "Launch configuration '{0}' contains a cycle with itself",
      "conditionalBreakpoint": "Conditional Breakpoint",
      "conditionalBreakpointsNotSupported": "Conditional breakpoints not supported by this debug type",
      "confirmRunToShiftedPosition_msg": "The target position will be shifted to Ln {0}, Col {1}. Run anyway?",
      "confirmRunToShiftedPosition_title": "Cannot run the current thread to exactly the specified location",
      "consoleFilterAriaLabel": "Filter debug console output",
      "consoleFilterTooltip": "Filter console output by text. Separate multiple terms with commas. Prefix with `!` to exclude a term.\n\nExamples:\n\n- `text` - show lines containing \"text\"\n- `text, other` - show lines containing \"text\" or \"other\"\n- `!text` - hide lines containing \"text\"\n- `text, !other` - show \"text\" but hide \"other\"",
      "consoleSessionSelectorTooltip": "Switch between debug sessions. Each debug session has its own console output.",
      "consoleSeverityTooltip": "Filter console output by severity level. Only messages with the selected severity will be shown.",
      "continueAll": "Continue All",
      "copyExpressionValue": "Copy Expression Value",
      "couldNotRunTask": "Could not run the task '{0}'.",
      "dataBreakpoint": "data breakpoint",
      "debugConfiguration": "Debug Configuration",
      "debugRestricted": "Debugging is disabled in Restricted Mode",
      "debugSessionInitializationFailed": "Debug session initialization failed. See console for details.",
      "debugSessionTypeNotSupported": "The debug session type \"{0}\" is not supported.",
      "debugToolbarMenu": "Debug Toolbar Menu",
      "debugVariableInput": "Set {0} Value",
      "disableSelectedBreakpoints": "Disable Selected Breakpoints",
      "disabledBreakpoint": "Disabled {0}",
      "enableSelectedBreakpoints": "Enable Selected Breakpoints",
      "entry": "entry",
      "errorStartingDebugSession": "There was an error starting the debug session, check the logs for more details.",
      "exception": "exception",
      "functionBreakpoint": "function breakpoint",
      "goto": "goto",
      "htiConditionalBreakpointsNotSupported": "Hit conditional breakpoints not supported by this debug type",
      "instruction-breakpoint": "Instruction Breakpoint",
      "instructionBreakpoint": "instruction breakpoint",
      "logpointsNotSupported": "Logpoints not supported by this debug type",
      "missingConfiguration": "Dynamic configuration '{0}:{1}' is missing or not applicable",
      "pause": "pause",
      "pauseAll": "Pause All",
      "reveal": "Reveal",
      "step": "step",
      "taskTerminatedBySignal": "Task '{0}' terminated by signal {1}.",
      "taskTerminatedForUnknownReason": "Task '{0}' terminated for unknown reason.",
      "taskTerminatedWithExitCode": "Task '{0}' terminated with exit code {1}.",
      "threads": "Threads",
      "toggleTracing": "Enable/disable tracing communications with debug adapters",
      "unknownSession": "Unknown Session",
      "unverifiedBreakpoint": "Unverified {0}"
    },
    "editor": {
      "autoSaveWhenNoErrors": "When enabled, will limit auto save of editors to files that have no errors reported in them at the time the auto save is triggered. Only applies when {0} is enabled.",
      "clearFormatterSetting": "Clear formatter setting",
      "configuredIn": "Configured in {0}",
      "configuredNotInstalled": "'{0}' configured in {1} but not installed",
      "configuredNotInstalledFallbackNamed": "'{0}' configured in {1} not installed, using '{2}'",
      "currentFormatter": "(Current)",
      "diffEditor.wordWrap2": "Lines will wrap according to the `#editor.wordWrap#` setting.",
      "dirtyEncoding": "The file is dirty. Please save it first before reopening it with another encoding.",
      "editor.bracketPairColorization.enabled": "Controls whether bracket pair colorization is enabled or not. Use `#workbench.colorCustomizations#` to override the bracket highlight colors.",
      "editor.codeActions.triggerOnFocusChange": "Enable triggering `#editor.codeActionsOnSave#` when `#files.autoSave#` is set to `afterDelay`. Code Actions must be set to `always` to be triggered for window and focus changes.",
      "editor.detectIndentation": "Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.",
      "editor.inlayHints.enabled1": "Inlay hints are showing by default and hide when holding Ctrl+Alt",
      "editor.inlayHints.enabled2": "Inlay hints are hidden by default and show when holding Ctrl+Alt",
      "editor.inlayHints.fontFamily": "Controls font family of inlay hints in the editor. When set to empty, the `#editor.fontFamily#` is used.",
      "editor.inlayHints.fontSize": "Controls font size of inlay hints in the editor. As default the `#editor.fontSize#` is used when the configured value is less than `5` or greater than the editor font size.",
      "editor.inlineSuggest.edits.experimental.enabled": "Controls whether to enable experimental edits in inline suggestions.",
      "editor.inlineSuggest.edits.experimental.onlyShowWhenCloseToCursor": "Controls whether to only show inline suggestions when the cursor is close to the suggestion.",
      "editor.inlineSuggest.edits.experimental.useInterleavedLinesDiff": "Controls whether to enable experimental interleaved lines diff in inline suggestions.",
      "editor.inlineSuggest.edits.experimental.useMixedLinesDiff": "Controls whether to enable experimental edits in inline suggestions.",
      "editor.insertSpaces": "Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.",
      "editor.quickSuggestions": "Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the `#editor.suggestOnTriggerCharacters#`-setting which controls if suggestions are triggered by special characters.",
      "editor.suggestFontSize": "Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.",
      "editor.suggestLineHeight": "Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.",
      "editor.tabSize": "The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.",
      "formatOnSaveTimeout": "Timeout in milliseconds after which the formatting that is run on file save is cancelled.",
      "formatter": "Formatter",
      "noDefaultConfiguredLabel": "No default formatter configured",
      "noDefaultConfiguredTooltip": "No default formatter configured ({0} formatters available)",
      "noEditor": "No editor active",
      "noFormatter": "No Formatter",
      "noFormatterInstalled": "No Formatter installed",
      "noFormattersAvailable": "No formatters available for this language",
      "noFormattersInstalledTooltip": "No formatters are installed for this language.",
      "onlyAvailableFormatter": "Only Available Formatter",
      "onlyFormatterInstalled": "{0} (only formatter installed)",
      "persistClosedEditors": "Controls whether to persist closed editor history for the workspace across window reloads.",
      "selectFormatter": "Select Default Formatter",
      "selectScope": "Select where to save the setting",
      "showAllEditors": "Show All Opened Editors",
      "showFormatterInfo": "Show Formatter Info",
      "splitHorizontal": "Split Editor Horizontal",
      "splitVertical": "Split Editor Vertical",
      "toggleStickyScroll": "Toggle Sticky Scroll",
      "userSettingsDetail": "Apply to all workspaces",
      "workspaceSettingsDetail": "Apply to current workspace only"
    },
    "external-terminal": {
      "cwd": "Select current working directory for new external terminal"
    },
    "file-search": {
      "toggleExcludedFiles": " (Press {0} to show/hide excluded files)"
    },
    "fileDialog": {
      "showHidden": "Show hidden files"
    },
    "fileSystem": {
      "fileResource": {
        "overWriteBody": "Do you want to overwrite the changes made to '{0}' on the file system?"
      }
    },
    "filesystem": {
      "copiedToClipboard": "Copied the download link to the clipboard.",
      "copyDownloadLink": "Copy Download Link",
      "dialog": {
        "initialLocation": "Go To Initial Location",
        "multipleItemMessage": "You can select only one item",
        "navigateBack": "Navigate Back",
        "navigateForward": "Navigate Forward",
        "navigateUp": "Navigate Up One Directory"
      },
      "fileResource": {
        "binaryFileQuery": "Opening it might take some time and might make the IDE unresponsive. Do you want to open '{0}' anyway?",
        "binaryTitle": "The file is either binary or uses an unsupported text encoding.",
        "largeFileTitle": "The file is too large ({0}).",
        "overwriteTitle": "The file '{0}' has been changed on the file system."
      },
      "filesExclude": "Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for excluding files and folders. For example, the file Explorer decides which files and folders to show or hide based on this setting.",
      "format": "Format:",
      "maxConcurrentUploads": "Maximum number of concurrent files to upload when uploading multiple files. 0 means all files will be uploaded concurrently.",
      "maxFileSizeMB": "Controls the max file size in MB which is possible to open.",
      "prepareDownload": "Preparing download...",
      "prepareDownloadLink": "Preparing download link...",
      "processedOutOf": "Processed {0} out of {1}",
      "replaceTitle": "Replace File",
      "uploadFailed": "An error occurred while uploading a file. {0}",
      "uploadFiles": "Uploading Files",
      "uploadedOutOf": "Uploaded {0} out of {1}"
    },
    "getting-started": {
      "ai": {
        "header": "AI Support in the Theia IDE is available!",
        "openAIChatView": "Open the AI Chat View now to learn how to start!"
      },
      "apiComparator": "{0} API Compatibility",
      "newExtension": "Building a New Extension",
      "newPlugin": "Building a New Plugin",
      "startup-editor": {
        "welcomePage": "Open the Welcome page, with content to aid in getting started with {0} and extensions."
      },
      "telemetry": "Data Usage & Telemetry"
    },
    "keybinding-schema-updater": {
      "deprecation": "Use `when` clause instead."
    },
    "keymaps": {
      "addKeybindingTitle": "Add Keybinding for {0}",
      "editKeybinding": "Edit Keybinding...",
      "editKeybindingTitle": "Edit Keybinding for {0}",
      "editWhenExpression": "Edit When Expression...",
      "editWhenExpressionTitle": "Edit When Expression for {0}",
      "keybinding": {
        "copy": "Copy Keybinding",
        "copyCommandId": "Copy Keybinding Command ID",
        "copyCommandTitle": "Copy Keybinding Command Title",
        "edit": "Edit Keybinding...",
        "editWhenExpression": "Edit Keybinding When Expression..."
      },
      "keybindingCollidesValidation": "keybinding currently collides",
      "requiredKeybindingValidation": "keybinding value is required",
      "resetKeybindingConfirmation": "Do you really want to reset this keybinding to its default value?",
      "resetKeybindingTitle": "Reset keybinding for {0}",
      "resetMultipleKeybindingsWarning": "If multiple keybindings exist for this command, all of them will be reset."
    },
    "localize": {
      "offlineTooltip": "Cannot connect to backend."
    },
    "markers": {
      "clearAll": "Clear All",
      "noProblems": "No problems have been detected in the workspace so far.",
      "tabbarDecorationsEnabled": "Show problem decorators (diagnostic markers) in the tab bars."
    },
    "memory-inspector": {
      "addressTooltip": "Memory location to display, an address or expression evaluating to an address",
      "ascii": "ASCII",
      "binary": "Binary",
      "byteSize": "Byte Size",
      "bytesPerGroup": "Bytes Per Group",
      "closeSettings": "Close Settings",
      "columns": "Columns",
      "command": {
        "createNewMemory": "Create New Memory Inspector",
        "createNewRegisterView": "Create New Register View",
        "followPointer": "Follow Pointer",
        "followPointerMemory": "Follow Pointer in Memory Inspector",
        "resetValue": "Reset Value",
        "showRegister": "Show Register in Memory Inspector",
        "viewVariable": "Show Variable in Memory Inspector"
      },
      "data": "Data",
      "decimal": "Decimal",
      "diff": {
        "label": "Diff: {0}"
      },
      "diff-widget": {
        "offset-label": "{0} Offset",
        "offset-title": "Bytes to offset the memory from {0}"
      },
      "editable": {
        "apply": "Apply Changes",
        "clear": "Clear Changes"
      },
      "endianness": "Endianness",
      "extraColumn": "Extra Column",
      "groupsPerRow": "Groups Per Row",
      "hexadecimal": "Hexadecimal",
      "length": "Length",
      "lengthTooltip": "Number of bytes to fetch, in decimal or hexadecimal",
      "memory": {
        "addressField": {
          "memoryReadError": "Enter an address or expression in the Location field."
        },
        "freeze": "Freeze Memory View",
        "hideSettings": "Hide Settings Panel",
        "readError": {
          "bounds": "Memory bounds exceeded, result will be truncated.",
          "noContents": "No memory contents currently available."
        },
        "readLength": {
          "memoryReadError": "Enter a length (decimal or hexadecimal number) in the Length field."
        },
        "showSettings": "Show Settings Panel",
        "unfreeze": "Unfreeze Memory View",
        "userError": "There was an error fetching memory."
      },
      "memoryCategory": "Memory Inspector",
      "memoryInspector": "Memory Inspector",
      "memoryTitle": "Memory",
      "octal": "Octal",
      "offset": "Offset",
      "offsetTooltip": "Offset to be added to the current memory location, when navigating",
      "provider": {
        "localsError": "Cannot read local variables. No active debug session.",
        "readError": "Cannot read memory. No active debug session.",
        "writeError": "Cannot write memory. No active debug session."
      },
      "register": "Register",
      "register-widget": {
        "filter-placeholder": "Filter (starts with)"
      },
      "registerReadError": "There was an error fetching registers.",
      "registers": "Registers",
      "toggleComparisonWidgetVisibility": "Toggle Comparison Widget Visibility",
      "utils": {
        "afterBytes": "You must load memory in both widgets you would like to compare. {0} has no memory loaded.",
        "bytesMessage": "You must load memory in both widgets you would like to compare. {0} has no memory loaded."
      }
    },
    "messages": {
      "notificationTimeout": "Informative notifications will be hidden after this timeout.",
      "toggleNotifications": "Toggle Notifications"
    },
    "mini-browser": {
      "typeUrl": "Type a URL"
    },
    "monaco": {
      "noSymbolsMatching": "No symbols matching",
      "typeToSearchForSymbols": "Type to search for symbols"
    },
    "navigator": {
      "autoReveal": "Auto Reveal",
      "clipboardWarn": "Access to the clipboard is denied. Check your browser's permission.",
      "clipboardWarnFirefox": "Clipboard API is not available. It can be enabled by '{0}' preference on '{1}' page. Then reload Theia. Note, it will allow FireFox getting full access to the system clipboard.",
      "openWithSystemEditor": "Open With System Editor",
      "refresh": "Refresh in Explorer",
      "reveal": "Reveal in Explorer",
      "systemEditor": "System Editor",
      "toggleHiddenFiles": "Toggle Hidden Files"
    },
    "output": {
      "clearOutputChannel": "Clear Output Channel...",
      "closeOutputChannel": "Close Output Channel...",
      "hiddenChannels": "Hidden Channels",
      "hideOutputChannel": "Hide Output Channel...",
      "maxChannelHistory": "The maximum number of entries in an output channel.",
      "outputChannels": "Output Channels",
      "showOutputChannel": "Show Output Channel..."
    },
    "plugin": {
      "blockNewTab": "Your browser prevented opening of a new tab"
    },
    "plugin-dev": {
      "alreadyRunning": "Hosted instance is already running.",
      "debugInstance": "Debug Instance",
      "debugMode": "Using inspect or inspect-brk for Node.js debug",
      "debugPorts": {
        "debugPort": "Port to use for this server's Node.js debug",
        "serverName": "The plugin host server name, e.g. \"hosted-plugin\" as in \"--hosted-plugin-inspect=\" or \"headless-hosted-plugin\" as in \"--headless-hosted-plugin-inspect=\""
      },
      "devHost": "Development Host",
      "failed": "Failed to run hosted plugin instance: {0}",
      "hostedPlugin": "Hosted Plugin",
      "hostedPluginRunning": "Hosted Plugin: Running",
      "hostedPluginStarting": "Hosted Plugin: Starting",
      "hostedPluginStopped": "Hosted Plugin: Stopped",
      "hostedPluginWatching": "Hosted Plugin: Watching",
      "instanceTerminated": "{0} has been terminated",
      "launchOutFiles": "Array of glob patterns for locating generated JavaScript files (`${pluginPath}` will be replaced by plugin actual path).",
      "noValidPlugin": "Specified folder does not contain valid plugin.",
      "notRunning": "Hosted instance is not running.",
      "pluginFolder": "Plugin folder is set to: {0}",
      "preventedNewTab": "Your browser prevented opening of a new tab",
      "restartInstance": "Restart Instance",
      "running": "Hosted instance is running at:",
      "selectPath": "Select Path",
      "startInstance": "Start Instance",
      "starting": "Starting hosted instance server ...",
      "stopInstance": "Stop Instance",
      "unknownTerminated": "The instance has been terminated",
      "watchMode": "Run watcher on plugin under development"
    },
    "plugin-ext": {
      "authentication-main": {
        "loginTitle": "Login",
        "signedOut": "Successfully signed out."
      },
      "extensionsRestrictedMode": "Some extensions are disabled in Restricted Mode",
      "supportNodeGlobalNavigator": "If enabled, the global navigator object in the extension host will be defined as provided by Node.js. Extensions may use the presence of the navigator object as a hint that code is running in a browser. Disabling this (the default) undefines the navigator in the extension host to preserve this assumption.",
      "webviewTrace": "Controls communication tracing with webviews.",
      "webviewWarnIfUnsecure": "Warns users that webviews are currently deployed insecurely."
    },
    "preferences": {
      "ai-features": "AI Features",
      "hostedPlugin": "Hosted Plugin",
      "toolbar": "Toolbar"
    },
    "preview": {
      "openByDefault": "Open the preview instead of the editor by default."
    },
    "property-view": {
      "directory": "Directory",
      "lastModified": "Last modified",
      "noProperties": "No properties available.",
      "properties": "Properties",
      "symbolicLink": "Symbolic link"
    },
    "remote": {
      "dev-container": {
        "connect": "Reopen in Container",
        "noDevcontainerFiles": "No devcontainer.json files found in the workspace. Please ensure you have a .devcontainer directory with a devcontainer.json file.",
        "selectDevcontainer": "Select a devcontainer.json file"
      },
      "ssh": {
        "connect": "Connect Current Window to Host...",
        "connectToConfigHost": "Connect Current Window to Host in Config File...",
        "enterHost": "Enter SSH host name",
        "enterUser": "Enter SSH user name",
        "failure": "Could not open SSH connection to remote.",
        "hostPlaceHolder": "E.g. hello@example.com",
        "needsHost": "Please enter a host name.",
        "needsUser": "Please enter a user name.",
        "userPlaceHolder": "E.g. hello"
      },
      "sshNoConfigPath": "No SSH config path found.",
      "wsl": {
        "connectToWsl": "Connect to WSL",
        "connectToWslUsingDistro": "Connect to WSL using Distro...",
        "noWslDistroFound": "No WSL distributions found. Please install a WSL distribution first.",
        "reopenInWsl": "Reopen Folder in WSL",
        "selectWSLDistro": "Select a WSL distribution"
      }
    },
    "scm": {
      "amend": "Amend",
      "amendHeadCommit": "HEAD Commit",
      "amendLastCommit": "Amend last commit",
      "changeRepository": "Change Repository...",
      "dirtyDiff": {
        "close": "Close Change Peek View"
      },
      "history": "History",
      "mergeEditor": {
        "resetConfirmationTitle": "Do you really want to reset the merge result in this editor?"
      },
      "noHistoryForError": "There is no history available for {0}",
      "prepositionIn": "in",
      "unamend": "Unamend",
      "unamendCommit": "Unamend commit"
    },
    "search-in-workspace": {
      "includeIgnoredFiles": "Include Ignored Files",
      "noFolderSpecified": "You have not opened or specified a folder. Only open files are currently searched.",
      "resultSubset": "This is only a subset of all results. Use a more specific search term to narrow down the result list.",
      "searchExclude": "Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for excluding files and folders in full-text searches and file search in quick open. Inherits all glob patterns from the `#files.exclude#` setting.",
      "searchOnEditorModification": "Search the active editor when modified."
    },
    "secondary-window": {
      "extract-widget": "Move View to Secondary Window"
    },
    "shell-area": {
      "secondary": "Secondary Window"
    },
    "task": {
      "attachTask": "Attach Task...",
      "circularReferenceDetected": "Circular reference detected: {0} --> {1}",
      "clearHistory": "Clear History",
      "errorKillingTask": "Error killing task '{0}': {1}",
      "errorLaunchingTask": "Error launching task '{0}': {1}",
      "invalidTaskConfigs": "Invalid task configurations are found. Open tasks.json and find details in the Problems view.",
      "neverScanTaskOutput": "Never scan the task output",
      "noTaskToRun": "No task to run found. Configure Tasks...",
      "noTasksFound": "No tasks found",
      "notEnoughDataInDependsOn": "The information provided in the \"dependsOn\" is not enough for matching the correct task!",
      "schema": {
        "commandOptions": {
          "cwd": "The current working directory of the executed program or script. If omitted Theia's current workspace root is used."
        },
        "presentation": {
          "panel": {
            "dedicated": "The terminal is dedicated to a specific task. If that task is executed again, the terminal is reused. However, the output of a different task is presented in a different terminal.",
            "new": "Every execution of that task is using a new clean terminal.",
            "shared": "The terminal is shared and the output of other task runs are added to the same terminal."
          },
          "showReuseMessage": "Controls whether to show the \"Terminal will be reused by tasks\" message."
        },
        "problemMatcherObject": {
          "owner": "The owner of the problem inside Theia. Can be omitted if base is specified. Defaults to 'external' if omitted and base is not specified."
        }
      },
      "taskAlreadyRunningInTerminal": "Task is already running in terminal",
      "taskExitedWithCode": "Task '{0}' has exited with code {1}.",
      "taskIdLabel": "#{0}",
      "taskRestricted": "Task execution is disabled in Restricted Mode",
      "taskTerminatedBySignal": "Task '{0}' was terminated by signal {1}.",
      "terminalWillBeReusedByTasks": "Terminal will be reused by tasks."
    },
    "terminal": {
      "defaultProfile": "The default profile used on {0}",
      "enableCommandHistory": "Track terminal commands and their output separately using shell injection. This enables use cases such as visually distinguishing commands in the UI and giving AI agents more structured access to terminals. Toggling this setting will not affect terminals that are already open.\n\n&nbsp;\n\nThis feature is currently only supported by task terminals and user terminals running bash or zsh.",
      "enableCommandSeparator": "Enable a visual separator between executed commands and their output in the terminal. Changes only apply to commands executed after this setting is modified. Only works when {0} is enabled.",
      "enableCopy": "Enable ctrl-c (cmd-c on macOS) to copy selected text",
      "enablePaste": "Enable ctrl-v (cmd-v on macOS) to paste from clipboard",
      "profileArgs": "The shell arguments that this profile uses.",
      "profileColor": "A terminal theme color ID to associate with the terminal.",
      "profileDefault": "Choose Default Profile...",
      "profileIcon": "A codicon ID to associate with the terminal icon.\nterminal-tmux:\"$(terminal-tmux)\"",
      "profileNew": "New Terminal (With Profile)...",
      "profilePath": "The path of the shell that this profile uses.",
      "profiles": "The profiles to present when creating a new terminal. Set the path property manually with optional args.\nSet an existing profile to `null` to hide the profile from the list, for example: `\"{0}\": null`.",
      "rendererType": "Controls how the terminal is rendered.",
      "rendererTypeDeprecationMessage": "The renderer type is no longer supported as an option.",
      "selectProfile": "Select a profile for the new terminal",
      "shell.deprecated": "This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in 'terminal.integrated.profiles.{0}' and setting its profile name as the default in 'terminal.integrated.defaultProfile.{0}.'",
      "shellArgsLinux": "The command line arguments to use when on the Linux terminal.",
      "shellArgsOsx": "The command line arguments to use when on the macOS terminal.",
      "shellArgsWindows": "The command line arguments to use when on the Windows terminal.",
      "shellLinux": "The path of the shell that the terminal uses on Linux (default: '{0}'}).",
      "shellOsx": "The path of the shell that the terminal uses on macOS (default: '{0}'}).",
      "shellWindows": "The path of the shell that the terminal uses on Windows. (default: '{0}')."
    },
    "terminal-manager": {
      "addTerminalToGroup": "Add terminal to group",
      "closeDialog": {
        "message": "Once the Terminal Manager is closed, its layout cannot be restored. Are you sure you want to close the Terminal Manager?",
        "title": "Do you want to close the terminal manager?"
      },
      "closeTerminalManager": "Close Terminal Manager",
      "createNewTerminalGroup": "Create New Terminal Group",
      "createNewTerminalPage": "Create New Terminal Page",
      "deleteGroup": "Delete Group",
      "deletePage": "Delete Page",
      "deleteTerminal": "Delete Terminal",
      "group": "Group",
      "label": "Terminals",
      "maximizeBottomPanel": "Maximize Bottom Panel",
      "minimizeBottomPanel": "Minimize Bottom Panel",
      "openTerminalManager": "Open Terminal Manager",
      "page": "Page",
      "rename": "Rename",
      "resetTerminalManagerLayout": "Reset Terminal Manager Layout",
      "tabsDisplay": "Controls how terminals are displayed. 'tree' shows multiple terminals in a single view with a tree view for management,'tabbed' shows each terminal in its own view in a separate tab.",
      "toggleTreeView": "Toggle Tree View",
      "treeViewLocation": "The location of the terminal manager's tree view. Only applies when 'terminal.grouping.mode' is set to 'tree'."
    },
    "test": {
      "cancelAllTestRuns": "Cancel All Test Runs",
      "stackFrameAt": "at",
      "testRunDefaultName": "{0} run {1}",
      "testRuns": "Test Runs"
    },
    "toolbar": {
      "addCommand": "Add Command to Toolbar",
      "addCommandPlaceholder": "Find a command to add to the toolbar",
      "centerColumn": "Center Column",
      "failedUpdate": "Failed to update the value of '{0}' in '{1}'.",
      "filterIcons": "Filter Icons",
      "iconSelectDialog": "Select an Icon for '{0}'",
      "iconSet": "Icon Set",
      "insertGroupLeft": "Insert Group Separator (Left)",
      "insertGroupRight": "Insert Group Separator (Right)",
      "leftColumn": "Left Column",
      "openJSON": "Customize Toolbar (Open JSON)",
      "removeCommand": "Remove Command From Toolbar",
      "restoreDefaults": "Restore Toolbar Defaults",
      "rightColumn": "Right Column",
      "selectIcon": "Select Icon",
      "toggleToolbar": "Toggle Toolbar",
      "toolbarLocationPlaceholder": "Where would you like the command added?",
      "useDefaultIcon": "Use Default Icon"
    },
    "typehierarchy": {
      "subtypeHierarchy": "Subtype Hierarchy",
      "supertypeHierarchy": "Supertype Hierarchy"
    },
    "variableResolver": {
      "listAllVariables": "Variable: List All"
    },
    "vsx-registry": {
      "confirmDialogMessage": "The extension \"{0}\" is unverified and might pose a security risk.",
      "confirmDialogTitle": "Are you sure you want to proceed with the installation?",
      "downloadCount": "Download count: {0}",
      "duplicateVSIX": "Failed to install {0} from VSIX. The extension is already installed. Uninstall the existing extension before installing a new version from VSIX.",
      "errorFetching": "Error fetching extensions.",
      "errorFetchingConfigurationHint": "This could be caused by network configuration issues.",
      "failedInstallingVSIX": "Failed to install {0} from VSIX.",
      "invalidVSIX": "The selected file is not a valid \"*.vsix\" plugin.",
      "license": "License: {0}",
      "onlyShowVerifiedExtensionsDescription": "This allows the {0} to only show verified extensions.",
      "onlyShowVerifiedExtensionsTitle": "Only Show Verified Extensions",
      "recommendedExtensions": "A list of the names of extensions recommended for use in this workspace.",
      "restrictedModeInstallWarning": "The extension '{0}' may be disabled if it does not support running in Restricted Mode. Trust this workspace to ensure the extension works as expected.",
      "searchPlaceholder": "Search Extensions in {0}",
      "showInstalled": "Show Installed Extensions",
      "showRecommendedExtensions": "Controls whether notifications are shown for extension recommendations.",
      "vsx-extensions-contribution": {
        "update-version-uninstall-error": "Error while removing the extension: {0}.",
        "update-version-version-error": "Failed to install version {0} of {1}."
      }
    },
    "webview": {
      "goToReadme": "Go To README",
      "messageWarning": "            The {0} endpoint's host pattern has been changed to `{1}`; changing the pattern can lead to security vulnerabilities.             See `{2}` for more information."
    },
    "workspace": {
      "bothAreDirectories": "Both resources are directories.",
      "clickToManageTrust": "Click to manage trust settings.",
      "compareWithEachOther": "Compare with Each Other",
      "confirmDeletePermanently.description": "Failed to delete \"{0}\" using the Trash. Do you want to permanently delete instead?",
      "confirmDeletePermanently.solution": "You can disable the use of Trash in the preferences.",
      "confirmDeletePermanently.title": "Error deleting file",
      "confirmMessage.delete": "Do you really want to delete the following files?",
      "confirmMessage.dirtyMultiple": "Do you really want to delete {0} files with unsaved changes?",
      "confirmMessage.dirtySingle": "Do you really want to delete {0} with unsaved changes?",
      "confirmMessage.uriMultiple": "Do you really want to delete all the {0} selected files?",
      "confirmMessage.uriSingle": "Do you really want to delete {0}?",
      "directoriesCannotBeCompared": "Directories cannot be compared. {0}",
      "duplicate": "Duplicate",
      "failSaveAs": "Cannot run \"{0}\" for the current widget.",
      "isDirectory": "'{0}' is a directory.",
      "manageTrustPlaceholder": "Select trust state for this workspace",
      "newFilePlaceholder": "File Name",
      "newFolderPlaceholder": "Folder Name",
      "noErasure": "Note: Nothing will be erased from disk",
      "notWorkspaceFile": "Not a valid workspace file: {0}",
      "openRecentPlaceholder": "Type the name of the workspace you want to open",
      "openRecentWorkspace": "Open Recent Workspace...",
      "preserveWindow": "Enable opening workspaces in current window.",
      "removeFolder": "Are you sure you want to remove the following folder from the workspace?",
      "removeFolders": "Are you sure you want to remove the following folders from the workspace?",
      "restrictedModeDescription": "Some features are disabled because this workspace is not trusted.",
      "restrictedModeNote": "*Please note: The workspace trust feature is currently under development in Theia; not all features are integrated with workspace trust yet*",
      "schema": {
        "folders": {
          "description": "Root folders in the workspace"
        },
        "title": "Workspace File"
      },
      "trashTitle": "Move {0} to Trash",
      "trustDialogMessage": "If you trust the authors, code in this folder may be executed.\n\nIf not, some features will be disabled.\n\nThe workspace trust feature is currently under development in Theia; not all features are integrated with workspace trust yet.\nCheck the 'Restricted Mode' indicator in the status bar for details.",
      "trustEmptyWindow": "Controls whether or not the empty workspace is trusted by default.",
      "trustEnabled": "Controls whether or not workspace trust is enabled. If disabled, all workspaces are trusted.",
      "trustTrustedFolders": "List of folder URIs that are trusted without prompting.",
      "untitled-cleanup": "There appear to be many untitled workspace files. Please check {0} and remove any unused files.",
      "variables": {
        "cwd": {
          "description": "The task runner's current working directory on startup"
        },
        "file": {
          "description": "The path of the currently opened file"
        },
        "fileBasename": {
          "description": "The basename of the currently opened file"
        },
        "fileBasenameNoExtension": {
          "description": "The currently opened file's name without extension"
        },
        "fileDirname": {
          "description": "The name of the currently opened file's directory"
        },
        "fileExtname": {
          "description": "The extension of the currently opened file"
        },
        "relativeFile": {
          "description": "The currently opened file's path relative to the workspace root"
        },
        "relativeFileDirname": {
          "description": "The current opened file's dirname relative to ${workspaceFolder}"
        },
        "workspaceFolder": {
          "description": "The path of the workspace root folder"
        },
        "workspaceFolderBasename": {
          "description": "The name of the workspace root folder"
        },
        "workspaceRoot": {
          "description": "The path of the workspace root folder"
        },
        "workspaceRootFolderName": {
          "description": "The name of the workspace root folder"
        }
      },
      "workspaceFolderAdded": "A workspace with multiple roots was created. Do you want to save your workspace configuration as a file?",
      "workspaceFolderAddedTitle": "Folder added to Workspace"
    }
  },
  "vsx.disabling": "Disabling",
  "vsx.disabling.extensions": "Disabling {0}...",
  "vsx.enabling": "Enabling",
  "vsx.enabling.extension": "Enabling {0}..."
}
