diff --git a/webview-ui/src/components/chat/AutoApproveMenu.tsx b/webview-ui/src/components/chat/AutoApproveMenu.tsx index d5b6dbe4a0a..038f234cb88 100644 --- a/webview-ui/src/components/chat/AutoApproveMenu.tsx +++ b/webview-ui/src/components/chat/AutoApproveMenu.tsx @@ -1,10 +1,24 @@ -import { VSCodeCheckbox, VSCodeButton } from "@vscode/webview-ui-toolkit/react" -import { useCallback, useState } from "react" -import { useExtensionState } from "../../context/ExtensionStateContext" -import { useAppTranslation } from "../../i18n/TranslationContext" +import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react" +import { useCallback, useMemo, useState } from "react" import { Trans } from "react-i18next" import { VSCodeLink } from "@vscode/webview-ui-toolkit/react" + +import { Button } from "@/components/ui" + import { vscode } from "../../utils/vscode" +import { useExtensionState } from "../../context/ExtensionStateContext" +import { useAppTranslation } from "../../i18n/TranslationContext" + +const ICON_MAP: Record = { + readFiles: "eye", + editFiles: "edit", + executeCommands: "terminal", + useBrowser: "globe", + useMcp: "plug", + switchModes: "sync", + subtasks: "discard", + retryRequests: "refresh", +} interface AutoApproveAction { id: string @@ -42,56 +56,69 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { const { t } = useAppTranslation() - const actions: AutoApproveAction[] = [ - { - id: "readFiles", - label: t("chat:autoApprove.actions.readFiles.label"), - enabled: alwaysAllowReadOnly ?? false, - description: t("chat:autoApprove.actions.readFiles.description"), - }, - { - id: "editFiles", - label: t("chat:autoApprove.actions.editFiles.label"), - enabled: alwaysAllowWrite ?? false, - description: t("chat:autoApprove.actions.editFiles.description"), - }, - { - id: "executeCommands", - label: t("chat:autoApprove.actions.executeCommands.label"), - enabled: alwaysAllowExecute ?? false, - description: t("chat:autoApprove.actions.executeCommands.description"), - }, - { - id: "useBrowser", - label: t("chat:autoApprove.actions.useBrowser.label"), - enabled: alwaysAllowBrowser ?? false, - description: t("chat:autoApprove.actions.useBrowser.description"), - }, - { - id: "useMcp", - label: t("chat:autoApprove.actions.useMcp.label"), - enabled: alwaysAllowMcp ?? false, - description: t("chat:autoApprove.actions.useMcp.description"), - }, - { - id: "switchModes", - label: t("chat:autoApprove.actions.switchModes.label"), - enabled: alwaysAllowModeSwitch ?? false, - description: t("chat:autoApprove.actions.switchModes.description"), - }, - { - id: "subtasks", - label: t("chat:autoApprove.actions.subtasks.label"), - enabled: alwaysAllowSubtasks ?? false, - description: t("chat:autoApprove.actions.subtasks.description"), - }, - { - id: "retryRequests", - label: t("chat:autoApprove.actions.retryRequests.label"), - enabled: alwaysApproveResubmit ?? false, - description: t("chat:autoApprove.actions.retryRequests.description"), - }, - ] + const actions: AutoApproveAction[] = useMemo( + () => [ + { + id: "readFiles", + label: t("chat:autoApprove.actions.readFiles.label"), + enabled: alwaysAllowReadOnly ?? false, + description: t("chat:autoApprove.actions.readFiles.description"), + }, + { + id: "editFiles", + label: t("chat:autoApprove.actions.editFiles.label"), + enabled: alwaysAllowWrite ?? false, + description: t("chat:autoApprove.actions.editFiles.description"), + }, + { + id: "executeCommands", + label: t("chat:autoApprove.actions.executeCommands.label"), + enabled: alwaysAllowExecute ?? false, + description: t("chat:autoApprove.actions.executeCommands.description"), + }, + { + id: "useBrowser", + label: t("chat:autoApprove.actions.useBrowser.label"), + enabled: alwaysAllowBrowser ?? false, + description: t("chat:autoApprove.actions.useBrowser.description"), + }, + { + id: "useMcp", + label: t("chat:autoApprove.actions.useMcp.label"), + enabled: alwaysAllowMcp ?? false, + description: t("chat:autoApprove.actions.useMcp.description"), + }, + { + id: "switchModes", + label: t("chat:autoApprove.actions.switchModes.label"), + enabled: alwaysAllowModeSwitch ?? false, + description: t("chat:autoApprove.actions.switchModes.description"), + }, + { + id: "subtasks", + label: t("chat:autoApprove.actions.subtasks.label"), + enabled: alwaysAllowSubtasks ?? false, + description: t("chat:autoApprove.actions.subtasks.description"), + }, + { + id: "retryRequests", + label: t("chat:autoApprove.actions.retryRequests.label"), + enabled: alwaysApproveResubmit ?? false, + description: t("chat:autoApprove.actions.retryRequests.description"), + }, + ], + [ + alwaysAllowReadOnly, + alwaysAllowWrite, + alwaysAllowExecute, + alwaysAllowBrowser, + alwaysAllowMcp, + alwaysAllowModeSwitch, + alwaysAllowSubtasks, + alwaysApproveResubmit, + t, + ], + ) const toggleExpanded = useCallback(() => { setIsExpanded((prev) => !prev) @@ -102,7 +129,7 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { .map((action) => action.label) .join(", ") - // Individual checkbox handlers - each one only updates its own state + // Individual checkbox handlers - each one only updates its own state. const handleReadOnlyChange = useCallback(() => { const newValue = !(alwaysAllowReadOnly ?? false) setAlwaysAllowReadOnly(newValue) @@ -159,7 +186,7 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { }) }, []) - // Map action IDs to their specific handlers + // Map action IDs to their specific handlers. const actionHandlers: Record void> = { readFiles: handleReadOnlyChange, editFiles: handleWriteChange, @@ -237,10 +264,9 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { {isExpanded && ( -
+
@@ -251,43 +277,24 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { }} />
-
+
{actions.map((action) => { - const iconMap: Record = { - readFiles: "eye", - editFiles: "edit", - executeCommands: "terminal", - useBrowser: "globe", - useMcp: "plug", - switchModes: "sync", - subtasks: "discard", - retryRequests: "refresh", - } - const codicon = iconMap[action.id] || "question" + const codicon = ICON_MAP[action.id] || "question" return ( - { e.stopPropagation() actionHandlers[action.id]() }} title={action.description} - className="aspect-square min-h-[80px] min-w-[80px] max-h-[100px] max-w-[100px]" - style={{ flexBasis: "20%" }}> - - + className="h-12"> + + {action.label} - + ) })}
diff --git a/webview-ui/src/components/settings/AutoApproveSettings.tsx b/webview-ui/src/components/settings/AutoApproveSettings.tsx index 38d9554aa8c..6beb8545264 100644 --- a/webview-ui/src/components/settings/AutoApproveSettings.tsx +++ b/webview-ui/src/components/settings/AutoApproveSettings.tsx @@ -3,12 +3,71 @@ import { useAppTranslation } from "@/i18n/TranslationContext" import { VSCodeButton, VSCodeTextField, VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react" import { vscode } from "@/utils/vscode" -import { Slider } from "@/components/ui" +import { Button, Slider } from "@/components/ui" import { SetCachedStateField } from "./types" import { SectionHeader } from "./SectionHeader" import { Section } from "./Section" +const AUTO_APPROVE_SETTINGS_CONFIG = [ + { + key: "alwaysAllowReadOnly", + labelKey: "settings:autoApprove.readOnly.label", + descriptionKey: "settings:autoApprove.readOnly.description", + icon: "eye", + testId: "always-allow-readonly-toggle", + }, + { + key: "alwaysAllowWrite", + labelKey: "settings:autoApprove.write.label", + descriptionKey: "settings:autoApprove.write.description", + icon: "edit", + testId: "always-allow-write-toggle", + }, + { + key: "alwaysAllowBrowser", + labelKey: "settings:autoApprove.browser.label", + descriptionKey: "settings:autoApprove.browser.description", + icon: "globe", + testId: "always-allow-browser-toggle", + }, + { + key: "alwaysApproveResubmit", + labelKey: "settings:autoApprove.retry.label", + descriptionKey: "settings:autoApprove.retry.description", + icon: "refresh", + testId: "always-approve-resubmit-toggle", + }, + { + key: "alwaysAllowMcp", + labelKey: "settings:autoApprove.mcp.label", + descriptionKey: "settings:autoApprove.mcp.description", + icon: "plug", + testId: "always-allow-mcp-toggle", + }, + { + key: "alwaysAllowModeSwitch", + labelKey: "settings:autoApprove.modeSwitch.label", + descriptionKey: "settings:autoApprove.modeSwitch.description", + icon: "sync", + testId: "always-allow-mode-switch-toggle", + }, + { + key: "alwaysAllowSubtasks", + labelKey: "settings:autoApprove.subtasks.label", + descriptionKey: "settings:autoApprove.subtasks.description", + icon: "discard", + testId: "always-allow-subtasks-toggle", + }, + { + key: "alwaysAllowExecute", + labelKey: "settings:autoApprove.execute.label", + descriptionKey: "settings:autoApprove.execute.description", + icon: "terminal", + testId: "always-allow-execute-toggle", + }, +] + type AutoApproveSettingsProps = HTMLAttributes & { alwaysAllowReadOnly?: boolean alwaysAllowReadOnlyOutsideWorkspace?: boolean @@ -81,70 +140,8 @@ export const AutoApproveSettings = ({
-
- {[ - { - key: "alwaysAllowReadOnly", - labelKey: "settings:autoApprove.readOnly.label", - descriptionKey: "settings:autoApprove.readOnly.description", - icon: "eye", - testId: "always-allow-readonly-toggle", - }, - { - key: "alwaysAllowWrite", - labelKey: "settings:autoApprove.write.label", - descriptionKey: "settings:autoApprove.write.description", - icon: "edit", - testId: "always-allow-write-toggle", - }, - { - key: "alwaysAllowBrowser", - labelKey: "settings:autoApprove.browser.label", - descriptionKey: "settings:autoApprove.browser.description", - icon: "globe", - testId: "always-allow-browser-toggle", - }, - { - key: "alwaysApproveResubmit", - labelKey: "settings:autoApprove.retry.label", - descriptionKey: "settings:autoApprove.retry.description", - icon: "refresh", - testId: "always-approve-resubmit-toggle", - }, - { - key: "alwaysAllowMcp", - labelKey: "settings:autoApprove.mcp.label", - descriptionKey: "settings:autoApprove.mcp.description", - icon: "plug", - testId: "always-allow-mcp-toggle", - }, - { - key: "alwaysAllowModeSwitch", - labelKey: "settings:autoApprove.modeSwitch.label", - descriptionKey: "settings:autoApprove.modeSwitch.description", - icon: "sync", - testId: "always-allow-mode-switch-toggle", - }, - { - key: "alwaysAllowSubtasks", - labelKey: "settings:autoApprove.subtasks.label", - descriptionKey: "settings:autoApprove.subtasks.description", - icon: "discard", - testId: "always-allow-subtasks-toggle", - }, - { - key: "alwaysAllowExecute", - labelKey: "settings:autoApprove.execute.label", - descriptionKey: "settings:autoApprove.execute.description", - icon: "terminal", - testId: "always-allow-execute-toggle", - }, - ].map((cfg) => { +
+ {AUTO_APPROVE_SETTINGS_CONFIG.map((cfg) => { const boolValues = { alwaysAllowReadOnly, alwaysAllowWrite, @@ -155,25 +152,22 @@ export const AutoApproveSettings = ({ alwaysAllowSubtasks, alwaysAllowExecute, } + const value = boolValues[cfg.key as keyof typeof boolValues] ?? false - const title = t(cfg.descriptionKey || "") + return ( - setCachedStateField(cfg.key as any, !value)} - title={title} + title={t(cfg.descriptionKey || "")} data-testid={cfg.testId} - className="aspect-square min-h-[80px] min-w-[80px]" - style={{ flexBasis: "20%", transition: "background-color 0.2s" }}> - - + className="h-12"> + + {t(cfg.labelKey)} - + ) })}
diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index 0ebaf7616ec..6bf3b9d0abc 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -174,11 +174,11 @@ "description": "L'aprovació automàtica permet a Roo Code realitzar accions sense demanar permís. Activa-la només per a accions en les que confies plenament. Configuració més detallada disponible a la Configuració.", "actions": { "readFiles": { - "label": "Lectura", + "label": "Llegir", "description": "Permet l'accés per llegir qualsevol fitxer al teu ordinador." }, "editFiles": { - "label": "Edició", + "label": "Editar", "description": "Permet la modificació de qualsevol fitxer al teu ordinador." }, "executeCommands": { @@ -198,7 +198,7 @@ "description": "Permet el canvi automàtic entre diferents modes sense requerir aprovació." }, "subtasks": { - "label": "Tasques", + "label": "Subtasques", "description": "Permet la creació i finalització de subtasques sense requerir aprovació." }, "retryRequests": { diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index df0f6f8d67e..fe7bdd514d8 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -198,7 +198,7 @@ "description": "Erlaubt automatischen Wechsel zwischen verschiedenen Modi ohne erforderliche Genehmigung." }, "subtasks": { - "label": "Aufgaben", + "label": "Teilaufgaben", "description": "Erlaubt die Erstellung und den Abschluss von Teilaufgaben ohne erforderliche Genehmigung." }, "retryRequests": { diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index c3c1d441ad3..11ff0d5a067 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -56,7 +56,7 @@ "description": "Browser-Aktionen automatisch ohne Genehmigung durchführen. Hinweis: Gilt nur, wenn das Modell Computer-Nutzung unterstützt" }, "retry": { - "label": "Wiederholen", + "label": "Wiederholung", "description": "Fehlgeschlagene API-Anfragen automatisch wiederholen, wenn der Server eine Fehlerantwort zurückgibt", "delayLabel": "Verzögerung vor dem Wiederholen der Anfrage" }, @@ -69,7 +69,7 @@ "description": "Automatisch zwischen verschiedenen Modi wechseln ohne Genehmigung" }, "subtasks": { - "label": "Unteraufgaben", + "label": "Teilaufgaben", "description": "Erstellung und Abschluss von Unteraufgaben ohne Genehmigung erlauben" }, "execute": { diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 732d0737b3b..1b3e4665e21 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -174,11 +174,11 @@ "description": "Auto-aprobar permite a Roo Code realizar acciones sin pedir permiso. Habilita solo para acciones en las que confíes plenamente. Configuración más detallada disponible en Configuración.", "actions": { "readFiles": { - "label": "Leer", + "label": "Lectura", "description": "Permite acceso para leer cualquier archivo en tu computadora." }, "editFiles": { - "label": "Editar", + "label": "Edición", "description": "Permite la modificación de cualquier archivo en tu computadora." }, "executeCommands": { diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index ce199e427e4..0b1f40d5a21 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Permitir que Roo realice operaciones automáticamente sin requerir aprobación. Habilite esta configuración solo si confía plenamente en la IA y comprende los riesgos de seguridad asociados.", "readOnly": { - "label": "Leer", + "label": "Lectura", "description": "Cuando está habilitado, Roo verá automáticamente el contenido del directorio y leerá archivos sin que necesite hacer clic en el botón Aprobar.", "outsideWorkspace": { "label": "Incluir archivos fuera del espacio de trabajo", @@ -43,7 +43,7 @@ } }, "write": { - "label": "Escribir", + "label": "Escritura", "description": "Crear y editar archivos automáticamente sin requerir aprobación", "delayLabel": "Retraso después de escritura para permitir que los diagnósticos detecten posibles problemas", "outsideWorkspace": { diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index 20d60bafd05..d2499a90ad9 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Permettre à Roo d'effectuer automatiquement des opérations sans requérir d'approbation. Activez ces paramètres uniquement si vous faites entièrement confiance à l'IA et que vous comprenez les risques de sécurité associés.", "readOnly": { - "label": "Lire", + "label": "Lecture", "description": "Lorsque cette option est activée, Roo affichera automatiquement le contenu des répertoires et lira les fichiers sans que vous ayez à cliquer sur le bouton Approuver.", "outsideWorkspace": { "label": "Inclure les fichiers en dehors de l'espace de travail", @@ -43,7 +43,7 @@ } }, "write": { - "label": "Écrire", + "label": "Écriture", "description": "Créer et modifier automatiquement des fichiers sans nécessiter d'approbation", "delayLabel": "Délai après les écritures pour permettre aux diagnostics de détecter les problèmes potentiels", "outsideWorkspace": { diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index c8bfc13c3d2..9f67297afd9 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -178,11 +178,11 @@ "description": "आपके कंप्यूटर पर किसी भी फ़ाइल को पढ़ने के लिए पहुँच की अनुमति देता है।" }, "editFiles": { - "label": "संपादित", + "label": "संपादित करें", "description": "आपके कंप्यूटर पर किसी भी फ़ाइल को संशोधित करने की अनुमति देता है।" }, "executeCommands": { - "label": "कमांड", + "label": "कमांड्स", "description": "स्वीकृत टर्मिनल कमांड के निष्पादन की अनुमति देता है। आप इसे सेटिंग्स पैनल में कॉन्फ़िगर कर सकते हैं।" }, "useBrowser": { @@ -194,7 +194,7 @@ "description": "कॉन्फ़िगर किए गए MCP सर्वर के उपयोग की अनुमति देता है जो फ़ाइल सिस्टम को संशोधित कर सकते हैं या API के साथ इंटरैक्ट कर सकते हैं।" }, "switchModes": { - "label": "मोड", + "label": "मोड्स", "description": "स्वीकृति की आवश्यकता के बिना विभिन्न मोड के बीच स्वचालित स्विचिंग की अनुमति देता है।" }, "subtasks": { @@ -202,7 +202,7 @@ "description": "स्वीकृति की आवश्यकता के बिना उपकार्यों के निर्माण और पूर्णता की अनुमति देता है।" }, "retryRequests": { - "label": "पुनर्प्रयास", + "label": "पुनः प्रयास", "description": "जब प्रदाता त्रुटि प्रतिक्रिया लौटाता है तो विफल API अनुरोधों को स्वचालित रूप से पुनः प्रयास करता है।" } } diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 2f89978df09..8572ad1008d 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Roo को अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ऑपरेशन करने की अनुमति दें। इन सेटिंग्स को केवल तभी सक्षम करें जब आप AI पर पूरी तरह से भरोसा करते हों और संबंधित सुरक्षा जोखिमों को समझते हों।", "readOnly": { - "label": "केवल पढ़ने वाले ऑपरेशन हमेशा अनुमोदित करें", + "label": "पढ़ें", "description": "जब सक्षम होता है, तो Roo आपके अनुमोदित बटन पर क्लिक किए बिना स्वचालित रूप से निर्देशिका सामग्री देखेगा और फाइलें पढ़ेगा।", "outsideWorkspace": { "label": "वर्कस्पेस के बाहर की फाइलें शामिल करें", @@ -43,7 +43,7 @@ } }, "write": { - "label": "लिखने वाले ऑपरेशन हमेशा अनुमोदित करें", + "label": "लिखें", "description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से फाइलें बनाएँ और संपादित करें", "delayLabel": "लिखने के बाद विलंब ताकि डायग्नोस्टिक संभावित समस्याओं का पता लगा सकें", "outsideWorkspace": { @@ -52,28 +52,28 @@ } }, "browser": { - "label": "ब्राउज़र क्रियाएँ हमेशा अनुमोदित करें", - "description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ब्राउज़र क्रियाएँ करें — नोट: केवल तभी लागू होता है जब मॉडल कंप्यूटर उपयोग का समर्थन करता है" + "label": "ब्राउज़र", + "description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ब्राउज़र क्रियाएँ करें — नोट: केवल तभी लागू होता है जब मॉडल कंप्यूटर उपयोग का समर्थन करता है" }, "retry": { - "label": "विफल API अनुरोधों को हमेशा पुनः प्रयास करें", + "label": "पुनः प्रयास", "description": "जब सर्वर त्रुटि प्रतिक्रिया देता है तो स्वचालित रूप से विफल API अनुरोधों को पुनः प्रयास करें", "delayLabel": "अनुरोध को पुनः प्रयास करने से पहले विलंब" }, "mcp": { - "label": "MCP टूल्स हमेशा अनुमोदित करें", + "label": "MCP", "description": "MCP सर्वर व्यू में व्यक्तिगत MCP टूल्स के स्वतः अनुमोदन को सक्षम करें (इस सेटिंग और टूल के \"हमेशा अनुमति दें\" चेकबॉक्स दोनों की आवश्यकता है)" }, "modeSwitch": { - "label": "मोड स्विचिंग हमेशा अनुमोदित करें", + "label": "मोड", "description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से विभिन्न मोड के बीच स्विच करें" }, "subtasks": { - "label": "सबटास्क", + "label": "उप-कार्य", "description": "अनुमोदन की आवश्यकता के बिना उप-कार्यों के निर्माण और पूर्णता की अनुमति दें" }, "execute": { - "label": "अनुमत निष्पादन ऑपरेशन हमेशा अनुमोदित करें", + "label": "निष्पादित करें", "description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से अनुमत टर्मिनल कमांड निष्पादित करें", "allowedCommands": "अनुमत स्वतः-निष्पादन कमांड", "allowedCommandsDescription": "कमांड प्रीफिक्स जो स्वचालित रूप से निष्पादित किए जा सकते हैं जब \"निष्पादन ऑपरेशन हमेशा अनुमोदित करें\" सक्षम है। सभी कमांड की अनुमति देने के लिए * जोड़ें (सावधानी से उपयोग करें)।", diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index 8428c4f4432..44ab9d1c455 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -198,11 +198,11 @@ "description": "Consente il passaggio automatico tra diverse modalità senza richiedere approvazione." }, "subtasks": { - "label": "Sottotask", + "label": "Sottoattività", "description": "Consente la creazione e il completamento di sottoattività senza richiedere approvazione." }, "retryRequests": { - "label": "Ripetizioni", + "label": "Ritentativi", "description": "Riprova automaticamente le richieste API fallite quando il provider restituisce una risposta di errore." } } diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 8e95c9b1e82..50282e98f91 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -69,7 +69,7 @@ "description": "Passa automaticamente tra diverse modalità senza richiedere approvazione" }, "subtasks": { - "label": "Attività secondarie", + "label": "Sottoattività", "description": "Consenti la creazione e il completamento di attività secondarie senza richiedere approvazione" }, "execute": { diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index da3911096c6..e41d8e361c3 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Rooが承認なしで自動的に操作を実行できるようにします。AIを完全に信頼し、関連するセキュリティリスクを理解している場合にのみ、これらの設定を有効にしてください。", "readOnly": { - "label": "読み取り専用操作を常に承認", + "label": "読み取り", "description": "有効にすると、Rooは承認ボタンをクリックすることなく、自動的にディレクトリの内容を表示してファイルを読み取ります。", "outsideWorkspace": { "label": "ワークスペース外のファイルを含める", @@ -43,7 +43,7 @@ } }, "write": { - "label": "書き込み操作を常に承認", + "label": "書き込み", "description": "承認なしで自動的にファイルを作成・編集", "delayLabel": "診断が潜在的な問題を検出できるよう、書き込み後に遅延を設ける", "outsideWorkspace": { @@ -52,20 +52,20 @@ } }, "browser": { - "label": "ブラウザアクションを常に承認", - "description": "承認なしで自動的にブラウザアクションを実行 — 注意:コンピューター使用をサポートするモデルを使用している場合のみ適用されます" + "label": "ブラウザ", + "description": "承認なしで自動的にブラウザアクションを実行 — 注意:コンピューター使用をサポートするモデルを使用している場合のみ適用されます" }, "retry": { - "label": "失敗したAPIリクエストを常に再試行", + "label": "再試行", "description": "サーバーがエラーレスポンスを返した場合、自動的に失敗したAPIリクエストを再試行", "delayLabel": "リクエスト再試行前の遅延" }, "mcp": { - "label": "MCPツールを常に承認", + "label": "MCP", "description": "MCPサーバービューで個々のMCPツールの自動承認を有効にします(この設定とツールの「常に許可」チェックボックスの両方が必要)" }, "modeSwitch": { - "label": "モード切り替えを常に承認", + "label": "モード", "description": "承認なしで自動的に異なるモード間を切り替え" }, "subtasks": { @@ -73,7 +73,7 @@ "description": "承認なしでサブタスクの作成と完了を許可" }, "execute": { - "label": "許可された実行操作を常に承認", + "label": "実行", "description": "承認なしで自動的に許可されたターミナルコマンドを実行", "allowedCommands": "許可された自動実行コマンド", "allowedCommandsDescription": "「実行操作を常に承認」が有効な場合に自動実行できるコマンドプレフィックス。すべてのコマンドを許可するには * を追加します(注意して使用してください)。", diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index 28f42cf6d04..05e7aa29444 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Roo가 승인 없이 자동으로 작업을 수행할 수 있도록 허용합니다. AI를 완전히 신뢰하고 관련 보안 위험을 이해하는 경우에만 이러한 설정을 활성화하세요.", "readOnly": { - "label": "읽기 전용 작업 항상 승인", + "label": "읽기", "description": "활성화되면 Roo는 승인 버튼을 클릭하지 않고도 자동으로 디렉토리 내용을 보고 파일을 읽습니다.", "outsideWorkspace": { "label": "워크스페이스 외부 파일 포함", @@ -43,7 +43,7 @@ } }, "write": { - "label": "쓰기 작업 항상 승인", + "label": "쓰기", "description": "승인 없이 자동으로 파일 생성 및 편집", "delayLabel": "진단이 잠재적 문제를 감지할 수 있도록 쓰기 후 지연", "outsideWorkspace": { @@ -52,20 +52,20 @@ } }, "browser": { - "label": "브라우저 작업 항상 승인", - "description": "승인 없이 자동으로 브라우저 작업 수행 — 참고: 모델이 컴퓨터 사용을 지원할 때만 적용됩니다" + "label": "브라우저", + "description": "승인 없이 자동으로 브라우저 작업 수행 — 참고: 모델이 컴퓨터 사용을 지원할 때만 적용됩니다" }, "retry": { - "label": "실패한 API 요청 항상 재시도", + "label": "재시도", "description": "서버가 오류 응답을 반환할 때 자동으로 실패한 API 요청 재시도", "delayLabel": "요청 재시도 전 지연" }, "mcp": { - "label": "MCP 도구 항상 승인", + "label": "MCP", "description": "MCP 서버 보기에서 개별 MCP 도구의 자동 승인 활성화(이 설정과 도구의 \"항상 허용\" 체크박스 모두 필요)" }, "modeSwitch": { - "label": "모드 전환 항상 승인", + "label": "모드", "description": "승인 없이 자동으로 다양한 모드 간 전환" }, "subtasks": { @@ -73,7 +73,7 @@ "description": "승인 없이 하위 작업 생성 및 완료 허용" }, "execute": { - "label": "허용된 실행 작업 항상 승인", + "label": "실행", "description": "승인 없이 자동으로 허용된 터미널 명령 실행", "allowedCommands": "허용된 자동 실행 명령", "allowedCommandsDescription": "\"실행 작업 항상 승인\"이 활성화되었을 때 자동 실행될 수 있는 명령 접두사. 모든 명령을 허용하려면 * 추가(주의해서 사용)", diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index e2499ea573e..16f245e36bc 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -174,7 +174,7 @@ "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. Bardziej szczegółowa konfiguracja dostępna w Ustawieniach.", "actions": { "readFiles": { - "label": "Czytanie", + "label": "Odczyt", "description": "Pozwala na dostęp do odczytu dowolnego pliku na Twoim komputerze." }, "editFiles": { diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 606963bf65b..2d27e9a85cd 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Pozwól Roo na automatyczne wykonywanie operacji bez wymagania zatwierdzenia. Włącz te ustawienia tylko jeśli w pełni ufasz AI i rozumiesz związane z tym zagrożenia bezpieczeństwa.", "readOnly": { - "label": "Zawsze zatwierdzaj operacje tylko do odczytu", + "label": "Odczyt", "description": "Gdy włączone, Roo automatycznie będzie wyświetlać zawartość katalogów i czytać pliki bez konieczności klikania przycisku Zatwierdź.", "outsideWorkspace": { "label": "Uwzględnij pliki poza obszarem roboczym", @@ -43,7 +43,7 @@ } }, "write": { - "label": "Zawsze zatwierdzaj operacje zapisu", + "label": "Zapis", "description": "Automatycznie twórz i edytuj pliki bez konieczności zatwierdzania", "delayLabel": "Opóźnienie po zapisach, aby umożliwić diagnostyce wykrycie potencjalnych problemów", "outsideWorkspace": { @@ -52,20 +52,20 @@ } }, "browser": { - "label": "Zawsze zatwierdzaj akcje przeglądarki", + "label": "Przeglądarka", "description": "Automatycznie wykonuj akcje przeglądarki bez konieczności zatwierdzania. Uwaga: Dotyczy tylko gdy model obsługuje używanie komputera" }, "retry": { - "label": "Zawsze ponawiaj nieudane żądania API", + "label": "Ponów", "description": "Automatycznie ponawiaj nieudane żądania API, gdy serwer zwraca odpowiedź z błędem", "delayLabel": "Opóźnienie przed ponowieniem żądania" }, "mcp": { - "label": "Zawsze zatwierdzaj narzędzia MCP", + "label": "MCP", "description": "Włącz automatyczne zatwierdzanie poszczególnych narzędzi MCP w widoku Serwerów MCP (wymaga zarówno tego ustawienia, jak i pola wyboru \"Zawsze zezwalaj\" narzędzia)" }, "modeSwitch": { - "label": "Zawsze zatwierdzaj przełączanie trybów", + "label": "Tryb", "description": "Automatycznie przełączaj między różnymi trybami bez konieczności zatwierdzania" }, "subtasks": { @@ -73,7 +73,7 @@ "description": "Zezwalaj na tworzenie i ukończenie podzadań bez konieczności zatwierdzania" }, "execute": { - "label": "Zawsze zatwierdzaj dozwolone operacje wykonania", + "label": "Wykonaj", "description": "Automatycznie wykonuj dozwolone polecenia terminala bez konieczności zatwierdzania", "allowedCommands": "Dozwolone polecenia auto-wykonania", "allowedCommandsDescription": "Prefiksy poleceń, które mogą być automatycznie wykonywane, gdy \"Zawsze zatwierdzaj operacje wykonania\" jest włączone. Dodaj * aby zezwolić na wszystkie polecenia (używaj z ostrożnością).", diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index bf65e521d61..9181d8fdb32 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Permitir que o Roo realize operações automaticamente sem exigir aprovação. Ative essas configurações apenas se confiar totalmente na IA e compreender os riscos de segurança associados.", "readOnly": { - "label": "Aprovar sempre operações somente de leitura", + "label": "Leitura", "description": "Quando ativado, o Roo visualizará automaticamente o conteúdo do diretório e lerá arquivos sem que você precise clicar no botão Aprovar.", "outsideWorkspace": { "label": "Incluir arquivos fora do espaço de trabalho", @@ -43,7 +43,7 @@ } }, "write": { - "label": "Aprovar sempre operações de escrita", + "label": "Escrita", "description": "Criar e editar arquivos automaticamente sem exigir aprovação", "delayLabel": "Atraso após escritas para permitir que diagnósticos detectem problemas potenciais", "outsideWorkspace": { @@ -52,20 +52,20 @@ } }, "browser": { - "label": "Aprovar sempre ações do navegador", + "label": "Navegador", "description": "Realizar ações do navegador automaticamente sem exigir aprovação. Nota: Aplica-se apenas quando o modelo suporta uso do computador" }, "retry": { - "label": "Sempre tentar novamente requisições de API com falha", + "label": "Tentar novamente", "description": "Tentar novamente automaticamente requisições de API com falha quando o servidor retorna uma resposta de erro", "delayLabel": "Atraso antes de tentar novamente a requisição" }, "mcp": { - "label": "Aprovar sempre ferramentas MCP", + "label": "MCP", "description": "Ativar aprovação automática de ferramentas MCP individuais na visualização de Servidores MCP (requer tanto esta configuração quanto a caixa de seleção \"Permitir sempre\" da ferramenta)" }, "modeSwitch": { - "label": "Aprovar sempre troca de modos", + "label": "Modo", "description": "Alternar automaticamente entre diferentes modos sem exigir aprovação" }, "subtasks": { @@ -73,7 +73,7 @@ "description": "Permitir a criação e conclusão de subtarefas sem exigir aprovação" }, "execute": { - "label": "Aprovar sempre operações de execução permitidas", + "label": "Executar", "description": "Executar automaticamente comandos de terminal permitidos sem exigir aprovação", "allowedCommands": "Comandos de auto-execução permitidos", "allowedCommandsDescription": "Prefixos de comando que podem ser auto-executados quando \"Aprovar sempre operações de execução\" está ativado. Adicione * para permitir todos os comandos (use com cautela).", diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index 6527029d772..ea9e49f508f 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -178,7 +178,7 @@ "description": "Bilgisayarınızdaki herhangi bir dosyayı okuma erişimine izin verir." }, "editFiles": { - "label": "Düzenleme", + "label": "Yazma", "description": "Bilgisayarınızdaki herhangi bir dosyanın değiştirilmesine izin verir." }, "executeCommands": { @@ -198,7 +198,7 @@ "description": "Onay gerektirmeden farklı modlar arasında otomatik geçişe izin verir." }, "subtasks": { - "label": "Görevler", + "label": "Alt Görevler", "description": "Onay gerektirmeden alt görevlerin oluşturulmasına ve tamamlanmasına izin verir." }, "retryRequests": { diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index fc157c1cd75..5f26eea0b9b 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "Roo'nun onay gerektirmeden otomatik olarak işlemler gerçekleştirmesine izin verin. Bu ayarları yalnızca yapay zekaya tamamen güveniyorsanız ve ilgili güvenlik risklerini anlıyorsanız etkinleştirin.", "readOnly": { - "label": "Salt okunur işlemleri her zaman onayla", + "label": "Okuma", "description": "Etkinleştirildiğinde, Roo otomatik olarak dizin içeriğini görüntüleyecek ve Onayla düğmesine tıklamanıza gerek kalmadan dosyaları okuyacaktır.", "outsideWorkspace": { "label": "Çalışma alanı dışındaki dosyaları dahil et", @@ -43,7 +43,7 @@ } }, "write": { - "label": "Yazma işlemlerini her zaman onayla", + "label": "Yazma", "description": "Onay gerektirmeden otomatik olarak dosya oluştur ve düzenle", "delayLabel": "Tanılamanın potansiyel sorunları tespit etmesine izin vermek için yazmalardan sonra gecikme", "outsideWorkspace": { @@ -52,28 +52,28 @@ } }, "browser": { - "label": "Tarayıcı eylemlerini her zaman onayla", + "label": "Tarayıcı", "description": "Onay gerektirmeden otomatik olarak tarayıcı eylemleri gerçekleştir. Not: Yalnızca model bilgisayar kullanımını desteklediğinde geçerlidir" }, "retry": { - "label": "Başarısız API isteklerini her zaman yeniden dene", + "label": "Yeniden Dene", "description": "Sunucu bir hata yanıtı döndürdüğünde başarısız API isteklerini otomatik olarak yeniden dene", "delayLabel": "İsteği yeniden denemeden önce gecikme" }, "mcp": { - "label": "MCP araçlarını her zaman onayla", + "label": "MCP", "description": "MCP Sunucuları görünümünde bireysel MCP araçlarının otomatik onayını etkinleştir (hem bu ayar hem de aracın \"Her zaman izin ver\" onay kutusu gerekir)" }, "modeSwitch": { - "label": "Mod değiştirmeyi her zaman onayla", + "label": "Mod", "description": "Onay gerektirmeden otomatik olarak farklı modlar arasında geçiş yap" }, "subtasks": { - "label": "Görevler", + "label": "Alt Görevler", "description": "Onay gerektirmeden alt görevlerin oluşturulmasına ve tamamlanmasına izin ver" }, "execute": { - "label": "İzin verilen yürütme işlemlerini her zaman onayla", + "label": "Yürüt", "description": "Onay gerektirmeden otomatik olarak izin verilen terminal komutlarını yürüt", "allowedCommands": "İzin Verilen Otomatik Yürütme Komutları", "allowedCommandsDescription": "\"Yürütme işlemlerini her zaman onayla\" etkinleştirildiğinde otomatik olarak yürütülebilen komut önekleri. Tüm komutlara izin vermek için * ekleyin (dikkatli kullanın).", diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index 85795aeb7ef..3e2337058d4 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -198,7 +198,7 @@ "description": "Cho phép tự động chuyển đổi giữa các chế độ khác nhau mà không cần phê duyệt." }, "subtasks": { - "label": "Nhiệm vụ", + "label": "Nhiệm vụ phụ", "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": { diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 09f35d9fff6..824635fbf67 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -69,7 +69,7 @@ "description": "Tự động chuyển đổi giữa các chế độ khác nhau mà không cần phê duyệt" }, "subtasks": { - "label": "Nhiệm vụ", + "label": "Công việc phụ", "description": "Cho phép tạo và hoàn thành các công việc phụ mà không cần phê duyệt" }, "execute": { diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 2e27eeefcec..94362a07c2a 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -198,7 +198,7 @@ "description": "允许自动切换工作模式" }, "subtasks": { - "label": "回力镖", + "label": "子任务", "description": "允许自主创建和管理子任务" }, "retryRequests": { diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index 428bc7fb52e..97067ffa62f 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "允许 Roo 自动执行操作而无需批准。只有在您完全信任 AI 并了解相关安全风险的情况下才启用这些设置。", "readOnly": { - "label": "自动批准只读操作", + "label": "读取", "description": "启用后,Roo 将自动浏览目录和读取文件内容,无需人工确认。", "outsideWorkspace": { "label": "包含工作区外的文件", @@ -43,7 +43,7 @@ } }, "write": { - "label": "自动批准写入操作", + "label": "写入", "description": "自动创建和编辑文件,无需二次确认", "delayLabel": "延迟一段时间再自动批准写入,可以在期间检查模型输出是否有问题", "outsideWorkspace": { @@ -52,20 +52,20 @@ } }, "browser": { - "label": "自动批准浏览器操作", - "description": "自动执行浏览器操作而无需批准 — 注意:仅当模型支持计算机功能调用时适用" + "label": "浏览器", + "description": "自动执行浏览器操作而无需批准 — 注意:仅当模型支持计算机功能调用时适用" }, "retry": { - "label": "自动重试失败的 API 请求", + "label": "重试", "description": "当服务器返回错误响应时自动重试失败的 API 请求", "delayLabel": "重试请求前的延迟" }, "mcp": { - "label": "自动批准 MCP 服务调用", + "label": "MCP", "description": "允许自动调用MCP服务而无需批准" }, "modeSwitch": { - "label": "自动批准模式切换", + "label": "模式", "description": "自动在不同模式之间切换而无需批准" }, "subtasks": { @@ -73,7 +73,7 @@ "description": "允许创建和完成子任务而无需批准" }, "execute": { - "label": "自动批准命令行操作", + "label": "执行", "description": "自动执行白名单中的命令而无需批准", "allowedCommands": "命令白名单", "allowedCommandsDescription": "当\"自动批准命令行操作\"启用时可以自动执行的命令前缀。添加 * 以允许所有命令(谨慎使用)。", diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index ba2fcc6d99f..464a129a224 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -198,7 +198,7 @@ "description": "允許在不需要核准的情況下自動切換不同模式。" }, "subtasks": { - "label": "回力鏢", + "label": "子工作", "description": "允許在不需要核准的情況下建立和完成子工作。" }, "retryRequests": { diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index d5cdb14b221..cf99713793e 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -35,7 +35,7 @@ "autoApprove": { "description": "允許 Roo 無需核准即執行操作。僅在您完全信任 AI 並了解相關安全風險時啟用這些設定。", "readOnly": { - "label": "始終核准唯讀操作", + "label": "讀取", "description": "啟用後,Roo 將自動檢視目錄內容並讀取檔案,無需點選核准按鈕。", "outsideWorkspace": { "label": "包含工作區外的檔案", @@ -43,7 +43,7 @@ } }, "write": { - "label": "始終核准寫入操作", + "label": "寫入", "description": "自動建立和編輯文件而無需核准", "delayLabel": "寫入後延遲以允許診斷偵測潛在問題", "outsideWorkspace": { @@ -52,28 +52,28 @@ } }, "browser": { - "label": "始終核准瀏覽器操作", - "description": "自動執行瀏覽器操作而無需核准 — 注意:僅適用於模型支援電腦使用時" + "label": "瀏覽器", + "description": "自動執行瀏覽器操作而無需核准 — 注意:僅適用於模型支援電腦使用時" }, "retry": { - "label": "始終重試失敗的 API 請求", + "label": "重試", "description": "當伺服器回傳錯誤回應時自動重試失敗的 API 請求", "delayLabel": "重試請求前的延遲" }, "mcp": { - "label": "始終核准 MCP 工具", + "label": "MCP", "description": "在 MCP 伺服器檢視中啟用個別 MCP 工具的自動核准(需要此設定和工具的「始終允許」核取方塊)" }, "modeSwitch": { - "label": "始終核准模式切換", + "label": "模式", "description": "自動在不同模式之間切換而無需核准" }, "subtasks": { - "label": "子任務", + "label": "子工作", "description": "允許建立和完成子工作而無需核准" }, "execute": { - "label": "始終核准允許的執行操作", + "label": "執行", "description": "自動執行允許的終端機命令而無需核准", "allowedCommands": "允許自動執行的命令", "allowedCommandsDescription": "當「始終核准執行操作」啟用時可以自動執行的命令前綴。新增 * 以允許所有命令(請謹慎使用)。",