Browse Source

UI Fix: Approve Tool Use Grid Toggles. (#2487)

Improv auto approve layout + refactor.

Button grid layout. Consolidates shortNames and labels, includes translations.
Sacha Sayan 10 months ago
parent
commit
111ac9ca47
33 changed files with 361 additions and 464 deletions
  1. 42 28
      webview-ui/src/components/chat/AutoApproveMenu.tsx
  2. 116 98
      webview-ui/src/components/settings/AutoApproveSettings.tsx
  3. 5 5
      webview-ui/src/components/settings/__tests__/SettingsView.test.tsx
  4. 8 16
      webview-ui/src/i18n/locales/ca/chat.json
  5. 9 10
      webview-ui/src/i18n/locales/ca/settings.json
  6. 8 16
      webview-ui/src/i18n/locales/de/chat.json
  7. 9 10
      webview-ui/src/i18n/locales/de/settings.json
  8. 8 16
      webview-ui/src/i18n/locales/en/chat.json
  9. 9 10
      webview-ui/src/i18n/locales/en/settings.json
  10. 8 16
      webview-ui/src/i18n/locales/es/chat.json
  11. 9 10
      webview-ui/src/i18n/locales/es/settings.json
  12. 8 16
      webview-ui/src/i18n/locales/fr/chat.json
  13. 9 10
      webview-ui/src/i18n/locales/fr/settings.json
  14. 8 16
      webview-ui/src/i18n/locales/hi/chat.json
  15. 2 3
      webview-ui/src/i18n/locales/hi/settings.json
  16. 8 16
      webview-ui/src/i18n/locales/it/chat.json
  17. 9 10
      webview-ui/src/i18n/locales/it/settings.json
  18. 8 16
      webview-ui/src/i18n/locales/ja/chat.json
  19. 2 3
      webview-ui/src/i18n/locales/ja/settings.json
  20. 8 16
      webview-ui/src/i18n/locales/ko/chat.json
  21. 2 3
      webview-ui/src/i18n/locales/ko/settings.json
  22. 8 16
      webview-ui/src/i18n/locales/pl/chat.json
  23. 2 3
      webview-ui/src/i18n/locales/pl/settings.json
  24. 8 16
      webview-ui/src/i18n/locales/pt-BR/chat.json
  25. 2 3
      webview-ui/src/i18n/locales/pt-BR/settings.json
  26. 8 16
      webview-ui/src/i18n/locales/tr/chat.json
  27. 2 3
      webview-ui/src/i18n/locales/tr/settings.json
  28. 8 16
      webview-ui/src/i18n/locales/vi/chat.json
  29. 9 10
      webview-ui/src/i18n/locales/vi/settings.json
  30. 7 15
      webview-ui/src/i18n/locales/zh-CN/chat.json
  31. 2 3
      webview-ui/src/i18n/locales/zh-CN/settings.json
  32. 8 16
      webview-ui/src/i18n/locales/zh-TW/chat.json
  33. 2 3
      webview-ui/src/i18n/locales/zh-TW/settings.json

+ 42 - 28
webview-ui/src/components/chat/AutoApproveMenu.tsx

@@ -1,4 +1,4 @@
-import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react"
+import { VSCodeCheckbox, VSCodeButton } from "@vscode/webview-ui-toolkit/react"
 import { useCallback, useState } from "react"
 import { useExtensionState } from "../../context/ExtensionStateContext"
 import { useAppTranslation } from "../../i18n/TranslationContext"
@@ -10,7 +10,6 @@ interface AutoApproveAction {
 	id: string
 	label: string
 	enabled: boolean
-	shortName: string
 	description: string
 }
 
@@ -47,56 +46,48 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => {
 		{
 			id: "readFiles",
 			label: t("chat:autoApprove.actions.readFiles.label"),
-			shortName: t("chat:autoApprove.actions.readFiles.shortName"),
 			enabled: alwaysAllowReadOnly ?? false,
 			description: t("chat:autoApprove.actions.readFiles.description"),
 		},
 		{
 			id: "editFiles",
 			label: t("chat:autoApprove.actions.editFiles.label"),
-			shortName: t("chat:autoApprove.actions.editFiles.shortName"),
 			enabled: alwaysAllowWrite ?? false,
 			description: t("chat:autoApprove.actions.editFiles.description"),
 		},
 		{
 			id: "executeCommands",
 			label: t("chat:autoApprove.actions.executeCommands.label"),
-			shortName: t("chat:autoApprove.actions.executeCommands.shortName"),
 			enabled: alwaysAllowExecute ?? false,
 			description: t("chat:autoApprove.actions.executeCommands.description"),
 		},
 		{
 			id: "useBrowser",
 			label: t("chat:autoApprove.actions.useBrowser.label"),
-			shortName: t("chat:autoApprove.actions.useBrowser.shortName"),
 			enabled: alwaysAllowBrowser ?? false,
 			description: t("chat:autoApprove.actions.useBrowser.description"),
 		},
 		{
 			id: "useMcp",
 			label: t("chat:autoApprove.actions.useMcp.label"),
-			shortName: t("chat:autoApprove.actions.useMcp.shortName"),
 			enabled: alwaysAllowMcp ?? false,
 			description: t("chat:autoApprove.actions.useMcp.description"),
 		},
 		{
 			id: "switchModes",
 			label: t("chat:autoApprove.actions.switchModes.label"),
-			shortName: t("chat:autoApprove.actions.switchModes.shortName"),
 			enabled: alwaysAllowModeSwitch ?? false,
 			description: t("chat:autoApprove.actions.switchModes.description"),
 		},
 		{
 			id: "subtasks",
 			label: t("chat:autoApprove.actions.subtasks.label"),
-			shortName: t("chat:autoApprove.actions.subtasks.shortName"),
 			enabled: alwaysAllowSubtasks ?? false,
 			description: t("chat:autoApprove.actions.subtasks.description"),
 		},
 		{
 			id: "retryRequests",
 			label: t("chat:autoApprove.actions.retryRequests.label"),
-			shortName: t("chat:autoApprove.actions.retryRequests.shortName"),
 			enabled: alwaysApproveResubmit ?? false,
 			description: t("chat:autoApprove.actions.retryRequests.description"),
 		},
@@ -108,7 +99,7 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => {
 
 	const enabledActionsList = actions
 		.filter((action) => action.enabled)
-		.map((action) => action.shortName)
+		.map((action) => action.label)
 		.join(", ")
 
 	// Individual checkbox handlers - each one only updates its own state
@@ -260,23 +251,46 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => {
 							}}
 						/>
 					</div>
-					{actions.map((action) => (
-						<div key={action.id} style={{ margin: "6px 0" }}>
-							<div onClick={(e) => e.stopPropagation()}>
-								<VSCodeCheckbox checked={action.enabled} onChange={actionHandlers[action.id]}>
-									{action.label}
-								</VSCodeCheckbox>
-							</div>
-							<div
-								style={{
-									marginLeft: "28px",
-									color: "var(--vscode-descriptionForeground)",
-									fontSize: "12px",
-								}}>
-								{action.description}
-							</div>
-						</div>
-					))}
+					<div
+						className="flex flex-row gap-2 [@media(min-width:400px)]:gap-4 flex-wrap justify-center"
+						style={{ paddingBottom: "2rem" }}>
+						{actions.map((action) => {
+							const iconMap: Record<string, string> = {
+								readFiles: "eye",
+								editFiles: "edit",
+								executeCommands: "terminal",
+								useBrowser: "globe",
+								useMcp: "plug",
+								switchModes: "sync",
+								subtasks: "discard",
+								retryRequests: "refresh",
+							}
+							const codicon = iconMap[action.id] || "question"
+							return (
+								<VSCodeButton
+									key={action.id}
+									appearance={action.enabled ? "primary" : "secondary"}
+									onClick={(e) => {
+										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%" }}>
+									<span className="flex flex-col items-center gap-1 h-full">
+										<span
+											className={`codicon codicon-${codicon} text-base `}
+											style={{
+												fontSize: "1.5rem",
+												paddingTop: "0.5rem",
+											}}
+										/>
+										<span className="text-sm text-center">{action.label}</span>
+									</span>
+								</VSCodeButton>
+							)
+						})}
+					</div>
 				</div>
 			)}
 		</div>

+ 116 - 98
webview-ui/src/components/settings/AutoApproveSettings.tsx

@@ -1,7 +1,6 @@
 import { HTMLAttributes, useState } from "react"
 import { useAppTranslation } from "@/i18n/TranslationContext"
-import { VSCodeButton, VSCodeCheckbox, VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
-import { CheckCheck } from "lucide-react"
+import { VSCodeButton, VSCodeTextField, VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react"
 
 import { vscode } from "@/utils/vscode"
 import { Slider } from "@/components/ui"
@@ -76,26 +75,117 @@ export const AutoApproveSettings = ({
 		<div {...props}>
 			<SectionHeader description={t("settings:autoApprove.description")}>
 				<div className="flex items-center gap-2">
-					<CheckCheck className="w-4" />
+					<span className="codicon codicon-check w-4" />
 					<div>{t("settings:sections.autoApprove")}</div>
 				</div>
 			</SectionHeader>
 
 			<Section>
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowReadOnly}
-						onChange={(e: any) => setCachedStateField("alwaysAllowReadOnly", e.target.checked)}
-						data-testid="always-allow-readonly-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.readOnly.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.readOnly.description")}
-					</div>
+				<div
+					className="flex flex-row gap-2 [@media(min-width:400px)]:gap-4 flex-wrap justify-center"
+					style={{
+						paddingBottom: "1rem",
+						transition: "all 0.2s",
+					}}>
+					{[
+						{
+							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) => {
+						const boolValues = {
+							alwaysAllowReadOnly,
+							alwaysAllowWrite,
+							alwaysAllowBrowser,
+							alwaysApproveResubmit,
+							alwaysAllowMcp,
+							alwaysAllowModeSwitch,
+							alwaysAllowSubtasks,
+							alwaysAllowExecute,
+						}
+						const value = boolValues[cfg.key as keyof typeof boolValues] ?? false
+						const title = t(cfg.descriptionKey || "")
+						return (
+							<VSCodeButton
+								key={cfg.key}
+								appearance={value ? "primary" : "secondary"}
+								onClick={() => setCachedStateField(cfg.key as any, !value)}
+								title={title}
+								data-testid={cfg.testId}
+								className="aspect-square min-h-[80px] min-w-[80px]"
+								style={{ flexBasis: "20%", transition: "background-color 0.2s" }}>
+								<span className="flex flex-col items-center gap-1 h-full">
+									<span
+										className={`codicon codicon-${cfg.icon}`}
+										style={{ fontSize: "1.5rem", paddingTop: "0.5rem" }}
+									/>
+									<span className="text-sm text-center">{t(cfg.labelKey)}</span>
+								</span>
+							</VSCodeButton>
+						)
+					})}
 				</div>
 
+				{/* ADDITIONAL SETTINGS */}
+
 				{alwaysAllowReadOnly && (
 					<div className="flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background">
+						<div className="flex items-center gap-4 font-bold">
+							<span className="codicon codicon-eye" />
+							<div>{t("settings:autoApprove.readOnly.label")}</div>
+						</div>
 						<div>
 							<VSCodeCheckbox
 								checked={alwaysAllowReadOnlyOutsideWorkspace}
@@ -114,20 +204,12 @@ export const AutoApproveSettings = ({
 					</div>
 				)}
 
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowWrite}
-						onChange={(e: any) => setCachedStateField("alwaysAllowWrite", e.target.checked)}
-						data-testid="always-allow-write-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.write.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.write.description")}
-					</div>
-				</div>
-
 				{alwaysAllowWrite && (
 					<div className="flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background">
+						<div className="flex items-center gap-4 font-bold">
+							<span className="codicon codicon-edit" />
+							<div>{t("settings:autoApprove.write.label")}</div>
+						</div>
 						<div>
 							<VSCodeCheckbox
 								checked={alwaysAllowWriteOutsideWorkspace}
@@ -162,33 +244,12 @@ export const AutoApproveSettings = ({
 					</div>
 				)}
 
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowBrowser}
-						onChange={(e: any) => setCachedStateField("alwaysAllowBrowser", e.target.checked)}
-						data-testid="always-allow-browser-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.browser.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						<div>{t("settings:autoApprove.browser.description")}</div>
-						<div>{t("settings:autoApprove.browser.note")}</div>
-					</div>
-				</div>
-
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysApproveResubmit}
-						onChange={(e: any) => setCachedStateField("alwaysApproveResubmit", e.target.checked)}
-						data-testid="always-approve-resubmit-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.retry.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.retry.description")}
-					</div>
-				</div>
-
 				{alwaysApproveResubmit && (
 					<div className="flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background">
+						<div className="flex items-center gap-4 font-bold">
+							<span className="codicon codicon-refresh" />
+							<div>{t("settings:autoApprove.retry.label")}</div>
+						</div>
 						<div>
 							<div className="flex items-center gap-2">
 								<Slider
@@ -208,56 +269,13 @@ export const AutoApproveSettings = ({
 					</div>
 				)}
 
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowMcp}
-						onChange={(e: any) => setCachedStateField("alwaysAllowMcp", e.target.checked)}
-						data-testid="always-allow-mcp-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.mcp.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.mcp.description")}
-					</div>
-				</div>
-
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowModeSwitch}
-						onChange={(e: any) => setCachedStateField("alwaysAllowModeSwitch", e.target.checked)}
-						data-testid="always-allow-mode-switch-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.modeSwitch.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.modeSwitch.description")}
-					</div>
-				</div>
-
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowSubtasks}
-						onChange={(e: any) => setCachedStateField("alwaysAllowSubtasks", e.target.checked)}
-						data-testid="always-allow-subtasks-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.subtasks.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.subtasks.description")}
-					</div>
-				</div>
-
-				<div>
-					<VSCodeCheckbox
-						checked={alwaysAllowExecute}
-						onChange={(e: any) => setCachedStateField("alwaysAllowExecute", e.target.checked)}
-						data-testid="always-allow-execute-checkbox">
-						<span className="font-medium">{t("settings:autoApprove.execute.label")}</span>
-					</VSCodeCheckbox>
-					<div className="text-vscode-descriptionForeground text-sm mt-1">
-						{t("settings:autoApprove.execute.description")}
-					</div>
-				</div>
-
 				{alwaysAllowExecute && (
 					<div className="flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background">
+						<div className="flex items-center gap-4 font-bold">
+							<span className="codicon codicon-terminal" />
+							<div>{t("settings:autoApprove.execute.label")}</div>
+						</div>
+
 						<div>
 							<label className="block font-medium mb-1" data-testid="allowed-commands-heading">
 								{t("settings:autoApprove.execute.allowedCommands")}

+ 5 - 5
webview-ui/src/components/settings/__tests__/SettingsView.test.tsx

@@ -306,7 +306,7 @@ describe("SettingsView - Allowed Commands", () => {
 		renderSettingsView()
 
 		// Enable always allow execute
-		const executeCheckbox = screen.getByTestId("always-allow-execute-checkbox")
+		const executeCheckbox = screen.getByTestId("always-allow-execute-toggle")
 		fireEvent.click(executeCheckbox)
 		// Verify allowed commands section appears
 		expect(screen.getByTestId("allowed-commands-heading")).toBeInTheDocument()
@@ -317,7 +317,7 @@ describe("SettingsView - Allowed Commands", () => {
 		renderSettingsView()
 
 		// Enable always allow execute
-		const executeCheckbox = screen.getByTestId("always-allow-execute-checkbox")
+		const executeCheckbox = screen.getByTestId("always-allow-execute-toggle")
 		fireEvent.click(executeCheckbox)
 
 		// Add a new command
@@ -341,7 +341,7 @@ describe("SettingsView - Allowed Commands", () => {
 		renderSettingsView()
 
 		// Enable always allow execute
-		const executeCheckbox = screen.getByTestId("always-allow-execute-checkbox")
+		const executeCheckbox = screen.getByTestId("always-allow-execute-toggle")
 		fireEvent.click(executeCheckbox)
 
 		// Add a command
@@ -368,7 +368,7 @@ describe("SettingsView - Allowed Commands", () => {
 		renderSettingsView()
 
 		// Enable always allow execute
-		const executeCheckbox = screen.getByTestId("always-allow-execute-checkbox")
+		const executeCheckbox = screen.getByTestId("always-allow-execute-toggle")
 		fireEvent.click(executeCheckbox)
 
 		// Add a command twice
@@ -392,7 +392,7 @@ describe("SettingsView - Allowed Commands", () => {
 		renderSettingsView()
 
 		// Enable always allow execute
-		const executeCheckbox = screen.getByTestId("always-allow-execute-checkbox")
+		const executeCheckbox = screen.getByTestId("always-allow-execute-toggle")
 		fireEvent.click(executeCheckbox)
 
 		// Add a command

+ 8 - 16
webview-ui/src/i18n/locales/ca/chat.json

@@ -174,43 +174,35 @@
 		"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 <settingsLink>Configuració</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Llegir fitxers i directoris",
-				"shortName": "Lectura",
+				"label": "Lectura",
 				"description": "Permet l'accés per llegir qualsevol fitxer al teu ordinador."
 			},
 			"editFiles": {
-				"label": "Editar fitxers",
-				"shortName": "Edició",
+				"label": "Edició",
 				"description": "Permet la modificació de qualsevol fitxer al teu ordinador."
 			},
 			"executeCommands": {
-				"label": "Executar ordres aprovades",
-				"shortName": "Ordres",
+				"label": "Ordres",
 				"description": "Permet l'execució d'ordres de terminal aprovades. Pots configurar-ho al panell de configuració."
 			},
 			"useBrowser": {
-				"label": "Utilitzar el navegador",
-				"shortName": "Navegador",
+				"label": "Navegador",
 				"description": "Permet la capacitat d'iniciar i interactuar amb qualsevol lloc web en un navegador headless."
 			},
 			"useMcp": {
-				"label": "Utilitzar servidors MCP",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "Permet l'ús de servidors MCP configurats que poden modificar el sistema de fitxers o interactuar amb APIs."
 			},
 			"switchModes": {
-				"label": "Canviar modes",
-				"shortName": "Modes",
+				"label": "Modes",
 				"description": "Permet el canvi automàtic entre diferents modes sense requerir aprovació."
 			},
 			"subtasks": {
-				"label": "Crear i completar subtasques",
-				"shortName": "Subtasques",
+				"label": "Tasques",
 				"description": "Permet la creació i finalització de subtasques sense requerir aprovació."
 			},
 			"retryRequests": {
-				"label": "Reintentar sol·licituds fallides",
-				"shortName": "Reintents",
+				"label": "Reintents",
 				"description": "Reintenta automàticament les sol·licituds API fallides quan el proveïdor retorna una resposta d'error."
 			}
 		}

+ 9 - 10
webview-ui/src/i18n/locales/ca/settings.json

@@ -35,7 +35,7 @@
 	"autoApprove": {
 		"description": "Permet que Roo realitzi operacions automàticament sense requerir aprovació. Activeu aquesta configuració només si confieu plenament en la IA i enteneu els riscos de seguretat associats.",
 		"readOnly": {
-			"label": "Aprovar sempre operacions de només lectura",
+			"label": "Llegir",
 			"description": "Quan està activat, Roo veurà automàticament el contingut del directori i llegirà fitxers sense que calgui fer clic al botó Aprovar.",
 			"outsideWorkspace": {
 				"label": "Incloure fitxers fora de l'espai de treball",
@@ -43,7 +43,7 @@
 			}
 		},
 		"write": {
-			"label": "Aprovar sempre operacions d'escriptura",
+			"label": "Escriure",
 			"description": "Crear i editar fitxers automàticament sense requerir aprovació",
 			"delayLabel": "Retard després d'escriptura per permetre que els diagnòstics detectin possibles problemes",
 			"outsideWorkspace": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Aprovar sempre accions del navegador",
-			"description": "Realitzar accions del navegador automàticament sense requerir aprovació",
-			"note": "Nota: Només s'aplica quan el model admet l'ús de l'ordinador"
+			"label": "Navegador",
+			"description": "Realitzar accions del navegador automàticament sense requerir aprovació. Nota: Només s'aplica quan el model admet l'ús de l'ordinador"
 		},
 		"retry": {
-			"label": "Tornar a intentar sempre sol·licituds d'API fallides",
+			"label": "Reintentar",
 			"description": "Tornar a intentar sol·licituds d'API fallides automàticament quan el servidor retorna una resposta d'error",
 			"delayLabel": "Retard abans de tornar a intentar la sol·licitud"
 		},
 		"mcp": {
-			"label": "Aprovar sempre eines MCP",
+			"label": "MCP",
 			"description": "Habilitar l'aprovació automàtica d'eines MCP individuals a la vista de Servidors MCP (requereix tant aquesta configuració com la casella \"Permetre sempre\" de l'eina)"
 		},
 		"modeSwitch": {
-			"label": "Aprovar sempre canvis de mode",
+			"label": "Mode",
 			"description": "Canviar automàticament entre diferents modes sense requerir aprovació"
 		},
 		"subtasks": {
-			"label": "Aprovar sempre creació i finalització de subtasques",
+			"label": "Subtasques",
 			"description": "Permetre la creació i finalització de subtasques sense requerir aprovació"
 		},
 		"execute": {
-			"label": "Aprovar sempre operacions d'execució permeses",
+			"label": "Executar",
 			"description": "Executar automàticament comandes de terminal permeses sense requerir aprovació",
 			"allowedCommands": "Comandes d'auto-execució permeses",
 			"allowedCommandsDescription": "Prefixos de comandes que poden ser executats automàticament quan \"Aprovar sempre operacions d'execució\" està habilitat. Afegeix * per permetre totes les comandes (usar amb precaució).",

+ 8 - 16
webview-ui/src/i18n/locales/de/chat.json

@@ -174,43 +174,35 @@
 		"description": "Automatische Genehmigung erlaubt Roo Code, Aktionen ohne Nachfrage auszuführen. Aktiviere dies nur für Aktionen, denen du vollständig vertraust. Detailliertere Konfiguration verfügbar in den <settingsLink>Einstellungen</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Dateien und Verzeichnisse lesen",
-				"shortName": "Lesen",
+				"label": "Lesen",
 				"description": "Erlaubt Zugriff zum Lesen jeder Datei auf deinem Computer."
 			},
 			"editFiles": {
-				"label": "Dateien bearbeiten",
-				"shortName": "Bearbeiten",
+				"label": "Bearbeiten",
 				"description": "Erlaubt die Änderung jeder Datei auf deinem Computer."
 			},
 			"executeCommands": {
-				"label": "Genehmigte Befehle ausführen",
-				"shortName": "Befehle",
+				"label": "Befehle",
 				"description": "Erlaubt die Ausführung genehmigter Terminal-Befehle. Du kannst dies im Einstellungsfenster konfigurieren."
 			},
 			"useBrowser": {
-				"label": "Browser verwenden",
-				"shortName": "Browser",
+				"label": "Browser",
 				"description": "Erlaubt die Fähigkeit, jede Website in einem Headless-Browser zu starten und mit ihr zu interagieren."
 			},
 			"useMcp": {
-				"label": "MCP-Server verwenden",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "Erlaubt die Verwendung konfigurierter MCP-Server, die das Dateisystem ändern oder mit APIs interagieren können."
 			},
 			"switchModes": {
-				"label": "Modi wechseln",
-				"shortName": "Modi",
+				"label": "Modi",
 				"description": "Erlaubt automatischen Wechsel zwischen verschiedenen Modi ohne erforderliche Genehmigung."
 			},
 			"subtasks": {
-				"label": "Teilaufgaben erstellen & abschließen",
-				"shortName": "Teilaufgaben",
+				"label": "Aufgaben",
 				"description": "Erlaubt die Erstellung und den Abschluss von Teilaufgaben ohne erforderliche Genehmigung."
 			},
 			"retryRequests": {
-				"label": "Fehlgeschlagene Anfragen wiederholen",
-				"shortName": "Wiederholungen",
+				"label": "Wiederholungen",
 				"description": "Wiederholt automatisch fehlgeschlagene API-Anfragen, wenn der Anbieter eine Fehlermeldung zurückgibt."
 			}
 		}

+ 9 - 10
webview-ui/src/i18n/locales/de/settings.json

@@ -35,7 +35,7 @@
 	"autoApprove": {
 		"description": "Erlaubt Roo, Operationen automatisch ohne Genehmigung durchzuführen. Aktiviere diese Einstellungen nur, wenn du der KI vollständig vertraust und die damit verbundenen Sicherheitsrisiken verstehst.",
 		"readOnly": {
-			"label": "Schreibgeschützte Operationen immer genehmigen",
+			"label": "Lesen",
 			"description": "Wenn aktiviert, wird Roo automatisch Verzeichnisinhalte anzeigen und Dateien lesen, ohne dass du auf die Genehmigen-Schaltfläche klicken musst.",
 			"outsideWorkspace": {
 				"label": "Dateien außerhalb des Arbeitsbereichs einbeziehen",
@@ -43,7 +43,7 @@
 			}
 		},
 		"write": {
-			"label": "Schreiboperationen immer genehmigen",
+			"label": "Schreiben",
 			"description": "Dateien automatisch erstellen und bearbeiten ohne Genehmigung",
 			"delayLabel": "Verzögerung nach Schreibvorgängen, damit Diagnosefunktionen potenzielle Probleme erkennen können",
 			"outsideWorkspace": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Browser-Aktionen immer genehmigen",
-			"description": "Browser-Aktionen automatisch ohne Genehmigung durchführen",
-			"note": "Hinweis: Gilt nur, wenn das Modell Computer-Nutzung unterstützt"
+			"label": "Browser",
+			"description": "Browser-Aktionen automatisch ohne Genehmigung durchführen. Hinweis: Gilt nur, wenn das Modell Computer-Nutzung unterstützt"
 		},
 		"retry": {
-			"label": "Fehlgeschlagene API-Anfragen immer wiederholen",
+			"label": "Wiederholen",
 			"description": "Fehlgeschlagene API-Anfragen automatisch wiederholen, wenn der Server eine Fehlerantwort zurückgibt",
 			"delayLabel": "Verzögerung vor dem Wiederholen der Anfrage"
 		},
 		"mcp": {
-			"label": "MCP-Tools immer genehmigen",
+			"label": "MCP",
 			"description": "Automatische Genehmigung einzelner MCP-Tools in der MCP-Server-Ansicht aktivieren (erfordert sowohl diese Einstellung als auch das 'Immer erlauben'-Kontrollkästchen des Tools)"
 		},
 		"modeSwitch": {
-			"label": "Moduswechsel immer genehmigen",
+			"label": "Modus",
 			"description": "Automatisch zwischen verschiedenen Modi wechseln ohne Genehmigung"
 		},
 		"subtasks": {
-			"label": "Erstellung & Abschluss von Unteraufgaben immer genehmigen",
+			"label": "Unteraufgaben",
 			"description": "Erstellung und Abschluss von Unteraufgaben ohne Genehmigung erlauben"
 		},
 		"execute": {
-			"label": "Erlaubte Ausführungsoperationen immer genehmigen",
+			"label": "Ausführen",
 			"description": "Erlaubte Terminal-Befehle automatisch ohne Genehmigung ausführen",
 			"allowedCommands": "Erlaubte Auto-Ausführungsbefehle",
 			"allowedCommandsDescription": "Befehlspräfixe, die automatisch ausgeführt werden können, wenn 'Ausführungsoperationen immer genehmigen' aktiviert ist. Fügen Sie * hinzu, um alle Befehle zu erlauben (mit Vorsicht verwenden).",

+ 8 - 16
webview-ui/src/i18n/locales/en/chat.json

@@ -174,43 +174,35 @@
 		"description": "Auto-approve allows Roo Code to perform actions without asking for permission. Only enable for actions you fully trust. More detailed configuration available in <settingsLink>Settings</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Read files and directories",
-				"shortName": "Read",
+				"label": "Read",
 				"description": "Allows access to read any file on your computer."
 			},
 			"editFiles": {
-				"label": "Edit files",
-				"shortName": "Edit",
+				"label": "Edit",
 				"description": "Allows modification of any files on your computer."
 			},
 			"executeCommands": {
-				"label": "Execute approved commands",
-				"shortName": "Commands",
+				"label": "Commands",
 				"description": "Allows execution of approved terminal commands. You can configure this in the settings panel."
 			},
 			"useBrowser": {
-				"label": "Use the browser",
-				"shortName": "Browser",
+				"label": "Browser",
 				"description": "Allows ability to launch and interact with any website in a headless browser."
 			},
 			"useMcp": {
-				"label": "Use MCP servers",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "Allows use of configured MCP servers which may modify filesystem or interact with APIs."
 			},
 			"switchModes": {
-				"label": "Switch modes",
-				"shortName": "Modes",
+				"label": "Modes",
 				"description": "Allows automatic switching between different modes without requiring approval."
 			},
 			"subtasks": {
-				"label": "Create & complete subtasks",
-				"shortName": "Subtasks",
+				"label": "Subtasks",
 				"description": "Allow creation and completion of subtasks without requiring approval."
 			},
 			"retryRequests": {
-				"label": "Retry failed requests",
-				"shortName": "Retries",
+				"label": "Retries",
 				"description": "Automatically retry failed API requests when the provider returns an error response."
 			}
 		}

+ 9 - 10
webview-ui/src/i18n/locales/en/settings.json

@@ -35,7 +35,7 @@
 	"autoApprove": {
 		"description": "Allow Roo to automatically perform operations without requiring approval. Enable these settings only if you fully trust the AI and understand the associated security risks.",
 		"readOnly": {
-			"label": "Always approve read-only operations",
+			"label": "Read",
 			"description": "When enabled, Roo will automatically view directory contents and read files without requiring you to click the Approve button.",
 			"outsideWorkspace": {
 				"label": "Include files outside workspace",
@@ -43,7 +43,7 @@
 			}
 		},
 		"write": {
-			"label": "Always approve write operations",
+			"label": "Write",
 			"description": "Automatically create and edit files without requiring approval",
 			"delayLabel": "Delay after writes to allow diagnostics to detect potential problems",
 			"outsideWorkspace": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Always approve browser actions",
-			"description": "Automatically perform browser actions without requiring approval",
-			"note": "Note: Only applies when the model supports computer use"
+			"label": "Browser",
+			"description": "Automatically perform browser actions without requiring approval. Note: Only applies when the model supports computer use"
 		},
 		"retry": {
-			"label": "Always retry failed API requests",
+			"label": "Retry",
 			"description": "Automatically retry failed API requests when server returns an error response",
 			"delayLabel": "Delay before retrying the request"
 		},
 		"mcp": {
-			"label": "Always approve MCP tools",
+			"label": "MCP",
 			"description": "Enable auto-approval of individual MCP tools in the MCP Servers view (requires both this setting and the tool's individual \"Always allow\" checkbox)"
 		},
 		"modeSwitch": {
-			"label": "Always approve mode switching",
+			"label": "Mode",
 			"description": "Automatically switch between different modes without requiring approval"
 		},
 		"subtasks": {
-			"label": "Always approve creation & completion of subtasks",
+			"label": "Subtasks",
 			"description": "Allow creation and completion of subtasks without requiring approval"
 		},
 		"execute": {
-			"label": "Always approve allowed execute operations",
+			"label": "Execute",
 			"description": "Automatically execute allowed terminal commands without requiring approval",
 			"allowedCommands": "Allowed Auto-Execute Commands",
 			"allowedCommandsDescription": "Command prefixes that can be auto-executed when \"Always approve execute operations\" is enabled. Add * to allow all commands (use with caution).",

+ 8 - 16
webview-ui/src/i18n/locales/es/chat.json

@@ -174,43 +174,35 @@
 		"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 <settingsLink>Configuración</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Leer archivos y directorios",
-				"shortName": "Leer",
+				"label": "Leer",
 				"description": "Permite acceso para leer cualquier archivo en tu computadora."
 			},
 			"editFiles": {
-				"label": "Editar archivos",
-				"shortName": "Editar",
+				"label": "Editar",
 				"description": "Permite la modificación de cualquier archivo en tu computadora."
 			},
 			"executeCommands": {
-				"label": "Ejecutar comandos aprobados",
-				"shortName": "Comandos",
+				"label": "Comandos",
 				"description": "Permite la ejecución de comandos de terminal aprobados. Puedes configurar esto en el panel de configuración."
 			},
 			"useBrowser": {
-				"label": "Usar el navegador",
-				"shortName": "Navegador",
+				"label": "Navegador",
 				"description": "Permite la capacidad de iniciar e interactuar con cualquier sitio web en un navegador sin interfaz."
 			},
 			"useMcp": {
-				"label": "Usar servidores MCP",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "Permite el uso de servidores MCP configurados que pueden modificar el sistema de archivos o interactuar con APIs."
 			},
 			"switchModes": {
-				"label": "Cambiar modos",
-				"shortName": "Modos",
+				"label": "Modos",
 				"description": "Permite el cambio automático entre diferentes modos sin requerir aprobación."
 			},
 			"subtasks": {
-				"label": "Crear y completar subtareas",
-				"shortName": "Subtareas",
+				"label": "Subtareas",
 				"description": "Permite la creación y finalización de subtareas sin requerir aprobación."
 			},
 			"retryRequests": {
-				"label": "Reintentar solicitudes fallidas",
-				"shortName": "Reintentos",
+				"label": "Reintentos",
 				"description": "Reintenta automáticamente las solicitudes API fallidas cuando el proveedor devuelve una respuesta de error."
 			}
 		}

+ 9 - 10
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": "Aprobar siempre operaciones de solo lectura",
+			"label": "Leer",
 			"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": "Aprobar siempre operaciones de escritura",
+			"label": "Escribir",
 			"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": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Aprobar siempre acciones del navegador",
-			"description": "Realizar acciones del navegador automáticamente sin requerir aprobación",
-			"note": "Nota: Solo se aplica cuando el modelo admite el uso del ordenador"
+			"label": "Navegador",
+			"description": "Realizar acciones del navegador automáticamente sin requerir aprobación. Nota: Solo se aplica cuando el modelo admite el uso del ordenador"
 		},
 		"retry": {
-			"label": "Reintentar siempre solicitudes de API fallidas",
+			"label": "Reintentar",
 			"description": "Reintentar automáticamente solicitudes de API fallidas cuando el servidor devuelve una respuesta de error",
 			"delayLabel": "Retraso antes de reintentar la solicitud"
 		},
 		"mcp": {
-			"label": "Aprobar siempre herramientas MCP",
+			"label": "MCP",
 			"description": "Habilitar la aprobación automática de herramientas MCP individuales en la vista de Servidores MCP (requiere tanto esta configuración como la casilla \"Permitir siempre\" de la herramienta)"
 		},
 		"modeSwitch": {
-			"label": "Aprobar siempre cambios de modo",
+			"label": "Modo",
 			"description": "Cambiar automáticamente entre diferentes modos sin requerir aprobación"
 		},
 		"subtasks": {
-			"label": "Aprobar siempre creación y finalización de subtareas",
+			"label": "Subtareas",
 			"description": "Permitir la creación y finalización de subtareas sin requerir aprobación"
 		},
 		"execute": {
-			"label": "Aprobar siempre operaciones de ejecución permitidas",
+			"label": "Ejecutar",
 			"description": "Ejecutar automáticamente comandos de terminal permitidos sin requerir aprobación",
 			"allowedCommands": "Comandos de auto-ejecución permitidos",
 			"allowedCommandsDescription": "Prefijos de comandos que pueden ser ejecutados automáticamente cuando \"Aprobar siempre operaciones de ejecución\" está habilitado. Añade * para permitir todos los comandos (usar con precaución).",

+ 8 - 16
webview-ui/src/i18n/locales/fr/chat.json

@@ -174,43 +174,35 @@
 		"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. Configuration plus détaillée disponible dans les <settingsLink>Paramètres</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Lire fichiers et répertoires",
-				"shortName": "Lecture",
+				"label": "Lecture",
 				"description": "Permet l'accès en lecture à n'importe quel fichier sur votre ordinateur."
 			},
 			"editFiles": {
-				"label": "Éditer des fichiers",
-				"shortName": "Édition",
+				"label": "Édition",
 				"description": "Permet la modification de n'importe quel fichier sur votre ordinateur."
 			},
 			"executeCommands": {
-				"label": "Exécuter des commandes approuvées",
-				"shortName": "Commandes",
+				"label": "Commandes",
 				"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",
+				"label": "Navigateur",
 				"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",
+				"label": "MCP",
 				"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",
+				"label": "Modes",
 				"description": "Permet le changement automatique entre différents modes sans nécessiter d'approbation."
 			},
 			"subtasks": {
-				"label": "Créer et terminer des sous-tâches",
-				"shortName": "Sous-tâches",
+				"label": "Sous-tâches",
 				"description": "Permet la création et l'achèvement de sous-tâches sans nécessiter d'approbation."
 			},
 			"retryRequests": {
-				"label": "Réessayer les requêtes échouées",
-				"shortName": "Réessais",
+				"label": "Réessais",
 				"description": "Réessaie automatiquement les requêtes API échouées lorsque le fournisseur renvoie une réponse d'erreur."
 			}
 		}

+ 9 - 10
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": "Toujours approuver les opérations en lecture seule",
+			"label": "Lire",
 			"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": "Toujours approuver les opérations d'écriture",
+			"label": "Écrire",
 			"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": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Toujours approuver les actions du navigateur",
-			"description": "Effectuer automatiquement des actions du navigateur sans nécessiter d'approbation",
-			"note": "Remarque : S'applique uniquement lorsque le modèle prend en charge l'utilisation de l'ordinateur"
+			"label": "Navigateur",
+			"description": "Effectuer automatiquement des actions du navigateur sans nécessiter d'approbation. Remarque : S'applique uniquement lorsque le modèle prend en charge l'utilisation de l'ordinateur"
 		},
 		"retry": {
-			"label": "Toujours réessayer les requêtes API échouées",
+			"label": "Réessayer",
 			"description": "Réessayer automatiquement les requêtes API échouées lorsque le serveur renvoie une réponse d'erreur",
 			"delayLabel": "Délai avant de réessayer la requête"
 		},
 		"mcp": {
-			"label": "Toujours approuver les outils MCP",
+			"label": "MCP",
 			"description": "Activer l'approbation automatique des outils MCP individuels dans la vue des serveurs MCP (nécessite à la fois ce paramètre et la case à cocher \"Toujours autoriser\" de l'outil)"
 		},
 		"modeSwitch": {
-			"label": "Toujours approuver les changements de mode",
+			"label": "Mode",
 			"description": "Basculer automatiquement entre différents modes sans nécessiter d'approbation"
 		},
 		"subtasks": {
-			"label": "Toujours approuver la création et l'achèvement des sous-tâches",
+			"label": "Sous-tâches",
 			"description": "Permettre la création et l'achèvement des sous-tâches sans nécessiter d'approbation"
 		},
 		"execute": {
-			"label": "Toujours approuver les opérations d'exécution autorisées",
+			"label": "Exécuter",
 			"description": "Exécuter automatiquement les commandes de terminal autorisées sans nécessiter d'approbation",
 			"allowedCommands": "Commandes auto-exécutables autorisées",
 			"allowedCommandsDescription": "Préfixes de commandes qui peuvent être auto-exécutés lorsque \"Toujours approuver les opérations d'exécution\" est activé. Ajoutez * pour autoriser toutes les commandes (à utiliser avec précaution).",

+ 8 - 16
webview-ui/src/i18n/locales/hi/chat.json

@@ -174,43 +174,35 @@
 		"description": "स्वत:-स्वीकृति Roo Code को अनुमति मांगे बिना क्रियाएँ करने की अनुमति देती है। केवल उन क्रियाओं के लिए सक्षम करें जिन पर आप पूरी तरह से विश्वास करते हैं। अधिक विस्तृत कॉन्फ़िगरेशन <settingsLink>सेटिंग्स</settingsLink> में उपलब्ध है।",
 		"actions": {
 			"readFiles": {
-				"label": "फ़ाइलें और निर्देशिकाएँ पढ़ें",
-				"shortName": "पढ़ें",
+				"label": "पढ़ें",
 				"description": "आपके कंप्यूटर पर किसी भी फ़ाइल को पढ़ने के लिए पहुँच की अनुमति देता है।"
 			},
 			"editFiles": {
-				"label": "फ़ाइलें संपादित करें",
-				"shortName": "संपादित",
+				"label": "संपादित",
 				"description": "आपके कंप्यूटर पर किसी भी फ़ाइल को संशोधित करने की अनुमति देता है।"
 			},
 			"executeCommands": {
-				"label": "स्वीकृत कमांड निष्पादित करें",
-				"shortName": "कमांड",
+				"label": "कमांड",
 				"description": "स्वीकृत टर्मिनल कमांड के निष्पादन की अनुमति देता है। आप इसे सेटिंग्स पैनल में कॉन्फ़िगर कर सकते हैं।"
 			},
 			"useBrowser": {
-				"label": "ब्राउज़र का उपयोग करें",
-				"shortName": "ब्राउज़र",
+				"label": "ब्राउज़र",
 				"description": "हेडलेस ब्राउज़र में किसी भी वेबसाइट को लॉन्च करने और उसके साथ इंटरैक्ट करने की क्षमता की अनुमति देता है।"
 			},
 			"useMcp": {
-				"label": "MCP सर्वर का उपयोग करें",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "कॉन्फ़िगर किए गए MCP सर्वर के उपयोग की अनुमति देता है जो फ़ाइल सिस्टम को संशोधित कर सकते हैं या API के साथ इंटरैक्ट कर सकते हैं।"
 			},
 			"switchModes": {
-				"label": "मोड स्विच करें",
-				"shortName": "मोड",
+				"label": "मोड",
 				"description": "स्वीकृति की आवश्यकता के बिना विभिन्न मोड के बीच स्वचालित स्विचिंग की अनुमति देता है।"
 			},
 			"subtasks": {
-				"label": "उपकार्य बनाएं और पूरा करें",
-				"shortName": "उपकार्य",
+				"label": "उपकार्य",
 				"description": "स्वीकृति की आवश्यकता के बिना उपकार्यों के निर्माण और पूर्णता की अनुमति देता है।"
 			},
 			"retryRequests": {
-				"label": "विफल अनुरोधों को पुनः प्रयास करें",
-				"shortName": "पुनर्प्रयास",
+				"label": "पुनर्प्रयास",
 				"description": "जब प्रदाता त्रुटि प्रतिक्रिया लौटाता है तो विफल API अनुरोधों को स्वचालित रूप से पुनः प्रयास करता है।"
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/hi/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "ब्राउज़र क्रियाएँ हमेशा अनुमोदित करें",
-			"description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ब्राउज़र क्रियाएँ करें",
-			"note": "नोट: केवल तभी लागू होता है जब मॉडल कंप्यूटर उपयोग का समर्थन करता है"
+			"description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ब्राउज़र क्रियाएँ करें — नोट: केवल तभी लागू होता है जब मॉडल कंप्यूटर उपयोग का समर्थन करता है"
 		},
 		"retry": {
 			"label": "विफल API अनुरोधों को हमेशा पुनः प्रयास करें",
@@ -70,7 +69,7 @@
 			"description": "अनुमोदन की आवश्यकता के बिना स्वचालित रूप से विभिन्न मोड के बीच स्विच करें"
 		},
 		"subtasks": {
-			"label": "उप-कार्यों का निर्माण और पूर्णता हमेशा अनुमोदित करें",
+			"label": "सबटास्क",
 			"description": "अनुमोदन की आवश्यकता के बिना उप-कार्यों के निर्माण और पूर्णता की अनुमति दें"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/it/chat.json

@@ -174,43 +174,35 @@
 		"description": "L'auto-approvazione permette a Roo Code di eseguire azioni senza chiedere permesso. Abilita solo per azioni di cui ti fidi completamente. Configurazione più dettagliata disponibile nelle <settingsLink>Impostazioni</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Leggi file e directory",
-				"shortName": "Lettura",
+				"label": "Lettura",
 				"description": "Consente l'accesso per leggere qualsiasi file sul tuo computer."
 			},
 			"editFiles": {
-				"label": "Modifica file",
-				"shortName": "Modifica",
+				"label": "Modifica",
 				"description": "Consente la modifica di qualsiasi file sul tuo computer."
 			},
 			"executeCommands": {
-				"label": "Esegui comandi approvati",
-				"shortName": "Comandi",
+				"label": "Comandi",
 				"description": "Consente l'esecuzione di comandi da terminale approvati. Puoi configurare questo nel pannello delle impostazioni."
 			},
 			"useBrowser": {
-				"label": "Usa il browser",
-				"shortName": "Browser",
+				"label": "Browser",
 				"description": "Consente la capacità di avviare e interagire con qualsiasi sito web in un browser headless."
 			},
 			"useMcp": {
-				"label": "Usa server MCP",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "Consente l'uso di server MCP configurati che possono modificare il filesystem o interagire con API."
 			},
 			"switchModes": {
-				"label": "Cambia modalità",
-				"shortName": "Modalità",
+				"label": "Modalità",
 				"description": "Consente il passaggio automatico tra diverse modalità senza richiedere approvazione."
 			},
 			"subtasks": {
-				"label": "Crea e completa sottoattività",
-				"shortName": "Sottoattività",
+				"label": "Sottotask",
 				"description": "Consente la creazione e il completamento di sottoattività senza richiedere approvazione."
 			},
 			"retryRequests": {
-				"label": "Riprova richieste fallite",
-				"shortName": "Ripetizioni",
+				"label": "Ripetizioni",
 				"description": "Riprova automaticamente le richieste API fallite quando il provider restituisce una risposta di errore."
 			}
 		}

+ 9 - 10
webview-ui/src/i18n/locales/it/settings.json

@@ -35,7 +35,7 @@
 	"autoApprove": {
 		"description": "Permetti a Roo di eseguire automaticamente operazioni senza richiedere approvazione. Abilita queste impostazioni solo se ti fidi completamente dell'IA e comprendi i rischi di sicurezza associati.",
 		"readOnly": {
-			"label": "Approva sempre operazioni di sola lettura",
+			"label": "Leggi",
 			"description": "Quando abilitato, Roo visualizzerà automaticamente i contenuti della directory e leggerà i file senza richiedere di cliccare sul pulsante Approva.",
 			"outsideWorkspace": {
 				"label": "Includi file al di fuori dell'area di lavoro",
@@ -43,7 +43,7 @@
 			}
 		},
 		"write": {
-			"label": "Approva sempre operazioni di scrittura",
+			"label": "Scrivi",
 			"description": "Crea e modifica automaticamente i file senza richiedere approvazione",
 			"delayLabel": "Ritardo dopo le scritture per consentire alla diagnostica di rilevare potenziali problemi",
 			"outsideWorkspace": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Approva sempre azioni del browser",
-			"description": "Esegui automaticamente azioni del browser senza richiedere approvazione",
-			"note": "Nota: Si applica solo quando il modello supporta l'uso del computer"
+			"label": "Browser",
+			"description": "Esegui automaticamente azioni del browser senza richiedere approvazione. Nota: Si applica solo quando il modello supporta l'uso del computer"
 		},
 		"retry": {
-			"label": "Riprova sempre le richieste API fallite",
+			"label": "Riprova",
 			"description": "Riprova automaticamente le richieste API fallite quando il server restituisce una risposta di errore",
 			"delayLabel": "Ritardo prima di riprovare la richiesta"
 		},
 		"mcp": {
-			"label": "Approva sempre strumenti MCP",
+			"label": "MCP",
 			"description": "Abilita l'approvazione automatica dei singoli strumenti MCP nella vista Server MCP (richiede sia questa impostazione che la casella \"Consenti sempre\" dello strumento)"
 		},
 		"modeSwitch": {
-			"label": "Approva sempre cambi di modalità",
+			"label": "Modalità",
 			"description": "Passa automaticamente tra diverse modalità senza richiedere approvazione"
 		},
 		"subtasks": {
-			"label": "Approva sempre creazione e completamento di attività secondarie",
+			"label": "Attività secondarie",
 			"description": "Consenti la creazione e il completamento di attività secondarie senza richiedere approvazione"
 		},
 		"execute": {
-			"label": "Approva sempre operazioni di esecuzione consentite",
+			"label": "Esegui",
 			"description": "Esegui automaticamente i comandi del terminale consentiti senza richiedere approvazione",
 			"allowedCommands": "Comandi di auto-esecuzione consentiti",
 			"allowedCommandsDescription": "Prefissi di comando che possono essere auto-eseguiti quando \"Approva sempre operazioni di esecuzione\" è abilitato. Aggiungi * per consentire tutti i comandi (usare con cautela).",

+ 8 - 16
webview-ui/src/i18n/locales/ja/chat.json

@@ -174,43 +174,35 @@
 		"description": "自動承認はRoo Codeに許可を求めずに操作を実行する権限を与えます。完全に信頼できる操作のみ有効にしてください。より詳細な設定は<settingsLink>設定</settingsLink>で利用できます。",
 		"actions": {
 			"readFiles": {
-				"label": "ファイルとディレクトリの読み取り",
-				"shortName": "読み取り",
+				"label": "読み取り",
 				"description": "コンピュータ上の任意のファイルを読み取るアクセスを許可します。"
 			},
 			"editFiles": {
-				"label": "ファイルの編集",
-				"shortName": "編集",
+				"label": "編集",
 				"description": "コンピュータ上の任意のファイルを変更することを許可します。"
 			},
 			"executeCommands": {
-				"label": "承認されたコマンドの実行",
-				"shortName": "コマンド",
+				"label": "コマンド",
 				"description": "承認されたターミナルコマンドの実行を許可します。設定パネルで構成できます。"
 			},
 			"useBrowser": {
-				"label": "ブラウザの使用",
-				"shortName": "ブラウザ",
+				"label": "ブラウザ",
 				"description": "ヘッドレスブラウザで任意のウェブサイトを起動して操作する能力を許可します。"
 			},
 			"useMcp": {
-				"label": "MCPサーバーの使用",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "ファイルシステムを変更したりAPIと対話したりできる構成済みMCPサーバーの使用を許可します。"
 			},
 			"switchModes": {
-				"label": "モードの切り替え",
-				"shortName": "モード",
+				"label": "モード",
 				"description": "承認を必要とせず、異なるモード間の自動切り替えを許可します。"
 			},
 			"subtasks": {
-				"label": "サブタスクの作成と完了",
-				"shortName": "サブタスク",
+				"label": "サブタスク",
 				"description": "承認を必要とせずにサブタスクの作成と完了を許可します。"
 			},
 			"retryRequests": {
-				"label": "失敗したリクエストの再試行",
-				"shortName": "再試行",
+				"label": "再試行",
 				"description": "プロバイダーがエラー応答を返した場合、失敗したAPIリクエストを自動的に再試行します。"
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/ja/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "ブラウザアクションを常に承認",
-			"description": "承認なしで自動的にブラウザアクションを実行",
-			"note": "注意:コンピューター使用をサポートするモデルを使用している場合のみ適用されます"
+			"description": "承認なしで自動的にブラウザアクションを実行 — 注意:コンピューター使用をサポートするモデルを使用している場合のみ適用されます"
 		},
 		"retry": {
 			"label": "失敗したAPIリクエストを常に再試行",
@@ -70,7 +69,7 @@
 			"description": "承認なしで自動的に異なるモード間を切り替え"
 		},
 		"subtasks": {
-			"label": "サブタスクの作成と完了を常に承認",
+			"label": "サブタスク",
 			"description": "承認なしでサブタスクの作成と完了を許可"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/ko/chat.json

@@ -174,43 +174,35 @@
 		"description": "자동 승인을 사용하면 Roo Code가 권한을 요청하지 않고 작업을 수행할 수 있습니다. 완전히 신뢰할 수 있는 작업에만 활성화하세요. 더 자세한 구성은 <settingsLink>설정</settingsLink>에서 사용할 수 있습니다.",
 		"actions": {
 			"readFiles": {
-				"label": "파일 및 디렉토리 읽기",
-				"shortName": "읽기",
+				"label": "읽기",
 				"description": "컴퓨터의 모든 파일을 읽을 수 있는 액세스 권한을 허용합니다."
 			},
 			"editFiles": {
-				"label": "파일 편집",
-				"shortName": "편집",
+				"label": "편집",
 				"description": "컴퓨터의 모든 파일을 수정할 수 있는 권한을 허용합니다."
 			},
 			"executeCommands": {
-				"label": "승인된 명령 실행",
-				"shortName": "명령",
+				"label": "명령",
 				"description": "승인된 터미널 명령 실행을 허용합니다. 설정 패널에서 구성할 수 있습니다."
 			},
 			"useBrowser": {
-				"label": "브라우저 사용",
-				"shortName": "브라우저",
+				"label": "브라우저",
 				"description": "헤드리스 브라우저에서 모든 웹사이트를 실행하고 상호작용할 수 있는 기능을 허용합니다."
 			},
 			"useMcp": {
-				"label": "MCP 서버 사용",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "파일 시스템을 수정하거나 API와 상호작용할 수 있는 구성된 MCP 서버 사용을 허용합니다."
 			},
 			"switchModes": {
-				"label": "모드 전환",
-				"shortName": "모드",
+				"label": "모드",
 				"description": "승인 없이 다른 모드 간 자동 전환을 허용합니다."
 			},
 			"subtasks": {
-				"label": "하위 작업 생성 및 완료",
-				"shortName": "하위 작업",
+				"label": "하위 작업",
 				"description": "승인 없이 하위 작업 생성 및 완료를 허용합니다."
 			},
 			"retryRequests": {
-				"label": "실패한 요청 재시도",
-				"shortName": "재시도",
+				"label": "재시도",
 				"description": "제공자가 오류 응답을 반환할 때 실패한 API 요청을 자동으로 재시도합니다."
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/ko/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "브라우저 작업 항상 승인",
-			"description": "승인 없이 자동으로 브라우저 작업 수행",
-			"note": "참고: 모델이 컴퓨터 사용을 지원할 때만 적용됩니다"
+			"description": "승인 없이 자동으로 브라우저 작업 수행 — 참고: 모델이 컴퓨터 사용을 지원할 때만 적용됩니다"
 		},
 		"retry": {
 			"label": "실패한 API 요청 항상 재시도",
@@ -70,7 +69,7 @@
 			"description": "승인 없이 자동으로 다양한 모드 간 전환"
 		},
 		"subtasks": {
-			"label": "하위 작업 생성 및 완료 항상 승인",
+			"label": "하위 작업",
 			"description": "승인 없이 하위 작업 생성 및 완료 허용"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/pl/chat.json

@@ -174,43 +174,35 @@
 		"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 <settingsLink>Ustawieniach</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Czytaj pliki i katalogi",
-				"shortName": "Czytanie",
+				"label": "Czytanie",
 				"description": "Pozwala na dostęp do odczytu dowolnego pliku na Twoim komputerze."
 			},
 			"editFiles": {
-				"label": "Edytuj pliki",
-				"shortName": "Edycja",
+				"label": "Edycja",
 				"description": "Pozwala na modyfikację dowolnych plików na Twoim komputerze."
 			},
 			"executeCommands": {
-				"label": "Wykonuj zatwierdzone polecenia",
-				"shortName": "Polecenia",
+				"label": "Polecenia",
 				"description": "Pozwala na wykonywanie zatwierdzonych poleceń terminala. Możesz to skonfigurować w panelu ustawień."
 			},
 			"useBrowser": {
-				"label": "Używaj przeglądarki",
-				"shortName": "Przeglądarka",
+				"label": "Przeglądarka",
 				"description": "Pozwala na uruchamianie i interakcję z dowolną stroną internetową w przeglądarce bezinterfejsowej."
 			},
 			"useMcp": {
-				"label": "Używaj serwerów MCP",
-				"shortName": "MCP",
+				"label": "MCP",
 				"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łączaj tryby",
-				"shortName": "Tryby",
+				"label": "Tryby",
 				"description": "Pozwala na automatyczne przełączanie między różnymi trybami bez wymagania zatwierdzenia."
 			},
 			"subtasks": {
-				"label": "Twórz i kończ podzadania",
-				"shortName": "Podzadania",
+				"label": "Podzadania",
 				"description": "Pozwala na tworzenie i kończenie podzadań bez wymagania zatwierdzenia."
 			},
 			"retryRequests": {
-				"label": "Ponów nieudane zapytania",
-				"shortName": "Ponowienia",
+				"label": "Ponowienia",
 				"description": "Automatycznie ponawia nieudane zapytania API, gdy dostawca zwraca odpowiedź z błędem."
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/pl/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "Zawsze zatwierdzaj akcje przeglądarki",
-			"description": "Automatycznie wykonuj akcje przeglądarki bez konieczności zatwierdzania",
-			"note": "Uwaga: Dotyczy tylko gdy model obsługuje używanie komputera"
+			"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",
@@ -70,7 +69,7 @@
 			"description": "Automatycznie przełączaj między różnymi trybami bez konieczności zatwierdzania"
 		},
 		"subtasks": {
-			"label": "Zawsze zatwierdzaj tworzenie i ukończenie podzadań",
+			"label": "Podzadania",
 			"description": "Zezwalaj na tworzenie i ukończenie podzadań bez konieczności zatwierdzania"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/pt-BR/chat.json

@@ -174,43 +174,35 @@
 		"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. Configuração mais detalhada disponível nas <settingsLink>Configurações</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Ler arquivos e diretórios",
-				"shortName": "Leitura",
+				"label": "Leitura",
 				"description": "Permite acesso para ler qualquer arquivo em seu computador."
 			},
 			"editFiles": {
-				"label": "Editar arquivos",
-				"shortName": "Edição",
+				"label": "Edição",
 				"description": "Permite a modificação de quaisquer arquivos em seu computador."
 			},
 			"executeCommands": {
-				"label": "Executar comandos aprovados",
-				"shortName": "Comandos",
+				"label": "Comandos",
 				"description": "Permite a execução de comandos de terminal aprovados. Você pode configurar isso no painel de configurações."
 			},
 			"useBrowser": {
-				"label": "Usar o navegador",
-				"shortName": "Navegador",
+				"label": "Navegador",
 				"description": "Permite a capacidade de iniciar e interagir com qualquer site em um navegador headless."
 			},
 			"useMcp": {
-				"label": "Usar servidores MCP",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "Permite o uso de servidores MCP configurados que podem modificar o sistema de arquivos ou interagir com APIs."
 			},
 			"switchModes": {
-				"label": "Alternar modos",
-				"shortName": "Modos",
+				"label": "Modos",
 				"description": "Permite a alternância automática entre diferentes modos sem exigir aprovação."
 			},
 			"subtasks": {
-				"label": "Criar e completar subtarefas",
-				"shortName": "Subtarefas",
+				"label": "Subtarefas",
 				"description": "Permite a criação e conclusão de subtarefas sem exigir aprovação."
 			},
 			"retryRequests": {
-				"label": "Retentar requisições falhas",
-				"shortName": "Retentativas",
+				"label": "Retentativas",
 				"description": "Retenta automaticamente requisições de API falhas quando o provedor retorna uma resposta de erro."
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/pt-BR/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "Aprovar sempre ações do navegador",
-			"description": "Realizar ações do navegador automaticamente sem exigir aprovação",
-			"note": "Nota: Aplica-se apenas quando o modelo suporta uso do computador"
+			"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",
@@ -70,7 +69,7 @@
 			"description": "Alternar automaticamente entre diferentes modos sem exigir aprovação"
 		},
 		"subtasks": {
-			"label": "Aprovar sempre criação e conclusão de subtarefas",
+			"label": "Subtarefas",
 			"description": "Permitir a criação e conclusão de subtarefas sem exigir aprovação"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/tr/chat.json

@@ -174,43 +174,35 @@
 		"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. Daha detaylı yapılandırma <settingsLink>Ayarlar</settingsLink>'da mevcuttur.",
 		"actions": {
 			"readFiles": {
-				"label": "Dosyaları ve dizinleri oku",
-				"shortName": "Okuma",
+				"label": "Okuma",
 				"description": "Bilgisayarınızdaki herhangi bir dosyayı okuma erişimine izin verir."
 			},
 			"editFiles": {
-				"label": "Dosyaları düzenle",
-				"shortName": "Düzenleme",
+				"label": "Düzenleme",
 				"description": "Bilgisayarınızdaki herhangi bir dosyanın değiştirilmesine izin verir."
 			},
 			"executeCommands": {
-				"label": "Onaylanmış komutları çalıştır",
-				"shortName": "Komutlar",
+				"label": "Komutlar",
 				"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ı",
+				"label": "Tarayıcı",
 				"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",
+				"label": "MCP",
 				"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",
+				"label": "Modlar",
 				"description": "Onay gerektirmeden farklı modlar arasında otomatik geçişe izin verir."
 			},
 			"subtasks": {
-				"label": "Alt görevler oluştur ve tamamla",
-				"shortName": "Alt görevler",
+				"label": "Görevler",
 				"description": "Onay gerektirmeden alt görevlerin oluşturulmasına ve tamamlanmasına izin verir."
 			},
 			"retryRequests": {
-				"label": "Başarısız istekleri yeniden dene",
-				"shortName": "Yeniden Denemeler",
+				"label": "Yeniden Denemeler",
 				"description": "Sağlayıcı bir hata yanıtı döndürdüğünde başarısız API isteklerini otomatik olarak yeniden dener."
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/tr/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "Tarayıcı eylemlerini her zaman onayla",
-			"description": "Onay gerektirmeden otomatik olarak tarayıcı eylemleri gerçekleştir",
-			"note": "Not: Yalnızca model bilgisayar kullanımını desteklediğinde geçerlidir"
+			"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",
@@ -70,7 +69,7 @@
 			"description": "Onay gerektirmeden otomatik olarak farklı modlar arasında geçiş yap"
 		},
 		"subtasks": {
-			"label": "Alt görevlerin oluşturulmasını ve tamamlanmasını her zaman onayla",
+			"label": "Görevler",
 			"description": "Onay gerektirmeden alt görevlerin oluşturulmasına ve tamamlanmasına izin ver"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/vi/chat.json

@@ -174,43 +174,35 @@
 		"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. Cấu hình chi tiết hơn có sẵn trong <settingsLink>Cài đặt</settingsLink>.",
 		"actions": {
 			"readFiles": {
-				"label": "Đọc tệp và thư mục",
-				"shortName": "Đọc",
+				"label": "Đọc",
 				"description": "Cho phép truy cập để đọc bất kỳ tệp nào trên máy tính của bạn."
 			},
 			"editFiles": {
-				"label": "Chỉnh sửa tệp",
-				"shortName": "Chỉnh sửa",
+				"label": "Chỉnh sửa",
 				"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 đã phê duyệt",
-				"shortName": "Lệnh",
+				"label": "Lệnh",
 				"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",
-				"shortName": "Trình duyệt",
+				"label": "Trình duyệt",
 				"description": "Cho phép khả năng khởi chạy và tương tác với bất kỳ trang web nào trong trình duyệt không giao diện."
 			},
 			"useMcp": {
-				"label": "Sử dụng máy chủ MCP",
-				"shortName": "MCP",
+				"label": "MCP",
 				"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ế độ",
-				"shortName": "Chế độ",
+				"label": "Chế độ",
 				"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": "Tạo & hoàn thành nhiệm vụ phụ",
-				"shortName": "Nhiệm vụ phụ",
+				"label": "Nhiệm vụ",
 				"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 yêu cầu thất bại",
-				"shortName": "Thử lại",
+				"label": "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."
 			}
 		}

+ 9 - 10
webview-ui/src/i18n/locales/vi/settings.json

@@ -35,7 +35,7 @@
 	"autoApprove": {
 		"description": "Cho phép Roo tự động thực hiện các hoạt động mà không cần phê duyệt. Chỉ bật những cài đặt này nếu bạn hoàn toàn tin tưởng AI và hiểu rõ các rủi ro bảo mật liên quan.",
 		"readOnly": {
-			"label": "Luôn phê duyệt các hoạt động chỉ đọc",
+			"label": "Đọc",
 			"description": "Khi được bật, Roo sẽ tự động xem nội dung thư mục và đọc tệp mà không yêu cầu bạn nhấp vào nút Phê duyệt.",
 			"outsideWorkspace": {
 				"label": "Bao gồm các tệp ngoài không gian làm việc",
@@ -43,7 +43,7 @@
 			}
 		},
 		"write": {
-			"label": "Luôn phê duyệt các hoạt động ghi",
+			"label": "Ghi",
 			"description": "Tự động tạo và chỉnh sửa tệp mà không cần phê duyệt",
 			"delayLabel": "Trì hoãn sau khi ghi để cho phép chẩn đoán phát hiện các vấn đề tiềm ẩn",
 			"outsideWorkspace": {
@@ -52,29 +52,28 @@
 			}
 		},
 		"browser": {
-			"label": "Luôn phê duyệt các hành động trình duyệt",
-			"description": "Tự động thực hiện các hành động trình duyệt mà không cần phê duyệt",
-			"note": "Lưu ý: Chỉ áp dụng khi mô hình hỗ trợ sử dụng máy tính"
+			"label": "Trình duyệt",
+			"description": "Tự động thực hiện các hành động trình duyệt mà không cần phê duyệt. Lưu ý: Chỉ áp dụng khi mô hình hỗ trợ sử dụng máy tính"
 		},
 		"retry": {
-			"label": "Luôn thử lại các yêu cầu API thất bại",
+			"label": "Thử lại",
 			"description": "Tự động thử lại các yêu cầu API thất bại khi máy chủ trả về phản hồi lỗi",
 			"delayLabel": "Trì hoãn trước khi thử lại yêu cầu"
 		},
 		"mcp": {
-			"label": "Luôn phê duyệt các công cụ MCP",
+			"label": "MCP",
 			"description": "Bật tự động phê duyệt các công cụ MCP riêng lẻ trong chế độ xem Máy chủ MCP (yêu cầu cả cài đặt này và hộp kiểm \"Luôn cho phép\" của công cụ)"
 		},
 		"modeSwitch": {
-			"label": "Luôn phê duyệt chuyển đổi chế độ",
+			"label": "Chế độ",
 			"description": "Tự động chuyển đổi giữa các chế độ khác nhau mà không cần phê duyệt"
 		},
 		"subtasks": {
-			"label": "Luôn phê duyệt việc tạo và hoàn thành các công việc phụ",
+			"label": "Nhiệm vụ",
 			"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": {
-			"label": "Luôn phê duyệt các hoạt động thực thi được phép",
+			"label": "Thực thi",
 			"description": "Tự động thực thi các lệnh terminal được phép mà không cần phê duyệt",
 			"allowedCommands": "Các lệnh tự động thực thi được phép",
 			"allowedCommandsDescription": "Tiền tố lệnh có thể được tự động thực thi khi \"Luôn phê duyệt các hoạt động thực thi\" được bật. Thêm * để cho phép tất cả các lệnh (sử dụng cẩn thận).",

+ 7 - 15
webview-ui/src/i18n/locales/zh-CN/chat.json

@@ -174,43 +174,35 @@
 		"description": "允许直接执行操作无需确认,请谨慎启用。前往<settingsLink>设置</settingsLink>调整",
 		"actions": {
 			"readFiles": {
-				"label": "读取文件和目录",
-				"shortName": "读取",
+				"label": "读取",
 				"description": "允许读取系统中的文件内容"
 			},
 			"editFiles": {
-				"label": "编辑文件",
-				"shortName": "编辑",
+				"label": "编辑",
 				"description": "允许修改系统中的文件"
 			},
 			"executeCommands": {
-				"label": "执行命令",
-				"shortName": "命令",
+				"label": "命令",
 				"description": "允许执行终端命令。"
 			},
 			"useBrowser": {
 				"label": "浏览器",
-				"shortName": "浏览器",
 				"description": "允许通过无头浏览器访问网站"
 			},
 			"useMcp": {
-				"label": "MCP服务",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "允许访问配置好的 MCP 服务(可能涉及文件系统或API操作)"
 			},
 			"switchModes": {
-				"label": "切换模式",
-				"shortName": "模式",
+				"label": "模式",
 				"description": "允许自动切换工作模式"
 			},
 			"subtasks": {
-				"label": "创建和完成子任务",
-				"shortName": "子任务",
+				"label": "回力镖",
 				"description": "允许自主创建和管理子任务"
 			},
 			"retryRequests": {
-				"label": "重试失败的请求",
-				"shortName": "重试",
+				"label": "重试",
 				"description": "API请求失败时自动重试"
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/zh-CN/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "自动批准浏览器操作",
-			"description": "自动执行浏览器操作而无需批准",
-			"note": "注意:仅当模型支持计算机功能调用时适用"
+			"description": "自动执行浏览器操作而无需批准 — 注意:仅当模型支持计算机功能调用时适用"
 		},
 		"retry": {
 			"label": "自动重试失败的 API 请求",
@@ -70,7 +69,7 @@
 			"description": "自动在不同模式之间切换而无需批准"
 		},
 		"subtasks": {
-			"label": "自动批准子任务的创建和完成",
+			"label": "子任务",
 			"description": "允许创建和完成子任务而无需批准"
 		},
 		"execute": {

+ 8 - 16
webview-ui/src/i18n/locales/zh-TW/chat.json

@@ -174,43 +174,35 @@
 		"description": "自動核准讓 Roo Code 可以在無需徵求您同意的情況下執行動作。請僅對您完全信任的動作啟用此功能。您可以在<settingsLink>設定</settingsLink>中進行更詳細的調整。",
 		"actions": {
 			"readFiles": {
-				"label": "讀取檔案和目錄",
-				"shortName": "讀取",
+				"label": "讀取",
 				"description": "允許存取電腦上的任何檔案。"
 			},
 			"editFiles": {
-				"label": "編輯檔案",
-				"shortName": "編輯",
+				"label": "編輯",
 				"description": "允許修改電腦上的任何檔案。"
 			},
 			"executeCommands": {
-				"label": "執行已核准的命令",
-				"shortName": "命令",
+				"label": "命令",
 				"description": "允許執行已核准的終端機命令。您可以在設定面板中調整此設定。"
 			},
 			"useBrowser": {
-				"label": "使用瀏覽器",
-				"shortName": "瀏覽器",
+				"label": "瀏覽器",
 				"description": "允許在無介面瀏覽器中啟動並與任何網站互動。"
 			},
 			"useMcp": {
-				"label": "使用 MCP 伺服器",
-				"shortName": "MCP",
+				"label": "MCP",
 				"description": "允許使用已設定的 MCP 伺服器,這些伺服器可能會修改檔案系統或與 API 進行互動。"
 			},
 			"switchModes": {
-				"label": "切換模式",
-				"shortName": "模式",
+				"label": "模式",
 				"description": "允許在不需要核准的情況下自動切換不同模式。"
 			},
 			"subtasks": {
-				"label": "建立和完成子工作",
-				"shortName": "子工作",
+				"label": "回力鏢",
 				"description": "允許在不需要核准的情況下建立和完成子工作。"
 			},
 			"retryRequests": {
-				"label": "重試失敗的請求",
-				"shortName": "重試",
+				"label": "重試",
 				"description": "當服務提供者回傳錯誤回應時自動重試失敗的 API 請求。"
 			}
 		}

+ 2 - 3
webview-ui/src/i18n/locales/zh-TW/settings.json

@@ -53,8 +53,7 @@
 		},
 		"browser": {
 			"label": "始終核准瀏覽器操作",
-			"description": "自動執行瀏覽器操作而無需核准",
-			"note": "注意:僅適用於模型支援電腦使用時"
+			"description": "自動執行瀏覽器操作而無需核准 — 注意:僅適用於模型支援電腦使用時"
 		},
 		"retry": {
 			"label": "始終重試失敗的 API 請求",
@@ -70,7 +69,7 @@
 			"description": "自動在不同模式之間切換而無需核准"
 		},
 		"subtasks": {
-			"label": "始終核准子工作的建立和完成",
+			"label": "子任務",
 			"description": "允許建立和完成子工作而無需核准"
 		},
 		"execute": {