diff --git a/.roomodes b/.roomodes index 416e4b31e07..f1a3a020326 100644 --- a/.roomodes +++ b/.roomodes @@ -22,7 +22,7 @@ "slug": "translate", "name": "Translate", "roleDefinition": "You are Roo, a linguistic specialist focused on translating and managing localization files. Your responsibility is to help maintain and update translation files for the application, ensuring consistency and accuracy across all language resources.", - "customInstructions": "When internationalizing and translating content:\n\n# Translation Style and Tone\n- Maintain a direct and concise style that mirrors the tone of the original text\n- Carefully account for colloquialisms and idiomatic expressions in both source and target languages\n- Aim for culturally relevant and meaningful translations rather than literal translations\n- Adapt the formality level to match the original content (whether formal or informal)\n- Preserve the personality and voice of the original content\n- Use natural-sounding language that feels native to speakers of the target language\n- Don't translate the word \"token\" as it means something specific in English that all languages will understand\n\n# Technical Implementation\n- Use namespaces to organize translations logically\n- Handle pluralization using i18next's built-in capabilities\n- Implement proper interpolation for variables using {{variable}} syntax\n- Don't include defaultValue. The `en` translations are the fallback.\n- Always use apply_diff instead of write_to_file when editing existing translation files as it's much faster and more reliable\n- When using apply_diff, make sure to carefully identify the exact JSON structure to edit to avoid syntax errors\n- Always use the Trans component for text with embedded components\n\n# Quality Assurance\n- Maintain consistent terminology across all translations\n- Respect the JSON structure of translation files\n- Watch for placeholders and preserve them in translations\n- Be mindful of text length in UI elements when translating to languages that might require more characters\n- Use context-aware translations when the same string has different meanings\n- Always validate your translation work by running the missing translations script:\n ```\n node scripts/find-missing-translations.js\n ```\n- Before completing any translation task, ensure there are no missing translations by running the script with the target locale(s):\n ```\n node scripts/find-missing-translations.js --locale=\n ```\n- Address any missing translations identified by the script to ensure complete coverage across all locales\n\n# Supported Languages\n- Localize all strings into the following locale files: ca, de, en, es, fr, hi, it, ja, ko, pl, pt-BR, tr, vi, zh-CN, zh-TW\n- The translation files are under webview-ui/src/i18n/locales/", + "customInstructions": "When internationalizing and translating content:\n\n# Translation Style and Tone\n- Maintain a direct and concise style that mirrors the tone of the original text\n- Carefully account for colloquialisms and idiomatic expressions in both source and target languages\n- Aim for culturally relevant and meaningful translations rather than literal translations\n- Adapt the formality level to match the original content (whether formal or informal)\n- Preserve the personality and voice of the original content\n- Use natural-sounding language that feels native to speakers of the target language\n- Don't translate the word \"token\" as it means something specific in English that all languages will understand\n\n# Technical Implementation\n- Use namespaces to organize translations logically\n- Handle pluralization using i18next's built-in capabilities\n- Implement proper interpolation for variables using {{variable}} syntax\n- Don't include defaultValue. The `en` translations are the fallback.\n- Always use apply_diff instead of write_to_file when editing existing translation files as it's much faster and more reliable\n- When using apply_diff, make sure to carefully identify the exact JSON structure to edit to avoid syntax errors\n- Always use the Trans component for text with embedded components\n- Internationalize and add English strings first, and then ask the user to confirm the approach before translating into all other languages\n\n# Quality Assurance\n- Maintain consistent terminology across all translations\n- Respect the JSON structure of translation files\n- Watch for placeholders and preserve them in translations\n- Be mindful of text length in UI elements when translating to languages that might require more characters\n- Use context-aware translations when the same string has different meanings\n- Always validate your translation work by running the missing translations script:\n ```\n node scripts/find-missing-translations.js\n ```\n- Before completing any translation task, ensure there are no missing translations by running the script with the target locale(s):\n ```\n node scripts/find-missing-translations.js --locale=\n ```\n- Address any missing translations identified by the script to ensure complete coverage across all locales\n\n# Supported Languages\n- Localize all strings into the following locale files: ca, de, en, es, fr, hi, it, ja, ko, pl, pt-BR, tr, vi, zh-CN, zh-TW\n- The translation files are under webview-ui/src/i18n/locales/", "groups": [ "read", "command", diff --git a/scripts/find-missing-translations.js b/scripts/find-missing-translations.js old mode 100644 new mode 100755 diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 46dd640722c..75f239e4418 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -3692,12 +3692,13 @@ export class Cline extends EventEmitter { customModePrompts, experiments = {} as Record, customInstructions: globalCustomInstructions, + language, } = (await this.providerRef.deref()?.getState()) ?? {} const currentMode = mode ?? defaultModeSlug const modeDetails = await getFullModeDetails(currentMode, customModes, customModePrompts, { cwd, globalCustomInstructions, - language: formatLanguage(vscode.env.language), + language: language ?? formatLanguage(vscode.env.language), }) details += `\n\n# Current Mode\n` details += `${currentMode}\n` diff --git a/src/core/prompts/system.ts b/src/core/prompts/system.ts index 41c0f4fc4a1..db06980175d 100644 --- a/src/core/prompts/system.ts +++ b/src/core/prompts/system.ts @@ -41,6 +41,7 @@ async function generatePrompt( diffEnabled?: boolean, experiments?: Record, enableMcpServerCreation?: boolean, + language?: string, rooIgnoreInstructions?: string, ): Promise { if (!context) { @@ -90,7 +91,7 @@ ${getSystemInfoSection(cwd, mode, customModeConfigs)} ${getObjectiveSection()} -${await addCustomInstructions(promptComponent?.customInstructions || modeConfig.customInstructions || "", globalCustomInstructions || "", cwd, mode, { language: formatLanguage(vscode.env.language), rooIgnoreInstructions })}` +${await addCustomInstructions(promptComponent?.customInstructions || modeConfig.customInstructions || "", globalCustomInstructions || "", cwd, mode, { language: language ?? formatLanguage(vscode.env.language), rooIgnoreInstructions })}` return basePrompt } @@ -109,6 +110,7 @@ export const SYSTEM_PROMPT = async ( diffEnabled?: boolean, experiments?: Record, enableMcpServerCreation?: boolean, + language?: string, rooIgnoreInstructions?: string, ): Promise => { if (!context) { @@ -139,7 +141,7 @@ export const SYSTEM_PROMPT = async ( globalCustomInstructions || "", cwd, mode, - { language: formatLanguage(vscode.env.language), rooIgnoreInstructions }, + { language: language ?? formatLanguage(vscode.env.language), rooIgnoreInstructions }, ) // For file-based prompts, don't include the tool sections return `${roleDefinition} @@ -166,6 +168,7 @@ ${customInstructions}` diffEnabled, experiments, enableMcpServerCreation, + language, rooIgnoreInstructions, ) } diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 9b32bb6437a..a50abca730b 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -2545,7 +2545,7 @@ export class ClineProvider extends EventEmitter implements writeDelayMs: stateValues.writeDelayMs ?? 1000, terminalOutputLineLimit: stateValues.terminalOutputLineLimit ?? 500, mode: stateValues.mode ?? defaultModeSlug, - language: stateValues.language || formatLanguage(vscode.env.language), + language: stateValues.language ?? formatLanguage(vscode.env.language), mcpEnabled: stateValues.mcpEnabled ?? true, enableMcpServerCreation: stateValues.enableMcpServerCreation ?? true, alwaysApproveResubmit: stateValues.alwaysApproveResubmit ?? false, diff --git a/webview-ui/src/__tests__/ContextWindowProgress.test.tsx b/webview-ui/src/__tests__/ContextWindowProgress.test.tsx index e3fffc188e0..9386173aa24 100644 --- a/webview-ui/src/__tests__/ContextWindowProgress.test.tsx +++ b/webview-ui/src/__tests__/ContextWindowProgress.test.tsx @@ -68,11 +68,11 @@ describe("ContextWindowProgress", () => { }) // Check for basic elements - expect(screen.getByText("Context Window:")).toBeInTheDocument() - expect(screen.getByText("1000")).toBeInTheDocument() // contextTokens + expect(screen.getByTestId("context-window-label")).toBeInTheDocument() + expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("1000") // contextTokens // The actual context window might be different than what we pass in // due to the mock returning a default value from the API config - expect(screen.getByText(/(4000|128000)/)).toBeInTheDocument() // contextWindow + expect(screen.getByTestId("context-window-size")).toHaveTextContent(/(4000|128000)/) // contextWindow }) test("handles zero context window gracefully", () => { @@ -83,8 +83,8 @@ describe("ContextWindowProgress", () => { // In the current implementation, the component is still displayed with zero values // rather than being hidden completely - expect(screen.getByText("Context Window:")).toBeInTheDocument() - expect(screen.getByText("0")).toBeInTheDocument() + expect(screen.getByTestId("context-window-label")).toBeInTheDocument() + expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("0") }) test("handles edge cases with negative values", () => { @@ -94,9 +94,9 @@ describe("ContextWindowProgress", () => { }) // Should show 0 instead of -100 - expect(screen.getByText("0")).toBeInTheDocument() + expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("0") // The actual context window might be different than what we pass in - expect(screen.getByText(/(4000|128000)/)).toBeInTheDocument() + expect(screen.getByTestId("context-window-size")).toHaveTextContent(/(4000|128000)/) }) test("calculates percentages correctly", () => { @@ -107,15 +107,18 @@ describe("ContextWindowProgress", () => { contextTokens, contextWindow, }) - - // Instead of checking the exact style, verify the title attribute - // which contains information about the percentage of tokens used - const tokenUsageDiv = screen.getByTitle(/Tokens used:/, { exact: false }) + // Instead of checking the title attribute, verify the data-test-id + // which identifies the element containing info about the percentage of tokens used + const tokenUsageDiv = screen.getByTestId("context-tokens-used") expect(tokenUsageDiv).toBeInTheDocument() + // Just verify that the element has a title attribute (the actual text is translated and may vary) + expect(tokenUsageDiv).toHaveAttribute("title") + // We can't reliably test computed styles in JSDOM, so we'll just check // that the component appears to be working correctly by checking for expected elements - expect(screen.getByText("Context Window:")).toBeInTheDocument() + expect(screen.getByTestId("context-window-label")).toBeInTheDocument() + expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("1000") expect(screen.getByText("1000")).toBeInTheDocument() }) }) diff --git a/webview-ui/src/components/chat/ChatRow.tsx b/webview-ui/src/components/chat/ChatRow.tsx index e6e830952a3..67e7c641215 100644 --- a/webview-ui/src/components/chat/ChatRow.tsx +++ b/webview-ui/src/components/chat/ChatRow.tsx @@ -3,6 +3,7 @@ import deepEqual from "fast-deep-equal" import React, { memo, useEffect, useMemo, useRef, useState } from "react" import { useSize } from "react-use" import { useCopyToClipboard } from "../../utils/clipboard" +import { useTranslation, Trans } from "react-i18next" import { ClineApiReqInfo, ClineAskUseMcpServer, @@ -78,6 +79,7 @@ export const ChatRowContent = ({ isStreaming, onToggleExpand, }: ChatRowContentProps) => { + const { t } = useTranslation() const { mcpServers, alwaysAllowMcp, currentCheckpoint } = useExtensionState() const [reasoningCollapsed, setReasoningCollapsed] = useState(true) @@ -117,14 +119,14 @@ export const ChatRowContent = ({ , - Error, + {t("chat:error")}, ] case "mistake_limit_reached": return [ , - Roo is having trouble..., + {t("chat:troubleMessage")}, ] case "command": return [ @@ -135,7 +137,7 @@ export const ChatRowContent = ({ className="codicon codicon-terminal" style={{ color: normalColor, marginBottom: "-1.5px" }}> ), - Roo wants to execute this command:, + {t("chat:runCommand.title")}:, ] case "use_mcp_server": const mcpServerUse = JSON.parse(message.text || "{}") as ClineAskUseMcpServer @@ -148,8 +150,9 @@ export const ChatRowContent = ({ style={{ color: normalColor, marginBottom: "-1.5px" }}> ), - Roo wants to {mcpServerUse.type === "use_mcp_tool" ? "use a tool" : "access a resource"} on the{" "} - {mcpServerUse.serverName} MCP server: + {mcpServerUse.type === "use_mcp_tool" + ? t("chat:mcp.wantsToUseTool", { serverName: mcpServerUse.serverName }) + : t("chat:mcp.wantsToAccessResource", { serverName: mcpServerUse.serverName })} , ] case "completion_result": @@ -157,7 +160,7 @@ export const ChatRowContent = ({ , - Task Completed, + {t("chat:taskCompleted")}, ] case "api_req_retry_delayed": return [] @@ -196,16 +199,20 @@ export const ChatRowContent = ({ ), apiReqCancelReason !== null && apiReqCancelReason !== undefined ? ( apiReqCancelReason === "user_cancelled" ? ( - API Request Cancelled + + {t("chat:apiRequest.cancelled")} + ) : ( - API Streaming Failed + + {t("chat:apiRequest.streamingFailed")} + ) ) : cost !== null && cost !== undefined ? ( - API Request + {t("chat:apiRequest.title")} ) : apiRequestFailedMessage ? ( - API Request Failed + {t("chat:apiRequest.failed")} ) : ( - API Request... + {t("chat:apiRequest.streaming")} ), ] case "followup": @@ -213,12 +220,12 @@ export const ChatRowContent = ({ , - Roo has a question:, + {t("chat:questions.hasQuestion")}, ] default: return [null, null] } - }, [type, isCommandExecuting, message, isMcpServerResponding, apiReqCancelReason, cost, apiRequestFailedMessage]) + }, [type, isCommandExecuting, message, isMcpServerResponding, apiReqCancelReason, cost, apiRequestFailedMessage, t]) const headerStyle: React.CSSProperties = { display: "flex", @@ -255,7 +262,7 @@ export const ChatRowContent = ({ <>
{toolIcon(tool.tool === "appliedDiff" ? "diff" : "edit")} - Roo wants to edit this file: + {t("chat:fileOperations.wantsToEdit")}
{toolIcon("new-file")} - Roo wants to create a new file: + {t("chat:fileOperations.wantsToCreate")}
{toolIcon("file-code")} - {message.type === "ask" ? "Roo wants to read this file:" : "Roo read this file:"} + {message.type === "ask" + ? t("chat:fileOperations.wantsToRead") + : t("chat:fileOperations.didRead")} {/* {message.type === "ask" - ? "Roo wants to view the top level files in this directory:" - : "Roo viewed the top level files in this directory:"} + ? t("chat:directoryOperations.wantsToViewTopLevel") + : t("chat:directoryOperations.didViewTopLevel")} {message.type === "ask" - ? "Roo wants to recursively view all files in this directory:" - : "Roo recursively viewed all files in this directory:"} + ? t("chat:directoryOperations.wantsToViewRecursive") + : t("chat:directoryOperations.didViewRecursive")} {message.type === "ask" - ? "Roo wants to view source code definition names used in this directory:" - : "Roo viewed source code definition names used in this directory:"} + ? t("chat:directoryOperations.wantsToViewDefinitions") + : t("chat:directoryOperations.didViewDefinitions")} {message.type === "ask" ? ( - <> - Roo wants to search this directory for {tool.regex}: - + {tool.regex} }} + /> ) : ( - <> - Roo searched this directory for {tool.regex}: - + {tool.regex} }} + /> )} @@ -433,13 +444,35 @@ export const ChatRowContent = ({ {message.type === "ask" ? ( <> - Roo wants to switch to {tool.mode} mode - {tool.reason ? ` because: ${tool.reason}` : ""} + {tool.reason ? ( + {tool.mode} }} + values={{ mode: tool.mode, reason: tool.reason }} + /> + ) : ( + {tool.mode} }} + values={{ mode: tool.mode }} + /> + )} ) : ( <> - Roo switched to {tool.mode} mode - {tool.reason ? ` because: ${tool.reason}` : ""} + {tool.reason ? ( + {tool.mode} }} + values={{ mode: tool.mode, reason: tool.reason }} + /> + ) : ( + {tool.mode} }} + values={{ mode: tool.mode }} + /> + )} )} @@ -452,7 +485,11 @@ export const ChatRowContent = ({
{toolIcon("new-file")} - Roo wants to create a new subtask in {tool.mode} mode: + {tool.mode} }} + values={{ mode: tool.mode }} + />
@@ -465,7 +502,7 @@ export const ChatRowContent = ({ <>
{toolIcon("checklist")} - Roo wants to finish this subtask + {t("chat:subtasks.wantsToFinish")}
{tool.content} @@ -527,7 +564,7 @@ export const ChatRowContent = ({ <>

- It seems like you're having Windows PowerShell issues, please see this{" "} + {t("chat:powershell.issues")}{" "} @@ -703,7 +740,7 @@ export const ChatRowContent = ({ color: "#FFA500", }}> - Shell Integration Unavailable + {t("chat:shellIntegration.unavailable")}
@@ -733,7 +770,7 @@ export const ChatRowContent = ({ fontSize: "12px", textTransform: "uppercase", }}> - Response + {t("chat:response")} - Command Output + {t("chat:commandOutput")} {isExpanded && } @@ -916,7 +953,7 @@ export const ChatRowContent = ({ fontSize: "12px", textTransform: "uppercase", }}> - Arguments + {t("chat:arguments")} { const contentRef = useRef(null) const elapsedRef = useRef(0) + const { t } = useTranslation("chat") const [thought, setThought] = useState() - const [prevThought, setPrevThought] = useState("Thinking") + const [prevThought, setPrevThought] = useState(t("chat:reasoning.thinking")) const [isTransitioning, setIsTransitioning] = useState(false) const cursorRef = useRef(0) const queueRef = useRef([]) @@ -81,7 +83,7 @@ export const ReasoningBlock = ({ content, elapsed, isCollapsed = false, onToggle {elapsedRef.current > 1000 && ( <> -
{Math.round(elapsedRef.current / 1000)}s
+
{t("reasoning.seconds", { count: Math.round(elapsedRef.current / 1000) })}
)} {isCollapsed ? : } diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx index d330b53dde2..558d01f9583 100644 --- a/webview-ui/src/components/chat/TaskHeader.tsx +++ b/webview-ui/src/components/chat/TaskHeader.tsx @@ -2,6 +2,7 @@ import React, { memo, useEffect, useMemo, useRef, useState } from "react" import { useWindowSize } from "react-use" import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" import prettyBytes from "pretty-bytes" +import { useTranslation } from "react-i18next" import { vscode } from "@/utils/vscode" import { formatLargeNumber } from "@/utils/format" @@ -40,6 +41,7 @@ const TaskHeader: React.FC = ({ contextTokens, onClose, }) => { + const { t } = useTranslation() const { apiConfiguration, currentTaskItem } = useExtensionState() const { selectedModelInfo } = useMemo(() => normalizeApiConfiguration(apiConfiguration), [apiConfiguration]) const [isTaskExpanded, setIsTaskExpanded] = useState(true) @@ -176,7 +178,10 @@ const TaskHeader: React.FC = ({ flexGrow: 1, minWidth: 0, // This allows the div to shrink below its content size }}> - Task{!isTaskExpanded && ":"} + + {t("chat:task.title")} + {!isTaskExpanded && ":"} + {!isTaskExpanded && ( {highlightMentions(task.text, false)} )} @@ -202,7 +207,7 @@ const TaskHeader: React.FC = ({ appearance="icon" onClick={onClose} style={{ marginLeft: 6, flexShrink: 0, color: "var(--vscode-badge-foreground)" }} - title="Close task and start a new one"> + title={t("chat:task.closeAndStart")}> @@ -258,7 +263,7 @@ const TaskHeader: React.FC = ({ backgroundColor: "var(--vscode-badge-background)", }} onClick={() => setIsTextExpanded(!isTextExpanded)}> - See more + {t("chat:task.seeMore")} )} @@ -274,7 +279,7 @@ const TaskHeader: React.FC = ({ paddingRight: 8, }} onClick={() => setIsTextExpanded(!isTextExpanded)}> - See less + {t("chat:task.seeLess")} )} @@ -283,7 +288,7 @@ const TaskHeader: React.FC = ({
- Tokens: + {t("chat:task.tokens")} = ({ {shouldShowPromptCacheInfo && (cacheReads !== undefined || cacheWrites !== undefined) && (
- Cache: + {t("chat:task.cache")} = ({ {isCostAvailable && (
- API Cost: + {t("chat:task.apiCost")} ${totalCost?.toFixed(4)}
@@ -374,13 +379,14 @@ export const highlightMentions = (text?: string, withShadow = true) => { const TaskActions = ({ item }: { item: HistoryItem | undefined }) => { const [deleteTaskId, setDeleteTaskId] = useState(null) + const { t } = useTranslation() return (
@@ -389,7 +395,7 @@ const TaskActions = ({ item }: { item: HistoryItem | undefined }) => { )} @@ -58,7 +64,7 @@ export const CheckpointMenu = ({ ts, commitHash, currentHash, checkpoint }: Chec setIsConfirming(false) }}> - @@ -67,10 +73,10 @@ export const CheckpointMenu = ({ ts, commitHash, currentHash, checkpoint }: Chec {!isCurrent && (
- Restores your project's files back to a snapshot taken at this point. + {t("chat:checkpoint.menu.restoreFilesDescription")}
)} @@ -79,32 +85,31 @@ export const CheckpointMenu = ({ ts, commitHash, currentHash, checkpoint }: Chec
{!isConfirming ? ( ) : ( <> )} {isConfirming ? (
- This action cannot be undone. + {t("chat:checkpoint.menu.cannotUndo")}
) : (
- Restores your project's files back to a snapshot taken at this point and - deletes all messages after this point. + {t("chat:checkpoint.menu.restoreFilesAndTaskDescription")}
)}
diff --git a/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx b/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx index 5d3475c4d0d..8daf0a3089e 100644 --- a/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx +++ b/webview-ui/src/components/chat/checkpoints/CheckpointSaved.tsx @@ -1,4 +1,5 @@ import { useMemo } from "react" +import { useTranslation } from "react-i18next" import { CheckpointMenu } from "./CheckpointMenu" import { checkpointSchema } from "./schema" @@ -11,6 +12,7 @@ type CheckpointSavedProps = { } export const CheckpointSaved = ({ checkpoint, ...props }: CheckpointSavedProps) => { + const { t } = useTranslation() const isCurrent = props.currentHash === props.commitHash const metadata = useMemo(() => { @@ -35,8 +37,10 @@ export const CheckpointSaved = ({ checkpoint, ...props }: CheckpointSavedProps)
- {metadata.isFirst ? "Initial Checkpoint" : "Checkpoint"} - {isCurrent && Current} + + {metadata.isFirst ? t("chat:checkpoint.initial") : t("chat:checkpoint.regular")} + + {isCurrent && {t("chat:checkpoint.current")}}
diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index 9be59b53637..7e8aa5681e9 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -1,5 +1,22 @@ { "greeting": "Què pot fer Roo per tu?", + "task": { + "title": "Tasca", + "seeMore": "Veure més", + "seeLess": "Veure menys", + "tokens": "Tokens:", + "cache": "Caché:", + "apiCost": "Cost d'API:", + "contextWindow": "Finestra de context:", + "closeAndStart": "Tancar tasca i iniciar-ne una de nova", + "export": "Exportar historial de tasques", + "delete": "Eliminar tasca (Shift + Clic per ometre confirmació)" + }, + "tokenProgress": { + "availableSpace": "Espai disponible: {{amount}} tokens", + "tokensUsed": "Tokens utilitzats: {{used}} de {{total}}", + "reservedForResponse": "Reservat per a resposta del model: {{amount}} tokens" + }, "retry": { "title": "Tornar a intentar", "tooltip": "Torna a provar l'operació" @@ -63,6 +80,75 @@ "separator": "Separador", "edit": "Edita...", "forNextMode": "per al següent mode", + "error": "Error", + "troubleMessage": "Roo està tenint problemes...", + "apiRequest": { + "title": "Sol·licitud API", + "failed": "Sol·licitud API ha fallat", + "streaming": "Sol·licitud API...", + "cancelled": "Sol·licitud API cancel·lada", + "streamingFailed": "Transmissió API ha fallat" + }, + "checkpoint": { + "initial": "Punt de control inicial", + "regular": "Punt de control", + "menu": { + "viewDiff": "Veure diferències", + "restore": "Restaurar punt de control", + "restoreFiles": "Restaurar arxius", + "restoreFilesDescription": "Restaura els arxius del teu projecte a una instantània presa en aquest punt.", + "restoreFilesAndTask": "Restaurar arxius i tasca", + "confirm": "Confirmar", + "cancel": "Cancel·lar", + "cannotUndo": "Aquesta acció no es pot desfer.", + "restoreFilesAndTaskDescription": "Restaura els arxius del teu projecte a una instantània presa en aquest punt i elimina tots els missatges posteriors a aquest punt." + }, + "current": "Actual" + }, + "fileOperations": { + "wantsToRead": "Roo vol llegir aquest fitxer:", + "didRead": "Roo ha llegit aquest fitxer:", + "wantsToEdit": "Roo vol editar aquest fitxer:", + "wantsToCreate": "Roo vol crear un nou fitxer:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo vol veure els fitxers de nivell superior en aquest directori:", + "didViewTopLevel": "Roo ha vist els fitxers de nivell superior en aquest directori:", + "wantsToViewRecursive": "Roo vol veure recursivament tots els fitxers en aquest directori:", + "didViewRecursive": "Roo ha vist recursivament tots els fitxers en aquest directori:", + "wantsToViewDefinitions": "Roo vol veure noms de definicions de codi font utilitzats en aquest directori:", + "didViewDefinitions": "Roo ha vist noms de definicions de codi font utilitzats en aquest directori:", + "wantsToSearch": "Roo vol cercar en aquest directori {{regex}}:", + "didSearch": "Roo ha cercat en aquest directori {{regex}}:" + }, + "commandOutput": "Sortida de l'ordre", + "response": "Resposta", + "arguments": "Arguments", + "mcp": { + "wantsToUseTool": "Roo vol utilitzar una eina al servidor MCP {{serverName}}:", + "wantsToAccessResource": "Roo vol accedir a un recurs al servidor MCP {{serverName}}:" + }, + "modes": { + "wantsToSwitch": "Roo vol canviar a mode {{mode}}", + "wantsToSwitchWithReason": "Roo vol canviar a mode {{mode}} perquè: {{reason}}", + "didSwitch": "Roo ha canviat a mode {{mode}}", + "didSwitchWithReason": "Roo ha canviat a mode {{mode}} perquè: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo vol crear una nova subtasca en mode {{mode}}:", + "wantsToFinish": "Roo vol finalitzar aquesta subtasca" + }, + "questions": { + "hasQuestion": "Roo té una pregunta:" + }, + "taskCompleted": "Tasca completada", + "shellIntegration": { + "unavailable": "Integració de shell no disponible", + "troubleshooting": "Encara tens problemes?" + }, + "powershell": { + "issues": "Sembla que estàs tenint problemes amb Windows PowerShell, si us plau consulta aquesta documentació per a més informació." + }, "autoApprove": { "title": "Aprovació automàtica:", "none": "Cap", @@ -109,5 +195,9 @@ "description": "Reintenta automàticament les sol·licituds API fallides quan el proveïdor retorna una resposta d'error." } } + }, + "reasoning": { + "thinking": "Pensant", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index 4e9d7843734..56466f7a6ec 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -1,16 +1,33 @@ { - "greeting": "Was kann Roo für Sie tun?", + "greeting": "Was kann Roo für dich tun?", + "task": { + "title": "Aufgabe", + "seeMore": "Mehr anzeigen", + "seeLess": "Weniger anzeigen", + "tokens": "Tokens:", + "cache": "Cache:", + "apiCost": "API-Kosten:", + "contextWindow": "Kontextfenster:", + "closeAndStart": "Aufgabe schließen und neue starten", + "export": "Aufgabenverlauf exportieren", + "delete": "Aufgabe löschen (Shift + Klick zum Überspringen der Bestätigung)" + }, + "tokenProgress": { + "availableSpace": "Verfügbarer Speicher: {{amount}} Tokens", + "tokensUsed": "Verwendete Tokens: {{used}} von {{total}}", + "reservedForResponse": "Reserviert für Modellantwort: {{amount}} Tokens" + }, "retry": { "title": "Wiederholen", - "tooltip": "Versuchen Sie den Vorgang erneut" + "tooltip": "Versuch erneut starten" }, "startNewTask": { "title": "Neue Aufgabe starten", - "tooltip": "Beginnen Sie eine neue Aufgabe" + "tooltip": "Beginne eine neue Aufgabe" }, "proceedAnyways": { "title": "Trotzdem fortfahren", - "tooltip": "Fortfahren, während der Befehl ausgeführt wird" + "tooltip": "Während der Befehlsausführung fortfahren" }, "save": { "title": "Speichern", @@ -30,7 +47,7 @@ "tooltip": "Diesen Befehl ausführen" }, "proceedWhileRunning": { - "title": "Während der Ausführung fortfahren", + "title": "Während Ausführung fortfahren", "tooltip": "Trotz Warnungen fortfahren" }, "resumeTask": { @@ -43,50 +60,119 @@ }, "cancel": { "title": "Abbrechen", - "tooltip": "Aktuellen Vorgang abbrechen" + "tooltip": "Aktuelle Operation abbrechen" }, - "scrollToBottom": "Zum Ende des Chats scrollen", - "aboutMe": "Dank der neuesten Durchbrüche in der agentenbasierten Codierung kann ich komplexe Softwareentwicklungsaufgaben Schritt für Schritt bearbeiten. Mit Tools, die es mir ermöglichen, Dateien zu erstellen und zu bearbeiten, komplexe Projekte zu erkunden, den Browser zu verwenden und Terminalbefehle auszuführen (nach Ihrer Genehmigung), kann ich Ihnen auf eine Weise helfen, die über Code-Vervollständigung oder technischen Support hinausgeht. Ich kann sogar MCP verwenden, um neue Tools zu erstellen und meine eigenen Fähigkeiten zu erweitern.", + "scrollToBottom": "Zum Chat-Ende scrollen", + "aboutMe": "Dank neuester Durchbrüche in agentischen Coding-Fähigkeiten kann ich komplexe Softwareentwicklungsaufgaben schrittweise bearbeiten. Mit Werkzeugen, die mir erlauben, Dateien zu erstellen und zu bearbeiten, komplexe Projekte zu erkunden, den Browser zu nutzen und Terminalbefehle auszuführen (nachdem du die Erlaubnis erteilt hast), kann ich dir auf Weisen helfen, die über Code-Vervollständigung oder technischen Support hinausgehen. Ich kann sogar MCP nutzen, um neue Werkzeuge zu erstellen und meine eigenen Fähigkeiten zu erweitern.", "selectMode": "Interaktionsmodus auswählen", "selectApiConfig": "API-Konfiguration auswählen", - "enhancePrompt": "Eingabeaufforderung mit zusätzlichem Kontext verbessern", + "enhancePrompt": "Prompt mit zusätzlichem Kontext verbessern", "addImages": "Bilder zur Nachricht hinzufügen", "sendMessage": "Nachricht senden", "typeMessage": "Nachricht eingeben...", - "typeTask": "Geben Sie hier Ihre Aufgabe ein...", - "addContext": "@ um Kontext hinzuzufügen, / um Modi zu wechseln", - "dragFiles": "Halten Sie die Umschalttaste gedrückt, um Dateien zu ziehen", - "dragFilesImages": "Halten Sie die Umschalttaste gedrückt, um Dateien/Bilder zu ziehen", - "enhancePromptDescription": "Die Schaltfläche 'Eingabeaufforderung verbessern' hilft, Ihre Anfrage durch zusätzlichen Kontext, Klarstellungen oder Umformulierungen zu verbessern. Geben Sie eine Anfrage ein und klicken Sie erneut auf die Schaltfläche, um zu sehen, wie es funktioniert.", + "typeTask": "Gib deine Aufgabe hier ein...", + "addContext": "@ für Kontext, / zum Moduswechsel", + "dragFiles": "Shift halten, um Dateien einzufügen", + "dragFilesImages": "Shift halten, um Dateien/Bilder einzufügen", + "enhancePromptDescription": "Die Schaltfläche 'Prompt verbessern' hilft, deine Anfrage durch zusätzlichen Kontext, Klarstellungen oder Umformulierungen zu verbessern. Versuche, hier eine Anfrage einzugeben und klicke erneut auf die Schaltfläche, um zu sehen, wie es funktioniert.", "errorReadingFile": "Fehler beim Lesen der Datei:", - "noValidImages": "Es wurden keine gültigen Bilder verarbeitet", + "noValidImages": "Keine gültigen Bilder wurden verarbeitet", "separator": "Trennlinie", "edit": "Bearbeiten...", "forNextMode": "für nächsten Modus", + "error": "Fehler", + "troubleMessage": "Roo hat Probleme...", + "apiRequest": { + "title": "API-Anfrage", + "failed": "API-Anfrage fehlgeschlagen", + "streaming": "API-Anfrage...", + "cancelled": "API-Anfrage abgebrochen", + "streamingFailed": "API-Streaming fehlgeschlagen" + }, + "checkpoint": { + "initial": "Initialer Checkpoint", + "regular": "Checkpoint", + "menu": { + "viewDiff": "Unterschiede anzeigen", + "restore": "Checkpoint wiederherstellen", + "restoreFiles": "Dateien wiederherstellen", + "restoreFilesDescription": "Stellt die Dateien deines Projekts auf einen Snapshot zurück, der an diesem Punkt erstellt wurde.", + "restoreFilesAndTask": "Dateien & Aufgabe wiederherstellen", + "confirm": "Bestätigen", + "cancel": "Abbrechen", + "cannotUndo": "Diese Aktion kann nicht rückgängig gemacht werden.", + "restoreFilesAndTaskDescription": "Stellt die Dateien deines Projekts auf einen Snapshot zurück, der an diesem Punkt erstellt wurde, und löscht alle Nachrichten nach diesem Punkt." + }, + "current": "Aktuell" + }, + "fileOperations": { + "wantsToRead": "Roo möchte diese Datei lesen:", + "didRead": "Roo hat diese Datei gelesen:", + "wantsToEdit": "Roo möchte diese Datei bearbeiten:", + "wantsToCreate": "Roo möchte eine neue Datei erstellen:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo möchte die Dateien auf oberster Ebene in diesem Verzeichnis anzeigen:", + "didViewTopLevel": "Roo hat die Dateien auf oberster Ebene in diesem Verzeichnis angezeigt:", + "wantsToViewRecursive": "Roo möchte rekursiv alle Dateien in diesem Verzeichnis anzeigen:", + "didViewRecursive": "Roo hat rekursiv alle Dateien in diesem Verzeichnis angezeigt:", + "wantsToViewDefinitions": "Roo möchte Quellcode-Definitionsnamen in diesem Verzeichnis anzeigen:", + "didViewDefinitions": "Roo hat Quellcode-Definitionsnamen in diesem Verzeichnis angezeigt:", + "wantsToSearch": "Roo möchte dieses Verzeichnis nach {{regex}} durchsuchen:", + "didSearch": "Roo hat dieses Verzeichnis nach {{regex}} durchsucht:" + }, + "commandOutput": "Befehlsausgabe", + "response": "Antwort", + "arguments": "Argumente", + "mcp": { + "wantsToUseTool": "Roo möchte ein Tool auf dem {{serverName}} MCP-Server verwenden:", + "wantsToAccessResource": "Roo möchte auf eine Ressource auf dem {{serverName}} MCP-Server zugreifen:" + }, + "modes": { + "wantsToSwitch": "Roo möchte zum {{mode}}-Modus wechseln", + "wantsToSwitchWithReason": "Roo möchte zum {{mode}}-Modus wechseln, weil: {{reason}}", + "didSwitch": "Roo hat zum {{mode}}-Modus gewechselt", + "didSwitchWithReason": "Roo hat zum {{mode}}-Modus gewechselt, weil: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo möchte eine neue Teilaufgabe im {{mode}}-Modus erstellen:", + "wantsToFinish": "Roo möchte diese Teilaufgabe abschließen" + }, + "questions": { + "hasQuestion": "Roo hat eine Frage:" + }, + "taskCompleted": "Aufgabe abgeschlossen", + "shellIntegration": { + "unavailable": "Shell-Integration nicht verfügbar", + "troubleshooting": "Immer noch Probleme?" + }, + "powershell": { + "issues": "Es scheint, dass du Probleme mit Windows PowerShell hast, bitte sieh dir diesen" + }, "autoApprove": { - "title": "Auto-Genehmigung:", + "title": "Automatische Genehmigung:", "none": "Keine", - "description": "Auto-Genehmigung erlaubt Roo Code, Aktionen ohne Nachfrage auszuführen. Aktivieren Sie dies nur für Aktionen, denen Sie vollständig vertrauen.", + "description": "Automatische Genehmigung erlaubt Roo Code, Aktionen ohne Nachfrage auszuführen. Aktiviere dies nur für Aktionen, denen du vollständig vertraust.", "actions": { "readFiles": { "label": "Dateien und Verzeichnisse lesen", "shortName": "Lesen", - "description": "Ermöglicht den Zugriff zum Lesen jeder Datei auf Ihrem Computer." + "description": "Erlaubt Zugriff zum Lesen jeder Datei auf deinem Computer." }, "editFiles": { "label": "Dateien bearbeiten", "shortName": "Bearbeiten", - "description": "Ermöglicht die Bearbeitung beliebiger Dateien auf Ihrem Computer." + "description": "Erlaubt die Änderung jeder Datei auf deinem Computer." }, "executeCommands": { "label": "Genehmigte Befehle ausführen", "shortName": "Befehle", - "description": "Erlaubt die Ausführung genehmigter Terminalbefehle. Sie können dies im Einstellungsbereich konfigurieren." + "description": "Erlaubt die Ausführung genehmigter Terminal-Befehle. Du kannst dies im Einstellungsfenster konfigurieren." }, "useBrowser": { "label": "Browser verwenden", "shortName": "Browser", - "description": "Ermöglicht das Starten und Interagieren mit jeder Website in einem Headless-Browser." + "description": "Erlaubt die Fähigkeit, jede Website in einem Headless-Browser zu starten und mit ihr zu interagieren." }, "useMcp": { "label": "MCP-Server verwenden", @@ -96,12 +182,12 @@ "switchModes": { "label": "Modi wechseln", "shortName": "Modi", - "description": "Ermöglicht automatisches Wechseln zwischen verschiedenen Modi ohne Genehmigung." + "description": "Erlaubt automatischen Wechsel zwischen verschiedenen Modi ohne erforderliche Genehmigung." }, "subtasks": { "label": "Teilaufgaben erstellen & abschließen", "shortName": "Teilaufgaben", - "description": "Erlaubt die Erstellung und den Abschluss von Teilaufgaben ohne Genehmigung." + "description": "Erlaubt die Erstellung und den Abschluss von Teilaufgaben ohne erforderliche Genehmigung." }, "retryRequests": { "label": "Fehlgeschlagene Anfragen wiederholen", @@ -109,5 +195,9 @@ "description": "Wiederholt automatisch fehlgeschlagene API-Anfragen, wenn der Anbieter eine Fehlermeldung zurückgibt." } } + }, + "reasoning": { + "thinking": "Denke nach", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index dcd62faf10f..8cbf7dfb071 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -1,5 +1,17 @@ { "greeting": "What can Roo do for you?", + "task": { + "title": "Task", + "seeMore": "See more", + "seeLess": "See less", + "tokens": "Tokens:", + "cache": "Cache:", + "apiCost": "API Cost:", + "contextWindow": "Context Window:", + "closeAndStart": "Close task and start a new one", + "export": "Export task history", + "delete": "Delete Task (Shift + Click to skip confirmation)" + }, "retry": { "title": "Retry", "tooltip": "Try the operation again" @@ -16,6 +28,11 @@ "title": "Save", "tooltip": "Save the file changes" }, + "tokenProgress": { + "availableSpace": "Available space: {{amount}} tokens", + "tokensUsed": "Tokens used: {{used}} of {{total}}", + "reservedForResponse": "Reserved for model response: {{amount}} tokens" + }, "reject": { "title": "Reject", "tooltip": "Reject this action" @@ -63,6 +80,75 @@ "separator": "Separator", "edit": "Edit...", "forNextMode": "for next mode", + "apiRequest": { + "title": "API Request", + "failed": "API Request Failed", + "streaming": "API Request...", + "cancelled": "API Request Cancelled", + "streamingFailed": "API Streaming Failed" + }, + "checkpoint": { + "initial": "Initial Checkpoint", + "regular": "Checkpoint", + "menu": { + "viewDiff": "View Diff", + "restore": "Restore Checkpoint", + "restoreFiles": "Restore Files", + "restoreFilesDescription": "Restores your project's files back to a snapshot taken at this point.", + "restoreFilesAndTask": "Restore Files & Task", + "confirm": "Confirm", + "cancel": "Cancel", + "cannotUndo": "This action cannot be undone.", + "restoreFilesAndTaskDescription": "Restores your project's files back to a snapshot taken at this point and deletes all messages after this point." + }, + "current": "Current" + }, + "fileOperations": { + "wantsToRead": "Roo wants to read this file:", + "didRead": "Roo read this file:", + "wantsToEdit": "Roo wants to edit this file:", + "wantsToCreate": "Roo wants to create a new file:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo wants to view the top level files in this directory:", + "didViewTopLevel": "Roo viewed the top level files in this directory:", + "wantsToViewRecursive": "Roo wants to recursively view all files in this directory:", + "didViewRecursive": "Roo recursively viewed all files in this directory:", + "wantsToViewDefinitions": "Roo wants to view source code definition names used in this directory:", + "didViewDefinitions": "Roo viewed source code definition names used in this directory:", + "wantsToSearch": "Roo wants to search this directory for {{regex}}:", + "didSearch": "Roo searched this directory for {{regex}}:" + }, + "commandOutput": "Command Output", + "response": "Response", + "arguments": "Arguments", + "mcp": { + "wantsToUseTool": "Roo wants to use a tool on the {{serverName}} MCP server:", + "wantsToAccessResource": "Roo wants to access a resource on the {{serverName}} MCP server:" + }, + "modes": { + "wantsToSwitch": "Roo wants to switch to {{mode}} mode", + "wantsToSwitchWithReason": "Roo wants to switch to {{mode}} mode because: {{reason}}", + "didSwitch": "Roo switched to {{mode}} mode", + "didSwitchWithReason": "Roo switched to {{mode}} mode because: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo wants to create a new subtask in {{mode}} mode:", + "wantsToFinish": "Roo wants to finish this subtask" + }, + "questions": { + "hasQuestion": "Roo has a question:" + }, + "taskCompleted": "Task Completed", + "error": "Error", + "troubleMessage": "Roo is having trouble...", + "shellIntegration": { + "unavailable": "Shell Integration Unavailable", + "troubleshooting": "Still having trouble?" + }, + "powershell": { + "issues": "It seems like you're having Windows PowerShell issues, please see this" + }, "autoApprove": { "title": "Auto-approve:", "none": "None", @@ -109,5 +195,9 @@ "description": "Automatically retry failed API requests when the provider returns an error response." } } + }, + "reasoning": { + "thinking": "Thinking", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 96f38440a11..31ed145b2d7 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -1,5 +1,17 @@ { "greeting": "¿Qué puede hacer Roo por ti?", + "task": { + "title": "Tarea", + "seeMore": "Ver más", + "seeLess": "Ver menos", + "tokens": "Tokens:", + "cache": "Caché:", + "apiCost": "Costo de API:", + "contextWindow": "Ventana de contexto:", + "closeAndStart": "Cerrar tarea e iniciar una nueva", + "export": "Exportar historial de tareas", + "delete": "Eliminar tarea (Shift + Clic para omitir confirmación)" + }, "retry": { "title": "Reintentar", "tooltip": "Intenta la operación de nuevo" @@ -16,6 +28,11 @@ "title": "Guardar", "tooltip": "Guardar los cambios del archivo" }, + "tokenProgress": { + "availableSpace": "Espacio disponible: {{amount}} tokens", + "tokensUsed": "Tokens utilizados: {{used}} de {{total}}", + "reservedForResponse": "Reservado para respuesta del modelo: {{amount}} tokens" + }, "reject": { "title": "Rechazar", "tooltip": "Rechazar esta acción" @@ -63,6 +80,75 @@ "separator": "Separador", "edit": "Editar...", "forNextMode": "para el siguiente modo", + "error": "Error", + "troubleMessage": "Roo está teniendo problemas...", + "apiRequest": { + "title": "Solicitud API", + "failed": "Solicitud API falló", + "streaming": "Solicitud API...", + "cancelled": "Solicitud API cancelada", + "streamingFailed": "Transmisión API falló" + }, + "checkpoint": { + "initial": "Punto de control inicial", + "regular": "Punto de control", + "menu": { + "viewDiff": "Ver diferencias", + "restore": "Restaurar punto de control", + "restoreFiles": "Restaurar archivos", + "restoreFilesDescription": "Restaura los archivos de tu proyecto a una instantánea tomada en este punto.", + "restoreFilesAndTask": "Restaurar archivos y tarea", + "confirm": "Confirmar", + "cancel": "Cancelar", + "cannotUndo": "Esta acción no se puede deshacer.", + "restoreFilesAndTaskDescription": "Restaura los archivos de tu proyecto a una instantánea tomada en este punto y elimina todos los mensajes posteriores a este punto." + }, + "current": "Actual" + }, + "fileOperations": { + "wantsToRead": "Roo quiere leer este archivo:", + "didRead": "Roo leyó este archivo:", + "wantsToEdit": "Roo quiere editar este archivo:", + "wantsToCreate": "Roo quiere crear un nuevo archivo:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo quiere ver los archivos de nivel superior en este directorio:", + "didViewTopLevel": "Roo vio los archivos de nivel superior en este directorio:", + "wantsToViewRecursive": "Roo quiere ver recursivamente todos los archivos en este directorio:", + "didViewRecursive": "Roo vio recursivamente todos los archivos en este directorio:", + "wantsToViewDefinitions": "Roo quiere ver nombres de definiciones de código fuente utilizados en este directorio:", + "didViewDefinitions": "Roo vio nombres de definiciones de código fuente utilizados en este directorio:", + "wantsToSearch": "Roo quiere buscar en este directorio {{regex}}:", + "didSearch": "Roo buscó en este directorio {{regex}}:" + }, + "commandOutput": "Salida del comando", + "response": "Respuesta", + "arguments": "Argumentos", + "mcp": { + "wantsToUseTool": "Roo quiere usar una herramienta en el servidor MCP {{serverName}}:", + "wantsToAccessResource": "Roo quiere acceder a un recurso en el servidor MCP {{serverName}}:" + }, + "modes": { + "wantsToSwitch": "Roo quiere cambiar a modo {{mode}}", + "wantsToSwitchWithReason": "Roo quiere cambiar a modo {{mode}} porque: {{reason}}", + "didSwitch": "Roo cambió a modo {{mode}}", + "didSwitchWithReason": "Roo cambió a modo {{mode}} porque: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo quiere crear una nueva subtarea en modo {{mode}}:", + "wantsToFinish": "Roo quiere finalizar esta subtarea" + }, + "questions": { + "hasQuestion": "Roo tiene una pregunta:" + }, + "taskCompleted": "Tarea completada", + "shellIntegration": { + "unavailable": "Integración de shell no disponible", + "troubleshooting": "¿Sigues teniendo problemas?" + }, + "powershell": { + "issues": "Parece que estás teniendo problemas con Windows PowerShell, por favor consulta esta" + }, "autoApprove": { "title": "Auto-aprobar:", "none": "Ninguno", @@ -109,5 +195,9 @@ "description": "Reintenta automáticamente las solicitudes API fallidas cuando el proveedor devuelve una respuesta de error." } } + }, + "reasoning": { + "thinking": "Pensando", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index 2145eb15a26..9ab34b5d011 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -1,12 +1,29 @@ { "greeting": "Que peut faire Roo pour vous ?", + "task": { + "title": "Tâche", + "seeMore": "Voir plus", + "seeLess": "Voir moins", + "tokens": "Tokens :", + "cache": "Cache :", + "apiCost": "Coût API :", + "contextWindow": "Fenêtre de contexte :", + "closeAndStart": "Fermer la tâche et en commencer une nouvelle", + "export": "Exporter l'historique des tâches", + "delete": "Supprimer la tâche (Shift + Clic pour ignorer la confirmation)" + }, + "tokenProgress": { + "availableSpace": "Espace disponible : {{amount}} tokens", + "tokensUsed": "Tokens utilisés : {{used}} sur {{total}}", + "reservedForResponse": "Réservé pour la réponse du modèle : {{amount}} tokens" + }, "retry": { "title": "Réessayer", - "tooltip": "Réessayez l'opération" + "tooltip": "Tenter à nouveau l'opération" }, "startNewTask": { - "title": "Démarrer une nouvelle tâche", - "tooltip": "Commencez une nouvelle tâche" + "title": "Commencer une nouvelle tâche", + "tooltip": "Démarrer une nouvelle tâche" }, "proceedAnyways": { "title": "Continuer quand même", @@ -14,7 +31,7 @@ }, "save": { "title": "Enregistrer", - "tooltip": "Enregistrer les modifications du fichier" + "tooltip": "Sauvegarder les modifications du fichier" }, "reject": { "title": "Rejeter", @@ -35,71 +52,140 @@ }, "resumeTask": { "title": "Reprendre la tâche", - "tooltip": "Reprendre la tâche en cours" + "tooltip": "Continuer la tâche actuelle" }, "terminate": { "title": "Terminer", - "tooltip": "Terminer la tâche en cours" + "tooltip": "Terminer la tâche actuelle" }, "cancel": { "title": "Annuler", - "tooltip": "Annuler l'opération en cours" + "tooltip": "Annuler l'opération actuelle" }, - "scrollToBottom": "Faire défiler jusqu'en bas du chat", - "aboutMe": "Grâce aux dernières avancées en matière de capacités de codage agentique, je peux gérer des tâches complexes de développement de logiciels étape par étape. Avec des outils qui me permettent de créer et de modifier des fichiers, d'explorer des projets complexes, d'utiliser le navigateur et d'exécuter des commandes terminal (après votre approbation), je peux vous aider de manière qui va au-delà de la complétion de code ou du support technique. Je peux même utiliser MCP pour créer de nouveaux outils et étendre mes propres capacités.", + "scrollToBottom": "Défiler jusqu'au bas du chat", + "aboutMe": "Grâce aux dernières avancées en matière de capacités de codage agent, je peux gérer des tâches complexes de développement logiciel étape par étape. Avec des outils qui me permettent de créer et d'éditer des fichiers, d'explorer des projets complexes, d'utiliser le navigateur et d'exécuter des commandes de terminal (après votre autorisation), je peux vous aider de manières qui vont au-delà de la complétion de code ou du support technique. Je peux même utiliser MCP pour créer de nouveaux outils et étendre mes propres capacités.", "selectMode": "Sélectionner le mode d'interaction", - "selectApiConfig": "Sélectionner la configuration de l'API", - "enhancePrompt": "Améliorer l'invite avec un contexte supplémentaire", + "selectApiConfig": "Sélectionner la configuration API", + "enhancePrompt": "Améliorer la requête avec un contexte supplémentaire", "addImages": "Ajouter des images au message", "sendMessage": "Envoyer le message", - "typeMessage": "Tapez un message...", - "typeTask": "Tapez votre tâche ici...", + "typeMessage": "Écrivez un message...", + "typeTask": "Écrivez votre tâche ici...", "addContext": "@ pour ajouter du contexte, / pour changer de mode", - "dragFiles": "maintenez shift pour glisser des fichiers", - "dragFilesImages": "maintenez shift pour glisser des fichiers/images", - "enhancePromptDescription": "Le bouton 'Améliorer l'invite' aide à améliorer votre demande en fournissant un contexte supplémentaire, des clarifications ou des reformulations. Essayez de taper une demande ici et cliquez à nouveau sur le bouton pour voir comment cela fonctionne.", + "dragFiles": "maintenir Maj pour glisser des fichiers", + "dragFilesImages": "maintenir Maj pour glisser des fichiers/images", + "enhancePromptDescription": "Le bouton 'Améliorer la requête' aide à améliorer votre demande en fournissant un contexte supplémentaire, des clarifications ou des reformulations. Essayez de taper une demande ici et cliquez à nouveau sur le bouton pour voir comment cela fonctionne.", "errorReadingFile": "Erreur lors de la lecture du fichier :", "noValidImages": "Aucune image valide n'a été traitée", "separator": "Séparateur", - "edit": "Modifier...", - "forNextMode": "pour le mode suivant", + "edit": "Éditer...", + "forNextMode": "pour le prochain mode", + "error": "Erreur", + "troubleMessage": "Roo rencontre des difficultés...", + "apiRequest": { + "title": "Requête API", + "failed": "Échec de la requête API", + "streaming": "Requête API...", + "cancelled": "Requête API annulée", + "streamingFailed": "Échec du streaming API" + }, + "checkpoint": { + "initial": "Point de contrôle initial", + "regular": "Point de contrôle", + "menu": { + "viewDiff": "Voir les différences", + "restore": "Restaurer le point de contrôle", + "restoreFiles": "Restaurer les fichiers", + "restoreFilesDescription": "Restaure les fichiers de votre projet à un instantané pris à ce moment.", + "restoreFilesAndTask": "Restaurer fichiers et tâche", + "confirm": "Confirmer", + "cancel": "Annuler", + "cannotUndo": "Cette action ne peut pas être annulée.", + "restoreFilesAndTaskDescription": "Restaure les fichiers de votre projet à un instantané pris à ce moment et supprime tous les messages après ce point." + }, + "current": "Actuel" + }, + "fileOperations": { + "wantsToRead": "Roo veut lire ce fichier :", + "didRead": "Roo a lu ce fichier :", + "wantsToEdit": "Roo veut éditer ce fichier :", + "wantsToCreate": "Roo veut créer un nouveau fichier :" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo veut voir les fichiers de premier niveau dans ce répertoire :", + "didViewTopLevel": "Roo a vu les fichiers de premier niveau dans ce répertoire :", + "wantsToViewRecursive": "Roo veut voir récursivement tous les fichiers dans ce répertoire :", + "didViewRecursive": "Roo a vu récursivement tous les fichiers dans ce répertoire :", + "wantsToViewDefinitions": "Roo veut voir les noms de définitions de code source utilisés dans ce répertoire :", + "didViewDefinitions": "Roo a vu les noms de définitions de code source utilisés dans ce répertoire :", + "wantsToSearch": "Roo veut rechercher dans ce répertoire {{regex}} :", + "didSearch": "Roo a recherché dans ce répertoire {{regex}} :" + }, + "commandOutput": "Sortie de commande", + "response": "Réponse", + "arguments": "Arguments", + "mcp": { + "wantsToUseTool": "Roo veut utiliser un outil sur le serveur MCP {{serverName}} :", + "wantsToAccessResource": "Roo veut accéder à une ressource sur le serveur MCP {{serverName}} :" + }, + "modes": { + "wantsToSwitch": "Roo veut passer au mode {{mode}}", + "wantsToSwitchWithReason": "Roo veut passer au mode {{mode}} car : {{reason}}", + "didSwitch": "Roo est passé au mode {{mode}}", + "didSwitchWithReason": "Roo est passé au mode {{mode}} car : {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo veut créer une nouvelle sous-tâche en mode {{mode}} :", + "wantsToFinish": "Roo veut terminer cette sous-tâche" + }, + "questions": { + "hasQuestion": "Roo a une question :" + }, + "taskCompleted": "Tâche terminée", + "shellIntegration": { + "unavailable": "Intégration du shell indisponible", + "troubleshooting": "Toujours des problèmes ?" + }, + "powershell": { + "issues": "Il semble que vous rencontriez des problèmes avec Windows PowerShell, veuillez consulter ce" + }, "autoApprove": { "title": "Auto-approbation :", "none": "Aucune", - "description": "L'auto-approbation permet à Roo Code d'effectuer des actions sans demander d'autorisation. Activez uniquement pour les actions auxquelles vous faites entièrement confiance.", + "description": "L'auto-approbation permet à Roo Code d'effectuer des actions sans demander d'autorisation. Activez-la uniquement pour les actions auxquelles vous faites entièrement confiance.", "actions": { "readFiles": { - "label": "Lire les fichiers et répertoires", + "label": "Lire fichiers et répertoires", "shortName": "Lecture", - "description": "Permet d'accéder en lecture à n'importe quel fichier sur votre ordinateur." + "description": "Permet l'accès en lecture à n'importe quel fichier sur votre ordinateur." }, "editFiles": { - "label": "Modifier les fichiers", + "label": "Éditer des fichiers", "shortName": "Édition", "description": "Permet la modification de n'importe quel fichier sur votre ordinateur." }, "executeCommands": { "label": "Exécuter des commandes approuvées", "shortName": "Commandes", - "description": "Permet l'exécution de commandes terminal approuvées. Vous pouvez configurer cela dans le panneau des paramètres." + "description": "Permet l'exécution de commandes de terminal approuvées. Vous pouvez configurer cela dans le panneau des paramètres." }, "useBrowser": { "label": "Utiliser le navigateur", "shortName": "Navigateur", - "description": "Permet de lancer et d'interagir avec n'importe quel site web dans un navigateur headless." + "description": "Permet de lancer et d'interagir avec n'importe quel site web dans un navigateur sans interface." }, "useMcp": { "label": "Utiliser les serveurs MCP", "shortName": "MCP", - "description": "Permet l'utilisation de serveurs MCP configurés qui peuvent modifier le système de fichiers ou interagir avec des API." + "description": "Permet l'utilisation de serveurs MCP configurés qui peuvent modifier le système de fichiers ou interagir avec des APIs." }, "switchModes": { "label": "Changer de modes", "shortName": "Modes", - "description": "Permet le passage automatique entre différents modes sans nécessiter d'approbation." + "description": "Permet le changement automatique entre différents modes sans nécessiter d'approbation." }, "subtasks": { - "label": "Créer et compléter des sous-tâches", + "label": "Créer et terminer des sous-tâches", "shortName": "Sous-tâches", "description": "Permet la création et l'achèvement de sous-tâches sans nécessiter d'approbation." }, @@ -109,5 +195,9 @@ "description": "Réessaie automatiquement les requêtes API échouées lorsque le fournisseur renvoie une réponse d'erreur." } } + }, + "reasoning": { + "thinking": "Réflexion", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index 971af2023f9..224cc432e25 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -1,20 +1,37 @@ { "greeting": "Roo आपके लिए क्या कर सकता है?", + "task": { + "title": "कार्य", + "seeMore": "अधिक देखें", + "seeLess": "कम देखें", + "tokens": "Tokens:", + "cache": "कैश:", + "apiCost": "API लागत:", + "contextWindow": "संदर्भ विंडो:", + "closeAndStart": "कार्य बंद करें और नया शुरू करें", + "export": "कार्य इतिहास निर्यात करें", + "delete": "कार्य हटाएं (पुष्टि को छोड़ने के लिए Shift + क्लिक)" + }, + "tokenProgress": { + "availableSpace": "उपलब्ध स्थान: {{amount}} tokens", + "tokensUsed": "प्रयुक्त tokens: {{used}} / {{total}}", + "reservedForResponse": "मॉडल प्रतिक्रिया के लिए आरक्षित: {{amount}} tokens" + }, "retry": { "title": "पुनः प्रयास करें", - "tooltip": "ऑपरेशन को फिर से आज़माएं" + "tooltip": "ऑपरेशन फिर से प्रयास करें" }, "startNewTask": { "title": "नया कार्य शुरू करें", - "tooltip": "एक नया कार्य शुरू करें" + "tooltip": "नया कार्य शुरू करें" }, "proceedAnyways": { "title": "फिर भी आगे बढ़ें", - "tooltip": "कमांड के निष्पादित होने के दौरान जारी रखें" + "tooltip": "कमांड निष्पादन के दौरान जारी रखें" }, "save": { "title": "सहेजें", - "tooltip": "फ़ाइल परिवर्तनों को सहेजें" + "tooltip": "फ़ाइल परिवर्तन सहेजें" }, "reject": { "title": "अस्वीकार करें", @@ -26,7 +43,7 @@ "tooltip": "इस क्रिया को स्वीकृत करें" }, "runCommand": { - "title": "कमांड चलाएं", + "title": "कमांड चलाएँ", "tooltip": "इस कमांड को निष्पादित करें" }, "proceedWhileRunning": { @@ -34,8 +51,8 @@ "tooltip": "चेतावनियों के बावजूद जारी रखें" }, "resumeTask": { - "title": "कार्य फिर से शुरू करें", - "tooltip": "वर्तमान कार्य फिर से शुरू करें" + "title": "कार्य जारी रखें", + "tooltip": "वर्तमान कार्य जारी रखें" }, "terminate": { "title": "समाप्त करें", @@ -45,37 +62,106 @@ "title": "रद्द करें", "tooltip": "वर्तमान ऑपरेशन रद्द करें" }, - "scrollToBottom": "चैट के निचले भाग पर स्क्रॉल करें", - "aboutMe": "एजेंटिक कोडिंग क्षमताओं में नवीनतम सफलताओं के लिए धन्यवाद, मैं जटिल सॉफ्टवेयर विकास कार्यों को चरणबद्ध तरीके से संभाल सकता हूं। उन उपकरणों के साथ जो मुझे फ़ाइलें बनाने और संपादित करने, जटिल परियोजनाओं का पता लगाने, ब्राउज़र का उपयोग करने और टर्मिनल कमांड निष्पादित करने (आपकी अनुमति के बाद) की अनुमति देते हैं, मैं आपकी कोड पूर्णता या तकनीकी सहायता से परे तरीकों से मदद कर सकता हूं। मैं MCP का उपयोग करके नए उपकरण बना सकता हूं और अपनी क्षमताओं का विस्तार कर सकता हूं।", - "selectMode": "इंटरैक्शन के लिए मोड चुनें", + "scrollToBottom": "चैट के निचले हिस्से तक स्क्रॉल करें", + "aboutMe": "एजेंटिक कोडिंग क्षमताओं में नवीनतम प्रगति के कारण, मैं जटिल सॉफ्टवेयर विकास कार्यों को चरण-दर-चरण संभाल सकता हूं। ऐसे उपकरणों के साथ जो मुझे फ़ाइलें बनाने और संपादित करने, जटिल प्रोजेक्ट का अन्वेषण करने, ब्राउज़र का उपयोग करने और टर्मिनल कमांड (आपकी अनुमति के बाद) निष्पादित करने की अनुमति देते हैं, मैं आपकी मदद कोड पूर्णता या तकनीकी समर्थन से परे तरीकों से कर सकता हूं। मैं अपनी क्षमताओं का विस्तार करने और नए उपकरण बनाने के लिए MCP का भी उपयोग कर सकता हूं।", + "selectMode": "इंटरैक्शन मोड चुनें", "selectApiConfig": "API कॉन्फ़िगरेशन चुनें", - "enhancePrompt": "अतिरिक्त संदर्भ के साथ प्रॉम्प्ट को बढ़ाएं", - "addImages": "संदेश में छवियां जोड़ें", + "enhancePrompt": "अतिरिक्त संदर्भ के साथ प्रॉम्प्ट बढ़ाएँ", + "addImages": "संदेश में चित्र जोड़ें", "sendMessage": "संदेश भेजें", - "typeMessage": "एक संदेश टाइप करें...", - "typeTask": "अपना कार्य यहां टाइप करें...", - "addContext": "@ संदर्भ जोड़ने के लिए, / मोड बदलने के लिए", - "dragFiles": "फ़ाइलों को खींचने के लिए shift दबाए रखें", - "dragFilesImages": "फ़ाइलों/छवियों को खींचने के लिए shift दबाए रखें", - "enhancePromptDescription": "'प्रॉम्प्ट बढ़ाएं' बटन अतिरिक्त संदर्भ, स्पष्टीकरण, या पुनर्कथन प्रदान करके आपके प्रॉम्प्ट को बेहतर बनाने में मदद करता है। यहां एक प्रॉम्प्ट टाइप करके और बटन पर फिर से क्लिक करके देखें कि यह कैसे काम करता है।", + "typeMessage": "एक संदेश लिखें...", + "typeTask": "अपना कार्य यहां लिखें...", + "addContext": "संदर्भ जोड़ने के लिए @, मोड बदलने के लिए /", + "dragFiles": "फ़ाइलें खींचने के लिए shift दबाकर रखें", + "dragFilesImages": "फ़ाइलें/चित्र खींचने के लिए shift दबाकर रखें", + "enhancePromptDescription": "'प्रॉम्प्ट बढ़ाएँ' बटन अतिरिक्त संदर्भ, स्पष्टीकरण या पुनर्विचार प्रदान करके आपके अनुरोध को बेहतर बनाने में मदद करता है। यहां अनुरोध लिखकर देखें और यह कैसे काम करता है यह देखने के लिए बटन पर फिर से क्लिक करें।", "errorReadingFile": "फ़ाइल पढ़ने में त्रुटि:", - "noValidImages": "कोई वैध छवियां संसाधित नहीं की गईं", + "noValidImages": "कोई मान्य चित्र प्रोसेस नहीं किया गया", "separator": "विभाजक", "edit": "संपादित करें...", "forNextMode": "अगले मोड के लिए", + "error": "त्रुटि", + "troubleMessage": "Roo को समस्या हो रही है...", + "apiRequest": { + "title": "API अनुरोध", + "failed": "API अनुरोध विफल हुआ", + "streaming": "API अनुरोध...", + "cancelled": "API अनुरोध रद्द किया गया", + "streamingFailed": "API स्ट्रीमिंग विफल हुई" + }, + "checkpoint": { + "initial": "प्रारंभिक चेकपॉइंट", + "regular": "चेकपॉइंट", + "menu": { + "viewDiff": "अंतर देखें", + "restore": "चेकपॉइंट पुनर्स्थापित करें", + "restoreFiles": "फ़ाइलें पुनर्स्थापित करें", + "restoreFilesDescription": "आपके प्रोजेक्ट की फ़ाइलों को इस बिंदु पर लिए गए स्नैपशॉट पर पुनर्स्थापित करता है।", + "restoreFilesAndTask": "फ़ाइलें और कार्य पुनर्स्थापित करें", + "confirm": "पुष्टि करें", + "cancel": "रद्द करें", + "cannotUndo": "इस क्रिया को पूर्ववत नहीं किया जा सकता।", + "restoreFilesAndTaskDescription": "आपके प्रोजेक्ट की फ़ाइलों को इस बिंदु पर लिए गए स्नैपशॉट पर पुनर्स्थापित करता है और इस बिंदु के बाद के सभी संदेशों को हटा देता है।" + }, + "current": "वर्तमान" + }, + "fileOperations": { + "wantsToRead": "Roo इस फ़ाइल को पढ़ना चाहता है:", + "didRead": "Roo ने इस फ़ाइल को पढ़ा:", + "wantsToEdit": "Roo इस फ़ाइल को संपादित करना चाहता है:", + "wantsToCreate": "Roo एक नई फ़ाइल बनाना चाहता है:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo इस निर्देशिका में शीर्ष स्तर की फ़ाइलें देखना चाहता है:", + "didViewTopLevel": "Roo ने इस निर्देशिका में शीर्ष स्तर की फ़ाइलें देखीं:", + "wantsToViewRecursive": "Roo इस निर्देशिका में सभी फ़ाइलों को पुनरावर्ती रूप से देखना चाहता है:", + "didViewRecursive": "Roo ने इस निर्देशिका में सभी फ़ाइलों को पुनरावर्ती रूप से देखा:", + "wantsToViewDefinitions": "Roo इस निर्देशिका में उपयोग किए गए सोर्स कोड परिभाषा नामों को देखना चाहता है:", + "didViewDefinitions": "Roo ने इस निर्देशिका में उपयोग किए गए सोर्स कोड परिभाषा नामों को देखा:", + "wantsToSearch": "Roo इस निर्देशिका में {{regex}} के लिए खोज करना चाहता है:", + "didSearch": "Roo ने इस निर्देशिका में {{regex}} के लिए खोज की:" + }, + "commandOutput": "कमांड आउटपुट", + "response": "प्रतिक्रिया", + "arguments": "आर्ग्युमेंट्स", + "mcp": { + "wantsToUseTool": "Roo {{serverName}} MCP सर्वर पर एक टूल का उपयोग करना चाहता है:", + "wantsToAccessResource": "Roo {{serverName}} MCP सर्वर पर एक संसाधन का उपयोग करना चाहता है:" + }, + "modes": { + "wantsToSwitch": "Roo {{mode}} मोड में स्विच करना चाहता है", + "wantsToSwitchWithReason": "Roo {{mode}} मोड में स्विच करना चाहता है क्योंकि: {{reason}}", + "didSwitch": "Roo {{mode}} मोड में स्विच कर गया", + "didSwitchWithReason": "Roo {{mode}} मोड में स्विच कर गया क्योंकि: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo {{mode}} मोड में एक नया उपकार्य बनाना चाहता है:", + "wantsToFinish": "Roo इस उपकार्य को समाप्त करना चाहता है" + }, + "questions": { + "hasQuestion": "Roo का एक प्रश्न है:" + }, + "taskCompleted": "कार्य पूरा हुआ", + "shellIntegration": { + "unavailable": "शेल एकीकरण अनुपलब्ध", + "troubleshooting": "अभी भी समस्या है?" + }, + "powershell": { + "issues": "ऐसा लगता है कि आपको Windows PowerShell के साथ समस्याएँ हो रही हैं, कृपया इसे देखें" + }, "autoApprove": { - "title": "स्वत: स्वीकृति:", + "title": "स्वत:-स्वीकृति:", "none": "कोई नहीं", - "description": "स्वत: स्वीकृति Roo Code को अनुमति मांगे बिना क्रियाएँ करने की अनुमति देती है। केवल उन क्रियाओं के लिए सक्षम करें जिन पर आप पूरी तरह से विश्वास करते हैं।", + "description": "स्वत:-स्वीकृति Roo Code को अनुमति मांगे बिना क्रियाएँ करने की अनुमति देती है। केवल उन क्रियाओं के लिए सक्षम करें जिन पर आप पूरी तरह से विश्वास करते हैं।", "actions": { "readFiles": { - "label": "फ़ाइलें और डायरेक्टरी पढ़ें", - "shortName": "पढ़ना", - "description": "आपके कंप्यूटर पर किसी भी फ़ाइल को पढ़ने के लिए पहुंच की अनुमति देता है।" + "label": "फ़ाइलें और निर्देशिकाएँ पढ़ें", + "shortName": "पढ़ें", + "description": "आपके कंप्यूटर पर किसी भी फ़ाइल को पढ़ने के लिए पहुँच की अनुमति देता है।" }, "editFiles": { "label": "फ़ाइलें संपादित करें", - "shortName": "संपादन", + "shortName": "संपादित", "description": "आपके कंप्यूटर पर किसी भी फ़ाइल को संशोधित करने की अनुमति देता है।" }, "executeCommands": { @@ -94,7 +180,7 @@ "description": "कॉन्फ़िगर किए गए MCP सर्वर के उपयोग की अनुमति देता है जो फ़ाइल सिस्टम को संशोधित कर सकते हैं या API के साथ इंटरैक्ट कर सकते हैं।" }, "switchModes": { - "label": "मोड बदलें", + "label": "मोड स्विच करें", "shortName": "मोड", "description": "स्वीकृति की आवश्यकता के बिना विभिन्न मोड के बीच स्वचालित स्विचिंग की अनुमति देता है।" }, @@ -106,8 +192,12 @@ "retryRequests": { "label": "विफल अनुरोधों को पुनः प्रयास करें", "shortName": "पुनर्प्रयास", - "description": "जब प्रदाता त्रुटि प्रतिक्रिया देता है तो विफल API अनुरोधों को स्वचालित रूप से पुनः प्रयास करता है।" + "description": "जब प्रदाता त्रुटि प्रतिक्रिया लौटाता है तो विफल API अनुरोधों को स्वचालित रूप से पुनः प्रयास करता है।" } } + }, + "reasoning": { + "thinking": "विचार कर रहा है", + "seconds": "{{count}} सेकंड" } } diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index 9a08a842521..cb88d4f60ee 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -1,16 +1,33 @@ { "greeting": "Cosa può fare Roo per te?", + "task": { + "title": "Attività", + "seeMore": "Vedi altro", + "seeLess": "Vedi meno", + "tokens": "Tokens:", + "cache": "Cache:", + "apiCost": "Costo API:", + "contextWindow": "Finestra di contesto:", + "closeAndStart": "Chiudi attività e iniziane una nuova", + "export": "Esporta cronologia attività", + "delete": "Elimina attività (Shift + Clic per saltare la conferma)" + }, + "tokenProgress": { + "availableSpace": "Spazio disponibile: {{amount}} tokens", + "tokensUsed": "Tokens utilizzati: {{used}} di {{total}}", + "reservedForResponse": "Riservato per risposta del modello: {{amount}} tokens" + }, "retry": { "title": "Riprova", - "tooltip": "Riprova l'operazione" + "tooltip": "Prova di nuovo l'operazione" }, "startNewTask": { "title": "Inizia nuova attività", "tooltip": "Inizia una nuova attività" }, "proceedAnyways": { - "title": "Prosegui comunque", - "tooltip": "Continua durante l'esecuzione del comando" + "title": "Procedi comunque", + "tooltip": "Continua mentre il comando è in esecuzione" }, "save": { "title": "Salva", @@ -20,7 +37,7 @@ "title": "Rifiuta", "tooltip": "Rifiuta questa azione" }, - "completeSubtaskAndReturn": "Completa sottoattività e ritorna", + "completeSubtaskAndReturn": "Completa sottoattività e torna indietro", "approve": { "title": "Approva", "tooltip": "Approva questa azione" @@ -30,12 +47,12 @@ "tooltip": "Esegui questo comando" }, "proceedWhileRunning": { - "title": "Prosegui durante l'esecuzione", + "title": "Procedi durante l'esecuzione", "tooltip": "Continua nonostante gli avvisi" }, "resumeTask": { "title": "Riprendi attività", - "tooltip": "Riprendi l'attività corrente" + "tooltip": "Continua l'attività corrente" }, "terminate": { "title": "Termina", @@ -45,69 +62,142 @@ "title": "Annulla", "tooltip": "Annulla l'operazione corrente" }, - "scrollToBottom": "Scorri in fondo alla chat", - "aboutMe": "Grazie alle ultime innovazioni nelle capacità di codifica agentica, posso gestire complesse attività di sviluppo software passo dopo passo. Con strumenti che mi permettono di creare e modificare file, esplorare progetti complessi, utilizzare il browser ed eseguire comandi terminal (dopo la tua approvazione), posso aiutarti in modi che vanno oltre il completamento del codice o il supporto tecnico. Posso persino usare MCP per creare nuovi strumenti ed estendere le mie capacità.", + "scrollToBottom": "Scorri fino alla fine della chat", + "aboutMe": "Grazie alle più recenti innovazioni nelle capacità di codifica agentica, posso gestire complesse attività di sviluppo software passo dopo passo. Con strumenti che mi permettono di creare e modificare file, esplorare progetti complessi, utilizzare il browser ed eseguire comandi da terminale (dopo la tua autorizzazione), posso aiutarti in modi che vanno oltre il completamento del codice o il supporto tecnico. Posso persino usare MCP per creare nuovi strumenti ed estendere le mie capacità.", "selectMode": "Seleziona modalità di interazione", "selectApiConfig": "Seleziona configurazione API", - "enhancePrompt": "Migliora il prompt con ulteriore contesto", + "enhancePrompt": "Migliora prompt con contesto aggiuntivo", "addImages": "Aggiungi immagini al messaggio", "sendMessage": "Invia messaggio", "typeMessage": "Scrivi un messaggio...", - "typeTask": "Scrivi qui la tua attività...", + "typeTask": "Scrivi la tua attività qui...", "addContext": "@ per aggiungere contesto, / per cambiare modalità", - "dragFiles": "tieni premuto shift per trascinare i file", + "dragFiles": "tieni premuto shift per trascinare file", "dragFilesImages": "tieni premuto shift per trascinare file/immagini", - "enhancePromptDescription": "Il pulsante 'Migliora il prompt' aiuta a migliorare la tua richiesta fornendo contesto aggiuntivo, chiarimenti o riformulazioni. Prova a digitare una richiesta qui e clicca nuovamente il pulsante per vedere come funziona.", - "errorReadingFile": "Errore durante la lettura del file:", + "enhancePromptDescription": "Il pulsante 'Migliora prompt' aiuta a migliorare la tua richiesta fornendo contesto aggiuntivo, chiarimenti o riformulazioni. Prova a digitare una richiesta qui e fai di nuovo clic sul pulsante per vedere come funziona.", + "errorReadingFile": "Errore nella lettura del file:", "noValidImages": "Nessuna immagine valida è stata elaborata", "separator": "Separatore", "edit": "Modifica...", - "forNextMode": "per la modalità successiva", + "forNextMode": "per la prossima modalità", + "error": "Errore", + "troubleMessage": "Roo sta avendo problemi...", + "apiRequest": { + "title": "Richiesta API", + "failed": "Richiesta API fallita", + "streaming": "Richiesta API...", + "cancelled": "Richiesta API annullata", + "streamingFailed": "Streaming API fallito" + }, + "checkpoint": { + "initial": "Checkpoint iniziale", + "regular": "Checkpoint", + "menu": { + "viewDiff": "Visualizza differenze", + "restore": "Ripristina checkpoint", + "restoreFiles": "Ripristina file", + "restoreFilesDescription": "Ripristina i file del tuo progetto a uno snapshot catturato in questo punto.", + "restoreFilesAndTask": "Ripristina file e attività", + "confirm": "Conferma", + "cancel": "Annulla", + "cannotUndo": "Questa azione non può essere annullata.", + "restoreFilesAndTaskDescription": "Ripristina i file del tuo progetto a uno snapshot catturato in questo punto ed elimina tutti i messaggi successivi a questo punto." + }, + "current": "Corrente" + }, + "fileOperations": { + "wantsToRead": "Roo vuole leggere questo file:", + "didRead": "Roo ha letto questo file:", + "wantsToEdit": "Roo vuole modificare questo file:", + "wantsToCreate": "Roo vuole creare un nuovo file:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo vuole visualizzare i file di primo livello in questa directory:", + "didViewTopLevel": "Roo ha visualizzato i file di primo livello in questa directory:", + "wantsToViewRecursive": "Roo vuole visualizzare ricorsivamente tutti i file in questa directory:", + "didViewRecursive": "Roo ha visualizzato ricorsivamente tutti i file in questa directory:", + "wantsToViewDefinitions": "Roo vuole visualizzare i nomi delle definizioni di codice sorgente utilizzate in questa directory:", + "didViewDefinitions": "Roo ha visualizzato i nomi delle definizioni di codice sorgente utilizzate in questa directory:", + "wantsToSearch": "Roo vuole cercare in questa directory {{regex}}:", + "didSearch": "Roo ha cercato in questa directory {{regex}}:" + }, + "commandOutput": "Output del comando", + "response": "Risposta", + "arguments": "Argomenti", + "mcp": { + "wantsToUseTool": "Roo vuole utilizzare uno strumento sul server MCP {{serverName}}:", + "wantsToAccessResource": "Roo vuole accedere a una risorsa sul server MCP {{serverName}}:" + }, + "modes": { + "wantsToSwitch": "Roo vuole passare alla modalità {{mode}}", + "wantsToSwitchWithReason": "Roo vuole passare alla modalità {{mode}} perché: {{reason}}", + "didSwitch": "Roo è passato alla modalità {{mode}}", + "didSwitchWithReason": "Roo è passato alla modalità {{mode}} perché: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo vuole creare una nuova sottoattività in modalità {{mode}}:", + "wantsToFinish": "Roo vuole completare questa sottoattività" + }, + "questions": { + "hasQuestion": "Roo ha una domanda:" + }, + "taskCompleted": "Attività completata", + "shellIntegration": { + "unavailable": "Integrazione shell non disponibile", + "troubleshooting": "Ancora problemi?" + }, + "powershell": { + "issues": "Sembra che tu stia avendo problemi con Windows PowerShell, consulta questa" + }, "autoApprove": { - "title": "Approvazione automatica:", + "title": "Auto-approvazione:", "none": "Nessuna", - "description": "L'approvazione automatica consente a Roo Code di eseguire azioni senza chiedere permesso. Abilita solo per azioni di cui ti fidi completamente.", + "description": "L'auto-approvazione permette a Roo Code di eseguire azioni senza chiedere permesso. Abilita solo per azioni di cui ti fidi completamente.", "actions": { "readFiles": { - "label": "Leggere file e directory", + "label": "Leggi file e directory", "shortName": "Lettura", - "description": "Consente l'accesso in lettura a qualsiasi file sul tuo computer." + "description": "Consente l'accesso per leggere qualsiasi file sul tuo computer." }, "editFiles": { - "label": "Modificare file", + "label": "Modifica file", "shortName": "Modifica", "description": "Consente la modifica di qualsiasi file sul tuo computer." }, "executeCommands": { - "label": "Eseguire comandi approvati", + "label": "Esegui comandi approvati", "shortName": "Comandi", - "description": "Consente l'esecuzione di comandi terminal approvati. Puoi configurare questo nel pannello delle impostazioni." + "description": "Consente l'esecuzione di comandi da terminale approvati. Puoi configurare questo nel pannello delle impostazioni." }, "useBrowser": { - "label": "Usare il browser", + "label": "Usa il browser", "shortName": "Browser", - "description": "Consente la possibilità di avviare e interagire con qualsiasi sito web in un browser headless." + "description": "Consente la capacità di avviare e interagire con qualsiasi sito web in un browser headless." }, "useMcp": { - "label": "Usare server MCP", + "label": "Usa server MCP", "shortName": "MCP", - "description": "Consente l'uso di server MCP configurati che potrebbero modificare il filesystem o interagire con API." + "description": "Consente l'uso di server MCP configurati che possono modificare il filesystem o interagire con API." }, "switchModes": { - "label": "Cambiare modalità", + "label": "Cambia modalità", "shortName": "Modalità", "description": "Consente il passaggio automatico tra diverse modalità senza richiedere approvazione." }, "subtasks": { - "label": "Creare e completare sottoattività", + "label": "Crea e completa sottoattività", "shortName": "Sottoattività", "description": "Consente la creazione e il completamento di sottoattività senza richiedere approvazione." }, "retryRequests": { - "label": "Riprovare richieste fallite", - "shortName": "Tentativi", + "label": "Riprova richieste fallite", + "shortName": "Ripetizioni", "description": "Riprova automaticamente le richieste API fallite quando il provider restituisce una risposta di errore." } } + }, + "reasoning": { + "thinking": "Sto pensando", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index c820d9748b8..3027931d7dc 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -1,97 +1,183 @@ { - "greeting": "Rooはあなたのために何ができますか?", + "greeting": "Rooにお手伝いできることはありますか?", + "task": { + "title": "タスク", + "seeMore": "もっと見る", + "seeLess": "表示を減らす", + "tokens": "トークン:", + "cache": "キャッシュ:", + "apiCost": "APIコスト:", + "contextWindow": "コンテキストウィンドウ:", + "closeAndStart": "タスクを閉じて新しいタスクを開始", + "export": "タスク履歴をエクスポート", + "delete": "タスクを削除(Shift + クリックで確認をスキップ)" + }, + "tokenProgress": { + "availableSpace": "利用可能な空き容量: {{amount}} トークン", + "tokensUsed": "使用トークン: {{used}} / {{total}}", + "reservedForResponse": "モデル応答用に予約: {{amount}} トークン" + }, "retry": { "title": "再試行", - "tooltip": "操作を再試行してください" + "tooltip": "操作を再試行" }, "startNewTask": { "title": "新しいタスクを開始", - "tooltip": "新しいタスクを開始します" + "tooltip": "新しいタスクを開始" }, "proceedAnyways": { - "title": "とにかく続行", - "tooltip": "コマンドの実行中に続行します" + "title": "それでも続行", + "tooltip": "コマンド実行中でも続行" }, "save": { "title": "保存", - "tooltip": "ファイルの変更を保存します" + "tooltip": "ファイル変更を保存" }, "reject": { "title": "拒否", - "tooltip": "このアクションを拒否します" + "tooltip": "このアクションを拒否" }, "completeSubtaskAndReturn": "サブタスクを完了して戻る", "approve": { "title": "承認", - "tooltip": "このアクションを承認します" + "tooltip": "このアクションを承認" }, "runCommand": { - "title": "コマンドを実行", - "tooltip": "このコマンドを実行します" + "title": "コマンド実行", + "tooltip": "このコマンドを実行" }, "proceedWhileRunning": { - "title": "実行中に続行", - "tooltip": "警告にもかかわらず続行します" + "title": "実行中も続行", + "tooltip": "警告にもかかわらず続行" }, "resumeTask": { "title": "タスクを再開", - "tooltip": "現在のタスクを再開します" + "tooltip": "現在のタスクを続行" }, "terminate": { "title": "終了", - "tooltip": "現在のタスクを終了します" + "tooltip": "現在のタスクを終了" }, "cancel": { "title": "キャンセル", - "tooltip": "現在の操作をキャンセルします" + "tooltip": "現在の操作をキャンセル" }, "scrollToBottom": "チャットの最下部にスクロール", - "aboutMe": "エージェント型コーディング能力の最新の進歩により、複雑なソフトウェア開発タスクを段階的に処理できます。ファイルの作成と編集、複雑なプロジェクトの探索、ブラウザの使用、ターミナルコマンドの実行(あなたの許可を得た後)を可能にするツールを使用して、コード補完やテクニカルサポートを超えた方法であなたを支援できます。MCPを使用して新しいツールを作成し、自分の能力を拡張することもできます。", - "selectMode": "インタラクションモードを選択", + "aboutMe": "最新のエージェント型コーディング能力の進歩により、複雑なソフトウェア開発タスクをステップバイステップで処理できます。ファイルの作成や編集、複雑なプロジェクトの探索、ブラウザの使用、ターミナルコマンドの実行(許可後)を可能にするツールにより、コード補完や技術サポート以上の方法であなたをサポートできます。MCPを使用して新しいツールを作成し、自分の能力を拡張することもできます。", + "selectMode": "対話モードを選択", "selectApiConfig": "API設定を選択", - "enhancePrompt": "追加のコンテキストでプロンプトを強化", + "enhancePrompt": "追加コンテキストでプロンプトを強化", "addImages": "メッセージに画像を追加", "sendMessage": "メッセージを送信", "typeMessage": "メッセージを入力...", "typeTask": "ここにタスクを入力...", - "addContext": "@ コンテキストを追加, / モードを切り替え", - "dragFiles": "ファイルをドラッグするにはshiftを押したままにします", - "dragFilesImages": "ファイル/画像をドラッグするにはshiftを押したままにします", - "enhancePromptDescription": "「プロンプト強化」ボタンは、追加のコンテキスト、説明、または言い換えを提供することで、あなたのプロンプトを改善するのに役立ちます。ここにプロンプトを入力して、もう一度ボタンをクリックするとどのように機能するかが分かります。", - "errorReadingFile": "ファイルの読み込み中にエラーが発生しました:", + "addContext": "コンテキスト追加は@、モード切替は/", + "dragFiles": "ファイルをドラッグするにはShiftキーを押したまま", + "dragFilesImages": "ファイル/画像をドラッグするにはShiftキーを押したまま", + "enhancePromptDescription": "「プロンプトを強化」ボタンは、追加コンテキスト、説明、または言い換えを提供することで、リクエストを改善します。ここにリクエストを入力し、ボタンを再度クリックして動作を確認してください。", + "errorReadingFile": "ファイル読み込みエラー:", "noValidImages": "有効な画像が処理されませんでした", - "separator": "区切り線", + "separator": "区切り", "edit": "編集...", - "forNextMode": "次のモードへ", + "forNextMode": "次のモード用", + "error": "エラー", + "troubleMessage": "Rooに問題が発生しています...", + "apiRequest": { + "title": "APIリクエスト", + "failed": "APIリクエスト失敗", + "streaming": "APIリクエスト...", + "cancelled": "APIリクエストキャンセル", + "streamingFailed": "APIストリーミング失敗" + }, + "checkpoint": { + "initial": "初期チェックポイント", + "regular": "チェックポイント", + "menu": { + "viewDiff": "差分を表示", + "restore": "チェックポイントを復元", + "restoreFiles": "ファイルを復元", + "restoreFilesDescription": "この時点で撮影されたスナップショットにプロジェクトのファイルを復元します。", + "restoreFilesAndTask": "ファイルとタスクを復元", + "confirm": "確認", + "cancel": "キャンセル", + "cannotUndo": "このアクションは元に戻せません。", + "restoreFilesAndTaskDescription": "この時点で撮影されたスナップショットにプロジェクトのファイルを復元し、この時点以降のすべてのメッセージを削除します。" + }, + "current": "現在" + }, + "fileOperations": { + "wantsToRead": "Rooはこのファイルを読みたい:", + "didRead": "Rooはこのファイルを読みました:", + "wantsToEdit": "Rooはこのファイルを編集したい:", + "wantsToCreate": "Rooは新しいファイルを作成したい:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Rooはこのディレクトリのトップレベルファイルを表示したい:", + "didViewTopLevel": "Rooはこのディレクトリのトップレベルファイルを表示しました:", + "wantsToViewRecursive": "Rooはこのディレクトリのすべてのファイルを再帰的に表示したい:", + "didViewRecursive": "Rooはこのディレクトリのすべてのファイルを再帰的に表示しました:", + "wantsToViewDefinitions": "Rooはこのディレクトリで使用されているソースコード定義名を表示したい:", + "didViewDefinitions": "Rooはこのディレクトリで使用されているソースコード定義名を表示しました:", + "wantsToSearch": "Rooはこのディレクトリで {{regex}} を検索したい:", + "didSearch": "Rooはこのディレクトリで {{regex}} を検索しました:" + }, + "commandOutput": "コマンド出力", + "response": "応答", + "arguments": "引数", + "mcp": { + "wantsToUseTool": "RooはMCPサーバー{{serverName}}でツールを使用したい:", + "wantsToAccessResource": "RooはMCPサーバー{{serverName}}のリソースにアクセスしたい:" + }, + "modes": { + "wantsToSwitch": "Rooは{{mode}}モードに切り替えたい", + "wantsToSwitchWithReason": "Rooは次の理由で{{mode}}モードに切り替えたい: {{reason}}", + "didSwitch": "Rooは{{mode}}モードに切り替えました", + "didSwitchWithReason": "Rooは次の理由で{{mode}}モードに切り替えました: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Rooは{{mode}}モードで新しいサブタスクを作成したい:", + "wantsToFinish": "Rooはこのサブタスクを終了したい" + }, + "questions": { + "hasQuestion": "Rooは質問があります:" + }, + "taskCompleted": "タスク完了", + "shellIntegration": { + "unavailable": "シェル統合が利用できません", + "troubleshooting": "まだ問題がありますか?" + }, + "powershell": { + "issues": "Windows PowerShellに問題があるようです。こちらを参照してください" + }, "autoApprove": { - "title": "自動承認:", + "title": "自動承認:", "none": "なし", - "description": "自動承認は、Roo Codeに許可を求めずに操作を実行することを許可します。完全に信頼できる操作のみを有効にしてください。", + "description": "自動承認はRoo Codeに許可を求めずに操作を実行する権限を与えます。完全に信頼できる操作のみ有効にしてください。", "actions": { "readFiles": { "label": "ファイルとディレクトリの読み取り", - "shortName": "読取", - "description": "あなたのコンピューター上の任意のファイルを読み取るアクセスを許可します。" + "shortName": "読み取り", + "description": "コンピュータ上の任意のファイルを読み取るアクセスを許可します。" }, "editFiles": { "label": "ファイルの編集", "shortName": "編集", - "description": "あなたのコンピューター上の任意のファイルを変更することを許可します。" + "description": "コンピュータ上の任意のファイルを変更することを許可します。" }, "executeCommands": { "label": "承認されたコマンドの実行", "shortName": "コマンド", - "description": "承認されたターミナルコマンドの実行を許可します。設定パネルでこれを構成できます。" + "description": "承認されたターミナルコマンドの実行を許可します。設定パネルで構成できます。" }, "useBrowser": { "label": "ブラウザの使用", "shortName": "ブラウザ", - "description": "ヘッドレスブラウザで任意のウェブサイトを起動し対話する機能を許可します。" + "description": "ヘッドレスブラウザで任意のウェブサイトを起動して操作する能力を許可します。" }, "useMcp": { "label": "MCPサーバーの使用", "shortName": "MCP", - "description": "ファイルシステムを変更したりAPIと対話したりする可能性のある構成済みMCPサーバーの使用を許可します。" + "description": "ファイルシステムを変更したりAPIと対話したりできる構成済みMCPサーバーの使用を許可します。" }, "switchModes": { "label": "モードの切り替え", @@ -106,8 +192,12 @@ "retryRequests": { "label": "失敗したリクエストの再試行", "shortName": "再試行", - "description": "プロバイダーがエラー応答を返した場合に、失敗したAPIリクエストを自動的に再試行します。" + "description": "プロバイダーがエラー応答を返した場合、失敗したAPIリクエストを自動的に再試行します。" } } + }, + "reasoning": { + "thinking": "考え中", + "seconds": "{{count}}秒" } } diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index fc6683e4bb9..d328233bfff 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -1,107 +1,193 @@ { - "greeting": "Roo가 당신을 위해 무엇을 할 수 있나요?", + "greeting": "Roo가 어떻게 도와드릴까요?", + "task": { + "title": "작업", + "seeMore": "더 보기", + "seeLess": "줄여보기", + "tokens": "토큰:", + "cache": "캐시:", + "apiCost": "API 비용:", + "contextWindow": "컨텍스트 창:", + "closeAndStart": "작업 닫고 새 작업 시작", + "export": "작업 기록 내보내기", + "delete": "작업 삭제 (Shift + 클릭으로 확인 생략)" + }, + "tokenProgress": { + "availableSpace": "사용 가능한 공간: {{amount}} 토큰", + "tokensUsed": "사용된 토큰: {{used}} / {{total}}", + "reservedForResponse": "모델 응답용 예약: {{amount}} 토큰" + }, "retry": { "title": "다시 시도", - "tooltip": "작업을 다시 시도하세요" + "tooltip": "작업 다시 시도" }, "startNewTask": { "title": "새 작업 시작", - "tooltip": "새 작업을 시작하세요" + "tooltip": "새 작업 시작하기" }, "proceedAnyways": { - "title": "어쨌든 계속", - "tooltip": "명령이 실행되는 동안 계속하세요" + "title": "그래도 계속", + "tooltip": "명령 실행 중에도 계속 진행" }, "save": { "title": "저장", - "tooltip": "파일 변경 사항을 저장하세요" + "tooltip": "파일 변경사항 저장" }, "reject": { "title": "거부", - "tooltip": "이 작업을 거부하세요" + "tooltip": "이 작업 거부" }, - "completeSubtaskAndReturn": "하위 작업 완료 및 돌아가기", + "completeSubtaskAndReturn": "하위 작업 완료 후 돌아가기", "approve": { "title": "승인", - "tooltip": "이 작업을 승인하세요" + "tooltip": "이 작업 승인" }, "runCommand": { "title": "명령 실행", - "tooltip": "이 명령을 실행하세요" + "tooltip": "이 명령 실행" }, "proceedWhileRunning": { - "title": "실행 중 계속", - "tooltip": "경고에도 불구하고 계속하세요" + "title": "실행 중에도 계속", + "tooltip": "경고에도 불구하고 계속 진행" }, "resumeTask": { "title": "작업 재개", - "tooltip": "현재 작업을 재개하세요" + "tooltip": "현재 작업 계속하기" }, "terminate": { "title": "종료", - "tooltip": "현재 작업을 종료하세요" + "tooltip": "현재 작업 종료" }, "cancel": { "title": "취소", - "tooltip": "현재 작업을 취소하세요" + "tooltip": "현재 작업 취소" }, "scrollToBottom": "채팅 하단으로 스크롤", - "aboutMe": "에이전트 코딩 능력의 최신 혁신 덕분에 복잡한 소프트웨어 개발 작업을 단계적으로 처리할 수 있습니다. 파일 생성 및 편집, 복잡한 프로젝트 탐색, 브라우저 사용, 터미널 명령 실행(귀하의 승인 후)을 가능하게 하는 도구를 사용하여 코드 완성이나 기술 지원을 넘어서는 방식으로 도움을 드릴 수 있습니다. MCP를 사용하여 새로운 도구를 만들고 내 능력을 확장할 수도 있습니다.", - "selectMode": "상호 작용 모드 선택", + "aboutMe": "최신 에이전트 코딩 기능의 발전 덕분에 복잡한 소프트웨어 개발 작업을 단계별로 처리할 수 있습니다. 파일 생성 및 편집, 복잡한 프로젝트 탐색, 브라우저 사용, 터미널 명령 실행(승인 후)을 가능하게 하는 도구를 통해 코드 완성이나 기술 지원을 넘어서는 방식으로 도움을 드릴 수 있습니다. MCP를 사용하여 새로운 도구를 만들고 자체 기능을 확장할 수도 있습니다.", + "selectMode": "상호작용 모드 선택", "selectApiConfig": "API 구성 선택", - "enhancePrompt": "추가 컨텍스트로 프롬프트 강화", + "enhancePrompt": "추가 컨텍스트로 프롬프트 향상", "addImages": "메시지에 이미지 추가", "sendMessage": "메시지 보내기", - "typeMessage": "메시지를 입력하세요...", - "typeTask": "여기에 작업을 입력하세요...", - "addContext": "@ 컨텍스트 추가, / 모드 전환", - "dragFiles": "파일을 드래그하려면 shift를 누르세요", - "dragFilesImages": "파일/이미지를 드래그하려면 shift를 누르세요", - "enhancePromptDescription": "'프롬프트 강화' 버튼은 추가 컨텍스트, 설명 또는 재구성을 제공하여 프롬프트를 개선하는 데 도움을 줍니다. 여기에 프롬프트를 입력하고 버튼을 다시 클릭하여 작동 방식을 확인하세요.", + "typeMessage": "메시지 입력...", + "typeTask": "여기에 작업 입력...", + "addContext": "컨텍스트 추가는 @, 모드 전환은 /", + "dragFiles": "파일을 드래그하려면 shift 키 누르기", + "dragFilesImages": "파일/이미지를 드래그하려면 shift 키 누르기", + "enhancePromptDescription": "'프롬프트 향상' 버튼은 추가 컨텍스트, 명확화 또는 재구성을 제공하여 요청을 개선합니다. 여기에 요청을 입력한 다음 버튼을 다시 클릭하여 작동 방식을 확인해보세요.", "errorReadingFile": "파일 읽기 오류:", - "noValidImages": "유효한 이미지가 처리되지 않았습니다", - "separator": "구분선", + "noValidImages": "처리된 유효한 이미지가 없습니다", + "separator": "구분자", "edit": "편집...", - "forNextMode": "다음 모드로", + "forNextMode": "다음 모드용", + "error": "오류", + "troubleMessage": "Roo에 문제가 발생했습니다...", + "apiRequest": { + "title": "API 요청", + "failed": "API 요청 실패", + "streaming": "API 요청...", + "cancelled": "API 요청 취소됨", + "streamingFailed": "API 스트리밍 실패" + }, + "checkpoint": { + "initial": "초기 체크포인트", + "regular": "체크포인트", + "menu": { + "viewDiff": "차이점 보기", + "restore": "체크포인트 복원", + "restoreFiles": "파일 복원", + "restoreFilesDescription": "프로젝트 파일을 이 시점에 찍힌 스냅샷으로 복원합니다.", + "restoreFilesAndTask": "파일 및 작업 복원", + "confirm": "확인", + "cancel": "취소", + "cannotUndo": "이 작업은 취소할 수 없습니다.", + "restoreFilesAndTaskDescription": "프로젝트 파일을 이 시점에 찍힌 스냅샷으로 복원하고 이 지점 이후의 모든 메시지를 삭제합니다." + }, + "current": "현재" + }, + "fileOperations": { + "wantsToRead": "Roo가 이 파일을 읽고 싶어합니다:", + "didRead": "Roo가 이 파일을 읽었습니다:", + "wantsToEdit": "Roo가 이 파일을 편집하고 싶어합니다:", + "wantsToCreate": "Roo가 새 파일을 만들고 싶어합니다:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo가 이 디렉토리의 최상위 파일을 보고 싶어합니다:", + "didViewTopLevel": "Roo가 이 디렉토리의 최상위 파일을 보았습니다:", + "wantsToViewRecursive": "Roo가 이 디렉토리의 모든 파일을 재귀적으로 보고 싶어합니다:", + "didViewRecursive": "Roo가 이 디렉토리의 모든 파일을 재귀적으로 보았습니다:", + "wantsToViewDefinitions": "Roo가 이 디렉토리에서 사용된 소스 코드 정의 이름을 보고 싶어합니다:", + "didViewDefinitions": "Roo가 이 디렉토리에서 사용된 소스 코드 정의 이름을 보았습니다:", + "wantsToSearch": "Roo가 이 디렉토리에서 {{regex}}을(를) 검색하고 싶어합니다:", + "didSearch": "Roo가 이 디렉토리에서 {{regex}}을(를) 검색했습니다:" + }, + "commandOutput": "명령 출력", + "response": "응답", + "arguments": "인수", + "mcp": { + "wantsToUseTool": "Roo가 {{serverName}} MCP 서버에서 도구를 사용하고 싶어합니다:", + "wantsToAccessResource": "Roo가 {{serverName}} MCP 서버에서 리소스에 접근하고 싶어합니다:" + }, + "modes": { + "wantsToSwitch": "Roo가 {{mode}} 모드로 전환하고 싶어합니다", + "wantsToSwitchWithReason": "Roo가 다음 이유로 {{mode}} 모드로 전환하고 싶어합니다: {{reason}}", + "didSwitch": "Roo가 {{mode}} 모드로 전환했습니다", + "didSwitchWithReason": "Roo가 다음 이유로 {{mode}} 모드로 전환했습니다: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo가 {{mode}} 모드에서 새 하위 작업을 만들고 싶어합니다:", + "wantsToFinish": "Roo가 이 하위 작업을 완료하고 싶어합니다" + }, + "questions": { + "hasQuestion": "Roo에게 질문이 있습니다:" + }, + "taskCompleted": "작업 완료", + "shellIntegration": { + "unavailable": "쉘 통합 사용 불가", + "troubleshooting": "여전히 문제가 있나요?" + }, + "powershell": { + "issues": "Windows PowerShell에 문제가 있는 것 같습니다. 다음을 참조하세요" + }, "autoApprove": { "title": "자동 승인:", "none": "없음", - "description": "자동 승인을 사용하면 Roo Code가 권한 요청 없이 작업을 수행할 수 있습니다. 완전히 신뢰하는 작업에만 활성화하세요.", + "description": "자동 승인을 사용하면 Roo Code가 권한을 요청하지 않고 작업을 수행할 수 있습니다. 완전히 신뢰할 수 있는 작업에만 활성화하세요.", "actions": { "readFiles": { - "label": "파일 및 디렉터리 읽기", + "label": "파일 및 디렉토리 읽기", "shortName": "읽기", - "description": "컴퓨터의 모든 파일에 대한 읽기 액세스를 허용합니다." + "description": "컴퓨터의 모든 파일을 읽을 수 있는 액세스 권한을 허용합니다." }, "editFiles": { "label": "파일 편집", "shortName": "편집", - "description": "컴퓨터의 모든 파일을 수정할 수 있도록 허용합니다." + "description": "컴퓨터의 모든 파일을 수정할 수 있는 권한을 허용합니다." }, "executeCommands": { "label": "승인된 명령 실행", "shortName": "명령", - "description": "승인된 터미널 명령의 실행을 허용합니다. 설정 패널에서 이를 구성할 수 있습니다." + "description": "승인된 터미널 명령 실행을 허용합니다. 설정 패널에서 구성할 수 있습니다." }, "useBrowser": { "label": "브라우저 사용", "shortName": "브라우저", - "description": "헤드리스 브라우저에서 모든 웹사이트를 시작하고 상호 작용할 수 있는 기능을 허용합니다." + "description": "헤드리스 브라우저에서 모든 웹사이트를 실행하고 상호작용할 수 있는 기능을 허용합니다." }, "useMcp": { "label": "MCP 서버 사용", "shortName": "MCP", - "description": "파일 시스템을 수정하거나 API와 상호 작용할 수 있는 구성된 MCP 서버 사용을 허용합니다." + "description": "파일 시스템을 수정하거나 API와 상호작용할 수 있는 구성된 MCP 서버 사용을 허용합니다." }, "switchModes": { "label": "모드 전환", "shortName": "모드", - "description": "승인 요청 없이 다양한 모드 간의 자동 전환을 허용합니다." + "description": "승인 없이 다른 모드 간 자동 전환을 허용합니다." }, "subtasks": { "label": "하위 작업 생성 및 완료", "shortName": "하위 작업", - "description": "승인 요청 없이 하위 작업 생성 및 완료를 허용합니다." + "description": "승인 없이 하위 작업 생성 및 완료를 허용합니다." }, "retryRequests": { "label": "실패한 요청 재시도", @@ -109,5 +195,9 @@ "description": "제공자가 오류 응답을 반환할 때 실패한 API 요청을 자동으로 재시도합니다." } } + }, + "reasoning": { + "thinking": "생각 중", + "seconds": "{{count}}초" } } diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index 676529f1e67..9d06c656fa0 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -1,7 +1,24 @@ { "greeting": "Co Roo może dla Ciebie zrobić?", + "task": { + "title": "Zadanie", + "seeMore": "Zobacz więcej", + "seeLess": "Zobacz mniej", + "tokens": "Tokeny:", + "cache": "Pamięć podręczna:", + "apiCost": "Koszt API:", + "contextWindow": "Okno kontekstu:", + "closeAndStart": "Zamknij zadanie i rozpocznij nowe", + "export": "Eksportuj historię zadań", + "delete": "Usuń zadanie (Shift + Kliknięcie, aby pominąć potwierdzenie)" + }, + "tokenProgress": { + "availableSpace": "Dostępne miejsce: {{amount}} tokenów", + "tokensUsed": "Wykorzystane tokeny: {{used}} z {{total}}", + "reservedForResponse": "Zarezerwowane dla odpowiedzi modelu: {{amount}} tokenów" + }, "retry": { - "title": "Ponów próbę", + "title": "Ponów", "tooltip": "Spróbuj ponownie wykonać operację" }, "startNewTask": { @@ -26,7 +43,7 @@ "tooltip": "Zatwierdź tę akcję" }, "runCommand": { - "title": "Wykonaj polecenie", + "title": "Uruchom polecenie", "tooltip": "Wykonaj to polecenie" }, "proceedWhileRunning": { @@ -35,7 +52,7 @@ }, "resumeTask": { "title": "Wznów zadanie", - "tooltip": "Wznów bieżące zadanie" + "tooltip": "Kontynuuj bieżące zadanie" }, "terminate": { "title": "Zakończ", @@ -45,69 +62,142 @@ "title": "Anuluj", "tooltip": "Anuluj bieżącą operację" }, - "scrollToBottom": "Przewiń na dół czatu", - "aboutMe": "Dzięki najnowszym przełomom w zakresie możliwości kodowania agentowego mogę krok po kroku obsługiwać złożone zadania związane z rozwojem oprogramowania. Dzięki narzędziom, które pozwalają mi tworzyć i edytować pliki, eksplorować złożone projekty, korzystać z przeglądarki i wykonywać polecenia terminalowe (po Twojej aprobacie), mogę pomóc Ci w sposób wykraczający poza uzupełnianie kodu lub wsparcie techniczne. Mogę nawet używać MCP do tworzenia nowych narzędzi i rozszerzania moich własnych możliwości.", + "scrollToBottom": "Przewiń do dołu czatu", + "aboutMe": "Dzięki najnowszym przełomom w zdolnościach kodowania agentowego, mogę krok po kroku obsługiwać złożone zadania związane z tworzeniem oprogramowania. Dzięki narzędziom, które pozwalają mi tworzyć i edytować pliki, eksplorować złożone projekty, korzystać z przeglądarki i wykonywać polecenia terminala (po udzieleniu zgody), mogę pomagać w sposób wykraczający poza uzupełnianie kodu czy wsparcie techniczne. Mogę nawet używać MCP do tworzenia nowych narzędzi i rozszerzania własnych możliwości.", "selectMode": "Wybierz tryb interakcji", "selectApiConfig": "Wybierz konfigurację API", - "enhancePrompt": "Ulepsz monit o dodatkowy kontekst", + "enhancePrompt": "Ulepsz podpowiedź dodatkowym kontekstem", "addImages": "Dodaj obrazy do wiadomości", "sendMessage": "Wyślij wiadomość", "typeMessage": "Wpisz wiadomość...", - "typeTask": "Wpisz tutaj swoje zadanie...", - "addContext": "@ aby dodać kontekst, / aby przełączyć tryby", + "typeTask": "Wpisz swoje zadanie tutaj...", + "addContext": "@ aby dodać kontekst, / aby zmienić tryb", "dragFiles": "przytrzymaj shift, aby przeciągnąć pliki", "dragFilesImages": "przytrzymaj shift, aby przeciągnąć pliki/obrazy", - "enhancePromptDescription": "Przycisk 'Ulepsz monit' pomaga poprawić twój monit, dostarczając dodatkowy kontekst, wyjaśnienia lub przeformułowania. Spróbuj wpisać monit tutaj i kliknij przycisk ponownie, aby zobaczyć, jak to działa.", + "enhancePromptDescription": "Przycisk 'Ulepsz podpowiedź' pomaga ulepszyć Twoją prośbę, dostarczając dodatkowy kontekst, wyjaśnienia lub przeformułowania. Spróbuj wpisać prośbę tutaj i kliknij przycisk ponownie, aby zobaczyć, jak to działa.", "errorReadingFile": "Błąd odczytu pliku:", "noValidImages": "Nie przetworzono żadnych prawidłowych obrazów", "separator": "Separator", "edit": "Edytuj...", "forNextMode": "dla następnego trybu", + "error": "Błąd", + "troubleMessage": "Roo ma problemy...", + "apiRequest": { + "title": "Zapytanie API", + "failed": "Zapytanie API nie powiodło się", + "streaming": "Zapytanie API...", + "cancelled": "Zapytanie API anulowane", + "streamingFailed": "Strumieniowanie API nie powiodło się" + }, + "checkpoint": { + "initial": "Początkowy punkt kontrolny", + "regular": "Punkt kontrolny", + "menu": { + "viewDiff": "Zobacz różnice", + "restore": "Przywróć punkt kontrolny", + "restoreFiles": "Przywróć pliki", + "restoreFilesDescription": "Przywraca pliki Twojego projektu do zrzutu wykonanego w tym punkcie.", + "restoreFilesAndTask": "Przywróć pliki i zadanie", + "confirm": "Potwierdź", + "cancel": "Anuluj", + "cannotUndo": "Tej akcji nie można cofnąć.", + "restoreFilesAndTaskDescription": "Przywraca pliki Twojego projektu do zrzutu wykonanego w tym punkcie i usuwa wszystkie wiadomości po tym punkcie." + }, + "current": "Bieżący" + }, + "fileOperations": { + "wantsToRead": "Roo chce przeczytać ten plik:", + "didRead": "Roo przeczytał ten plik:", + "wantsToEdit": "Roo chce edytować ten plik:", + "wantsToCreate": "Roo chce utworzyć nowy plik:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo chce zobaczyć pliki najwyższego poziomu w tym katalogu:", + "didViewTopLevel": "Roo zobaczył pliki najwyższego poziomu w tym katalogu:", + "wantsToViewRecursive": "Roo chce rekurencyjnie zobaczyć wszystkie pliki w tym katalogu:", + "didViewRecursive": "Roo rekurencyjnie zobaczył wszystkie pliki w tym katalogu:", + "wantsToViewDefinitions": "Roo chce zobaczyć nazwy definicji kodu źródłowego używane w tym katalogu:", + "didViewDefinitions": "Roo zobaczył nazwy definicji kodu źródłowego używane w tym katalogu:", + "wantsToSearch": "Roo chce przeszukać ten katalog w poszukiwaniu {{regex}}:", + "didSearch": "Roo przeszukał ten katalog w poszukiwaniu {{regex}}:" + }, + "commandOutput": "Wyjście polecenia", + "response": "Odpowiedź", + "arguments": "Argumenty", + "mcp": { + "wantsToUseTool": "Roo chce użyć narzędzia na serwerze MCP {{serverName}}:", + "wantsToAccessResource": "Roo chce uzyskać dostęp do zasobu na serwerze MCP {{serverName}}:" + }, + "modes": { + "wantsToSwitch": "Roo chce przełączyć się na tryb {{mode}}", + "wantsToSwitchWithReason": "Roo chce przełączyć się na tryb {{mode}} ponieważ: {{reason}}", + "didSwitch": "Roo przełączył się na tryb {{mode}}", + "didSwitchWithReason": "Roo przełączył się na tryb {{mode}} ponieważ: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo chce utworzyć nowe podzadanie w trybie {{mode}}:", + "wantsToFinish": "Roo chce zakończyć to podzadanie" + }, + "questions": { + "hasQuestion": "Roo ma pytanie:" + }, + "taskCompleted": "Zadanie zakończone", + "shellIntegration": { + "unavailable": "Integracja powłoki niedostępna", + "troubleshooting": "Nadal masz problemy?" + }, + "powershell": { + "issues": "Wygląda na to, że masz problemy z Windows PowerShell, proszę zapoznaj się z tym" + }, "autoApprove": { "title": "Automatyczne zatwierdzanie:", "none": "Brak", - "description": "Automatyczne zatwierdzanie pozwala Roo Code na wykonywanie działań bez proszenia o pozwolenie. Włącz tylko dla działań, którym w pełni ufasz.", + "description": "Automatyczne zatwierdzanie pozwala Roo Code wykonywać działania bez pytania o pozwolenie. Włącz tylko dla działań, którym w pełni ufasz.", "actions": { "readFiles": { - "label": "Odczyt plików i katalogów", - "shortName": "Odczyt", - "description": "Pozwala na dostęp do odczytu dowolnego pliku na twoim komputerze." + "label": "Czytaj pliki i katalogi", + "shortName": "Czytanie", + "description": "Pozwala na dostęp do odczytu dowolnego pliku na Twoim komputerze." }, "editFiles": { - "label": "Edycja plików", + "label": "Edytuj pliki", "shortName": "Edycja", - "description": "Pozwala na modyfikację dowolnych plików na twoim komputerze." + "description": "Pozwala na modyfikację dowolnych plików na Twoim komputerze." }, "executeCommands": { - "label": "Wykonywanie zatwierdzonych poleceń", + "label": "Wykonuj zatwierdzone polecenia", "shortName": "Polecenia", - "description": "Pozwala na wykonywanie zatwierdzonych poleceń terminalowych. Możesz to skonfigurować w panelu ustawień." + "description": "Pozwala na wykonywanie zatwierdzonych poleceń terminala. Możesz to skonfigurować w panelu ustawień." }, "useBrowser": { - "label": "Używanie przeglądarki", + "label": "Używaj przeglądarki", "shortName": "Przeglądarka", - "description": "Pozwala na uruchamianie i interakcję z dowolną stroną internetową w przeglądarce headless." + "description": "Pozwala na uruchamianie i interakcję z dowolną stroną internetową w przeglądarce bezinterfejsowej." }, "useMcp": { - "label": "Używanie serwerów MCP", + "label": "Używaj serwerów MCP", "shortName": "MCP", - "description": "Pozwala na używanie skonfigurowanych serwerów MCP, które mogą modyfikować system plików lub wchodzić w interakcję z API." + "description": "Pozwala na korzystanie ze skonfigurowanych serwerów MCP, które mogą modyfikować system plików lub wchodzić w interakcje z API." }, "switchModes": { - "label": "Przełączanie trybów", + "label": "Przełączaj tryby", "shortName": "Tryby", - "description": "Pozwala na automatyczne przełączanie między różnymi trybami bez konieczności zatwierdzania." + "description": "Pozwala na automatyczne przełączanie między różnymi trybami bez wymagania zatwierdzenia." }, "subtasks": { - "label": "Tworzenie i kończenie podzadań", + "label": "Twórz i kończ podzadania", "shortName": "Podzadania", - "description": "Pozwala na tworzenie i kończenie podzadań bez konieczności zatwierdzania." + "description": "Pozwala na tworzenie i kończenie podzadań bez wymagania zatwierdzenia." }, "retryRequests": { - "label": "Ponowne próby nieudanych żądań", - "shortName": "Ponowne próby", - "description": "Automatycznie ponawia nieudane żądania API, gdy dostawca zwraca odpowiedź z błędem." + "label": "Ponów nieudane zapytania", + "shortName": "Ponowienia", + "description": "Automatycznie ponawia nieudane zapytania API, gdy dostawca zwraca odpowiedź z błędem." } } + }, + "reasoning": { + "thinking": "Myślenie", + "seconds": "{{count}} s" } } diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index 9d9ffba47cf..3d5c59ff8c0 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -1,71 +1,157 @@ { "greeting": "O que o Roo pode fazer por você?", + "task": { + "title": "Tarefa", + "seeMore": "Ver mais", + "seeLess": "Ver menos", + "tokens": "Tokens:", + "cache": "Cache:", + "apiCost": "Custo da API:", + "contextWindow": "Janela de contexto:", + "closeAndStart": "Fechar tarefa e iniciar nova", + "export": "Exportar histórico de tarefas", + "delete": "Excluir tarefa (Shift + Clique para pular confirmação)" + }, + "tokenProgress": { + "availableSpace": "Espaço disponível: {{amount}} tokens", + "tokensUsed": "Tokens usados: {{used}} de {{total}}", + "reservedForResponse": "Reservado para resposta do modelo: {{amount}} tokens" + }, "retry": { "title": "Tentar novamente", - "tooltip": "Tente a operação novamente" + "tooltip": "Tentar a operação novamente" }, "startNewTask": { "title": "Iniciar nova tarefa", - "tooltip": "Comece uma nova tarefa" + "tooltip": "Começar uma nova tarefa" }, "proceedAnyways": { - "title": "Continuar mesmo assim", - "tooltip": "Continue enquanto o comando é executado" + "title": "Prosseguir mesmo assim", + "tooltip": "Continuar enquanto o comando executa" }, "save": { "title": "Salvar", - "tooltip": "Salvar alterações do arquivo" + "tooltip": "Salvar as alterações do arquivo" }, "reject": { "title": "Rejeitar", "tooltip": "Rejeitar esta ação" }, - "completeSubtaskAndReturn": "Concluir subtarefa e retornar", + "completeSubtaskAndReturn": "Completar subtarefa e retornar", "approve": { "title": "Aprovar", "tooltip": "Aprovar esta ação" }, "runCommand": { "title": "Executar comando", - "tooltip": "Execute este comando" + "tooltip": "Executar este comando" }, "proceedWhileRunning": { - "title": "Continuar durante a execução", - "tooltip": "Continue apesar dos avisos" + "title": "Prosseguir durante execução", + "tooltip": "Continuar apesar dos avisos" }, "resumeTask": { "title": "Retomar tarefa", - "tooltip": "Retome a tarefa atual" + "tooltip": "Continuar a tarefa atual" }, "terminate": { "title": "Terminar", - "tooltip": "Terminar a tarefa atual" + "tooltip": "Encerrar a tarefa atual" }, "cancel": { "title": "Cancelar", "tooltip": "Cancelar a operação atual" }, - "scrollToBottom": "Rolar até o final do chat", - "aboutMe": "Graças aos últimos avanços nas capacidades de codificação agentiva, posso lidar com tarefas complexas de desenvolvimento de software passo a passo. Com ferramentas que me permitem criar e editar arquivos, explorar projetos complexos, usar o navegador e executar comandos de terminal (após sua aprovação), posso ajudá-lo de maneiras que vão além da conclusão de código ou suporte técnico. Posso até usar o MCP para criar novas ferramentas e expandir minhas próprias capacidades.", + "scrollToBottom": "Rolar para o final do chat", + "aboutMe": "Graças aos mais recentes avanços em capacidades de codificação agentiva, posso lidar com tarefas complexas de desenvolvimento de software passo a passo. Com ferramentas que me permitem criar e editar arquivos, explorar projetos complexos, usar o navegador e executar comandos de terminal (após sua permissão), posso ajudar de maneiras que vão além da conclusão de código ou suporte técnico. Posso até usar o MCP para criar novas ferramentas e expandir minhas próprias capacidades.", "selectMode": "Selecionar modo de interação", - "selectApiConfig": "Selecionar configuração da API", - "enhancePrompt": "Melhorar o prompt com contexto adicional", + "selectApiConfig": "Selecionar configuração de API", + "enhancePrompt": "Aprimorar prompt com contexto adicional", "addImages": "Adicionar imagens à mensagem", "sendMessage": "Enviar mensagem", "typeMessage": "Digite uma mensagem...", "typeTask": "Digite sua tarefa aqui...", - "addContext": "@ para adicionar contexto, / para mudar modos", + "addContext": "@ para adicionar contexto, / para alternar modos", "dragFiles": "segure shift para arrastar arquivos", "dragFilesImages": "segure shift para arrastar arquivos/imagens", - "enhancePromptDescription": "O botão 'Melhorar o prompt' ajuda a aprimorar seu pedido fornecendo contexto adicional, esclarecimentos ou reformulações. Tente digitar um pedido aqui e clique no botão novamente para ver como funciona.", - "errorReadingFile": "Erro ao ler o arquivo:", + "enhancePromptDescription": "O botão 'Aprimorar prompt' ajuda a melhorar seu pedido fornecendo contexto adicional, esclarecimentos ou reformulações. Tente digitar um pedido aqui e clique no botão novamente para ver como funciona.", + "errorReadingFile": "Erro ao ler arquivo:", "noValidImages": "Nenhuma imagem válida foi processada", "separator": "Separador", "edit": "Editar...", "forNextMode": "para o próximo modo", + "error": "Erro", + "troubleMessage": "Roo está tendo problemas...", + "apiRequest": { + "title": "Requisição API", + "failed": "Requisição API falhou", + "streaming": "Requisição API...", + "cancelled": "Requisição API cancelada", + "streamingFailed": "Streaming API falhou" + }, + "checkpoint": { + "initial": "Ponto de verificação inicial", + "regular": "Ponto de verificação", + "menu": { + "viewDiff": "Ver diferenças", + "restore": "Restaurar ponto de verificação", + "restoreFiles": "Restaurar arquivos", + "restoreFilesDescription": "Restaura os arquivos do seu projeto para um snapshot feito neste ponto.", + "restoreFilesAndTask": "Restaurar arquivos e tarefa", + "confirm": "Confirmar", + "cancel": "Cancelar", + "cannotUndo": "Esta ação não pode ser desfeita.", + "restoreFilesAndTaskDescription": "Restaura os arquivos do seu projeto para um snapshot feito neste ponto e exclui todas as mensagens após este ponto." + }, + "current": "Atual" + }, + "fileOperations": { + "wantsToRead": "Roo quer ler este arquivo:", + "didRead": "Roo leu este arquivo:", + "wantsToEdit": "Roo quer editar este arquivo:", + "wantsToCreate": "Roo quer criar um novo arquivo:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo quer visualizar os arquivos de nível superior neste diretório:", + "didViewTopLevel": "Roo visualizou os arquivos de nível superior neste diretório:", + "wantsToViewRecursive": "Roo quer visualizar recursivamente todos os arquivos neste diretório:", + "didViewRecursive": "Roo visualizou recursivamente todos os arquivos neste diretório:", + "wantsToViewDefinitions": "Roo quer visualizar nomes de definição de código-fonte usados neste diretório:", + "didViewDefinitions": "Roo visualizou nomes de definição de código-fonte usados neste diretório:", + "wantsToSearch": "Roo quer pesquisar neste diretório por {{regex}}:", + "didSearch": "Roo pesquisou neste diretório por {{regex}}:" + }, + "commandOutput": "Saída do comando", + "response": "Resposta", + "arguments": "Argumentos", + "mcp": { + "wantsToUseTool": "Roo quer usar uma ferramenta no servidor MCP {{serverName}}:", + "wantsToAccessResource": "Roo quer acessar um recurso no servidor MCP {{serverName}}:" + }, + "modes": { + "wantsToSwitch": "Roo quer mudar para o modo {{mode}}", + "wantsToSwitchWithReason": "Roo quer mudar para o modo {{mode}} porque: {{reason}}", + "didSwitch": "Roo mudou para o modo {{mode}}", + "didSwitchWithReason": "Roo mudou para o modo {{mode}} porque: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo quer criar uma nova subtarefa no modo {{mode}}:", + "wantsToFinish": "Roo quer finalizar esta subtarefa" + }, + "questions": { + "hasQuestion": "Roo tem uma pergunta:" + }, + "taskCompleted": "Tarefa concluída", + "shellIntegration": { + "unavailable": "Integração de shell indisponível", + "troubleshooting": "Ainda com problemas?" + }, + "powershell": { + "issues": "Parece que você está tendo problemas com o Windows PowerShell, por favor veja este" + }, "autoApprove": { "title": "Aprovação automática:", - "none": "Nenhum", + "none": "Nenhuma", "description": "A aprovação automática permite que o Roo Code execute ações sem pedir permissão. Ative apenas para ações nas quais você confia totalmente.", "actions": { "readFiles": { @@ -99,15 +185,19 @@ "description": "Permite a alternância automática entre diferentes modos sem exigir aprovação." }, "subtasks": { - "label": "Criar e concluir subtarefas", + "label": "Criar e completar subtarefas", "shortName": "Subtarefas", "description": "Permite a criação e conclusão de subtarefas sem exigir aprovação." }, "retryRequests": { - "label": "Tentar novamente solicitações com falha", - "shortName": "Novas tentativas", - "description": "Tenta automaticamente solicitações de API com falha quando o provedor retorna uma resposta de erro." + "label": "Retentar requisições falhas", + "shortName": "Retentativas", + "description": "Retenta automaticamente requisições de API falhas quando o provedor retorna uma resposta de erro." } } + }, + "reasoning": { + "thinking": "Pensando", + "seconds": "{{count}}s" } } diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index c8fb7011a8e..7fd27e4753b 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -1,77 +1,163 @@ { "greeting": "Roo sizin için ne yapabilir?", + "task": { + "title": "Görev", + "seeMore": "Daha fazla gör", + "seeLess": "Daha az gör", + "tokens": "Tokenlar:", + "cache": "Önbellek:", + "apiCost": "API Maliyeti:", + "contextWindow": "Bağlam Penceresi:", + "closeAndStart": "Görevi kapat ve yeni bir görev başlat", + "export": "Görev geçmişini dışa aktar", + "delete": "Görevi sil (Onayı atlamak için Shift + Tıkla)" + }, + "tokenProgress": { + "availableSpace": "Kullanılabilir alan: {{amount}} token", + "tokensUsed": "Kullanılan tokenlar: {{used}} / {{total}}", + "reservedForResponse": "Model yanıtı için ayrılan: {{amount}} token" + }, "retry": { "title": "Yeniden Dene", - "tooltip": "İşlemi tekrar deneyin" + "tooltip": "İşlemi tekrar dene" }, "startNewTask": { "title": "Yeni Görev Başlat", - "tooltip": "Yeni bir görev başlatın" + "tooltip": "Yeni bir görev başlat" }, "proceedAnyways": { "title": "Yine de Devam Et", - "tooltip": "Komut çalışırken devam edin" + "tooltip": "Komut çalışırken devam et" }, "save": { "title": "Kaydet", - "tooltip": "Dosya değişikliklerini kaydedin" + "tooltip": "Dosya değişikliklerini kaydet" }, "reject": { "title": "Reddet", - "tooltip": "Bu eylemi reddedin" + "tooltip": "Bu eylemi reddet" }, "completeSubtaskAndReturn": "Alt görevi tamamla ve geri dön", "approve": { "title": "Onayla", - "tooltip": "Bu eylemi onaylayın" + "tooltip": "Bu eylemi onayla" }, "runCommand": { - "title": "Komut Çalıştır", - "tooltip": "Bu komutu çalıştırın" + "title": "Komutu Çalıştır", + "tooltip": "Bu komutu çalıştır" }, "proceedWhileRunning": { "title": "Çalışırken Devam Et", - "tooltip": "Uyarılara rağmen devam edin" + "tooltip": "Uyarılara rağmen devam et" }, "resumeTask": { "title": "Göreve Devam Et", - "tooltip": "Mevcut göreve devam edin" + "tooltip": "Mevcut göreve devam et" }, "terminate": { "title": "Sonlandır", - "tooltip": "Mevcut görevi sonlandırın" + "tooltip": "Mevcut görevi sonlandır" }, "cancel": { "title": "İptal", - "tooltip": "Mevcut işlemi iptal edin" + "tooltip": "Mevcut işlemi iptal et" }, - "scrollToBottom": "Sohbetin en altına kaydır", - "aboutMe": "Ajan tabanlı kodlama yeteneklerindeki son gelişmeler sayesinde, karmaşık yazılım geliştirme görevlerini adım adım ele alabiliyorum. Dosya oluşturma ve düzenleme, karmaşık projeleri keşfetme, tarayıcı kullanma ve terminal komutları çalıştırma (sizin onayınızla) gibi araçlarla, kod tamamlama veya teknik destek ötesinde size yardımcı olabilirim. Hatta MCP'yi kullanarak yeni araçlar oluşturabilir ve kendi yeteneklerimi genişletebilirim.", + "scrollToBottom": "Sohbetin altına kaydır", + "aboutMe": "Ajansal kodlama yeteneklerindeki son atılımlar sayesinde, karmaşık yazılım geliştirme görevlerini adım adım ele alabilirim. Dosya oluşturma ve düzenleme, karmaşık projeleri keşfetme, tarayıcıyı kullanma ve terminal komutlarını çalıştırma (izin verdikten sonra) olanağı sağlayan araçlarla, kod tamamlama veya teknik desteğin ötesinde size yardımcı olabilirim. Hatta yeni araçlar oluşturmak ve kendi yeteneklerimi genişletmek için MCP'yi bile kullanabilirim.", "selectMode": "Etkileşim modunu seçin", "selectApiConfig": "API yapılandırmasını seçin", - "enhancePrompt": "Ek bağlamla istemi geliştirin", + "enhancePrompt": "Ek bağlamla istemi geliştir", "addImages": "Mesaja resim ekle", "sendMessage": "Mesaj gönder", "typeMessage": "Bir mesaj yazın...", "typeTask": "Görevinizi buraya yazın...", - "addContext": "@ bağlam eklemek için, / modları değiştirmek için", - "dragFiles": "dosyaları sürüklemek için shift tuşunu basılı tutun", - "dragFilesImages": "dosyaları/resimleri sürüklemek için shift tuşunu basılı tutun", - "enhancePromptDescription": "'İstemi geliştir' düğmesi, ek bağlam, açıklama veya yeniden ifade sağlayarak istemlerinizi iyileştirmenize yardımcı olur. Buraya bir istem yazın ve nasıl çalıştığını görmek için düğmeye tekrar tıklayın.", + "addContext": "Bağlam eklemek için @, mod değiştirmek için /", + "dragFiles": "dosyaları sürüklemek için shift tuşuna basılı tutun", + "dragFilesImages": "dosyaları/resimleri sürüklemek için shift tuşuna basılı tutun", + "enhancePromptDescription": "'İstemi geliştir' düğmesi, ek bağlam, açıklama veya yeniden ifade sağlayarak isteğinizi iyileştirmeye yardımcı olur. Buraya bir istek yazıp düğmeye tekrar tıklayarak nasıl çalıştığını görebilirsiniz.", "errorReadingFile": "Dosya okuma hatası:", "noValidImages": "Hiçbir geçerli resim işlenmedi", "separator": "Ayırıcı", "edit": "Düzenle...", "forNextMode": "sonraki mod için", + "error": "Hata", + "troubleMessage": "Roo sorun yaşıyor...", + "apiRequest": { + "title": "API İsteği", + "failed": "API İsteği Başarısız", + "streaming": "API İsteği...", + "cancelled": "API İsteği İptal Edildi", + "streamingFailed": "API Akışı Başarısız" + }, + "checkpoint": { + "initial": "İlk Kontrol Noktası", + "regular": "Kontrol Noktası", + "menu": { + "viewDiff": "Farkları Görüntüle", + "restore": "Kontrol Noktasını Geri Yükle", + "restoreFiles": "Dosyaları Geri Yükle", + "restoreFilesDescription": "Projenizin dosyalarını bu noktada alınan bir anlık görüntüye geri yükler.", + "restoreFilesAndTask": "Dosyaları ve Görevi Geri Yükle", + "confirm": "Onayla", + "cancel": "İptal", + "cannotUndo": "Bu işlem geri alınamaz.", + "restoreFilesAndTaskDescription": "Projenizin dosyalarını bu noktada alınan bir anlık görüntüye geri yükler ve bu noktadan sonraki tüm mesajları siler." + }, + "current": "Mevcut" + }, + "fileOperations": { + "wantsToRead": "Roo bu dosyayı okumak istiyor:", + "didRead": "Roo bu dosyayı okudu:", + "wantsToEdit": "Roo bu dosyayı düzenlemek istiyor:", + "wantsToCreate": "Roo yeni bir dosya oluşturmak istiyor:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo bu dizindeki üst düzey dosyaları görüntülemek istiyor:", + "didViewTopLevel": "Roo bu dizindeki üst düzey dosyaları görüntüledi:", + "wantsToViewRecursive": "Roo bu dizindeki tüm dosyaları özyinelemeli olarak görüntülemek istiyor:", + "didViewRecursive": "Roo bu dizindeki tüm dosyaları özyinelemeli olarak görüntüledi:", + "wantsToViewDefinitions": "Roo bu dizinde kullanılan kaynak kod tanımlama isimlerini görüntülemek istiyor:", + "didViewDefinitions": "Roo bu dizinde kullanılan kaynak kod tanımlama isimlerini görüntüledi:", + "wantsToSearch": "Roo bu dizinde {{regex}} için arama yapmak istiyor:", + "didSearch": "Roo bu dizinde {{regex}} için arama yaptı:" + }, + "commandOutput": "Komut Çıktısı", + "response": "Yanıt", + "arguments": "Argümanlar", + "mcp": { + "wantsToUseTool": "Roo {{serverName}} MCP sunucusunda bir araç kullanmak istiyor:", + "wantsToAccessResource": "Roo {{serverName}} MCP sunucusundaki bir kaynağa erişmek istiyor:" + }, + "modes": { + "wantsToSwitch": "Roo {{mode}} moduna geçmek istiyor", + "wantsToSwitchWithReason": "Roo {{mode}} moduna geçmek istiyor çünkü: {{reason}}", + "didSwitch": "Roo {{mode}} moduna geçti", + "didSwitchWithReason": "Roo {{mode}} moduna geçti çünkü: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo {{mode}} modunda yeni bir alt görev oluşturmak istiyor:", + "wantsToFinish": "Roo bu alt görevi bitirmek istiyor" + }, + "questions": { + "hasQuestion": "Roo'nun bir sorusu var:" + }, + "taskCompleted": "Görev Tamamlandı", + "shellIntegration": { + "unavailable": "Kabuk Entegrasyonu Kullanılamıyor", + "troubleshooting": "Hala sorun mu yaşıyorsunuz?" + }, + "powershell": { + "issues": "Windows PowerShell ile ilgili sorunlar yaşıyor gibi görünüyorsunuz, lütfen şu konuya bakın" + }, "autoApprove": { - "title": "Otomatik onaylama:", - "none": "Yok", - "description": "Otomatik onaylama, Roo Code'un izin istemeden işlemler gerçekleştirmesine olanak tanır. Sadece tamamen güvendiğiniz işlemler için etkinleştirin.", + "title": "Otomatik-onay:", + "none": "Hiçbiri", + "description": "Otomatik onay, Roo Code'un izin istemeden işlemler gerçekleştirmesine olanak tanır. Yalnızca tamamen güvendiğiniz eylemler için etkinleştirin.", "actions": { "readFiles": { - "label": "Dosya ve dizinleri oku", + "label": "Dosyaları ve dizinleri oku", "shortName": "Okuma", - "description": "Bilgisayarınızdaki herhangi bir dosyayı okuma erişimi sağlar." + "description": "Bilgisayarınızdaki herhangi bir dosyayı okuma erişimine izin verir." }, "editFiles": { "label": "Dosyaları düzenle", @@ -81,22 +167,22 @@ "executeCommands": { "label": "Onaylanmış komutları çalıştır", "shortName": "Komutlar", - "description": "Onaylanmış terminal komutlarının çalıştırılmasına izin verir. Bunu ayarlar panelinden yapılandırabilirsiniz." + "description": "Onaylanmış terminal komutlarının çalıştırılmasına izin verir. Bunu ayarlar panelinde yapılandırabilirsiniz." }, "useBrowser": { "label": "Tarayıcıyı kullan", "shortName": "Tarayıcı", - "description": "Başsız bir tarayıcıda herhangi bir web sitesini başlatma ve etkileşimde bulunma yeteneği sağlar." + "description": "Grafiksel arayüz olmayan bir tarayıcıda herhangi bir web sitesini başlatma ve etkileşim kurma yeteneğine izin verir." }, "useMcp": { "label": "MCP sunucularını kullan", "shortName": "MCP", - "description": "Dosya sistemini değiştirebilen veya API'lerle etkileşimde bulunabilen yapılandırılmış MCP sunucularının kullanımına izin verir." + "description": "Dosya sistemini değiştirebilen veya API'lerle etkileşime girebilen yapılandırılmış MCP sunucularının kullanımına izin verir." }, "switchModes": { "label": "Modları değiştir", "shortName": "Modlar", - "description": "Onay gerektirmeden farklı modlar arasında otomatik geçiş yapılmasına izin verir." + "description": "Onay gerektirmeden farklı modlar arasında otomatik geçişe izin verir." }, "subtasks": { "label": "Alt görevler oluştur ve tamamla", @@ -109,5 +195,9 @@ "description": "Sağlayıcı bir hata yanıtı döndürdüğünde başarısız API isteklerini otomatik olarak yeniden dener." } } + }, + "reasoning": { + "thinking": "Düşünüyor", + "seconds": "{{count}}sn" } } diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index df14b39c4e3..12c00678b55 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -1,8 +1,25 @@ { "greeting": "Roo có thể giúp gì cho bạn?", + "task": { + "title": "Nhiệm vụ", + "seeMore": "Xem thêm", + "seeLess": "Thu gọn", + "tokens": "Tokens:", + "cache": "Bộ nhớ đệm:", + "apiCost": "Chi phí API:", + "contextWindow": "Cửa sổ ngữ cảnh:", + "closeAndStart": "Đóng nhiệm vụ và bắt đầu nhiệm vụ mới", + "export": "Xuất lịch sử nhiệm vụ", + "delete": "Xóa nhiệm vụ (Shift + Click để bỏ qua xác nhận)" + }, + "tokenProgress": { + "availableSpace": "Không gian khả dụng: {{amount}} tokens", + "tokensUsed": "Tokens đã sử dụng: {{used}} trong {{total}}", + "reservedForResponse": "Dành riêng cho phản hồi mô hình: {{amount}} tokens" + }, "retry": { "title": "Thử lại", - "tooltip": "Thử lại hoạt động này" + "tooltip": "Thử lại thao tác" }, "startNewTask": { "title": "Bắt đầu nhiệm vụ mới", @@ -10,11 +27,11 @@ }, "proceedAnyways": { "title": "Vẫn tiếp tục", - "tooltip": "Tiếp tục trong khi lệnh đang thực thi" + "tooltip": "Tiếp tục trong khi lệnh đang chạy" }, "save": { "title": "Lưu", - "tooltip": "Lưu thay đổi tệp" + "tooltip": "Lưu các thay đổi tệp" }, "reject": { "title": "Từ chối", @@ -30,8 +47,8 @@ "tooltip": "Thực thi lệnh này" }, "proceedWhileRunning": { - "title": "Tiếp tục trong khi đang chạy", - "tooltip": "Tiếp tục bất chấp các cảnh báo" + "title": "Tiếp tục trong khi chạy", + "tooltip": "Tiếp tục bất chấp cảnh báo" }, "resumeTask": { "title": "Tiếp tục nhiệm vụ", @@ -43,14 +60,13 @@ }, "cancel": { "title": "Hủy", - "tooltip": "Hủy hoạt động hiện tại" + "tooltip": "Hủy thao tác hiện tại" }, - "scrollToBottom": "Cuộn xuống cuối đoạn chat", - "aboutMe": "Nhờ vào những đột phá mới nhất trong khả năng lập trình dạng đại lý, tôi có thể xử lý các nhiệm vụ phát triển phần mềm phức tạp từng bước một. Với các công cụ cho phép tôi tạo & chỉnh sửa tệp, khám phá các dự án phức tạp, sử dụng trình duyệt và thực thi lệnh terminal (sau khi bạn cấp quyền), tôi có thể hỗ trợ bạn theo cách vượt xa việc hoàn thiện mã hoặc hỗ trợ kỹ thuật. Tôi thậm chí có thể sử dụng MCP để tạo công cụ mới và mở rộng khả năng của mình.", + "scrollToBottom": "Cuộn xuống cuối cuộc trò chuyện", + "aboutMe": "Nhờ những đột phá mới nhất trong khả năng lập trình tác nhân, tôi có thể xử lý các nhiệm vụ phát triển phần mềm phức tạp từng bước một. Với các công cụ cho phép tôi tạo và chỉnh sửa tệp, khám phá các dự án phức tạp, sử dụng trình duyệt và thực thi lệnh terminal (sau khi bạn cấp quyền), tôi có thể hỗ trợ bạn theo cách vượt xa việc hoàn thành mã hoặc hỗ trợ kỹ thuật. Tôi thậm chí có thể sử dụng MCP để tạo các công cụ mới và mở rộng khả năng của mình.", "selectMode": "Chọn chế độ tương tác", "selectApiConfig": "Chọn cấu hình API", - "enhancePrompt": "Nâng cao lời nhắc với ngữ cảnh bổ sung", - "enhancePromptDescription": "Nút 'Nâng cao lời nhắc' giúp cải thiện lời nhắc của bạn bằng cách cung cấp ngữ cảnh bổ sung, làm rõ hoặc diễn đạt lại. Hãy thử nhập lời nhắc vào đây và nhấp vào nút một lần nữa để xem cách nó hoạt động.", + "enhancePrompt": "Nâng cao yêu cầu với ngữ cảnh bổ sung", "addImages": "Thêm hình ảnh vào tin nhắn", "sendMessage": "Gửi tin nhắn", "typeMessage": "Nhập tin nhắn...", @@ -58,15 +74,85 @@ "addContext": "@ để thêm ngữ cảnh, / để chuyển chế độ", "dragFiles": "giữ shift để kéo tệp", "dragFilesImages": "giữ shift để kéo tệp/hình ảnh", - "errorReadingFile": "Lỗi đọc tệp:", + "enhancePromptDescription": "Nút 'Nâng cao yêu cầu' giúp cải thiện yêu cầu của bạn bằng cách cung cấp ngữ cảnh bổ sung, làm rõ hoặc diễn đạt lại. Hãy thử nhập yêu cầu tại đây và nhấp vào nút một lần nữa để xem cách thức hoạt động.", + "errorReadingFile": "Lỗi khi đọc tệp:", "noValidImages": "Không có hình ảnh hợp lệ nào được xử lý", "separator": "Dấu phân cách", "edit": "Chỉnh sửa...", "forNextMode": "cho chế độ tiếp theo", + "error": "Lỗi", + "troubleMessage": "Roo đang gặp sự cố...", + "apiRequest": { + "title": "Yêu cầu API", + "failed": "Yêu cầu API thất bại", + "streaming": "Yêu cầu API...", + "cancelled": "Yêu cầu API đã hủy", + "streamingFailed": "Streaming API thất bại" + }, + "checkpoint": { + "initial": "Điểm kiểm tra ban đầu", + "regular": "Điểm kiểm tra", + "menu": { + "viewDiff": "Xem khác biệt", + "restore": "Khôi phục điểm kiểm tra", + "restoreFiles": "Khôi phục tệp", + "restoreFilesDescription": "Khôi phục các tệp dự án của bạn về bản chụp được thực hiện tại thời điểm này.", + "restoreFilesAndTask": "Khôi phục tệp & nhiệm vụ", + "confirm": "Xác nhận", + "cancel": "Hủy", + "cannotUndo": "Hành động này không thể hoàn tác.", + "restoreFilesAndTaskDescription": "Khôi phục các tệp dự án của bạn về bản chụp được thực hiện tại thời điểm này và xóa tất cả tin nhắn sau điểm này." + }, + "current": "Hiện tại" + }, + "fileOperations": { + "wantsToRead": "Roo muốn đọc tệp này:", + "didRead": "Roo đã đọc tệp này:", + "wantsToEdit": "Roo muốn chỉnh sửa tệp này:", + "wantsToCreate": "Roo muốn tạo một tệp mới:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo muốn xem các tệp cấp cao nhất trong thư mục này:", + "didViewTopLevel": "Roo đã xem các tệp cấp cao nhất trong thư mục này:", + "wantsToViewRecursive": "Roo muốn xem đệ quy tất cả các tệp trong thư mục này:", + "didViewRecursive": "Roo đã xem đệ quy tất cả các tệp trong thư mục này:", + "wantsToViewDefinitions": "Roo muốn xem tên định nghĩa mã nguồn được sử dụng trong thư mục này:", + "didViewDefinitions": "Roo đã xem tên định nghĩa mã nguồn được sử dụng trong thư mục này:", + "wantsToSearch": "Roo muốn tìm kiếm trong thư mục này cho {{regex}}:", + "didSearch": "Roo đã tìm kiếm trong thư mục này cho {{regex}}:" + }, + "commandOutput": "Kết quả lệnh", + "response": "Phản hồi", + "arguments": "Tham số", + "mcp": { + "wantsToUseTool": "Roo muốn sử dụng một công cụ trên máy chủ MCP {{serverName}}:", + "wantsToAccessResource": "Roo muốn truy cập một tài nguyên trên máy chủ MCP {{serverName}}:" + }, + "modes": { + "wantsToSwitch": "Roo muốn chuyển sang chế độ {{mode}}", + "wantsToSwitchWithReason": "Roo muốn chuyển sang chế độ {{mode}} vì: {{reason}}", + "didSwitch": "Roo đã chuyển sang chế độ {{mode}}", + "didSwitchWithReason": "Roo đã chuyển sang chế độ {{mode}} vì: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo muốn tạo một nhiệm vụ phụ mới trong chế độ {{mode}}:", + "wantsToFinish": "Roo muốn hoàn thành nhiệm vụ phụ này" + }, + "questions": { + "hasQuestion": "Roo có một câu hỏi:" + }, + "taskCompleted": "Nhiệm vụ hoàn thành", + "shellIntegration": { + "unavailable": "Tích hợp shell không khả dụng", + "troubleshooting": "Vẫn gặp vấn đề?" + }, + "powershell": { + "issues": "Có vẻ như bạn đang gặp vấn đề với Windows PowerShell, vui lòng xem" + }, "autoApprove": { "title": "Tự động phê duyệt:", "none": "Không", - "description": "Tự động phê duyệt cho phép Roo Code thực hiện các hành động mà không cần xin phép. Chỉ bật cho các hành động bạn hoàn toàn tin tưởng.", + "description": "Tự động phê duyệt cho phép Roo Code thực hiện hành động mà không cần xin phép. Chỉ bật cho các hành động bạn hoàn toàn tin tưởng.", "actions": { "readFiles": { "label": "Đọc tệp và thư mục", @@ -76,12 +162,12 @@ "editFiles": { "label": "Chỉnh sửa tệp", "shortName": "Chỉnh sửa", - "description": "Cho phép sửa đổi bất kỳ tệp nào trên máy tính của bạn." + "description": "Cho phép chỉnh sửa bất kỳ tệp nào trên máy tính của bạn." }, "executeCommands": { - "label": "Thực thi lệnh đã được phê duyệt", + "label": "Thực thi lệnh đã phê duyệt", "shortName": "Lệnh", - "description": "Cho phép thực thi các lệnh terminal đã được phê duyệt. Bạn có thể cấu hình điều này trong bảng cài đặt." + "description": "Cho phép thực thi lệnh terminal đã được phê duyệt. Bạn có thể cấu hình điều này trong bảng cài đặt." }, "useBrowser": { "label": "Sử dụng trình duyệt", @@ -91,7 +177,7 @@ "useMcp": { "label": "Sử dụng máy chủ MCP", "shortName": "MCP", - "description": "Cho phép sử dụng các máy chủ MCP đã cấu hình, có thể sửa đổi hệ thống tệp hoặc tương tác với các API." + "description": "Cho phép sử dụng máy chủ MCP đã cấu hình có thể sửa đổi hệ thống tệp hoặc tương tác với API." }, "switchModes": { "label": "Chuyển đổi chế độ", @@ -104,10 +190,14 @@ "description": "Cho phép tạo và hoàn thành các nhiệm vụ phụ mà không cần phê duyệt." }, "retryRequests": { - "label": "Thử lại các yêu cầu thất bại", + "label": "Thử lại yêu cầu thất bại", "shortName": "Thử lại", "description": "Tự động thử lại các yêu cầu API thất bại khi nhà cung cấp trả về phản hồi lỗi." } } + }, + "reasoning": { + "thinking": "Đang suy nghĩ", + "seconds": "{{count}} giây" } } diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 8c422c1c966..835cb24c0e7 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -1,16 +1,33 @@ { "greeting": "Roo能为您做什么?", + "task": { + "title": "任务", + "seeMore": "查看更多", + "seeLess": "查看更少", + "tokens": "Tokens:", + "cache": "缓存:", + "apiCost": "API成本:", + "contextWindow": "上下文窗口:", + "closeAndStart": "关闭任务并开始新任务", + "export": "导出任务历史", + "delete": "删除任务(Shift + 点击跳过确认)" + }, + "tokenProgress": { + "availableSpace": "可用空间: {{amount}} tokens", + "tokensUsed": "已使用tokens: {{used}} / {{total}}", + "reservedForResponse": "为模型响应保留: {{amount}} tokens" + }, "retry": { "title": "重试", - "tooltip": "重试此操作" + "tooltip": "再次尝试操作" }, "startNewTask": { "title": "开始新任务", - "tooltip": "开始新任务" + "tooltip": "开始一个新任务" }, "proceedAnyways": { - "title": "继续执行", - "tooltip": "继续执行(尽管有警告)" + "title": "仍继续", + "tooltip": "在命令执行时继续" }, "save": { "title": "保存", @@ -30,8 +47,8 @@ "tooltip": "执行此命令" }, "proceedWhileRunning": { - "title": "继续执行", - "tooltip": "在命令执行时继续" + "title": "运行时继续", + "tooltip": "尽管有警告仍继续" }, "resumeTask": { "title": "恢复任务", @@ -45,69 +62,142 @@ "title": "取消", "tooltip": "取消当前操作" }, - "scrollToBottom": "滚动到底部", - "aboutMe": "得益于最新的智能编码技术突破,我可以一步一步处理复杂的软件开发任务。通过允许我创建和编辑文件、探索复杂项目、使用浏览器以及执行终端命令(在您授权后),我能够以超越代码补全或技术支持的方式协助您。我甚至可以使用MCP创建新工具并扩展自身能力。", - "selectMode": "选择模式", - "selectApiConfig": "选择大模型配置", - "enhancePrompt": "增强提示内容", - "addImages": "添加图片", + "scrollToBottom": "滚动到聊天底部", + "aboutMe": "由于代理编码能力的最新突破,我可以逐步处理复杂的软件开发任务。通过允许我创建和编辑文件、探索复杂项目、使用浏览器和执行终端命令(在您授权后)的工具,我可以以超越代码补全或技术支持的方式帮助您。我甚至可以使用MCP创建新工具并扩展自己的能力。", + "selectMode": "选择交互模式", + "selectApiConfig": "选择API配置", + "enhancePrompt": "使用附加上下文增强提示", + "addImages": "添加图片到消息", "sendMessage": "发送消息", "typeMessage": "输入消息...", - "typeTask": "输入您的任务...", - "addContext": "@ 添加上下文, / 切换模式", - "dragFiles": "按住 shift 拖入文件", - "dragFilesImages": "按住 shift 拖入文件/图片", - "enhancePromptDescription": "\"增强提示\"按钮通过提供额外的上下文、解释或重新表述来帮助改进你的提示。在此处输入提示,然后再次点击按钮查看其工作方式。", - "errorReadingFile": "读取文件时出错:", + "typeTask": "在此处输入您的任务...", + "addContext": "@添加上下文,/切换模式", + "dragFiles": "按住shift拖动文件", + "dragFilesImages": "按住shift拖动文件/图片", + "enhancePromptDescription": "'增强提示'按钮通过提供额外上下文、澄清或重新表述来帮助改进您的请求。尝试在此处输入请求,然后再次点击按钮查看其工作原理。", + "errorReadingFile": "读取文件时出错:", "noValidImages": "没有处理有效图片", - "separator": "分隔线", + "separator": "分隔符", "edit": "编辑...", - "forNextMode": "切换至下一模式", + "forNextMode": "用于下一个模式", + "error": "错误", + "troubleMessage": "Roo遇到问题...", + "apiRequest": { + "title": "API请求", + "failed": "API请求失败", + "streaming": "API请求...", + "cancelled": "API请求已取消", + "streamingFailed": "API流式传输失败" + }, + "checkpoint": { + "initial": "初始检查点", + "regular": "检查点", + "menu": { + "viewDiff": "查看差异", + "restore": "恢复检查点", + "restoreFiles": "恢复文件", + "restoreFilesDescription": "将您的项目文件恢复到此时点拍摄的快照。", + "restoreFilesAndTask": "恢复文件和任务", + "confirm": "确认", + "cancel": "取消", + "cannotUndo": "此操作无法撤消。", + "restoreFilesAndTaskDescription": "将您的项目文件恢复到此时点拍摄的快照,并删除此点之后的所有消息。" + }, + "current": "当前" + }, + "fileOperations": { + "wantsToRead": "Roo想读取此文件:", + "didRead": "Roo已读取此文件:", + "wantsToEdit": "Roo想编辑此文件:", + "wantsToCreate": "Roo想创建新文件:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo想查看此目录中的顶层文件:", + "didViewTopLevel": "Roo已查看此目录中的顶层文件:", + "wantsToViewRecursive": "Roo想递归查看此目录中的所有文件:", + "didViewRecursive": "Roo已递归查看此目录中的所有文件:", + "wantsToViewDefinitions": "Roo想查看此目录中使用的源代码定义名称:", + "didViewDefinitions": "Roo已查看此目录中使用的源代码定义名称:", + "wantsToSearch": "Roo想在此目录中搜索 {{regex}}:", + "didSearch": "Roo已在此目录中搜索 {{regex}}:" + }, + "commandOutput": "命令输出", + "response": "响应", + "arguments": "参数", + "mcp": { + "wantsToUseTool": "Roo想在{{serverName}} MCP服务器上使用工具:", + "wantsToAccessResource": "Roo想访问{{serverName}} MCP服务器上的资源:" + }, + "modes": { + "wantsToSwitch": "Roo想切换到{{mode}}模式", + "wantsToSwitchWithReason": "Roo想切换到{{mode}}模式,原因: {{reason}}", + "didSwitch": "Roo已切换到{{mode}}模式", + "didSwitchWithReason": "Roo已切换到{{mode}}模式,原因: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo想在{{mode}}模式下创建新子任务:", + "wantsToFinish": "Roo想完成此子任务" + }, + "questions": { + "hasQuestion": "Roo有一个问题:" + }, + "taskCompleted": "任务完成", + "shellIntegration": { + "unavailable": "Shell集成不可用", + "troubleshooting": "仍有问题吗?" + }, + "powershell": { + "issues": "看起来您遇到了Windows PowerShell问题,请参阅此" + }, "autoApprove": { - "title": "自动批准:", + "title": "自动批准:", "none": "无", - "description": "自动批准允许 Roo Code 无需请求权限即可执行操作。仅对您完全信任的操作启用此功能。", + "description": "自动批准允许Roo Code无需请求许可即可执行操作。仅为您完全信任的操作启用。", "actions": { "readFiles": { "label": "读取文件和目录", "shortName": "读取", - "description": "允许访问并读取您计算机上的任何文件。" + "description": "允许访问读取计算机上的任何文件。" }, "editFiles": { "label": "编辑文件", "shortName": "编辑", - "description": "允许修改您计算机上的任何文件。" + "description": "允许修改计算机上的任何文件。" }, "executeCommands": { "label": "执行已批准的命令", "shortName": "命令", - "description": "允许执行已批准的终端命令。您可以在设置面板中配置此功能。" + "description": "允许执行已批准的终端命令。您可以在设置面板中配置此项。" }, "useBrowser": { "label": "使用浏览器", "shortName": "浏览器", - "description": "允许在无头浏览器中启动并与任何网站交互。" + "description": "允许在无头浏览器中启动并与任何网站交互的能力。" }, "useMcp": { - "label": "使用 MCP 服务器", + "label": "使用MCP服务器", "shortName": "MCP", - "description": "允许使用配置的 MCP 服务器,这些服务器可能会修改文件系统或与 API 交互。" + "description": "允许使用可能修改文件系统或与API交互的已配置MCP服务器。" }, "switchModes": { "label": "切换模式", "shortName": "模式", - "description": "允许在不同模式之间自动切换,无需批准。" + "description": "允许在不需要批准的情况下自动切换不同模式。" }, "subtasks": { "label": "创建和完成子任务", "shortName": "子任务", - "description": "允许创建和完成子任务,无需批准。" + "description": "允许在不需要批准的情况下创建和完成子任务。" }, "retryRequests": { "label": "重试失败的请求", "shortName": "重试", - "description": "当提供者返回错误响应时,自动重试失败的 API 请求。" + "description": "当提供者返回错误响应时自动重试失败的API请求。" } } + }, + "reasoning": { + "thinking": "思考中", + "seconds": "{{count}}秒" } } diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index 71756db4045..cf5d00b82b0 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -1,5 +1,22 @@ { - "greeting": "Roo 能為您做什麼?", + "greeting": "Roo能為您做什麼?", + "task": { + "title": "任務", + "seeMore": "查看更多", + "seeLess": "查看更少", + "tokens": "Tokens:", + "cache": "快取:", + "apiCost": "API成本:", + "contextWindow": "上下文視窗:", + "closeAndStart": "關閉任務並開始新任務", + "export": "匯出任務歷史", + "delete": "刪除任務(Shift + 點擊跳過確認)" + }, + "tokenProgress": { + "availableSpace": "可用空間: {{amount}} tokens", + "tokensUsed": "已使用tokens: {{used}} / {{total}}", + "reservedForResponse": "為模型回應保留: {{amount}} tokens" + }, "retry": { "title": "重試", "tooltip": "再次嘗試操作" @@ -9,8 +26,8 @@ "tooltip": "開始一個新任務" }, "proceedAnyways": { - "title": "繼續執行", - "tooltip": "在命令執行期間繼續" + "title": "仍繼續", + "tooltip": "在命令執行時繼續" }, "save": { "title": "儲存", @@ -30,84 +47,157 @@ "tooltip": "執行此命令" }, "proceedWhileRunning": { - "title": "執行期間繼續", - "tooltip": "無視警告繼續" + "title": "執行時繼續", + "tooltip": "儘管有警告仍繼續" }, "resumeTask": { "title": "恢復任務", - "tooltip": "恢復當前任務" + "tooltip": "繼續當前任務" }, "terminate": { "title": "終止", - "tooltip": "終止當前任務" + "tooltip": "結束當前任務" }, "cancel": { "title": "取消", "tooltip": "取消當前操作" }, - "scrollToBottom": "滾動到聊天底部", - "aboutMe": "得益於代理編碼能力的最新突破,我可以逐步處理複雜的軟體開發任務。通過允許我創建和編輯文件、探索複雜項目、使用瀏覽器和執行終端命令(在您批准後)的工具,我可以以超越代碼完成或技術支持的方式幫助您。我甚至可以使用 MCP 創建新工具並擴展自己的能力。", + "scrollToBottom": "捲動到聊天底部", + "aboutMe": "由於代理編碼能力的最新突破,我可以逐步處理複雜的軟體開發任務。透過允許我創建和編輯檔案、探索複雜專案、使用瀏覽器和執行終端命令(在您授權後)的工具,我可以以超越程式碼補全或技術支援的方式幫助您。我甚至可以使用MCP創建新工具並擴展自己的能力。", "selectMode": "選擇互動模式", - "selectApiConfig": "選擇 API 配置", - "enhancePrompt": "使用額外上下文增強提示", - "addImages": "添加圖片到消息", - "sendMessage": "發送消息", - "typeMessage": "輸入消息...", - "typeTask": "在此輸入您的任務...", - "addContext": "@ 添加上下文, / 切換模式", - "dragFiles": "按住 shift 拖動文件", - "dragFilesImages": "按住 shift 拖動文件/圖片", - "enhancePromptDescription": "「增強提示」按鈕通過提供額外的上下文、解釋或重新表述來幫助改進你的提示。在此處輸入提示,然後再次點擊按鈕查看其工作方式。", - "errorReadingFile": "讀取檔案時出錯:", + "selectApiConfig": "選擇API配置", + "enhancePrompt": "使用附加上下文增強提示", + "addImages": "添加圖片到訊息", + "sendMessage": "發送訊息", + "typeMessage": "輸入訊息...", + "typeTask": "在此處輸入您的任務...", + "addContext": "@添加上下文,/切換模式", + "dragFiles": "按住shift拖動檔案", + "dragFilesImages": "按住shift拖動檔案/圖片", + "enhancePromptDescription": "'增強提示'按鈕透過提供額外上下文、澄清或重新表述來幫助改進您的請求。嘗試在此處輸入請求,然後再次點擊按鈕查看其工作原理。", + "errorReadingFile": "讀取檔案時出錯:", "noValidImages": "沒有處理有效圖片", - "separator": "分隔線", + "separator": "分隔符", "edit": "編輯...", - "forNextMode": "切換至下一模式", + "forNextMode": "用於下一個模式", + "error": "錯誤", + "troubleMessage": "Roo遇到問題...", + "apiRequest": { + "title": "API請求", + "failed": "API請求失敗", + "streaming": "API請求...", + "cancelled": "API請求已取消", + "streamingFailed": "API串流傳輸失敗" + }, + "checkpoint": { + "initial": "初始檢查點", + "regular": "檢查點", + "menu": { + "viewDiff": "查看差異", + "restore": "還原檢查點", + "restoreFiles": "還原檔案", + "restoreFilesDescription": "將您的專案檔案還原到此時點拍攝的快照。", + "restoreFilesAndTask": "還原檔案和任務", + "confirm": "確認", + "cancel": "取消", + "cannotUndo": "此操作無法撤銷。", + "restoreFilesAndTaskDescription": "將您的專案檔案還原到此時點拍攝的快照,並刪除此點之後的所有訊息。" + }, + "current": "當前" + }, + "fileOperations": { + "wantsToRead": "Roo想讀取此檔案:", + "didRead": "Roo已讀取此檔案:", + "wantsToEdit": "Roo想編輯此檔案:", + "wantsToCreate": "Roo想創建新檔案:" + }, + "directoryOperations": { + "wantsToViewTopLevel": "Roo想查看此目錄中的頂層檔案:", + "didViewTopLevel": "Roo已查看此目錄中的頂層檔案:", + "wantsToViewRecursive": "Roo想遞迴查看此目錄中的所有檔案:", + "didViewRecursive": "Roo已遞迴查看此目錄中的所有檔案:", + "wantsToViewDefinitions": "Roo想查看此目錄中使用的原始碼定義名稱:", + "didViewDefinitions": "Roo已查看此目錄中使用的原始碼定義名稱:", + "wantsToSearch": "Roo想在此目錄中搜尋 {{regex}}:", + "didSearch": "Roo已在此目錄中搜尋 {{regex}}:" + }, + "commandOutput": "命令輸出", + "response": "回應", + "arguments": "參數", + "mcp": { + "wantsToUseTool": "Roo想在{{serverName}} MCP伺服器上使用工具:", + "wantsToAccessResource": "Roo想存取{{serverName}} MCP伺服器上的資源:" + }, + "modes": { + "wantsToSwitch": "Roo想切換到{{mode}}模式", + "wantsToSwitchWithReason": "Roo想切換到{{mode}}模式,原因: {{reason}}", + "didSwitch": "Roo已切換到{{mode}}模式", + "didSwitchWithReason": "Roo已切換到{{mode}}模式,原因: {{reason}}" + }, + "subtasks": { + "wantsToCreate": "Roo想在{{mode}}模式下創建新子任務:", + "wantsToFinish": "Roo想完成此子任務" + }, + "questions": { + "hasQuestion": "Roo有一個問題:" + }, + "taskCompleted": "任務完成", + "shellIntegration": { + "unavailable": "Shell整合不可用", + "troubleshooting": "仍有問題嗎?" + }, + "powershell": { + "issues": "看起來您遇到了Windows PowerShell問題,請參閱此" + }, "autoApprove": { - "title": "自動批准:", + "title": "自動批准:", "none": "無", - "description": "自動批准允許 Roo Code 無需請求權限即可執行操作。僅對您完全信任的操作啟用此功能。", + "description": "自動批准允許Roo Code無需請求許可即可執行操作。僅為您完全信任的操作啟用。", "actions": { "readFiles": { "label": "讀取檔案和目錄", "shortName": "讀取", - "description": "允許存取並讀取您電腦上的任何檔案。" + "description": "允許存取讀取電腦上的任何檔案。" }, "editFiles": { "label": "編輯檔案", "shortName": "編輯", - "description": "允許修改您電腦上的任何檔案。" + "description": "允許修改電腦上的任何檔案。" }, "executeCommands": { "label": "執行已批准的命令", "shortName": "命令", - "description": "允許執行已批准的終端命令。您可以在設定面板中設定此功能。" + "description": "允許執行已批准的終端命令。您可以在設置面板中配置此項。" }, "useBrowser": { "label": "使用瀏覽器", "shortName": "瀏覽器", - "description": "允許在無頭瀏覽器中啟動並與任何網站互動。" + "description": "允許在無頭瀏覽器中啟動並與任何網站互動的能力。" }, "useMcp": { - "label": "使用 MCP 伺服器", + "label": "使用MCP伺服器", "shortName": "MCP", - "description": "允許使用已設定的 MCP 伺服器,這些伺服器可能會修改檔案系統或與 API 互動。" + "description": "允許使用可能修改檔案系統或與API互動的已配置MCP伺服器。" }, "switchModes": { "label": "切換模式", "shortName": "模式", - "description": "允許在不同模式之間自動切換,無需批准。" + "description": "允許在不需要批准的情況下自動切換不同模式。" }, "subtasks": { - "label": "建立和完成子任務", + "label": "創建和完成子任務", "shortName": "子任務", - "description": "允許建立和完成子任務,無需批准。" + "description": "允許在不需要批准的情況下創建和完成子任務。" }, "retryRequests": { "label": "重試失敗的請求", "shortName": "重試", - "description": "當提供者返回錯誤回應時,自動重試失敗的 API 請求。" + "description": "當提供者返回錯誤回應時自動重試失敗的API請求。" } } + }, + "reasoning": { + "thinking": "思考中", + "seconds": "{{count}}秒" } }