diff --git a/assets/images/roo-logo.svg b/assets/images/roo-logo.svg new file mode 100644 index 0000000000..d2af8edd7a --- /dev/null +++ b/assets/images/roo-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index dba450f9ae..f2b4391051 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -655,7 +655,7 @@ export class ClineProvider extends EventEmitter implements Roo Code @@ -1216,7 +1216,6 @@ export class ClineProvider extends EventEmitter implements telemetrySetting, showRooIgnoredFiles, language, - showGreeting, maxReadFileLine, } = await this.getState() @@ -1297,7 +1296,6 @@ 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 } } @@ -1385,7 +1383,6 @@ 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 51ddb8dd0b..863d0aed51 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -645,11 +645,6 @@ 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/src/exports/roo-code.d.ts b/src/exports/roo-code.d.ts index 85f7e8733e..70ae8b08b4 100644 --- a/src/exports/roo-code.d.ts +++ b/src/exports/roo-code.d.ts @@ -262,7 +262,6 @@ type GlobalSettings = { remoteBrowserHost?: string | undefined cachedChromeHostUrl?: string | undefined enableCheckpoints?: boolean | 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 e301f7bfd0..878f0b95b2 100644 --- a/src/exports/types.ts +++ b/src/exports/types.ts @@ -265,7 +265,6 @@ type GlobalSettings = { remoteBrowserHost?: string | undefined cachedChromeHostUrl?: string | undefined enableCheckpoints?: boolean | 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 aeab4f0703..48f5b2989e 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -529,8 +529,6 @@ export const globalSettingsSchema = z.object({ enableCheckpoints: z.boolean().optional(), - showGreeting: z.boolean().optional(), - ttsEnabled: z.boolean().optional(), ttsSpeed: z.number().optional(), soundEnabled: z.boolean().optional(), @@ -606,8 +604,6 @@ const globalSettingsRecord: GlobalSettingsRecord = { enableCheckpoints: undefined, - showGreeting: undefined, - ttsEnabled: undefined, ttsSpeed: undefined, soundEnabled: undefined, diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index c2f2d6b1bc..a568e9d8ba 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -142,7 +142,6 @@ export type ExtensionState = Pick< | "remoteBrowserEnabled" | "remoteBrowserHost" // | "enableCheckpoints" // Optional in GlobalSettings, required here. - | "showGreeting" | "ttsEnabled" | "ttsSpeed" | "soundEnabled" diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index ff071ff2ee..f1ab993679 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -125,7 +125,6 @@ export interface WebviewMessage { | "maxReadFileLine" | "searchFiles" | "toggleApiConfigPin" - | "showGreeting" text?: string disabled?: boolean askResponse?: ClineAskResponse diff --git a/webview-ui/src/__tests__/ContextWindowProgress.test.tsx b/webview-ui/src/__tests__/ContextWindowProgress.test.tsx index 9386173aa2..bf0af4598d 100644 --- a/webview-ui/src/__tests__/ContextWindowProgress.test.tsx +++ b/webview-ui/src/__tests__/ContextWindowProgress.test.tsx @@ -1,4 +1,5 @@ -import React from "react" +// npx jest src/__tests__/ContextWindowProgress.test.tsx + import { render, screen } from "@testing-library/react" import "@testing-library/jest-dom" import TaskHeader from "../components/chat/TaskHeader" @@ -68,7 +69,9 @@ describe("ContextWindowProgress", () => { }) // Check for basic elements - expect(screen.getByTestId("context-window-label")).toBeInTheDocument() + // The context-window-label is not part of the ContextWindowProgress component + // but rather part of the parent TaskHeader component in expanded state + expect(screen.getByTestId("context-tokens-count")).toBeInTheDocument() expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("1000") // contextTokens // The actual context window might be different than what we pass in // due to the mock returning a default value from the API config @@ -83,7 +86,8 @@ describe("ContextWindowProgress", () => { // In the current implementation, the component is still displayed with zero values // rather than being hidden completely - expect(screen.getByTestId("context-window-label")).toBeInTheDocument() + // The context-window-label is not part of the ContextWindowProgress component + expect(screen.getByTestId("context-tokens-count")).toBeInTheDocument() expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("0") }) @@ -117,8 +121,8 @@ describe("ContextWindowProgress", () => { // We can't reliably test computed styles in JSDOM, so we'll just check // that the component appears to be working correctly by checking for expected elements - expect(screen.getByTestId("context-window-label")).toBeInTheDocument() + // The context-window-label is not part of the ContextWindowProgress component + expect(screen.getByTestId("context-tokens-count")).toBeInTheDocument() expect(screen.getByTestId("context-tokens-count")).toHaveTextContent("1000") - expect(screen.getByText("1000")).toBeInTheDocument() }) }) diff --git a/webview-ui/src/components/chat/ChatRow.tsx b/webview-ui/src/components/chat/ChatRow.tsx index c468dfccfc..e2c7495b65 100644 --- a/webview-ui/src/components/chat/ChatRow.tsx +++ b/webview-ui/src/components/chat/ChatRow.tsx @@ -854,11 +854,10 @@ export const ChatRowContent = ({ case "user_feedback": return (
0 ? (messages[0].say === "task" ? messages[0] : undefined) : undefined) : undefined @@ -1224,12 +1224,8 @@ const ChatViewComponent: React.ForwardRefRenderFunction {telemetrySetting === "unset" && } {showAnnouncement && } - {showGreeting === true && ( -
-

{t("chat:greeting")}

-

{t("chat:aboutMe")}

-
- )} + + {taskHistory.length > 0 && }
)} diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx index 2dcf5fd09c..6a2c91b303 100644 --- a/webview-ui/src/components/chat/TaskHeader.tsx +++ b/webview-ui/src/components/chat/TaskHeader.tsx @@ -1,4 +1,4 @@ -import React, { memo, useEffect, useMemo, useRef, useState } from "react" +import React, { memo, useMemo, useRef, useState } from "react" import { useWindowSize } from "react-use" import { VSCodeButton } from "@vscode/webview-ui-toolkit/react" import prettyBytes from "pretty-bytes" @@ -44,267 +44,87 @@ const TaskHeader: React.FC = ({ const { t } = useTranslation() const { apiConfiguration, currentTaskItem } = useExtensionState() const { selectedModelInfo } = useMemo(() => normalizeApiConfiguration(apiConfiguration), [apiConfiguration]) - const [isTaskExpanded, setIsTaskExpanded] = useState(true) - const [isTextExpanded, setIsTextExpanded] = useState(false) - const [showSeeMore, setShowSeeMore] = useState(false) + const [isTaskExpanded, setIsTaskExpanded] = useState(false) + const textContainerRef = useRef(null) const textRef = useRef(null) const contextWindow = selectedModelInfo?.contextWindow || 1 - /* - When dealing with event listeners in React components that depend on state - variables, we face a challenge. We want our listener to always use the most - up-to-date version of a callback function that relies on current state, but - we don't want to constantly add and remove event listeners as that function - updates. This scenario often arises with resize listeners or other window - events. Simply adding the listener in a useEffect with an empty dependency - array risks using stale state, while including the callback in the - dependencies can lead to unnecessary re-registrations of the listener. There - are react hook libraries that provide a elegant solution to this problem by - utilizing the useRef hook to maintain a reference to the latest callback - function without triggering re-renders or effect re-runs. This approach - ensures that our event listener always has access to the most current state - while minimizing performance overhead and potential memory leaks from - multiple listener registrations. - - Sources - - https://usehooks-ts.com/react-hook/use-event-listener - - https://streamich.github.io/react-use/?path=/story/sensors-useevent--docs - - https://github.com/streamich/react-use/blob/master/src/useEvent.ts - - https://stackoverflow.com/questions/55565444/how-to-register-event-with-useeffect-hooks - - Before: - - const updateMaxHeight = useCallback(() => { - if (isExpanded && textContainerRef.current) { - const maxHeight = window.innerHeight * (3 / 5) - textContainerRef.current.style.maxHeight = `${maxHeight}px` - } - }, [isExpanded]) - - useEffect(() => { - updateMaxHeight() - }, [isExpanded, updateMaxHeight]) - - useEffect(() => { - window.removeEventListener("resize", updateMaxHeight) - window.addEventListener("resize", updateMaxHeight) - return () => { - window.removeEventListener("resize", updateMaxHeight) - } - }, [updateMaxHeight]) - - After: - */ - - const { height: windowHeight, width: windowWidth } = useWindowSize() - - useEffect(() => { - if (isTextExpanded && textContainerRef.current) { - const maxHeight = windowHeight * (1 / 2) - textContainerRef.current.style.maxHeight = `${maxHeight}px` - } - }, [isTextExpanded, windowHeight]) - - useEffect(() => { - if (textRef.current && textContainerRef.current) { - let textContainerHeight = textContainerRef.current.clientHeight - if (!textContainerHeight) { - textContainerHeight = textContainerRef.current.getBoundingClientRect().height - } - const isOverflowing = textRef.current.scrollHeight > textContainerHeight - // necessary to show see more button again if user resizes window to expand and then back to collapse - if (!isOverflowing) { - setIsTextExpanded(false) - } - setShowSeeMore(isOverflowing) - } - }, [task.text, windowWidth]) - - const isCostAvailable = useMemo(() => { - return totalCost !== null && totalCost !== undefined && totalCost > 0 && !isNaN(totalCost) - }, [totalCost]) + const { width: windowWidth } = useWindowSize() const shouldShowPromptCacheInfo = doesModelSupportPromptCache && apiConfiguration?.apiProvider !== "openrouter" return ( -
+
-
+ className={`rounded p-[10px] flex flex-col gap-[6px] relative z-1 outline hover:outline-vscode-badge-foreground hover:text-vscode-badge-foreground transition-color duration-500 ${!!isTaskExpanded ? "outline-vscode-badge-foreground text-vscode-badge-foreground" : "outline-vscode-badge-foreground/80 text-vscode-badge-foreground/80"}`}> +
setIsTaskExpanded(!isTaskExpanded)}> -
+
-
- +
+ {t("chat:task.title")} {!isTaskExpanded && ":"} - {!isTaskExpanded && ( - {highlightMentions(task.text, false)} - )} + {!isTaskExpanded && {highlightMentions(task.text, false)}}
- {!isTaskExpanded && isCostAvailable && ( -
- ${totalCost?.toFixed(4)} -
- )} +
+ {/* Collapsed state: Track context and cost if we have any */} + {!isTaskExpanded && contextWindow > 0 && ( +
+ + {!!totalCost && ( +
+ ${totalCost?.toFixed(2)} +
+ )} +
+ )} + {/* Expanded state: Show task text and images */} {isTaskExpanded && ( <>
+ className="-mt-0.5 text-vscode-font-size overflow-y-auto break-words break-anywhere relative">
{highlightMentions(task.text, false)}
- {!isTextExpanded && showSeeMore && ( -
-
-
setIsTextExpanded(!isTextExpanded)}> - {t("chat:task.seeMore")} -
-
- )}
- {isTextExpanded && showSeeMore && ( -
setIsTextExpanded(!isTextExpanded)}> - {t("chat:task.seeLess")} -
- )} - {task.images && task.images.length > 0 && } -
-
-
- {t("chat:task.tokens")} - - - {formatLargeNumber(tokensIn || 0)} - - - - {formatLargeNumber(tokensOut || 0)} - -
- {!isCostAvailable && } -
- +
{isTaskExpanded && contextWindow > 0 && (
+
+ + {t("chat:task.contextWindow")} + +
= ({ />
)} +
+
+ {t("chat:task.tokens")} + + + {formatLargeNumber(tokensIn || 0)} + + + + {formatLargeNumber(tokensOut || 0)} + +
+ {!totalCost && } +
{shouldShowPromptCacheInfo && (cacheReads !== undefined || cacheWrites !== undefined) && (
- {t("chat:task.cache")} + {t("chat:task.cache")} - - +{formatLargeNumber(cacheWrites || 0)} + + + {formatLargeNumber(cacheWrites || 0)} - + {formatLargeNumber(cacheReads || 0)}
)} - {isCostAvailable && ( + {!!totalCost && (
{t("chat:task.apiCost")} - ${totalCost?.toFixed(4)} + ${totalCost?.toFixed(2)}
@@ -362,8 +190,7 @@ export const highlightMentions = (text?: string, withShadow = true) => { return ( vscode.postMessage({ type: "openMention", text: part })}> @{part} @@ -439,22 +266,12 @@ const ContextWindowProgress = ({ contextWindow, contextTokens, maxTokens }: Cont return ( <> -
- - {t("chat:task.contextWindow")} - -
{formatLargeNumber(safeContextTokens)}
{/* Invisible overlay for hover area */}
@@ -465,13 +282,7 @@ const ContextWindowProgress = ({ contextWindow, contextTokens, maxTokens }: Cont
{/* Invisible overlay for current tokens section */}
{/* Current tokens used - darkest */} -
+
{/* Container for reserved tokens */}
{/* Invisible overlay for reserved section */}
{/* Reserved for output section - medium gray */} -
+
{/* Empty section (if any) */} @@ -517,13 +312,7 @@ const ContextWindowProgress = ({ contextWindow, contextTokens, maxTokens }: Cont
{/* Invisible overlay for available space */}
{ }} />, ) - expect(screen.getByText("$0.0500")).toBeInTheDocument() + expect(screen.getByText("$0.05")).toBeInTheDocument() }) it("should not display cost when totalCost is 0", () => { diff --git a/webview-ui/src/components/history/HistoryPreview.tsx b/webview-ui/src/components/history/HistoryPreview.tsx index 0bc4fb69a5..a49eda9998 100644 --- a/webview-ui/src/components/history/HistoryPreview.tsx +++ b/webview-ui/src/components/history/HistoryPreview.tsx @@ -2,99 +2,117 @@ import { memo } from "react" import { vscode } from "@/utils/vscode" import { formatLargeNumber, formatDate } from "@/utils/format" -import { Button, Checkbox } from "@/components/ui" +import { Button } from "@/components/ui" import { useAppTranslation } from "../../i18n/TranslationContext" import { CopyButton } from "./CopyButton" import { useTaskSearch } from "./useTaskSearch" +import { Trans } from "react-i18next" + type HistoryPreviewProps = { showHistoryView: () => void } const HistoryPreview = ({ showHistoryView }: HistoryPreviewProps) => { - const { tasks, showAllWorkspaces, setShowAllWorkspaces } = useTaskSearch() + const { tasks, showAllWorkspaces } = useTaskSearch() const { t } = useAppTranslation() return ( -
-
-
- - {t("history:recentTasks")} -
- -
-
- setShowAllWorkspaces(checked === true)} - variant="description" - /> - -
- {tasks.slice(0, 3).map((item) => ( -
vscode.postMessage({ type: "showTaskWithId", text: item.id })}> -
-
- - {formatDate(item.ts)} - - + <> +
+ {!!tasks.length && ( +
+
+ + {t("history:recentTasks")}
-
- {item.task} -
-
- - {t("history:tokens", { - in: formatLargeNumber(item.tokensIn || 0), - out: formatLargeNumber(item.tokensOut || 0), - })} - - {!!item.cacheWrites && ( - <> - {" • "} - - {t("history:cache", { - writes: formatLargeNumber(item.cacheWrites || 0), - reads: formatLargeNumber(item.cacheReads || 0), - })} - - - )} - {!!item.totalCost && ( - <> - {" • "} - {t("history:apiCost", { cost: item.totalCost?.toFixed(4) })} - + +
+ )} + {tasks.length === 0 && ( + <> +

+ + the docs + + ), + }} + /> +

+ + + + )} + {tasks.slice(0, 3).map((item) => ( +
vscode.postMessage({ type: "showTaskWithId", text: item.id })}> +
+
+ + {formatDate(item.ts)} + + +
+
+ {item.task} +
+
+ + {t("history:tokens", { + in: formatLargeNumber(item.tokensIn || 0), + out: formatLargeNumber(item.tokensOut || 0), + })} + + {!!item.cacheWrites && ( + <> + {" • "} + + {t("history:cache", { + writes: formatLargeNumber(item.cacheWrites || 0), + reads: formatLargeNumber(item.cacheReads || 0), + })} + + + )} + {!!item.totalCost && ( + <> + {" • "} + {t("history:apiCost", { cost: item.totalCost?.toFixed(4) })} + + )} +
+ {showAllWorkspaces && item.workspace && ( +
+ + {item.workspace} +
)}
- {showAllWorkspaces && item.workspace && ( -
- - {item.workspace} -
- )}
-
- ))} -
+ ))} +
+ ) } diff --git a/webview-ui/src/components/settings/InterfaceSettings.tsx b/webview-ui/src/components/settings/InterfaceSettings.tsx deleted file mode 100644 index d7e959a75a..0000000000 --- a/webview-ui/src/components/settings/InterfaceSettings.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { HTMLAttributes } from "react" -import { useAppTranslation } from "@/i18n/TranslationContext" -import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react" -import { Monitor } from "lucide-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:interface.showgreeting.label")} - -
- {t("settings:interface.showgreeting.description")} -
-
-
-
- ) -} diff --git a/webview-ui/src/components/settings/SettingsView.tsx b/webview-ui/src/components/settings/SettingsView.tsx index 2ec12cae18..485d63ec9d 100644 --- a/webview-ui/src/components/settings/SettingsView.tsx +++ b/webview-ui/src/components/settings/SettingsView.tsx @@ -13,7 +13,6 @@ import { Globe, Info, LucideIcon, - Monitor, } from "lucide-react" import { CaretSortIcon } from "@radix-ui/react-icons" @@ -47,7 +46,6 @@ 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,7 +63,6 @@ const sectionNames = [ "autoApprove", "browser", "checkpoints", - "interface", "notifications", "contextManagement", "terminal", @@ -138,7 +135,6 @@ const SettingsView = forwardRef(({ onDone, t showRooIgnoredFiles, remoteBrowserEnabled, maxReadFileLine, - showGreeting, } = cachedState // Make sure apiConfiguration is initialized and managed by SettingsView. @@ -261,7 +257,6 @@ 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,7 +285,6 @@ 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) @@ -304,7 +298,6 @@ 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: "contextManagement", icon: Database, ref: contextManagementRef }, { id: "terminal", icon: SquareTerminal, ref: terminalRef }, @@ -317,7 +310,6 @@ const SettingsView = forwardRef(({ onDone, t autoApproveRef, browserRef, checkpointsRef, - interfaceRef, notificationsRef, contextManagementRef, terminalRef, @@ -468,10 +460,6 @@ const SettingsView = forwardRef(({ onDone, t />
-
- -
-
{ + const { t } = useAppTranslation() + + const [imagesBaseUri] = useState(() => { + const w = window as any + return w.IMAGES_BASE_URI || "" + }) + + return ( +
+
+ Roo logo +
+

{t("chat:greeting")}

+
+ ) +} + +export default WelcomeView diff --git a/webview-ui/src/components/welcome/WelcomeView.tsx b/webview-ui/src/components/welcome/WelcomeView.tsx index 3b81f51b61..83f1670466 100644 --- a/webview-ui/src/components/welcome/WelcomeView.tsx +++ b/webview-ui/src/components/welcome/WelcomeView.tsx @@ -5,8 +5,10 @@ import { validateApiConfiguration } from "../../utils/validate" import { vscode } from "../../utils/vscode" import ApiOptions from "../settings/ApiOptions" import { Tab, TabContent } from "../common/Tab" +import { Trans } from "react-i18next" import { useAppTranslation } from "../../i18n/TranslationContext" import { getRequestyAuthUrl, getOpenRouterAuthUrl } from "../../oauth/urls" +import RooHero from "./RooHero" import knuthShuffle from "knuth-shuffle-seeded" const WelcomeView = () => { @@ -35,12 +37,14 @@ const WelcomeView = () => { return ( -

{t("welcome:greeting")}

-
{t("welcome:introduction")}
-
{t("welcome:chooseProvider")}
+ + +
+ +
-

{t("welcome:startRouter")}

+

{t("welcome:startRouter")}

{/* Define the providers */} @@ -71,10 +75,11 @@ const WelcomeView = () => { -
+
{provider.name}
+
{provider.name} { />
-
{t("welcome:or")}
-

{t("welcome:startCustom")}

+
{t("welcome:or")}
+

{t("welcome:startCustom")}

setPinnedApiConfigs: (value: Record) => void togglePinnedApiConfig: (configName: string) => void - setShowGreeting: (value: boolean) => void } export const ExtensionStateContext = createContext(undefined) @@ -124,7 +123,6 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode clineMessages: [], taskHistory: [], shouldShowAnnouncement: false, - showGreeting: true, allowedCommands: [], soundEnabled: false, soundVolume: 0.5, @@ -317,7 +315,6 @@ 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, showGreeting: value })), togglePinnedApiConfig: (configId) => setState((prevState) => { const currentPinned = prevState.pinnedApiConfigs || {} diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index 4274447432..3e1022ce3d 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Què pot fer Roo per tu?", + "greeting": "Benvingut a Roo", "task": { "title": "Tasca", "seeMore": "Veure més", @@ -65,7 +65,7 @@ "tooltip": "Cancel·la l'operació actual" }, "scrollToBottom": "Desplaça't al final del xat", - "aboutMe": "Gràcies als últims avenços en capacitats de codificació intel·ligent, puc gestionar tasques complexes de desenvolupament de programari pas a pas. Amb eines que em permeten crear i editar fitxers, explorar projectes complexos, utilitzar el navegador i executar ordres de terminal (després que em donis permís), puc ajudar-te de maneres que van més enllà de la finalització de codi o el suport tècnic. Fins i tot puc utilitzar MCP per crear noves eines i ampliar les meves capacitats.", + "onboarding": " La vostra llista de tasques en aquest espai de treball està buida. Comença escrivint una tasca a continuació. \nNo esteu segur per on començar? \nMés informació sobre què pot fer Roo als documents.", "selectMode": "Selecciona el mode d'interacció", "selectApiConfig": "Selecciona la configuració de l'API", "enhancePrompt": "Millora la sol·licitud amb context addicional", diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index a4795a2239..c6400bdd18 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -479,11 +479,5 @@ "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/ca/welcome.json b/webview-ui/src/i18n/locales/ca/welcome.json index 89b1611881..579901c2c2 100644 --- a/webview-ui/src/i18n/locales/ca/welcome.json +++ b/webview-ui/src/i18n/locales/ca/welcome.json @@ -1,6 +1,6 @@ { "greeting": "Hola, sóc en Roo!", - "introduction": "Puc fer tot tipus de tasques gràcies als últims avenços en capacitats de codificació agent i accés a eines que em permeten crear i editar fitxers, explorar projectes complexos, utilitzar el navegador i executar ordres de terminal (amb el teu permís, és clar). Fins i tot puc utilitzar MCP per crear noves eines i ampliar les meves pròpies capacitats.", + "introduction": "Roo Code és el principal agent de codificació autònom. Prepara't per arquitectar, codificar, depurar i augmentar la teva productivitat com mai abans. Per continuar, Roo Code necessita una clau API.", "notice": "Per començar, aquesta extensió necessita un proveïdor d'API.", "start": "Som-hi!", "chooseProvider": "Tria un proveïdor d'API per començar:", diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index 250bc59696..b1d52b3980 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Was kann Roo für dich tun?", + "greeting": "Willkommen in Roo", "task": { "title": "Aufgabe", "seeMore": "Mehr anzeigen", @@ -65,7 +65,7 @@ "tooltip": "Aktuelle Operation abbrechen" }, "scrollToBottom": "Zum Chat-Ende scrollen", - "aboutMe": "Dank neuester Durchbrüche in agentischen Coding-Fähigkeiten kann ich komplexe Softwareentwicklungsaufgaben schrittweise bearbeiten. Mit Werkzeugen, die mir erlauben, Dateien zu erstellen und zu bearbeiten, komplexe Projekte zu erkunden, den Browser zu nutzen und Terminalbefehle auszuführen (nachdem du die Erlaubnis erteilt hast), kann ich dir auf Weisen helfen, die über Code-Vervollständigung oder technischen Support hinausgehen. Ich kann sogar MCP nutzen, um neue Werkzeuge zu erstellen und meine eigenen Fähigkeiten zu erweitern.", + "onboarding": "Deine Aufgabenliste in diesem Arbeitsbereich ist leer. Beginne mit der Eingabe einer Aufgabe unten. Du bist dir nicht sicher, wie du anfangen sollst? Lies mehr darüber, was Roo für dich tun kann, in den Dokumenten.", "selectMode": "Interaktionsmodus auswählen", "selectApiConfig": "API-Konfiguration auswählen", "enhancePrompt": "Prompt mit zusätzlichem Kontext verbessern", diff --git a/webview-ui/src/i18n/locales/de/history.json b/webview-ui/src/i18n/locales/de/history.json index ed0e53b48e..f85243c886 100644 --- a/webview-ui/src/i18n/locales/de/history.json +++ b/webview-ui/src/i18n/locales/de/history.json @@ -1,5 +1,5 @@ { - "recentTasks": "Kürzliche Aufgaben", + "recentTasks": "Jüngste Aufgaben", "viewAll": "Alle anzeigen", "tokens": "Tokens: ↑{{in}} ↓{{out}}", "cache": "Cache: +{{writes}} → {{reads}}", diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index dda9befbce..2459c293b1 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -479,11 +479,5 @@ "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/de/welcome.json b/webview-ui/src/i18n/locales/de/welcome.json index 19fcb0eac3..8c8202f672 100644 --- a/webview-ui/src/i18n/locales/de/welcome.json +++ b/webview-ui/src/i18n/locales/de/welcome.json @@ -1,6 +1,6 @@ { "greeting": "Hallo, ich bin Roo!", - "introduction": "Ich kann alle Arten von Aufgaben erledigen, dank der neuesten Durchbrüche in agentenbasierten Codierungsfähigkeiten und dem Zugang zu Tools, die es mir ermöglichen, Dateien zu erstellen und zu bearbeiten, komplexe Projekte zu erkunden, den Browser zu verwenden und Terminalbefehle auszuführen (natürlich mit deiner Erlaubnis). Ich kann sogar MCP verwenden, um neue Tools zu erstellen und meine eigenen Fähigkeiten zu erweitern.", + "introduction": "Roo Code ist der führende autonome Coding-Agent. Mach dich bereit, zu architektieren, zu coden, zu debuggen und deine Produktivität wie nie zuvor zu steigern. Um fortzufahren, benötigt Roo Code einen API-Schlüssel.", "notice": "Um loszulegen, benötigt diese Erweiterung einen API-Anbieter.", "start": "Los geht's!", "chooseProvider": "Wähle einen API-Anbieter, um zu beginnen:", diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 1874dc53c0..49a79953f8 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -1,5 +1,5 @@ { - "greeting": "What can Roo do for you?", + "greeting": "Welcome to Roo", "task": { "title": "Task", "seeMore": "See more", @@ -7,7 +7,7 @@ "tokens": "Tokens:", "cache": "Cache:", "apiCost": "API Cost:", - "contextWindow": "Context Window:", + "contextWindow": "Context Length:", "closeAndStart": "Close task and start a new one", "export": "Export task history", "delete": "Delete Task (Shift + Click to skip confirmation)" @@ -65,7 +65,7 @@ "tooltip": "Cancel the current operation" }, "scrollToBottom": "Scroll to bottom of chat", - "aboutMe": "Thanks to the latest breakthroughs in agentic coding capabilities, I can handle complex software development tasks step-by-step. With tools that let me create & edit files, explore complex projects, use the browser, and execute terminal commands (after you grant permission), I can assist you in ways that go beyond code completion or tech support. I can even use MCP to create new tools and extend my own capabilities.", + "onboarding": "Your task list in this workspace is empty. Start by typing in a task below. Not sure how to begin? Read more about what Roo can do for you in the docs.", "selectMode": "Select mode for interaction", "selectApiConfig": "Select API configuration", "enhancePrompt": "Enhance prompt with additional context", diff --git a/webview-ui/src/i18n/locales/en/history.json b/webview-ui/src/i18n/locales/en/history.json index 81b93645f0..5e785fd544 100644 --- a/webview-ui/src/i18n/locales/en/history.json +++ b/webview-ui/src/i18n/locales/en/history.json @@ -1,6 +1,6 @@ { "recentTasks": "Recent Tasks", - "viewAll": "View All", + "viewAll": "View All Tasks", "tokens": "Tokens: ↑{{in}} ↓{{out}}", "cache": "Cache: +{{writes}} → {{reads}}", "apiCost": "API Cost: ${{cost}}", diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index ffd68f7e6e..04dcd12bd5 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -478,11 +478,5 @@ "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/en/welcome.json b/webview-ui/src/i18n/locales/en/welcome.json index 811d760c0f..5f46a80a03 100644 --- a/webview-ui/src/i18n/locales/en/welcome.json +++ b/webview-ui/src/i18n/locales/en/welcome.json @@ -1,6 +1,6 @@ { "greeting": "Hi, I'm Roo!", - "introduction": "I can do all kinds of tasks thanks to the latest breakthroughs in agentic coding capabilities and access to tools that let me create & edit files, explore complex projects, use the browser, and execute terminal commands (with your permission, of course). I can even use MCP to create new tools and extend my own capabilities.", + "introduction": "Roo Code is the premiere autonomous coding agent. Get ready to architect, code, debug, and boost your productivity like you've never seen before. To continue, Roo Code requires an API key.", "notice": "To get started, this extension needs an API provider.", "start": "Let's go!", "chooseProvider": "Choose an API provider to get started:", diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index d1f36460fc..90b6c8fcd7 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokens:", "cache": "Caché:", "apiCost": "Costo de API:", - "contextWindow": "Ventana de contexto:", + "contextWindow": "Longitud del contexto:", "closeAndStart": "Cerrar tarea e iniciar una nueva", "export": "Exportar historial de tareas", "delete": "Eliminar tarea (Shift + Clic para omitir confirmación)" @@ -65,7 +65,7 @@ "tooltip": "Cancelar la operación actual" }, "scrollToBottom": "Desplazarse al final del chat", - "aboutMe": "Gracias a los últimos avances en capacidades de codificación agentiva, puedo manejar tareas complejas de desarrollo de software paso a paso. Con herramientas que me permiten crear y editar archivos, explorar proyectos complejos, usar el navegador y ejecutar comandos de terminal (después de tu aprobación), puedo ayudarte de maneras que van más allá de la finalización de código o el soporte técnico. Incluso puedo usar MCP para crear nuevas herramientas y ampliar mis propias capacidades.", + "onboarding": "", "selectMode": "Seleccionar modo de interacción", "selectApiConfig": "Seleccionar configuración de API", "enhancePrompt": "Mejorar el mensaje con contexto adicional", diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index 8e68d7be47..e504111781 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -479,11 +479,5 @@ "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/es/welcome.json b/webview-ui/src/i18n/locales/es/welcome.json index b2289200a1..bfcedb61cb 100644 --- a/webview-ui/src/i18n/locales/es/welcome.json +++ b/webview-ui/src/i18n/locales/es/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "¡Hola, soy Roo!", - "introduction": "Puedo realizar todo tipo de tareas gracias a los últimos avances en capacidades de codificación agentica y acceso a herramientas que me permiten crear y editar archivos, explorar proyectos complejos, usar el navegador y ejecutar comandos de terminal (con tu permiso, por supuesto). Incluso puedo usar MCP para crear nuevas herramientas y ampliar mis propias capacidades.", + "greeting": "Bienvenido a Roo", + "introduction": "Roo Code es el principal agente de codificación autónomo. Prepárate para arquitectar, codificar, depurar y aumentar tu productividad como nunca antes. Para continuar, Roo Code requiere una clave API.", "notice": "Para comenzar, esta extensión necesita un proveedor de API.", "start": "¡Vamos!", "chooseProvider": "Elige un proveedor de API para comenzar:", diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index 5a75ecc6b0..700d58601c 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokens :", "cache": "Cache :", "apiCost": "Coût API :", - "contextWindow": "Fenêtre de contexte :", + "contextWindow": "Durée du contexte :", "closeAndStart": "Fermer la tâche et en commencer une nouvelle", "export": "Exporter l'historique des tâches", "delete": "Supprimer la tâche (Shift + Clic pour ignorer la confirmation)" @@ -65,7 +65,7 @@ "tooltip": "Annuler l'opération actuelle" }, "scrollToBottom": "Défiler jusqu'au bas du chat", - "aboutMe": "Grâce aux dernières avancées en matière de capacités de codage agent, je peux gérer des tâches complexes de développement logiciel étape par étape. Avec des outils qui me permettent de créer et d'éditer des fichiers, d'explorer des projets complexes, d'utiliser le navigateur et d'exécuter des commandes de terminal (après votre autorisation), je peux vous aider de manières qui vont au-delà de la complétion de code ou du support technique. Je peux même utiliser MCP pour créer de nouveaux outils et étendre mes propres capacités.", + "onboarding": "Grâce aux dernières avancées en matière de capacités de codage agent, je peux gérer des tâches complexes de développement logiciel étape par étape. Avec des outils qui me permettent de créer et d'éditer des fichiers, d'explorer des projets complexes, d'utiliser le navigateur et d'exécuter des commandes de terminal (après votre autorisation), je peux vous aider de manières qui vont au-delà de la complétion de code ou du support technique. Je peux même utiliser MCP pour créer de nouveaux outils et étendre mes propres capacités.", "selectMode": "Sélectionner le mode d'interaction", "selectApiConfig": "Sélectionner la configuration API", "enhancePrompt": "Améliorer la requête avec un contexte supplémentaire", diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index 5c2904c1d2..e04f6a4de6 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -479,11 +479,5 @@ "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/fr/welcome.json b/webview-ui/src/i18n/locales/fr/welcome.json index ca2038a4f5..d8ed64c768 100644 --- a/webview-ui/src/i18n/locales/fr/welcome.json +++ b/webview-ui/src/i18n/locales/fr/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "Salut, je suis Roo !", - "introduction": "Je peux effectuer toutes sortes de tâches grâce aux dernières avancées en matière de capacités de codage agentique et à l'accès à des outils qui me permettent de créer et de modifier des fichiers, d'explorer des projets complexes, d'utiliser le navigateur et d'exécuter des commandes terminal (avec ta permission, bien sûr). Je peux même utiliser MCP pour créer de nouveaux outils et étendre mes propres capacités.", + "greeting": "Bienvenue à Roo", + "introduction": "Roo Code est l'agent de codage autonome de premier plan. Prépare-toi à architecturer, coder, déboguer et à augmenter ta productivité comme jamais auparavant. Pour continuer, Roo Code nécessite une clé API.", "notice": "Pour commencer, cette extension a besoin d'un fournisseur d'API.", "start": "C'est parti !", "chooseProvider": "Choisis un fournisseur d'API pour commencer :", diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index 5e0379c2a6..7d22e4b679 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokens:", "cache": "कैश:", "apiCost": "API लागत:", - "contextWindow": "संदर्भ विंडो:", + "contextWindow": "संदर्भ लंबाई:", "closeAndStart": "कार्य बंद करें और नया शुरू करें", "export": "कार्य इतिहास निर्यात करें", "delete": "कार्य हटाएं (पुष्टि को छोड़ने के लिए Shift + क्लिक)" @@ -65,7 +65,7 @@ "tooltip": "वर्तमान ऑपरेशन रद्द करें" }, "scrollToBottom": "चैट के निचले हिस्से तक स्क्रॉल करें", - "aboutMe": "एजेंटिक कोडिंग क्षमताओं में नवीनतम प्रगति के कारण, मैं जटिल सॉफ्टवेयर विकास कार्यों को चरण-दर-चरण संभाल सकता हूं। ऐसे उपकरणों के साथ जो मुझे फ़ाइलें बनाने और संपादित करने, जटिल प्रोजेक्ट का अन्वेषण करने, ब्राउज़र का उपयोग करने और टर्मिनल कमांड (आपकी अनुमति के बाद) निष्पादित करने की अनुमति देते हैं, मैं आपकी मदद कोड पूर्णता या तकनीकी समर्थन से परे तरीकों से कर सकता हूं। मैं अपनी क्षमताओं का विस्तार करने और नए उपकरण बनाने के लिए MCP का भी उपयोग कर सकता हूं।", + "onboarding": "एजेंटिक कोडिंग क्षमताओं में नवीनतम प्रगति के कारण, मैं जटिल सॉफ्टवेयर विकास कार्यों को चरण-दर-चरण संभाल सकता हूं। ऐसे उपकरणों के साथ जो मुझे फ़ाइलें बनाने और संपादित करने, जटिल प्रोजेक्ट का अन्वेषण करने, ब्राउज़र का उपयोग करने और टर्मिनल कमांड (आपकी अनुमति के बाद) निष्पादित करने की अनुमति देते हैं, मैं आपकी मदद कोड पूर्णता या तकनीकी समर्थन से परे तरीकों से कर सकता हूं। मैं अपनी क्षमताओं का विस्तार करने और नए उपकरण बनाने के लिए MCP का भी उपयोग कर सकता हूं।", "selectMode": "इंटरैक्शन मोड चुनें", "selectApiConfig": "API कॉन्फ़िगरेशन चुनें", "enhancePrompt": "अतिरिक्त संदर्भ के साथ प्रॉम्प्ट बढ़ाएँ", diff --git a/webview-ui/src/i18n/locales/hi/history.json b/webview-ui/src/i18n/locales/hi/history.json index 0cae1e9cc1..dcadfbe5e4 100644 --- a/webview-ui/src/i18n/locales/hi/history.json +++ b/webview-ui/src/i18n/locales/hi/history.json @@ -1,5 +1,5 @@ { - "recentTasks": "हालिया कार्य", + "recentTasks": "हाल के कार्य", "viewAll": "सभी देखें", "tokens": "Tokens: ↑{{in}} ↓{{out}}", "cache": "कैश: +{{writes}} → {{reads}}", diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 414c312c5c..40435cf6bf 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -479,11 +479,5 @@ "labels": { "customArn": "कस्टम ARN", "useCustomArn": "कस्टम ARN का उपयोग करें..." - }, - "interface": { - "showgreeting": { - "label": "स्वागत संदेश दिखाएँ", - "description": "जब सक्षम किया जाता है, तो Roo एक स्वागत संदेश और परिचय प्रदर्शित करेगा।" - } } } diff --git a/webview-ui/src/i18n/locales/hi/welcome.json b/webview-ui/src/i18n/locales/hi/welcome.json index 6ec08c646b..69dd5321be 100644 --- a/webview-ui/src/i18n/locales/hi/welcome.json +++ b/webview-ui/src/i18n/locales/hi/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "नमस्ते, मैं रू हूँ!", - "introduction": "मैं सभी प्रकार के कार्य कर सकता हूँ, एजेंटिक कोडिंग क्षमताओं में नवीनतम सफलताओं और उन टूल्स तक पहुंच के लिए धन्यवाद जो मुझे फाइलें बनाने और संपादित करने, जटिल परियोजनाओं का पता लगाने, ब्राउज़र का उपयोग करने और टर्मिनल कमांड निष्पादित करने की अनुमति देते हैं (आपकी अनुमति से, बिल्कुल)। मैं MCP का उपयोग करके नए टूल बना सकता हूँ और अपनी क्षमताओं का विस्तार कर सकता हूँ।", + "greeting": "ROO में आपका स्वागत है", + "introduction": "Roo Code प्रमुख स्वायत्त कोडिंग एजेंट है। आर्किटेक्ट, कोड, डीबग करने और अपनी उत्पादकता को पहले कभी न देखे गए तरीके से बढ़ाने के लिए तैयार हो जाइए। जारी रखने के लिए, Roo Code को एक API कुंजी की आवश्यकता है।", "notice": "शुरू करने के लिए, इस एक्सटेंशन को एक API प्रदाता की आवश्यकता है।", "start": "चलो शुरू करें!", "chooseProvider": "शुरू करने के लिए एक API प्रदाता चुनें:", diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index 9ddf4f105d..816f557181 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokens:", "cache": "Cache:", "apiCost": "Costo API:", - "contextWindow": "Finestra di contesto:", + "contextWindow": "Lunghezza del contesto:", "closeAndStart": "Chiudi attività e iniziane una nuova", "export": "Esporta cronologia attività", "delete": "Elimina attività (Shift + Clic per saltare la conferma)" @@ -65,7 +65,7 @@ "tooltip": "Annulla l'operazione corrente" }, "scrollToBottom": "Scorri fino alla fine della chat", - "aboutMe": "Grazie alle più recenti innovazioni nelle capacità di codifica agentica, posso gestire complesse attività di sviluppo software passo dopo passo. Con strumenti che mi permettono di creare e modificare file, esplorare progetti complessi, utilizzare il browser ed eseguire comandi da terminale (dopo la tua autorizzazione), posso aiutarti in modi che vanno oltre il completamento del codice o il supporto tecnico. Posso persino usare MCP per creare nuovi strumenti ed estendere le mie capacità.", + "onboarding": "Grazie alle più recenti innovazioni nelle capacità di codifica agentica, posso gestire complesse attività di sviluppo software passo dopo passo. Con strumenti che mi permettono di creare e modificare file, esplorare progetti complessi, utilizzare il browser ed eseguire comandi da terminale (dopo la tua autorizzazione), posso aiutarti in modi che vanno oltre il completamento del codice o il supporto tecnico. Posso persino usare MCP per creare nuovi strumenti ed estendere le mie capacità.", "selectMode": "Seleziona modalità di interazione", "selectApiConfig": "Seleziona configurazione API", "enhancePrompt": "Migliora prompt con contesto aggiuntivo", diff --git a/webview-ui/src/i18n/locales/it/history.json b/webview-ui/src/i18n/locales/it/history.json index 11d7e7f82c..9f0dc2ce75 100644 --- a/webview-ui/src/i18n/locales/it/history.json +++ b/webview-ui/src/i18n/locales/it/history.json @@ -1,5 +1,5 @@ { - "recentTasks": "Attività recenti", + "recentTasks": "Compiti recenti", "viewAll": "Vedi tutto", "tokens": "Tokens: ↑{{in}} ↓{{out}}", "cache": "Cache: +{{writes}} → {{reads}}", diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 63a3b5810e..3e565d4db5 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -479,11 +479,5 @@ "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/it/welcome.json b/webview-ui/src/i18n/locales/it/welcome.json index 94dba7c2e9..861213d182 100644 --- a/webview-ui/src/i18n/locales/it/welcome.json +++ b/webview-ui/src/i18n/locales/it/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "Ciao, sono Roo!", - "introduction": "Posso svolgere tutti i tipi di attività grazie ai più recenti progressi nelle capacità di codifica agentica e all'accesso a strumenti che mi permettono di creare e modificare file, esplorare progetti complessi, utilizzare il browser ed eseguire comandi terminal (con il tuo permesso, ovviamente). Posso persino utilizzare MCP per creare nuovi strumenti ed estendere le mie capacità.", + "greeting": "Benvenuto su Roo", + "introduction": "Roo Code è il principale agente di codifica autonomo. Preparati ad architettare, codificare, debuggare e aumentare la tua produttività come mai prima d'ora. Per continuare, Roo Code richiede una chiave API.", "notice": "Per iniziare, questa estensione necessita di un fornitore di API.", "start": "Andiamo!", "chooseProvider": "Scegli un fornitore di API per iniziare:", diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index 0d43615f39..679d8f551f 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Rooにお手伝いできることはありますか?", + "greeting": "ROOへようこそ", "task": { "title": "タスク", "seeMore": "もっと見る", @@ -65,7 +65,7 @@ "tooltip": "現在の操作をキャンセル" }, "scrollToBottom": "チャットの最下部にスクロール", - "aboutMe": "最新のエージェント型コーディング能力の進歩により、複雑なソフトウェア開発タスクをステップバイステップで処理できます。ファイルの作成や編集、複雑なプロジェクトの探索、ブラウザの使用、ターミナルコマンドの実行(許可後)を可能にするツールにより、コード補完や技術サポート以上の方法であなたをサポートできます。MCPを使用して新しいツールを作成し、自分の能力を拡張することもできます。", + "onboarding": "最新のエージェント型コーディング能力の進歩により、複雑なソフトウェア開発タスクをステップバイステップで処理できます。ファイルの作成や編集、複雑なプロジェクトの探索、ブラウザの使用、ターミナルコマンドの実行(許可後)を可能にするツールにより、コード補完や技術サポート以上の方法であなたをサポートできます。MCPを使用して新しいツールを作成し、自分の能力を拡張することもできます。", "selectMode": "対話モードを選択", "selectApiConfig": "API設定を選択", "enhancePrompt": "追加コンテキストでプロンプトを強化", diff --git a/webview-ui/src/i18n/locales/ja/history.json b/webview-ui/src/i18n/locales/ja/history.json index bf435e4431..561df1e52b 100644 --- a/webview-ui/src/i18n/locales/ja/history.json +++ b/webview-ui/src/i18n/locales/ja/history.json @@ -1,5 +1,5 @@ { - "recentTasks": "最近のタスク", + "recentTasks": "Recent Tasks", "viewAll": "すべて表示", "tokens": "Tokens: ↑{{in}} ↓{{out}}", "cache": "キャッシュ: +{{writes}} → {{reads}}", diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index 78f0b280ce..5ec5eb8992 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -479,11 +479,5 @@ "labels": { "customArn": "カスタム ARN", "useCustomArn": "カスタム ARN を使用..." - }, - "interface": { - "showgreeting": { - "label": "ようこそメッセージを表示", - "description": "有効にすると、Rooはようこそメッセージと紹介を表示します。" - } } } diff --git a/webview-ui/src/i18n/locales/ja/welcome.json b/webview-ui/src/i18n/locales/ja/welcome.json index 6b614d3dd2..d0bc5e8079 100644 --- a/webview-ui/src/i18n/locales/ja/welcome.json +++ b/webview-ui/src/i18n/locales/ja/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "こんにちは、私はルーです!", - "introduction": "エージェント型コーディング能力の最新の進歩と、ファイルの作成・編集、複雑なプロジェクトの探索、ブラウザの使用、ターミナルコマンドの実行(もちろんあなたの許可を得て)を可能にするツールへのアクセスにより、あらゆる種類のタスクを実行できます。MCPを使用して新しいツールを作成し、自分の能力を拡張することもできます。", + "greeting": "ROOへようこそ", + "introduction": "Roo Codeは最高の自律型コーディングエージェントです。アーキテクチャの設計、コーディング、デバッグ、そして今までにない生産性向上を体験する準備をしてください。続行するには、Roo CodeにはAPIキーが必要です。", "notice": "開始するには、この拡張機能にはAPIプロバイダーが必要です。", "start": "さあ、始めましょう!", "chooseProvider": "開始するにはAPIプロバイダーを選択してください:", diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index dcd1d4dd82..8aa0d70dc2 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Roo가 어떻게 도와드릴까요?", + "greeting": "Roo에 오신 것을 환영합니다", "task": { "title": "작업", "seeMore": "더 보기", @@ -65,7 +65,7 @@ "tooltip": "현재 작업 취소" }, "scrollToBottom": "채팅 하단으로 스크롤", - "aboutMe": "최신 에이전트 코딩 기능의 발전 덕분에 복잡한 소프트웨어 개발 작업을 단계별로 처리할 수 있습니다. 파일 생성 및 편집, 복잡한 프로젝트 탐색, 브라우저 사용, 터미널 명령 실행(승인 후)을 가능하게 하는 도구를 통해 코드 완성이나 기술 지원을 넘어서는 방식으로 도움을 드릴 수 있습니다. MCP를 사용하여 새로운 도구를 만들고 자체 기능을 확장할 수도 있습니다.", + "onboarding": "이 작업 공간의 작업 목록이 비어 있습니다. 아래에 작업을 입력하여 시작하세요. 어떻게 시작해야 할지 모르겠나요? Roo가 무엇을 할 수 있는지 문서에서 자세히 알아보세요.", "selectMode": "상호작용 모드 선택", "selectApiConfig": "API 구성 선택", "enhancePrompt": "추가 컨텍스트로 프롬프트 향상", diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index b051a4cda8..06a1eec9d8 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -479,11 +479,5 @@ "labels": { "customArn": "사용자 지정 ARN", "useCustomArn": "사용자 지정 ARN 사용..." - }, - "interface": { - "showgreeting": { - "label": "환영 메시지 표시", - "description": "활성화하면 Roo가 환영 메시지와 소개를 표시합니다." - } } } diff --git a/webview-ui/src/i18n/locales/ko/welcome.json b/webview-ui/src/i18n/locales/ko/welcome.json index 83eb000af1..8b4c6e0da2 100644 --- a/webview-ui/src/i18n/locales/ko/welcome.json +++ b/webview-ui/src/i18n/locales/ko/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "안녕하세요, 저는 루입니다!", - "introduction": "에이전트 코딩 능력의 최신 발전과 파일 생성 및 편집, 복잡한 프로젝트 탐색, 브라우저 사용, 터미널 명령 실행(물론 사용자의 허락 하에)을 가능하게 하는 도구에 대한 접근 덕분에 모든 종류의 작업을 수행할 수 있습니다. MCP를 사용하여 새로운 도구를 만들고 제 능력을 확장할 수도 있습니다.", + "greeting": "Roo에 오신 것을 환영합니다", + "introduction": "Roo Code는 최고의 자율적 코딩 에이전트입니다. 아키텍처 설계, 코딩, 디버깅, 그리고 전례 없는 생산성 향상을 경험할 준비를 하세요. 계속하려면 Roo Code에 API 키가 필요합니다.", "notice": "시작하려면 이 확장 프로그램에 API 공급자가 필요합니다.", "start": "시작해 봅시다!", "chooseProvider": "시작하려면 API 공급자를 선택하세요:", diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index 841a41f390..6f3af7b19c 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Co Roo może dla Ciebie zrobić?", + "greeting": "Witamy w Roo", "task": { "title": "Zadanie", "seeMore": "Zobacz więcej", @@ -65,7 +65,7 @@ "tooltip": "Anuluj bieżącą operację" }, "scrollToBottom": "Przewiń do dołu czatu", - "aboutMe": "Dzięki najnowszym przełomom w zdolnościach kodowania agentowego, mogę krok po kroku obsługiwać złożone zadania związane z tworzeniem oprogramowania. Dzięki narzędziom, które pozwalają mi tworzyć i edytować pliki, eksplorować złożone projekty, korzystać z przeglądarki i wykonywać polecenia terminala (po udzieleniu zgody), mogę pomagać w sposób wykraczający poza uzupełnianie kodu czy wsparcie techniczne. Mogę nawet używać MCP do tworzenia nowych narzędzi i rozszerzania własnych możliwości.", + "onboarding": "Twoja lista zadań w tym obszarze roboczym jest pusta. Zacznij od wpisania zadania poniżej. Nie wiesz, jak zacząć? Przeczytaj więcej o tym, co Roo może dla Ciebie zrobić w dokumentacji.", "selectMode": "Wybierz tryb interakcji", "selectApiConfig": "Wybierz konfigurację API", "enhancePrompt": "Ulepsz podpowiedź dodatkowym kontekstem", diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 024c356a57..7556210ee1 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -479,11 +479,5 @@ "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/pl/welcome.json b/webview-ui/src/i18n/locales/pl/welcome.json index fb13723490..502f52e2bb 100644 --- a/webview-ui/src/i18n/locales/pl/welcome.json +++ b/webview-ui/src/i18n/locales/pl/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "Cześć, jestem Roo!", - "introduction": "Mogę wykonywać wszelkiego rodzaju zadania dzięki najnowszym osiągnięciom w zakresie możliwości kodowania agentowego i dostępu do narzędzi, które pozwalają mi tworzyć i edytować pliki, eksplorować złożone projekty, korzystać z przeglądarki i wykonywać polecenia terminalowe (oczywiście za Twoją zgodą). Mogę nawet używać MCP do tworzenia nowych narzędzi i rozszerzania własnych możliwości.", + "greeting": "Witamy w Roo", + "introduction": "Roo Code to wiodący autonomiczny agent kodowania. Przygotuj się na projektowanie architektury, kodowanie, debugowanie i zwiększenie produktywności jak nigdy dotąd. Aby kontynuować, Roo Code wymaga klucza API.", "notice": "Aby rozpocząć, to rozszerzenie potrzebuje dostawcy API.", "start": "Zaczynajmy!", "chooseProvider": "Wybierz dostawcę API, aby rozpocząć:", diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index 0a5ea9d157..f52920cc7b 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -1,5 +1,5 @@ { - "greeting": "O que o Roo pode fazer por você?", + "greeting": "Bem-vindo a Roo", "task": { "title": "Tarefa", "seeMore": "Ver mais", @@ -65,7 +65,7 @@ "tooltip": "Cancelar a operação atual" }, "scrollToBottom": "Rolar para o final do chat", - "aboutMe": "Graças aos mais recentes avanços em capacidades de codificação agentiva, posso lidar com tarefas complexas de desenvolvimento de software passo a passo. Com ferramentas que me permitem criar e editar arquivos, explorar projetos complexos, usar o navegador e executar comandos de terminal (após sua permissão), posso ajudar de maneiras que vão além da conclusão de código ou suporte técnico. Posso até usar o MCP para criar novas ferramentas e expandir minhas próprias capacidades.", + "onboarding": "Sua lista de tarefas neste espaço de trabalho está vazia. Comece digitando uma tarefa abaixo. Não sabe como começar? Leia mais sobre o que o Roo pode fazer por você nos documentos.", "selectMode": "Selecionar modo de interação", "selectApiConfig": "Selecionar configuração de API", "enhancePrompt": "Aprimorar prompt com contexto adicional", diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index 428fc2fa03..14742d8db9 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -479,11 +479,5 @@ "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/pt-BR/welcome.json b/webview-ui/src/i18n/locales/pt-BR/welcome.json index 5f0fa0c193..03a47b303e 100644 --- a/webview-ui/src/i18n/locales/pt-BR/welcome.json +++ b/webview-ui/src/i18n/locales/pt-BR/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "Olá, eu sou o Roo!", - "introduction": "Posso realizar todos os tipos de tarefas graças aos últimos avanços nas capacidades de codificação agentica e ao acesso a ferramentas que me permitem criar e editar arquivos, explorar projetos complexos, usar o navegador e executar comandos de terminal (com sua permissão, é claro). Posso até usar o MCP para criar novas ferramentas e expandir minhas próprias capacidades.", + "greeting": "Bem-vindo a Roo", + "introduction": "Roo Code é o principal agente de codificação autônomo. Prepare-se para arquitetar, codificar, depurar e aumentar sua produtividade como nunca antes. Para continuar, o Roo Code necessita de uma chave API.", "notice": "Para começar, esta extensão precisa de um provedor de API.", "start": "Vamos lá!", "chooseProvider": "Escolha um provedor de API para começar:", diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index bea0aa93bc..858e15bdcc 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokenlar:", "cache": "Önbellek:", "apiCost": "API Maliyeti:", - "contextWindow": "Bağlam Penceresi:", + "contextWindow": "Bağlam Uzunluğu:", "closeAndStart": "Görevi kapat ve yeni bir görev başlat", "export": "Görev geçmişini dışa aktar", "delete": "Görevi sil (Onayı atlamak için Shift + Tıkla)" @@ -65,7 +65,7 @@ "tooltip": "Mevcut işlemi iptal et" }, "scrollToBottom": "Sohbetin altına kaydır", - "aboutMe": "Ajansal kodlama yeteneklerindeki son atılımlar sayesinde, karmaşık yazılım geliştirme görevlerini adım adım ele alabilirim. Dosya oluşturma ve düzenleme, karmaşık projeleri keşfetme, tarayıcıyı kullanma ve terminal komutlarını çalıştırma (izin verdikten sonra) olanağı sağlayan araçlarla, kod tamamlama veya teknik desteğin ötesinde size yardımcı olabilirim. Hatta yeni araçlar oluşturmak ve kendi yeteneklerimi genişletmek için MCP'yi bile kullanabilirim.", + "onboarding": "Bu çalışma alanındaki görev listeniz boş. Aşağıya bir görev yazarak başlayın. Nasıl başlayacağınızdan emin değil misiniz? Roo'nun sizin için neler yapabileceği hakkında daha fazla bilgiyi belgelerde okuyun.", "selectMode": "Etkileşim modunu seçin", "selectApiConfig": "API yapılandırmasını seçin", "enhancePrompt": "Ek bağlamla istemi geliştir", diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 5d9e5d7e57..d378d5d528 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -479,11 +479,5 @@ "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/tr/welcome.json b/webview-ui/src/i18n/locales/tr/welcome.json index 76bf97429e..5ff28bf1fb 100644 --- a/webview-ui/src/i18n/locales/tr/welcome.json +++ b/webview-ui/src/i18n/locales/tr/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "Merhaba, ben Roo!", - "introduction": "Ajan tabanlı kodlama yeteneklerindeki son gelişmeler ve dosya oluşturma ve düzenleme, karmaşık projeleri keşfetme, tarayıcı kullanma ve terminal komutları çalıştırma (tabii ki senin izninle) gibi işlemleri yapmamı sağlayan araçlara erişim sayesinde her türlü görevi gerçekleştirebilirim. Hatta MCP'yi kullanarak yeni araçlar oluşturabilir ve kendi yeteneklerimi genişletebilirim.", + "greeting": "Roo'ya Hoş Geldiniz", + "introduction": "Roo Code, önde gelen otonom kodlama aracıdır. Daha önce hiç görmediğin şekilde mimari tasarım yapmaya, kod yazmaya, hata ayıklamaya ve üretkenliğini artırmaya hazırlan. Devam etmek için Roo Code'un bir API anahtarına ihtiyacı var.", "notice": "Başlamak için bu eklentinin bir API sağlayıcısına ihtiyacı var.", "start": "Hadi başlayalım!", "chooseProvider": "Başlamak için bir API sağlayıcısı seç:", diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index 82633febbc..9eed10180b 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokens:", "cache": "Bộ nhớ đệm:", "apiCost": "Chi phí API:", - "contextWindow": "Cửa sổ ngữ cảnh:", + "contextWindow": "Chiều dài bối cảnh:", "closeAndStart": "Đóng nhiệm vụ và bắt đầu nhiệm vụ mới", "export": "Xuất lịch sử nhiệm vụ", "delete": "Xóa nhiệm vụ (Shift + Click để bỏ qua xác nhận)" @@ -65,7 +65,7 @@ "tooltip": "Hủy thao tác hiện tại" }, "scrollToBottom": "Cuộn xuống cuối cuộc trò chuyện", - "aboutMe": "Nhờ những đột phá mới nhất trong khả năng lập trình tác nhân, tôi có thể xử lý các nhiệm vụ phát triển phần mềm phức tạp từng bước một. Với các công cụ cho phép tôi tạo và chỉnh sửa tệp, khám phá các dự án phức tạp, sử dụng trình duyệt và thực thi lệnh terminal (sau khi bạn cấp quyền), tôi có thể hỗ trợ bạn theo cách vượt xa việc hoàn thành mã hoặc hỗ trợ kỹ thuật. Tôi thậm chí có thể sử dụng MCP để tạo các công cụ mới và mở rộng khả năng của mình.", + "onboarding": "Danh sách nhiệm vụ của bạn trong không gian làm việc này trống. Bắt đầu bằng cách nhập nhiệm vụ bên dưới. Bạn không chắc chắn nên bắt đầu như thế nào? Đọc thêm về những gì Roo có thể làm cho bạn trong tài liệu.", "selectMode": "Chọn chế độ tương tác", "selectApiConfig": "Chọn cấu hình API", "enhancePrompt": "Nâng cao yêu cầu với ngữ cảnh bổ sung", diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 6a73d36857..e38971bc40 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -479,11 +479,5 @@ "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/vi/welcome.json b/webview-ui/src/i18n/locales/vi/welcome.json index 91dcea70c6..4d3551a1f9 100644 --- a/webview-ui/src/i18n/locales/vi/welcome.json +++ b/webview-ui/src/i18n/locales/vi/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "Xin chào, tôi là Roo!", - "introduction": "Tôi có thể thực hiện nhiều loại nhiệm vụ nhờ vào những đột phá mới nhất trong khả năng lập trình dạng đại lý và quyền truy cập vào các công cụ cho phép tôi tạo & chỉnh sửa tệp, khám phá các dự án phức tạp, sử dụng trình duyệt và thực thi lệnh terminal (với sự cho phép của bạn, tất nhiên). Tôi thậm chí có thể sử dụng MCP để tạo công cụ mới và mở rộng khả năng của mình.", + "greeting": "Chào mừng bạn đến với Roo", + "introduction": "Roo Code là công cụ lập trình tự động hàng đầu. Hãy sẵn sàng để thiết kế kiến trúc, viết mã, gỡ lỗi và tăng năng suất của bạn như chưa từng có trước đây. Để tiếp tục, Roo Code yêu cầu một khóa API.", "notice": "Để bắt đầu, tiện ích mở rộng này cần một nhà cung cấp API.", "start": "Bắt đầu thôi!", "chooseProvider": "Chọn một nhà cung cấp API để bắt đầu:", diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 0e641bd516..f794aa6283 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -7,7 +7,7 @@ "tokens": "Token 用量:", "cache": "缓存:", "apiCost": "API 费用:", - "contextWindow": "上下文窗口:", + "contextWindow": "上下文长度:", "closeAndStart": "关闭任务并开始新任务", "export": "导出任务历史", "delete": "删除任务(Shift + 点击跳过确认)" @@ -65,7 +65,7 @@ "tooltip": "取消当前操作" }, "scrollToBottom": "滚动到聊天底部", - "aboutMe": "基于最新的AI编程技术,我可以逐步处理复杂软件开发任务。支持创建编辑文件、分析复杂项目、浏览器操作及运行终端命令,不仅能提供代码补全和基础答疑,还能完成更高阶的开发协助。通过MCP系统,我甚至可以自己制作新工具,持续提升解决问题的能力。", + "onboarding": "此工作区中的任务列表为空。 请在下方输入任务开始。 不确定如何开始? 在 文档 中阅读更多关于 Roo 可以为您做什么的信息。", "selectMode": "选择交互模式", "selectApiConfig": "选择API配置", "enhancePrompt": "增强提示词", diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index 1038b46f5d..53357ead9c 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -479,11 +479,5 @@ "labels": { "customArn": "自定义 ARN", "useCustomArn": "使用自定义 ARN..." - }, - "interface": { - "showgreeting": { - "label": "显示欢迎消息", - "description": "启用后,Roo 将显示欢迎语和简介。" - } } } diff --git a/webview-ui/src/i18n/locales/zh-CN/welcome.json b/webview-ui/src/i18n/locales/zh-CN/welcome.json index 93179bb112..bb1056b4d3 100644 --- a/webview-ui/src/i18n/locales/zh-CN/welcome.json +++ b/webview-ui/src/i18n/locales/zh-CN/welcome.json @@ -1,6 +1,6 @@ { - "greeting": "你好,我是 Roo!", - "introduction": "基于最新的AI编程技术,我可以逐步处理复杂软件开发任务。支持创建编辑文件、分析复杂项目、浏览器操作及运行终端命令,不仅能提供代码补全和基础答疑,还能完成更高阶的开发协助。通过MCP系统,我甚至可以自己制作新工具,持续提升解决问题的能力。", + "greeting": "欢迎来到Roo", + "introduction": "Roo Code 是领先的自主编程助手。准备好以前所未有的方式进行架构设计、编码、调试并提升你的工作效率。要继续使用,Roo Code 需要一个 API 密钥。", "notice": "请先配置大语言模型API提供商", "start": "开始吧!", "chooseProvider": "选择一个 API 提供商开始:", diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index c9ad321717..fbfaaf5d23 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -7,7 +7,7 @@ "tokens": "Tokens:", "cache": "快取:", "apiCost": "API 費用:", - "contextWindow": "上下文視窗:", + "contextWindow": "上下文長度:", "closeAndStart": "關閉現有工作並開始一項新的工作", "export": "匯出工作紀錄", "delete": "刪除工作(按住 Shift 並點選可跳過確認)" @@ -65,7 +65,7 @@ "tooltip": "取消目前操作" }, "scrollToBottom": "捲動至對話框底部", - "aboutMe": "由於程式代理功能的最新突破,我能夠逐步處理複雜的軟體開發工作。透過允許我建立和編輯檔案、探索複雜專案、使用瀏覽器和執行終端機命令(在您授權後)的工具,我可以以超越程式碼補全或技術支援的方式協助您。我甚至可以使用 MCP 建立新工具並擴展自己的能力。", + "onboarding": "您在此工作區中的工作清單是空的。 請在下方輸入工作以開始。 不確定如何開始? 在 說明文件 中閱讀更多關於 Roo 能為您做什麼的資訊。", "selectMode": "選擇互動模式", "selectApiConfig": "選擇 API 設定", "enhancePrompt": "使用額外內容增強提示", diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index 8d4efcf6b2..d144d92985 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -478,11 +478,5 @@ "labels": { "customArn": "自訂 ARN", "useCustomArn": "使用自訂 ARN..." - }, - "interface": { - "showgreeting": { - "label": "顯示歡迎訊息", - "description": "啟用後,Roo 將顯示歡迎訊息與介紹。" - } } } diff --git a/webview-ui/src/i18n/locales/zh-TW/welcome.json b/webview-ui/src/i18n/locales/zh-TW/welcome.json index a5bb584f55..171d095f5c 100644 --- a/webview-ui/src/i18n/locales/zh-TW/welcome.json +++ b/webview-ui/src/i18n/locales/zh-TW/welcome.json @@ -1,7 +1,7 @@ { - "greeting": "嗨,我是 Roo!", - "introduction": "由於程式代理功能的最新突破,以及能夠讓我建立和編輯檔案、探索複雜專案、使用瀏覽器和執行終端機命令的工具(在您授權後),我能完成各種工作。我甚至可以使用 MCP 建立新工具並擴展自己的功能。", - "notice": "要開始使用,此擴充功能需要一個 API 提供者。", + "greeting": "歡迎來到 Roo", + "introduction": "Roo Code 是頂尖的自主編程助手。準備好以前所未有的方式進行架構設計、編碼、除錯並提升您的工作效率。要繼續使用,Roo Code 需要一個 API 金鑰。", + "notice": "開始使用前,此擴充功能需要一個 API 提供者。", "start": "讓我們開始吧!", "chooseProvider": "選擇一個 API 提供者開始:", "routers": {