From 2e6a5237b4aeb135eee5efde2577c8c5964542fc Mon Sep 17 00:00:00 2001 From: zhangtony239 Date: Sat, 12 Apr 2025 18:03:45 +0800 Subject: [PATCH 1/4] draft: try to add a setting button --- src/exports/roo-code.d.ts | 1 + src/exports/types.ts | 1 + src/schemas/index.ts | 4 +++ src/shared/ExtensionMessage.ts | 1 + src/shared/WebviewMessage.ts | 1 + .../components/settings/InterfaceSettings.tsx | 36 +++++++++++++++++++ .../src/components/settings/SettingsView.tsx | 14 ++++++++ .../src/context/ExtensionStateContext.tsx | 3 ++ 8 files changed, 61 insertions(+) create mode 100644 webview-ui/src/components/settings/InterfaceSettings.tsx diff --git a/src/exports/roo-code.d.ts b/src/exports/roo-code.d.ts index e137b4c4822..1246b33277e 100644 --- a/src/exports/roo-code.d.ts +++ b/src/exports/roo-code.d.ts @@ -257,6 +257,7 @@ type GlobalSettings = { cachedChromeHostUrl?: string | undefined enableCheckpoints?: boolean | undefined checkpointStorage?: ("task" | "workspace") | undefined + showGreeting?: boolean | undefined ttsEnabled?: boolean | undefined ttsSpeed?: number | undefined soundEnabled?: boolean | undefined diff --git a/src/exports/types.ts b/src/exports/types.ts index 8fa340f719e..77eaa2744f0 100644 --- a/src/exports/types.ts +++ b/src/exports/types.ts @@ -260,6 +260,7 @@ type GlobalSettings = { cachedChromeHostUrl?: string | undefined enableCheckpoints?: boolean | undefined checkpointStorage?: ("task" | "workspace") | undefined + showGreeting?: boolean | undefined ttsEnabled?: boolean | undefined ttsSpeed?: number | undefined soundEnabled?: boolean | undefined diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 64eec0bf644..1ffacaff065 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -532,6 +532,8 @@ export const globalSettingsSchema = z.object({ enableCheckpoints: z.boolean().optional(), checkpointStorage: checkpointStoragesSchema.optional(), + showGreeting: z.boolean().optional(), + ttsEnabled: z.boolean().optional(), ttsSpeed: z.number().optional(), soundEnabled: z.boolean().optional(), @@ -608,6 +610,8 @@ const globalSettingsRecord: GlobalSettingsRecord = { enableCheckpoints: undefined, checkpointStorage: undefined, + showGreeting: undefined, + ttsEnabled: undefined, ttsSpeed: undefined, soundEnabled: undefined, diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 4fd8ccf2884..822e4239b57 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -143,6 +143,7 @@ export type ExtensionState = Pick< | "remoteBrowserHost" // | "enableCheckpoints" // Optional in GlobalSettings, required here. // | "checkpointStorage" // Optional in GlobalSettings, required here. + | "showGreeting" | "ttsEnabled" | "ttsSpeed" | "soundEnabled" diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index 93b69447397..6cfd5823581 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -126,6 +126,7 @@ export interface WebviewMessage { | "maxReadFileLine" | "searchFiles" | "toggleApiConfigPin" + | "showGreeting" text?: string disabled?: boolean askResponse?: ClineAskResponse diff --git a/webview-ui/src/components/settings/InterfaceSettings.tsx b/webview-ui/src/components/settings/InterfaceSettings.tsx new file mode 100644 index 00000000000..8321c303355 --- /dev/null +++ b/webview-ui/src/components/settings/InterfaceSettings.tsx @@ -0,0 +1,36 @@ +import { HTMLAttributes } from "react" +import { useAppTranslation } from "@/i18n/TranslationContext" +import { Monitor } from "lucide-react" + +import { cn } from "@/lib/utils" +import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react" + +import { SetCachedStateField } from "./types" +import { SectionHeader } from "./SectionHeader" +import { Section } from "./Section" + +type InterfaceSettingsProps = HTMLAttributes & { + showGreeting?: boolean + setCachedStateField: SetCachedStateField<"showGreeting"> +} + +export const InterfaceSettings = ({ showGreeting, setCachedStateField, ...props }: InterfaceSettingsProps) => { + const { t } = useAppTranslation() + + return ( +
+ +
+ +
{t("settings:sections.interface")}
+
+
+ +
+ setCachedStateField("showGreeting", e.target.checked)}> + {t("settings:sections.interface:showGreeting")} + +
+
+ ) +} diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index c8b24e0dcd5..2e0bf6ece38 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -14,6 +14,7 @@ import { Globe, Info, LucideIcon, + Monitor, } from "lucide-react" import { CaretSortIcon } from "@radix-ui/react-icons" @@ -47,6 +48,7 @@ import ApiOptions from "./ApiOptions" import { AutoApproveSettings } from "./AutoApproveSettings" import { BrowserSettings } from "./BrowserSettings" import { CheckpointSettings } from "./CheckpointSettings" +import { InterfaceSettings } from "./InterfaceSettings" import { NotificationSettings } from "./NotificationSettings" import { ContextManagementSettings } from "./ContextManagementSettings" import { TerminalSettings } from "./TerminalSettings" @@ -65,6 +67,7 @@ const sectionNames = [ "autoApprove", "browser", "checkpoints", + "interface", "notifications", "contextManagement", "terminal", @@ -139,6 +142,7 @@ const SettingsView = forwardRef(({ onDone, t showRooIgnoredFiles, remoteBrowserEnabled, maxReadFileLine, + showGreeting, } = cachedState // Make sure apiConfiguration is initialized and managed by SettingsView. @@ -262,6 +266,7 @@ const SettingsView = forwardRef(({ onDone, t vscode.postMessage({ type: "alwaysAllowSubtasks", bool: alwaysAllowSubtasks }) vscode.postMessage({ type: "upsertApiConfiguration", text: currentApiConfigName, apiConfiguration }) vscode.postMessage({ type: "telemetrySetting", text: telemetrySetting }) + vscode.postMessage({ type: "showGreeting", bool: showGreeting }) setChangeDetected(false) } } @@ -290,6 +295,7 @@ const SettingsView = forwardRef(({ onDone, t const autoApproveRef = useRef(null) const browserRef = useRef(null) const checkpointsRef = useRef(null) + const interfaceRef = useRef(null) const notificationsRef = useRef(null) const contextManagementRef = useRef(null) const terminalRef = useRef(null) @@ -305,6 +311,7 @@ const SettingsView = forwardRef(({ onDone, t { id: "browser", icon: SquareMousePointer, ref: browserRef }, { id: "checkpoints", icon: GitBranch, ref: checkpointsRef }, { id: "notifications", icon: Bell, ref: notificationsRef }, + { id: "interface", icon: Monitor, ref: interfaceRef}, { id: "contextManagement", icon: Database, ref: contextManagementRef }, { id: "terminal", icon: SquareTerminal, ref: terminalRef }, { id: "advanced", icon: Cog, ref: advancedRef }, @@ -479,6 +486,13 @@ const SettingsView = forwardRef(({ onDone, t /> +
+ +
+
setPinnedApiConfigs: (value: Record) => void togglePinnedApiConfig: (configName: string) => void + setShowGreeting: (value: boolean) => void } export const ExtensionStateContext = createContext(undefined) @@ -123,6 +124,7 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode clineMessages: [], taskHistory: [], shouldShowAnnouncement: false, + showGreeting: true, allowedCommands: [], soundEnabled: false, soundVolume: 0.5, @@ -316,6 +318,7 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode setAwsUsePromptCache: (value) => setState((prevState) => ({ ...prevState, awsUsePromptCache: value })), setMaxReadFileLine: (value) => setState((prevState) => ({ ...prevState, maxReadFileLine: value })), setPinnedApiConfigs: (value) => setState((prevState) => ({ ...prevState, pinnedApiConfigs: value })), + setShowGreeting: (value) => setState((prevState) => ({ ...prevState, shouldShowGreeting: value })), togglePinnedApiConfig: (configId) => setState((prevState) => { const currentPinned = prevState.pinnedApiConfigs || {} From 22a3028d98b02857c42fe075416d47e45dfe99e3 Mon Sep 17 00:00:00 2001 From: zhangtony239 Date: Sun, 13 Apr 2025 00:41:17 +0800 Subject: [PATCH 2/4] Add showGreeting setting and related changes --- src/core/webview/ClineProvider.ts | 3 +++ src/core/webview/webviewMessageHandler.ts | 5 ++++ webview-ui/src/components/chat/ChatView.tsx | 12 +++++---- .../components/settings/InterfaceSettings.tsx | 26 +++++++++++-------- .../src/components/settings/SettingsView.tsx | 14 +++++----- .../src/context/ExtensionStateContext.tsx | 2 +- 6 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 66f7a4ef0ee..9633dd11efb 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -1242,6 +1242,7 @@ export class ClineProvider extends EventEmitter implements telemetrySetting, showRooIgnoredFiles, language, + showGreeting, maxReadFileLine, } = await this.getState() @@ -1323,6 +1324,7 @@ export class ClineProvider extends EventEmitter implements renderContext: this.renderContext, maxReadFileLine: maxReadFileLine ?? 500, settingsImportedAt: this.settingsImportedAt, + showGreeting: showGreeting ?? true, // Ensure showGreeting is included in the returned state } } @@ -1410,6 +1412,7 @@ export class ClineProvider extends EventEmitter implements telemetrySetting: stateValues.telemetrySetting || "unset", showRooIgnoredFiles: stateValues.showRooIgnoredFiles ?? true, maxReadFileLine: stateValues.maxReadFileLine ?? 500, + showGreeting: stateValues.showGreeting ?? true, // Ensure showGreeting is returned by getState } } diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index ac78088f4c1..3f264d2a876 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -645,6 +645,11 @@ export const webviewMessageHandler = async (provider: ClineProvider, message: We await updateGlobalState("diffEnabled", diffEnabled) await provider.postStateToWebview() break + case "showGreeting": + const showGreeting = message.bool ?? true + await updateGlobalState("showGreeting", showGreeting) + await provider.postStateToWebview() + break case "enableCheckpoints": const enableCheckpoints = message.bool ?? true await updateGlobalState("enableCheckpoints", enableCheckpoints) diff --git a/webview-ui/src/components/chat/ChatView.tsx b/webview-ui/src/components/chat/ChatView.tsx index e38ad28c93d..54f7f56e59d 100644 --- a/webview-ui/src/components/chat/ChatView.tsx +++ b/webview-ui/src/components/chat/ChatView.tsx @@ -69,6 +69,7 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie alwaysAllowSubtasks, customModes, telemetrySetting, + showGreeting, } = useExtensionState() //const task = messages.length > 0 ? (messages[0].say === "task" ? messages[0] : undefined) : undefined) : undefined @@ -95,7 +96,6 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie const [showScrollToBottom, setShowScrollToBottom] = useState(false) const [isAtBottom, setIsAtBottom] = useState(false) const lastTtsRef = useRef("") - const [wasStreaming, setWasStreaming] = useState(false) const [showCheckpointWarning, setShowCheckpointWarning] = useState(false) @@ -1207,10 +1207,12 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie }}> {telemetrySetting === "unset" && } {showAnnouncement && } -
-

{t("chat:greeting")}

-

{t("chat:aboutMe")}

-
+ {showGreeting === true && ( +
+

{t("chat:greeting")}

+

{t("chat:aboutMe")}

+
+ )} {taskHistory.length > 0 && }
)} diff --git a/webview-ui/src/components/settings/InterfaceSettings.tsx b/webview-ui/src/components/settings/InterfaceSettings.tsx index 8321c303355..ad80549165e 100644 --- a/webview-ui/src/components/settings/InterfaceSettings.tsx +++ b/webview-ui/src/components/settings/InterfaceSettings.tsx @@ -1,9 +1,7 @@ import { HTMLAttributes } from "react" import { useAppTranslation } from "@/i18n/TranslationContext" -import { Monitor } from "lucide-react" - -import { cn } from "@/lib/utils" import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react" +import { Monitor } from "lucide-react" import { SetCachedStateField } from "./types" import { SectionHeader } from "./SectionHeader" @@ -11,25 +9,31 @@ import { Section } from "./Section" type InterfaceSettingsProps = HTMLAttributes & { showGreeting?: boolean - setCachedStateField: SetCachedStateField<"showGreeting"> + setCachedStateField: SetCachedStateField<"showGreeting"> } export const InterfaceSettings = ({ showGreeting, setCachedStateField, ...props }: InterfaceSettingsProps) => { const { t } = useAppTranslation() - return ( -
+
{t("settings:sections.interface")}
- -
- setCachedStateField("showGreeting", e.target.checked)}> - {t("settings:sections.interface:showGreeting")} - + +
+
+ setCachedStateField("showGreeting", e.target.checked)}> + {t("settings:interface.showgreeting")} + +
+ {t("settings:interface.showgreeting.description")} +
+
) diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index 2e0bf6ece38..35b78cfc83f 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -310,8 +310,8 @@ const SettingsView = forwardRef(({ onDone, t { id: "autoApprove", icon: CheckCheck, ref: autoApproveRef }, { id: "browser", icon: SquareMousePointer, ref: browserRef }, { id: "checkpoints", icon: GitBranch, ref: checkpointsRef }, + { id: "interface", icon: Monitor, ref: interfaceRef }, { id: "notifications", icon: Bell, ref: notificationsRef }, - { id: "interface", icon: Monitor, ref: interfaceRef}, { id: "contextManagement", icon: Database, ref: contextManagementRef }, { id: "terminal", icon: SquareTerminal, ref: terminalRef }, { id: "advanced", icon: Cog, ref: advancedRef }, @@ -324,6 +324,7 @@ const SettingsView = forwardRef(({ onDone, t autoApproveRef, browserRef, checkpointsRef, + interfaceRef, notificationsRef, contextManagementRef, terminalRef, @@ -476,6 +477,10 @@ const SettingsView = forwardRef(({ onDone, t />
+
+ +
+
(({ onDone, t />
-
- -
-
setState((prevState) => ({ ...prevState, awsUsePromptCache: value })), setMaxReadFileLine: (value) => setState((prevState) => ({ ...prevState, maxReadFileLine: value })), setPinnedApiConfigs: (value) => setState((prevState) => ({ ...prevState, pinnedApiConfigs: value })), - setShowGreeting: (value) => setState((prevState) => ({ ...prevState, shouldShowGreeting: value })), + setShowGreeting: (value) => setState((prevState) => ({ ...prevState, showGreeting: value })), togglePinnedApiConfig: (configId) => setState((prevState) => { const currentPinned = prevState.pinnedApiConfigs || {} From 0f174f9a0493dc988c47ffeebc243a3d42b97d3b Mon Sep 17 00:00:00 2001 From: zhangtony239 Date: Sun, 13 Apr 2025 01:23:38 +0800 Subject: [PATCH 3/4] i18n: showGreeting --- webview-ui/src/components/settings/InterfaceSettings.tsx | 2 +- webview-ui/src/i18n/locales/ca/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/de/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/en/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/es/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/fr/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/hi/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/it/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/ja/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/ko/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/pl/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/pt-BR/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/tr/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/vi/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/zh-CN/settings.json | 9 ++++++++- webview-ui/src/i18n/locales/zh-TW/settings.json | 9 ++++++++- 16 files changed, 121 insertions(+), 16 deletions(-) diff --git a/webview-ui/src/components/settings/InterfaceSettings.tsx b/webview-ui/src/components/settings/InterfaceSettings.tsx index ad80549165e..d7e959a75a8 100644 --- a/webview-ui/src/components/settings/InterfaceSettings.tsx +++ b/webview-ui/src/components/settings/InterfaceSettings.tsx @@ -28,7 +28,7 @@ export const InterfaceSettings = ({ showGreeting, setCachedStateField, ...props setCachedStateField("showGreeting", e.target.checked)}> - {t("settings:interface.showgreeting")} + {t("settings:interface.showgreeting.label")}
{t("settings:interface.showgreeting.description")} diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index 390362f099b..0ca4b479579 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -29,7 +29,8 @@ "advanced": "Avançat", "experimental": "Funcions experimentals", "language": "Idioma", - "about": "Sobre Roo Code" + "about": "Sobre Roo Code", + "interface": "Interfície" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "ARN personalitzat", "useCustomArn": "Utilitza ARN personalitzat..." + }, + "interface": { + "showgreeting": { + "label": "Mostrar missatge de benvinguda", + "description": "Quan està activat, Roo mostrarà un missatge de benvinguda i introducció." + } } } diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index 59ea1f6f1ea..25077cb57c4 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -29,7 +29,8 @@ "advanced": "Erweitert", "experimental": "Experimentelle Funktionen", "language": "Sprache", - "about": "Über Roo Code" + "about": "Über Roo Code", + "interface": "Oberfläche" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "Benutzerdefinierte ARN", "useCustomArn": "Benutzerdefinierte ARN verwenden..." + }, + "interface": { + "showgreeting": { + "label": "Begrüßungsnachricht anzeigen", + "description": "Wenn aktiviert, zeigt Roo eine Willkommensnachricht und Einführung an." + } } } diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index 5ba66f34e27..72472df1552 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -29,7 +29,8 @@ "advanced": "Advanced", "experimental": "Experimental Features", "language": "Language", - "about": "About Roo Code" + "about": "About Roo Code", + "interface": "Interface" }, "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.", @@ -469,5 +470,11 @@ "labels": { "customArn": "Custom ARN", "useCustomArn": "Use custom ARN..." + }, + "interface": { + "showgreeting": { + "label": "Show greeting message", + "description": "When enabled, Roo will display a welcome message and introduction." + } } } diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index 256c4d73f3b..bd776dc571e 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -29,7 +29,8 @@ "advanced": "Avanzado", "experimental": "Funciones experimentales", "language": "Idioma", - "about": "Acerca de Roo Code" + "about": "Acerca de Roo Code", + "interface": "Interfaz" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "ARN personalizado", "useCustomArn": "Usar ARN personalizado..." + }, + "interface": { + "showgreeting": { + "label": "Mostrar mensaje de bienvenida", + "description": "Cuando está habilitado, Roo mostrará un mensaje de bienvenida e introducción." + } } } diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index 23d99a057d4..52a77afd500 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -29,7 +29,8 @@ "advanced": "Avancé", "experimental": "Fonctionnalités expérimentales", "language": "Langue", - "about": "À propos de Roo Code" + "about": "À propos de Roo Code", + "interface": "Interface" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "ARN personnalisé", "useCustomArn": "Utiliser un ARN personnalisé..." + }, + "interface": { + "showgreeting": { + "label": "Afficher le message de bienvenue", + "description": "Lorsque cette option est activée, Roo affichera un message de bienvenue et une introduction." + } } } diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 59556718c11..ab6ad37bc9b 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -29,7 +29,8 @@ "advanced": "उन्नत", "experimental": "प्रायोगिक सुविधाएँ", "language": "भाषा", - "about": "Roo Code के बारे में" + "about": "Roo Code के बारे में", + "interface": "इंटरफ़ेस" }, "autoApprove": { "description": "Roo को अनुमोदन की आवश्यकता के बिना स्वचालित रूप से ऑपरेशन करने की अनुमति दें। इन सेटिंग्स को केवल तभी सक्षम करें जब आप AI पर पूरी तरह से भरोसा करते हों और संबंधित सुरक्षा जोखिमों को समझते हों।", @@ -470,5 +471,11 @@ "labels": { "customArn": "कस्टम ARN", "useCustomArn": "कस्टम ARN का उपयोग करें..." + }, + "interface": { + "showgreeting": { + "label": "स्वागत संदेश दिखाएँ", + "description": "जब सक्षम किया जाता है, तो Roo एक स्वागत संदेश और परिचय प्रदर्शित करेगा।" + } } } diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 30340b5e29a..7bbd30d0191 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -29,7 +29,8 @@ "advanced": "Avanzate", "experimental": "Funzionalità sperimentali", "language": "Lingua", - "about": "Informazioni su Roo Code" + "about": "Informazioni su Roo Code", + "interface": "Interfaccia" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "ARN personalizzato", "useCustomArn": "Usa ARN personalizzato..." + }, + "interface": { + "showgreeting": { + "label": "Mostra messaggio di benvenuto", + "description": "Quando abilitato, Roo mostrerà un messaggio di benvenuto e un'introduzione." + } } } diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index 03e2838d091..19991ba7892 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -29,7 +29,8 @@ "advanced": "詳細設定", "experimental": "実験的機能", "language": "言語", - "about": "Roo Codeについて" + "about": "Roo Codeについて", + "interface": "インターフェース" }, "autoApprove": { "description": "Rooが承認なしで自動的に操作を実行できるようにします。AIを完全に信頼し、関連するセキュリティリスクを理解している場合にのみ、これらの設定を有効にしてください。", @@ -470,5 +471,11 @@ "labels": { "customArn": "カスタム ARN", "useCustomArn": "カスタム ARN を使用..." + }, + "interface": { + "showgreeting": { + "label": "ようこそメッセージを表示", + "description": "有効にすると、Rooはようこそメッセージと紹介を表示します。" + } } } diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index b31df80304e..b7d1ed7593e 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -29,7 +29,8 @@ "advanced": "고급", "experimental": "실험적 기능", "language": "언어", - "about": "Roo Code 정보" + "about": "Roo Code 정보", + "interface": "인터페이스" }, "autoApprove": { "description": "Roo가 승인 없이 자동으로 작업을 수행할 수 있도록 허용합니다. AI를 완전히 신뢰하고 관련 보안 위험을 이해하는 경우에만 이러한 설정을 활성화하세요.", @@ -470,5 +471,11 @@ "labels": { "customArn": "사용자 지정 ARN", "useCustomArn": "사용자 지정 ARN 사용..." + }, + "interface": { + "showgreeting": { + "label": "환영 메시지 표시", + "description": "활성화하면 Roo가 환영 메시지와 소개를 표시합니다." + } } } diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 7f12e21360a..391e2753c68 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -29,7 +29,8 @@ "advanced": "Zaawansowane", "experimental": "Funkcje eksperymentalne", "language": "Język", - "about": "O Roo Code" + "about": "O Roo Code", + "interface": "Interfejs" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "Niestandardowy ARN", "useCustomArn": "Użyj niestandardowego ARN..." + }, + "interface": { + "showgreeting": { + "label": "Pokaż wiadomość powitalną", + "description": "Gdy włączone, Roo wyświetli wiadomość powitalną i wprowadzenie." + } } } diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index c19a832a57d..bace964b9b7 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -29,7 +29,8 @@ "advanced": "Avançado", "experimental": "Recursos experimentais", "language": "Idioma", - "about": "Sobre o Roo Code" + "about": "Sobre o Roo Code", + "interface": "Interface" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "ARN personalizado", "useCustomArn": "Usar ARN personalizado..." + }, + "interface": { + "showgreeting": { + "label": "Mostrar mensagem de boas-vindas", + "description": "Quando ativado, o Roo exibirá uma mensagem de boas-vindas e introdução." + } } } diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 9ad9fedc880..8e1319b7cc2 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -29,7 +29,8 @@ "advanced": "Gelişmiş", "experimental": "Deneysel Özellikler", "language": "Dil", - "about": "Roo Code Hakkında" + "about": "Roo Code Hakkında", + "interface": "Arayüz" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "Özel ARN", "useCustomArn": "Özel ARN kullan..." + }, + "interface": { + "showgreeting": { + "label": "Karşılama mesajını göster", + "description": "Etkinleştirildiğinde, Roo bir karşılama mesajı ve tanıtım gösterecektir." + } } } diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 24eb91d4a2e..e2c59e910ba 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -29,7 +29,8 @@ "advanced": "Nâng cao", "experimental": "Tính năng thử nghiệm", "language": "Ngôn ngữ", - "about": "Về Roo Code" + "about": "Về Roo Code", + "interface": "Giao diện" }, "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.", @@ -470,5 +471,11 @@ "labels": { "customArn": "ARN tùy chỉnh", "useCustomArn": "Sử dụng ARN tùy chỉnh..." + }, + "interface": { + "showgreeting": { + "label": "Hiển thị thông báo chào mừng", + "description": "Khi được bật, Roo sẽ hiển thị thông báo chào mừng và giới thiệu." + } } } diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index fd1919a5c31..09ab9cd2038 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -21,8 +21,9 @@ "sections": { "providers": "提供商", "autoApprove": "自动批准", - "browser": "浏览器交互设置", + "browser": "浏览器交互", "checkpoints": "检查点", + "interface": "界面内容", "notifications": "通知", "contextManagement": "上下文管理", "terminal": "终端", @@ -470,5 +471,11 @@ "labels": { "customArn": "自定义 ARN", "useCustomArn": "使用自定义 ARN..." + }, + "interface": { + "showgreeting": { + "label": "显示欢迎消息", + "description": "启用后,Roo 将显示欢迎语和简介。" + } } } diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index baa4b614d86..a33294b99d8 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -29,7 +29,8 @@ "advanced": "進階", "experimental": "實驗性功能", "language": "語言", - "about": "關於 Roo Code" + "about": "關於 Roo Code", + "interface": "介面" }, "autoApprove": { "description": "允許 Roo 無需核准即執行操作。僅在您完全信任 AI 並了解相關安全風險時啟用這些設定。", @@ -469,5 +470,11 @@ "labels": { "customArn": "自訂 ARN", "useCustomArn": "使用自訂 ARN..." + }, + "interface": { + "showgreeting": { + "label": "顯示歡迎訊息", + "description": "啟用後,Roo 將顯示歡迎訊息與介紹。" + } } } From 0cd6d60a89e74be7b014f25fa1ba9e0ef1a7188b Mon Sep 17 00:00:00 2001 From: zhangtony239 Date: Sun, 13 Apr 2025 01:25:13 +0800 Subject: [PATCH 4/4] fix chinese i18n 'dot' --- webview-ui/src/i18n/locales/zh-CN/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index 09ab9cd2038..6114e885af2 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -258,7 +258,7 @@ "checkpoints": { "enable": { "label": "启用自动检查点", - "description": "开启后自动创建任务检查点,方便回溯修改" + "description": "开启后自动创建任务检查点,方便回溯修改。" } }, "notifications": {