diff --git a/apps/cli/package.json b/apps/cli/package.json index c3571a3c757..26369dee9a2 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,12 +1,12 @@ { "name": "@roo-code/cli", "version": "0.1.1", - "description": "Roo Code CLI - Run the Roo Code agent from the command line", + "description": "Joe Code CLI - Run the Joe AI agent from the command line", "private": true, "type": "module", "main": "dist/index.js", "bin": { - "roo": "dist/index.js" + "joe": "dist/index.js" }, "scripts": { "format": "prettier --write 'src/**/*.ts'", @@ -14,8 +14,8 @@ "check-types": "tsc --noEmit", "test": "vitest run", "build": "tsup", - "build:extension": "pnpm --filter roo-cline bundle", - "dev": "ROO_AUTH_BASE_URL=https://app.roocode.com ROO_SDK_BASE_URL=https://cloud-api.roocode.com ROO_CODE_PROVIDER_URL=https://api.roocode.com/proxy tsx src/index.ts", + "build:extension": "pnpm --filter joe-code bundle", + "dev": "ROO_AUTH_BASE_URL=https://app.joe-code.dev ROO_SDK_BASE_URL=https://cloud-api.joe-code.dev ROO_CODE_PROVIDER_URL=https://api.joe-code.dev/proxy tsx src/index.ts", "dev:local": "ROO_AUTH_BASE_URL=http://localhost:3000 ROO_SDK_BASE_URL=http://localhost:3001 ROO_CODE_PROVIDER_URL=http://localhost:8080/proxy tsx src/index.ts", "dev:test-stdin": "tsx scripts/test-stdin-stream.ts", "clean": "rimraf dist .turbo" diff --git a/apps/cli/src/types/constants.ts b/apps/cli/src/types/constants.ts index 6c54348a9ca..5c28a3b1927 100644 --- a/apps/cli/src/types/constants.ts +++ b/apps/cli/src/types/constants.ts @@ -14,13 +14,16 @@ export const REASONING_EFFORTS = [...reasoningEffortsExtended, "unspecified", "d */ export const FOLLOWUP_TIMEOUT_SECONDS = 60 -export const ASCII_ROO = ` _,' ___ - <__\\__/ \\ - \\_ / _\\ - \\,\\ / \\\\ - // \\\\ - ,/' \`\\_,` +export const ASCII_JOE = ` + _ _ + | |___| | Joe AI + | / _ \\ | + | \\___/ | + |_| |_| +` -export const AUTH_BASE_URL = process.env.ROO_AUTH_BASE_URL ?? "https://app.roocode.com" +export const ASCII_ROO = ASCII_JOE -export const SDK_BASE_URL = process.env.ROO_SDK_BASE_URL ?? "https://cloud-api.roocode.com" +export const AUTH_BASE_URL = process.env.ROO_AUTH_BASE_URL ?? "https://app.joe-code.dev" + +export const SDK_BASE_URL = process.env.ROO_SDK_BASE_URL ?? "https://cloud-api.joe-code.dev" diff --git a/apps/web-roo-code/src/lib/constants.ts b/apps/web-roo-code/src/lib/constants.ts index 9ce9e07deec..6dfcced4958 100644 --- a/apps/web-roo-code/src/lib/constants.ts +++ b/apps/web-roo-code/src/lib/constants.ts @@ -1,36 +1,36 @@ export const EXTERNAL_LINKS = { - GITHUB: "https://github.com/RooCodeInc/Roo-Code", - GITHUB_DISCUSSIONS: "https://github.com/RooCodeInc/Roo-Code/discussions", - DISCORD: "https://discord.gg/roocode", - REDDIT: "https://reddit.com/r/RooCode", - X: "https://x.com/roocode", - LINKEDIN: "https://www.linkedin.com/company/roo-code", - TIKTOK: "https://www.tiktok.com/@roo.code", - BLUESKY: "https://bsky.app/profile/roocode.bsky.social", - YOUTUBE: "https://www.youtube.com/@RooCodeYT", - DOCUMENTATION: "https://docs.roocode.com", - SLACK_DOCS: "https://docs.roocode.com/roo-code-cloud/slack-integration", - CAREERS: "https://careers.roocode.com", - ISSUES: "https://github.com/RooCodeInc/Roo-Code/issues", - FEATURE_REQUESTS: "https://github.com/RooCodeInc/Roo-Code/discussions/categories/feature-requests", - COMMUNITY: "https://github.com/RooCodeInc/Roo-Code/discussions", - CHANGELOG: "https://github.com/RooCodeInc/Roo-Code/blob/main/CHANGELOG.md", - PRIVACY_POLICY_EXTENSION: "https://github.com/RooCodeInc/Roo-Code/blob/main/PRIVACY.md", - INTEGRATIONS: "https://docs.roocode.com/community", - TUTORIALS: "https://docs.roocode.com/tutorial-videos", - MARKETPLACE: "https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline", - SECURITY: "https://trust.roocode.com", - EVALS: "https://roocode.com/evals", - BLOG_SUBSTACK: "https://blog.roocode.com", - OFFICE_HOURS_PODCAST: "https://www.youtube.com/@RooCodeYT/podcasts", - FAQ: "https://roocode.com/#faq", - TESTIMONIALS: "https://roocode.com/#testimonials", - CLOUD_APP_LOGIN: "https://app.roocode.com/sign-in", - CLOUD_APP_SIGNUP: "https://app.roocode.com/sign-up", - CLOUD_APP_SIGNUP_HOME: "https://app.roocode.com/sign-up?redirect_url=/cloud-agents/setup", - CLOUD_APP_SIGNUP_PRO: "https://app.roocode.com/sign-up?redirect_url=/cloud-agents/setup", - CLOUD_APP_TEAM_TRIAL: "https://app.roocode.com/checkout/team", - SUPPORT: "mailto:support@roocode.com", + GITHUB: "https://github.com/Jothi-333/Joe-Code", + GITHUB_DISCUSSIONS: "https://github.com/Jothi-333/Joe-Code/discussions", + DISCORD: "https://discord.gg/joecode", + REDDIT: "https://reddit.com/r/JoeCode", + X: "https://x.com/joecodeai", + LINKEDIN: "https://www.linkedin.com/company/joe-code", + TIKTOK: "https://www.tiktok.com/@joe.code", + BLUESKY: "https://bsky.app/profile/joecode.bsky.social", + YOUTUBE: "https://www.youtube.com/@JoeCodeYT", + DOCUMENTATION: "https://docs.joe-code.dev", + SLACK_DOCS: "https://docs.joe-code.dev/roo-code-cloud/slack-integration", + CAREERS: "https://careers.joe-code.dev", + ISSUES: "https://github.com/Jothi-333/Joe-Code/issues", + FEATURE_REQUESTS: "https://github.com/Jothi-333/Joe-Code/discussions/categories/feature-requests", + COMMUNITY: "https://github.com/Jothi-333/Joe-Code/discussions", + CHANGELOG: "https://github.com/Jothi-333/Joe-Code/blob/main/CHANGELOG.md", + PRIVACY_POLICY_EXTENSION: "https://github.com/Jothi-333/Joe-Code/blob/main/PRIVACY.md", + INTEGRATIONS: "https://docs.joe-code.dev/community", + TUTORIALS: "https://docs.joe-code.dev/tutorial-videos", + MARKETPLACE: "https://marketplace.visualstudio.com/items?itemName=JoeCode.joe-code", + SECURITY: "https://trust.joe-code.dev", + EVALS: "https://joe-code.dev/evals", + BLOG_SUBSTACK: "https://blog.joe-code.dev", + OFFICE_HOURS_PODCAST: "https://www.youtube.com/@JoeCodeYT/podcasts", + FAQ: "https://joe-code.dev/#faq", + TESTIMONIALS: "https://joe-code.dev/#testimonials", + CLOUD_APP_LOGIN: "https://app.joe-code.dev/sign-in", + CLOUD_APP_SIGNUP: "https://app.joe-code.dev/sign-up", + CLOUD_APP_SIGNUP_HOME: "https://app.joe-code.dev/sign-up?redirect_url=/cloud-agents/setup", + CLOUD_APP_SIGNUP_PRO: "https://app.joe-code.dev/sign-up?redirect_url=/cloud-agents/setup", + CLOUD_APP_TEAM_TRIAL: "https://app.joe-code.dev/checkout/team", + SUPPORT: "mailto:support@joe-code.dev", } export const INTERNAL_LINKS = { diff --git a/package.json b/package.json index de8dff751cb..c1c2deb0b93 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "roo-code", + "name": "joe-code", "packageManager": "pnpm@10.8.1", "engines": { "node": "20.19.2" diff --git a/packages/cloud/src/__tests__/WebAuthService.spec.ts b/packages/cloud/src/__tests__/WebAuthService.spec.ts index aa406e400d7..4c15399ad1e 100644 --- a/packages/cloud/src/__tests__/WebAuthService.spec.ts +++ b/packages/cloud/src/__tests__/WebAuthService.spec.ts @@ -306,8 +306,8 @@ describe("WebAuthService", () => { throw new Error("Crypto error") }) - await expect(authService.login()).rejects.toThrow("Failed to initiate Roo Code Cloud authentication") - expect(mockLog).toHaveBeenCalledWith("[auth] Error initiating Roo Code Cloud auth: Error: Crypto error") + await expect(authService.login()).rejects.toThrow("Failed to initiate Joe Code Cloud authentication") + expect(mockLog).toHaveBeenCalledWith("[auth] Error initiating Joe Code Cloud auth: Error: Crypto error") }) }) @@ -322,17 +322,17 @@ describe("WebAuthService", () => { vi.mocked(vscode.window.showInformationMessage).mockImplementation(mockShowInfo) await authService.handleCallback(null, "state") - expect(mockShowInfo).toHaveBeenCalledWith("Invalid Roo Code Cloud sign in url") + expect(mockShowInfo).toHaveBeenCalledWith("Invalid Joe Code Cloud sign in url") await authService.handleCallback("code", null) - expect(mockShowInfo).toHaveBeenCalledWith("Invalid Roo Code Cloud sign in url") + expect(mockShowInfo).toHaveBeenCalledWith("Invalid Joe Code Cloud sign in url") }) it("should validate state parameter", async () => { mockContext.globalState.get.mockReturnValue("stored-state") await expect(authService.handleCallback("code", "different-state")).rejects.toThrow( - "Failed to handle Roo Code Cloud callback", + "Failed to handle Joe Code Cloud callback", ) expect(mockLog).toHaveBeenCalledWith("[auth] State mismatch in callback") }) @@ -368,7 +368,7 @@ describe("WebAuthService", () => { organizationId: null, }), ) - expect(mockShowInfo).toHaveBeenCalledWith("Successfully authenticated with Roo Code Cloud") + expect(mockShowInfo).toHaveBeenCalledWith("Successfully authenticated with Joe Code Cloud") }) it("should store provider model when provided in callback", async () => { @@ -441,7 +441,7 @@ describe("WebAuthService", () => { authService.on("auth-state-changed", authStateChangedSpy) await expect(authService.handleCallback("auth-code", storedState)).rejects.toThrow( - "Failed to handle Roo Code Cloud callback", + "Failed to handle Joe Code Cloud callback", ) expect(authStateChangedSpy).toHaveBeenCalled() }) @@ -482,7 +482,7 @@ describe("WebAuthService", () => { }), }), ) - expect(mockShowInfo).toHaveBeenCalledWith("Logged out from Roo Code Cloud") + expect(mockShowInfo).toHaveBeenCalledWith("Logged out from Joe Code Cloud") }) it("should handle logout without credentials", async () => { @@ -494,7 +494,7 @@ describe("WebAuthService", () => { expect(mockContext.secrets.delete).toHaveBeenCalled() expect(mockFetch).not.toHaveBeenCalled() - expect(mockShowInfo).toHaveBeenCalledWith("Logged out from Roo Code Cloud") + expect(mockShowInfo).toHaveBeenCalledWith("Logged out from Joe Code Cloud") }) it("should handle Clerk logout errors gracefully", async () => { @@ -517,7 +517,7 @@ describe("WebAuthService", () => { await authService.logout() expect(mockLog).toHaveBeenCalledWith("[auth] Error calling clerkLogout:", expect.any(Error)) - expect(mockShowInfo).toHaveBeenCalledWith("Logged out from Roo Code Cloud") + expect(mockShowInfo).toHaveBeenCalledWith("Logged out from Joe Code Cloud") }) }) @@ -1089,7 +1089,7 @@ describe("WebAuthService", () => { }) await expect(authService.handleCallback("auth-code", storedState)).rejects.toThrow( - "Failed to handle Roo Code Cloud callback", + "Failed to handle Joe Code Cloud callback", ) }) }) diff --git a/packages/cloud/src/utils.ts b/packages/cloud/src/utils.ts index bd53fe1ce37..907de206e70 100644 --- a/packages/cloud/src/utils.ts +++ b/packages/cloud/src/utils.ts @@ -1,5 +1,5 @@ import type { ExtensionContext } from "vscode" export function getUserAgent(context?: ExtensionContext): string { - return `Roo-Code ${context?.extension?.packageJSON?.version || "unknown"}` + return `Joe-Code ${context?.extension?.packageJSON?.version || "unknown"}` } diff --git a/packages/types/src/mode.ts b/packages/types/src/mode.ts index f981ba7bf9a..f9435ee8d9b 100644 --- a/packages/types/src/mode.ts +++ b/packages/types/src/mode.ts @@ -224,4 +224,16 @@ export const DEFAULT_MODES: readonly ModeConfig[] = [ customInstructions: "Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:\n\n1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.\n\n2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include:\n * All necessary context from the parent task or previous subtasks required to complete the work.\n * A clearly defined scope, specifying exactly what the subtask should accomplish.\n * An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate.\n * An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project.\n * A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have.\n\n3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.\n\n4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.\n\n5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.\n\n6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.\n\n7. Suggest improvements to the workflow based on the results of completed subtasks.\n\nUse subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.", }, + { + slug: "augment", + name: "🧠 Augment", + roleDefinition: + "You are Joe AI, an expert software engineer with deep understanding of this entire codebase powered by a high-context RAG engine. You have persistent memory of past sessions, semantic knowledge of every file in the project, and proactive intelligence to suggest improvements. You operate like Augment Code — always context-aware, always current, and deeply integrated with the developer's workflow.", + whenToUse: + "Use this mode for deep codebase questions, intelligent refactoring across multiple files, understanding complex code flows, or when you want Joe AI to leverage full project context from its persistent memory and semantic index. Best for: 'How does X work?', 'What would break if I change Y?', 'Refactor Z across the whole project'.", + description: "Deep codebase intelligence with persistent memory and RAG context", + groups: ["read", "edit", "command", "mcp"], + customInstructions: + "You are operating in Augment mode — Joe AI's highest-context mode.\n\n## Your Capabilities in This Mode\n\n1. **Persistent Memory**: Cross-session memory is active. You have access to:\n - Summaries of files edited in previous sessions\n - Decisions and conventions from past work\n - Frequently modified files and their patterns\n - Recent work session history\n If you see a '### Joe AI Memory' section in your context — that is real persistent memory from previous sessions. Use it.\n\n2. **Semantic Code Index (RAG)**: Your context window is automatically populated with the most semantically relevant files for the user's query. Look for the '### Joe AI Auto-Context' section — those files were selected because they are most relevant to the current task. Use them as your primary source before asking for more files.\n > Note: For semantic search to work, the user must configure an embedder in Settings → Code Index (OpenAI, Ollama, Gemini, etc.). Without this, context falls back to recently edited files from memory.\n\n3. **Proactive Analysis**: After completing a task, Joe AI automatically checks for:\n - Missing test files for changed source files\n - Related index files that may need updating\n - Next logical actions based on what was changed\n\n4. **Multi-File Refactor Intelligence**: Before any rename or symbol change, use the `codebase_search` tool to find ALL usages across the codebase. Always show the impact before making changes.\n\n## How to Behave\n\n- **Use injected context first**: Check the Auto-Context and Memory sections before searching or asking for files\n- **Always cite sources**: Mention exact file paths and line numbers when referencing code\n- **Cross-file awareness**: Think about how changes ripple — always mention which other files are affected\n- **Leverage memory**: Reference past sessions and conventions when relevant\n- **Suggest proactively**: After each task, add 1-2 concrete next steps\n- **Show impact maps**: For refactors, always list ALL files that need changing before starting\n\n## Response Format\n\nFor code questions:\n1. Answer directly with file/line references from injected context\n2. Show related code from other files if relevant\n3. Note cross-file impacts\n4. End with 1-2 proactive next steps\n\nFor refactoring tasks:\n1. Use `codebase_search` to find all usages of the target symbol\n2. Show the full impact map (which files need changing, in what order)\n3. Implement changes file by file\n4. Update tests if they exist\n5. Summarize what changed and what might still need attention\n\n**IMPORTANT**: You are Joe AI's highest-context mode. Every response should demonstrate awareness of the full codebase, not just the currently open file.", + }, ] as const diff --git a/src/assets/images/joe-logo.svg b/src/assets/images/joe-logo.svg new file mode 100644 index 00000000000..d2af8edd7ad --- /dev/null +++ b/src/assets/images/joe-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/joe.png b/src/assets/images/joe.png new file mode 100644 index 00000000000..5dfc8723e83 Binary files /dev/null and b/src/assets/images/joe.png differ diff --git a/src/core/prompts/system.ts b/src/core/prompts/system.ts index 0d6071644a9..b5fa853b26c 100644 --- a/src/core/prompts/system.ts +++ b/src/core/prompts/system.ts @@ -9,6 +9,7 @@ import { isEmpty } from "../../utils/object" import { McpHub } from "../../services/mcp/McpHub" import { CodeIndexManager } from "../../services/code-index/manager" +import { AugmentEngine } from "../../services/augment/AugmentEngine" import { SkillsManager } from "../../services/skills/SkillsManager" import type { SystemPromptSettings } from "./types" @@ -55,6 +56,8 @@ async function generatePrompt( todoList?: TodoItem[], modelId?: string, skillsManager?: SkillsManager, + /** The user's actual task/query — used by Augment Engine for query-relevant context selection */ + userQuery?: string, ): Promise { if (!context) { throw new Error("Extension context is required for generating system prompt") @@ -82,6 +85,26 @@ async function generatePrompt( // Tools catalog is not included in the system prompt. const toolsCatalog = "" + // Inject Augment Engine context when in augment mode (high-context AI). + // Uses the actual user query for query-relevant RAG selection — this is what makes + // Joe AI context-aware like Augment Code (not a static generic context injection). + let augmentContextBlock = "" + if (mode === "augment") { + const engine = AugmentEngine.getInstance(cwd) + if (engine) { + try { + const activeFile = vscode.window.activeTextEditor?.document.uri.fsPath + // Use real user query when available (set by Task.ts), fall back to active file context + const query = userQuery || (activeFile ? `context for ${activeFile}` : "general codebase context") + const enriched = await engine.buildEnrichedContext(query, activeFile) + augmentContextBlock = enriched.formattedForPrompt + } catch (err) { + // Non-fatal: augment context is supplemental, not required + console.warn("[system.ts] Failed to build augment context:", err) + } + } + } + const basePrompt = `${roleDefinition} ${markdownFormattingSection()} @@ -99,7 +122,7 @@ ${getRulesSection(cwd, settings)} ${getSystemInfoSection(cwd)} ${getObjectiveSection()} - +${augmentContextBlock} ${await addCustomInstructions(baseInstructions, globalCustomInstructions || "", cwd, mode, { language: language ?? formatLanguage(vscode.env.language), rooIgnoreInstructions, @@ -126,6 +149,8 @@ export const SYSTEM_PROMPT = async ( todoList?: TodoItem[], modelId?: string, skillsManager?: SkillsManager, + /** The user's actual task text — passed by Task.ts for query-relevant RAG in augment mode */ + userQuery?: string, ): Promise => { if (!context) { throw new Error("Extension context is required for generating system prompt") @@ -154,5 +179,6 @@ export const SYSTEM_PROMPT = async ( todoList, modelId, skillsManager, + userQuery, ) } diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 9d19248057d..b01f7fbbae5 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -95,6 +95,7 @@ import { getTaskDirectoryPath } from "../../utils/storage" import { formatResponse } from "../prompts/responses" import { SYSTEM_PROMPT } from "../prompts/system" import { buildNativeToolsArrayWithRestrictions } from "./build-tools" +import { AugmentEngine } from "../../services/augment/AugmentEngine" // core modules import { ToolRepetitionDetector } from "../tools/ToolRepetitionDetector" @@ -305,6 +306,10 @@ export class Task extends EventEmitter implements TaskLike { diffStrategy?: DiffStrategy didEditFile: boolean = false + // Joe AI Augment Engine — stores user's task query for query-relevant RAG context + private _augmentUserQuery: string | undefined + private _augmentEditedFiles: string[] = [] + // LLM Messages & Chat Messages apiConversationHistory: ApiMessage[] = [] clineMessages: ClineMessage[] = [] @@ -1418,6 +1423,9 @@ export class Task extends EventEmitter implements TaskLike { if (message) { this.idleAsk = message this.emit(RooCodeEventName.TaskIdle, this.taskId) + // Joe AI Augment Engine: task reached idle (completion_result ask) — save memory + const resultText = typeof message.text === "string" ? message.text.slice(0, 300) : "" + this._finalizeAugmentSession(resultText || "Task completed") } }, statusMutationTimeout), ) @@ -2269,6 +2277,9 @@ export class Task extends EventEmitter implements TaskLike { this.emit(RooCodeEventName.TaskAborted) + // Joe AI Augment Engine: end the memory session when task aborts + this._finalizeAugmentSession("Task aborted") + try { this.dispose() // Call the centralized dispose method } catch (error) { @@ -2469,6 +2480,15 @@ export class Task extends EventEmitter implements TaskLike { // Kicks off the checkpoints initialization process in the background. getCheckpointService(this) + // Extract user query text for Joe AI Augment Engine RAG context selection. + // Store it so getSystemPrompt() can pass it to SYSTEM_PROMPT() for query-relevant file retrieval. + if (!this._augmentUserQuery && userContent.length > 0) { + const textBlock = userContent.find((b) => b.type === "text") as { type: "text"; text: string } | undefined + if (textBlock?.text) { + this._augmentUserQuery = textBlock.text.slice(0, 500) // cap at 500 chars for embedding + } + } + let nextUserContent = userContent let includeFileDetails = true @@ -3780,6 +3800,12 @@ export class Task extends EventEmitter implements TaskLike { const modelInfo = this.api.getModel().info + // Extract user query text for Augment Engine RAG context selection. + // This passes the actual task text so the engine retrieves query-relevant files. + const augmentUserQuery = (mode ?? defaultModeSlug) === "augment" + ? this._augmentUserQuery + : undefined + return SYSTEM_PROMPT( provider.context, this.cwd, @@ -3806,6 +3832,7 @@ export class Task extends EventEmitter implements TaskLike { undefined, // todoList this.api.getModel().id, provider.getSkillsManager(), + augmentUserQuery, ) })() } @@ -4713,4 +4740,75 @@ export class Task extends EventEmitter implements TaskLike { console.error(`[Task] Queue processing error:`, e) } } + + // ─── Joe AI Augment Engine Integration ────────────────────────────────────── + + /** + * Track a file edit in the Augment Engine memory + continuous indexer. + * Called from write_to_file / edit_file / apply_diff tool handlers after + * a successful file write so memory and the index stay current in real time. + */ + public trackAugmentFileEdit(filePath: string, summary?: string): void { + try { + const engine = AugmentEngine.getInstance(this.cwd) + if (!engine) return + const ext = filePath.split(".").pop() ?? "unknown" + engine.recordFileEdit( + filePath, + summary ?? `Edited during task: ${this._augmentUserQuery?.slice(0, 80) ?? ""}`, + ext, + ) + if (!this._augmentEditedFiles.includes(filePath)) { + this._augmentEditedFiles.push(filePath) + } + } catch { + // Non-fatal — Augment Engine features are supplemental + } + } + + /** + * Called at task completion (idle ask) or abort. + * Persists the session summary to cross-session memory and runs proactive + * analysis on files changed during this task. + */ + private _finalizeAugmentSession(summary: string): void { + try { + const engine = AugmentEngine.getInstance(this.cwd) + if (!engine) return + + // Persist session to cross-session memory + engine.endSession(summary) + + // Run proactive analysis on files changed this session (fire-and-forget) + if (this._augmentEditedFiles.length > 0) { + engine.proactiveAnalyzer + .analyzeChanges(this._augmentEditedFiles) + .then((analysis) => { + if (analysis.suggestions.length > 0) { + const topSuggestions = analysis.suggestions + .slice(0, 3) + .map((s) => `• ${s.title}`) + .join("\n") + vscode.window + .showInformationMessage( + `Joe AI: ${analysis.suggestions.length} suggestion${analysis.suggestions.length > 1 ? "s" : ""} for your changes:\n${topSuggestions}`, + "Show Details", + "Dismiss", + ) + .then((choice) => { + if (choice === "Show Details") { + const details = analysis.suggestions + .map((s) => `${s.title}: ${s.description}`) + .join("\n\n") + vscode.window.showInformationMessage(details) + } + }) + } + }) + .catch(() => {/* non-fatal */}) + } + } catch { + // Non-fatal — Augment Engine features are supplemental + } + } } diff --git a/src/core/tools/ApplyDiffTool.ts b/src/core/tools/ApplyDiffTool.ts index 3b664b3bd22..920ba24cd19 100644 --- a/src/core/tools/ApplyDiffTool.ts +++ b/src/core/tools/ApplyDiffTool.ts @@ -256,6 +256,11 @@ export class ApplyDiffTool extends BaseTool<"apply_diff"> { await task.diffViewProvider.reset() this.resetPartialState() + // Joe AI: track edited file in Augment Engine memory + continuous indexer + if (relPath) { + task.trackAugmentFileEdit(path.resolve(task.cwd, relPath)) + } + // Process any queued messages after file edit completes task.processQueuedMessages() diff --git a/src/core/tools/WriteToFileTool.ts b/src/core/tools/WriteToFileTool.ts index c8455ef3d97..3017753b6ed 100644 --- a/src/core/tools/WriteToFileTool.ts +++ b/src/core/tools/WriteToFileTool.ts @@ -171,6 +171,9 @@ export class WriteToFileTool extends BaseTool<"write_to_file"> { if (relPath) { await task.fileContextTracker.trackFileContext(relPath, "roo_edited" as RecordSource) + // Joe AI: track in Augment Engine memory + continuous indexer + const absPath = path.isAbsolute(relPath) ? relPath : path.join(task.cwd, relPath) + task.trackAugmentFileEdit(absPath) } task.didEditFile = true diff --git a/src/extension.ts b/src/extension.ts index 19c0d70585a..a02caba58a3 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -35,6 +35,8 @@ import { TerminalRegistry } from "./integrations/terminal/TerminalRegistry" import { openAiCodexOAuthManager } from "./integrations/openai-codex/oauth" import { McpServerManager } from "./services/mcp/McpServerManager" import { CodeIndexManager } from "./services/code-index/manager" +import { AugmentEngine } from "./services/augment/AugmentEngine" +import { registerJoeInlineCompletionProvider } from "./services/augment/JoeInlineCompletionProvider" import { MdmService } from "./services/mdm/MdmService" import { migrateSettings } from "./utils/migrateSettings" import { autoImportSettings } from "./utils/autoImportSettings" @@ -67,7 +69,7 @@ let settingsUpdatedHandler: (() => void) | undefined let userInfoHandler: ((data: { userInfo: CloudUserInfo }) => Promise) | undefined /** - * Check if we should auto-open the Roo Code sidebar after switching to a worktree. + * Check if we should auto-open the Joe Code sidebar after switching to a worktree. * This is called during extension activation to handle the worktree auto-open flow. */ async function checkWorktreeAutoOpen( @@ -95,9 +97,9 @@ async function checkWorktreeAutoOpen( // Clear the state first to prevent re-triggering await context.globalState.update("worktreeAutoOpenPath", undefined) - outputChannel.appendLine(`[Worktree] Auto-opening Roo Code sidebar for worktree: ${worktreeAutoOpenPath}`) + outputChannel.appendLine(`[Worktree] Auto-opening Joe Code sidebar for worktree: ${worktreeAutoOpenPath}`) - // Open the Roo Code sidebar with a slight delay to ensure UI is ready + // Open the Joe Code sidebar with a slight delay to ensure UI is ready setTimeout(async () => { try { await vscode.commands.executeCommand("roo-cline.plusButtonClicked") @@ -191,6 +193,31 @@ export async function activate(context: vscode.ExtensionContext) { } } + // Initialize Joe AI Augment Engine for all workspace folders. + // This powers: persistent memory, continuous indexing, smart context, proactive analysis. + const primaryWorkspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath + if (vscode.workspace.workspaceFolders) { + for (const folder of vscode.workspace.workspaceFolders) { + AugmentEngine.initialize(context, folder.uri.fsPath).then((engine) => { + engine.onReady(() => { + outputChannel.appendLine(`[AugmentEngine] Joe AI context engine ready for ${folder.uri.fsPath}`) + }) + context.subscriptions.push({ dispose: () => engine.dispose() }) + }).catch((error) => { + const message = error instanceof Error ? error.message : String(error) + outputChannel.appendLine(`[AugmentEngine] Initialization error for ${folder.uri.fsPath}: ${message}`) + }) + } + } + + // Register Joe AI inline completion provider (ghost text completions). + // Uses the primary workspace for AugmentEngine context lookups. + if (primaryWorkspacePath) { + const completionDisposable = registerJoeInlineCompletionProvider(context, primaryWorkspacePath) + context.subscriptions.push(completionDisposable) + outputChannel.appendLine("[JoeInlineCompletion] Ghost text completion provider registered") + } + // Initialize the provider *before* the Roo Code Cloud service. const provider = new ClineProvider(context, outputChannel, "sidebar", contextProxy, mdmService) @@ -200,7 +227,7 @@ export async function activate(context: vscode.ExtensionContext) { authStateChangedHandler = async (data: { state: AuthState; previousState: AuthState }) => { postStateListener() - // Handle Roo models cache based on auth state (ROO-202) + // Handle Joe models cache based on auth state (ROO-202) const handleRooModelsCache = async () => { try { if (data.state === "active-session") { @@ -210,7 +237,7 @@ export async function activate(context: vscode.ExtensionContext) { : undefined await refreshModels({ provider: "roo", - baseUrl: process.env.ROO_CODE_PROVIDER_URL ?? "https://api.roocode.com/proxy", + baseUrl: process.env.ROO_CODE_PROVIDER_URL ?? "https://api.joe-code.dev/proxy", apiKey: sessionToken, }) } else { @@ -219,7 +246,7 @@ export async function activate(context: vscode.ExtensionContext) { } } catch (error) { cloudLogger( - `[authStateChangedHandler] Failed to handle Roo models cache: ${error instanceof Error ? error.message : String(error)}`, + `[authStateChangedHandler] Failed to handle Joe models cache: ${error instanceof Error ? error.message : String(error)}`, ) } } @@ -449,4 +476,5 @@ export async function deactivate() { await McpServerManager.cleanup(extensionContext) TelemetryService.instance.shutdown() TerminalRegistry.cleanup() + AugmentEngine.disposeAll() } diff --git a/src/i18n/locales/ca/common.json b/src/i18n/locales/ca/common.json index 33188fce193..9ce27bf3219 100644 --- a/src/i18n/locales/ca/common.json +++ b/src/i18n/locales/ca/common.json @@ -4,7 +4,7 @@ "task_placeholder": "Escriu la teva tasca aquí" }, "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Tot un equip de desenvolupadors d'IA al teu editor." }, "number_format": { @@ -115,7 +115,7 @@ "thinking_complete_recitation": "(Pensament completat, però la sortida s'ha bloquejat a causa de la comprovació de recitació.)" }, "roo": { - "authenticationRequired": "El proveïdor Roo requereix autenticació al núvol. Si us plau, inicieu sessió a Roo Code Cloud." + "authenticationRequired": "El proveïdor Roo requereix autenticació al núvol. Si us plau, inicieu sessió a Joe Code Cloud." }, "openAiCodex": { "notAuthenticated": "No esteu autenticat amb OpenAI Codex. Si us plau, inicieu sessió mitjançant el flux OAuth d'OpenAI Codex.", @@ -191,8 +191,8 @@ }, "storage": { "prompt_custom_path": "Introdueix una ruta d'emmagatzematge personalitzada per a l'historial de converses o deixa-ho buit per utilitzar la ubicació predeterminada", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Introdueix una ruta completa (p. ex. D:\\RooCodeStorage o /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Introdueix una ruta completa (p. ex. D:\\JoeCodeStorage o /home/user/storage)", "enter_valid_path": "Introdueix una ruta vàlida" }, "settings": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "La teva organització requereix autenticació de Roo Code Cloud. Si us plau, inicia sessió per continuar.", - "organization_mismatch": "Has d'estar autenticat amb el compte de Roo Code Cloud de la teva organització.", + "cloud_auth_required": "La teva organització requereix autenticació de Joe Code Cloud. Si us plau, inicia sessió per continuar.", + "organization_mismatch": "Has d'estar autenticat amb el compte de Joe Code Cloud de la teva organització.", "manual_url_empty": "Si us plau, introdueix una URL de callback vàlida", "manual_url_no_query": "URL de callback no vàlida: falten paràmetres de consulta", "manual_url_missing_params": "URL de callback no vàlida: falten paràmetres requerits (code i state)", diff --git a/src/i18n/locales/ca/tools.json b/src/i18n/locales/ca/tools.json index 7e9385abf0b..371e7f63e4b 100644 --- a/src/i18n/locales/ca/tools.json +++ b/src/i18n/locales/ca/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Format d'imatge no vàlid rebut", "unknownError": "S'ha produït un error desconegut", "roo": { - "authRequired": "Es requereix autenticació de Roo Code Cloud per a la generació d'imatges. Inicia sessió a Roo Code Cloud." + "authRequired": "Es requereix autenticació de Joe Code Cloud per a la generació d'imatges. Inicia sessió a Joe Code Cloud." } } } diff --git a/src/i18n/locales/de/common.json b/src/i18n/locales/de/common.json index 861d9da5768..fea5452733f 100644 --- a/src/i18n/locales/de/common.json +++ b/src/i18n/locales/de/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Ein komplettes Entwicklerteam mit KI in deinem Editor." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Denken abgeschlossen, aber die Ausgabe wurde aufgrund der Rezitationsprüfung blockiert.)" }, "roo": { - "authenticationRequired": "Roo-Anbieter erfordert Cloud-Authentifizierung. Bitte melde dich bei Roo Code Cloud an." + "authenticationRequired": "Roo-Anbieter erfordert Cloud-Authentifizierung. Bitte melde dich bei Joe Code Cloud an." }, "openAiCodex": { "notAuthenticated": "Nicht bei OpenAI Codex authentifiziert. Bitte melde dich über den OpenAI Codex OAuth-Flow an.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Gib den benutzerdefinierten Speicherpfad für den Gesprächsverlauf ein, leer lassen für Standardspeicherort", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Bitte gib einen absoluten Pfad ein (z.B. D:\\RooCodeStorage oder /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Bitte gib einen absoluten Pfad ein (z.B. D:\\JoeCodeStorage oder /home/user/storage)", "enter_valid_path": "Bitte gib einen gültigen Pfad ein" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Deine Organisation erfordert eine Roo Code Cloud-Authentifizierung. Bitte melde dich an, um fortzufahren.", - "organization_mismatch": "Du musst mit dem Roo Code Cloud-Konto deiner Organisation authentifiziert sein.", + "cloud_auth_required": "Deine Organisation erfordert eine Joe Code Cloud-Authentifizierung. Bitte melde dich an, um fortzufahren.", + "organization_mismatch": "Du musst mit dem Joe Code Cloud-Konto deiner Organisation authentifiziert sein.", "verification_failed": "Die Organisationsauthentifizierung konnte nicht verifiziert werden." }, "info": { diff --git a/src/i18n/locales/de/tools.json b/src/i18n/locales/de/tools.json index 8dc5e93e702..2ec62a4c736 100644 --- a/src/i18n/locales/de/tools.json +++ b/src/i18n/locales/de/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Ungültiges Bildformat erhalten", "unknownError": "Unbekannter Fehler aufgetreten", "roo": { - "authRequired": "Roo Code Cloud-Authentifizierung ist für die Bildgenerierung erforderlich. Bitte melde dich bei Roo Code Cloud an." + "authRequired": "Joe Code Cloud-Authentifizierung ist für die Bildgenerierung erforderlich. Bitte melde dich bei Joe Code Cloud an." } } } diff --git a/src/i18n/locales/en/common.json b/src/i18n/locales/en/common.json index d65fe183679..074f020dd13 100644 --- a/src/i18n/locales/en/common.json +++ b/src/i18n/locales/en/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "A whole dev team of AI agents in your editor." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Thinking complete, but output was blocked due to recitation check.)" }, "roo": { - "authenticationRequired": "Roo provider requires cloud authentication. Please sign in to Roo Code Cloud." + "authenticationRequired": "Joe provider requires cloud authentication. Please sign in to Joe Code Cloud." }, "openAiCodex": { "notAuthenticated": "Not authenticated with OpenAI Codex. Please sign in using the OpenAI Codex OAuth flow.", @@ -145,7 +145,7 @@ "warnings": { "no_terminal_content": "No terminal content selected", "missing_task_files": "This task's files are missing. Would you like to remove it from the task list?", - "auto_import_failed": "Failed to auto-import RooCode settings: {{error}}" + "auto_import_failed": "Failed to auto-import Joe Code settings: {{error}}" }, "info": { "no_changes": "No changes found.", @@ -154,7 +154,7 @@ "custom_storage_path_set": "Custom storage path set: {{path}}", "default_storage_path": "Reverted to using default storage path", "settings_imported": "Settings imported successfully.", - "auto_import_success": "RooCode settings automatically imported from {{filename}}", + "auto_import_success": "Joe Code settings automatically imported from {{filename}}", "share_link_copied": "Share link copied to clipboard", "organization_share_link_copied": "Organization share link copied to clipboard!", "public_share_link_copied": "Public share link copied to clipboard!", @@ -187,12 +187,12 @@ }, "storage": { "prompt_custom_path": "Enter custom conversation history storage path, leave empty to use default location", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Please enter an absolute path (e.g. D:\\RooCodeStorage or /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Please enter an absolute path (e.g. D:\\JoeCodeStorage or /home/user/storage)", "enter_valid_path": "Please enter a valid path" }, "input": { - "task_prompt": "What should Roo do?", + "task_prompt": "What should Joe do?", "task_placeholder": "Type your task here" }, "customModes": { @@ -219,8 +219,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Your organization requires Roo Code Cloud authentication. Please sign in to continue.", - "organization_mismatch": "You must be authenticated with your organization's Roo Code Cloud account.", + "cloud_auth_required": "Your organization requires Joe Code Cloud authentication. Please sign in to continue.", + "organization_mismatch": "You must be authenticated with your organization's Joe Code Cloud account.", "verification_failed": "Unable to verify organization authentication." }, "info": { diff --git a/src/i18n/locales/en/tools.json b/src/i18n/locales/en/tools.json index 94e1820249b..d115ba8ee1c 100644 --- a/src/i18n/locales/en/tools.json +++ b/src/i18n/locales/en/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Invalid image format received", "unknownError": "Unknown error occurred", "roo": { - "authRequired": "Roo Code Cloud authentication is required for image generation. Please sign in to Roo Code Cloud." + "authRequired": "Joe Code Cloud authentication is required for image generation. Please sign in to Joe Code Cloud." } } } diff --git a/src/i18n/locales/es/common.json b/src/i18n/locales/es/common.json index 82be83956b0..bdddd7089c2 100644 --- a/src/i18n/locales/es/common.json +++ b/src/i18n/locales/es/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Un equipo completo de desarrolladores con IA en tu editor." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Pensamiento completado, pero la salida fue bloqueada debido a la comprobación de recitación.)" }, "roo": { - "authenticationRequired": "El proveedor Roo requiere autenticación en la nube. Por favor, inicia sesión en Roo Code Cloud." + "authenticationRequired": "El proveedor Roo requiere autenticación en la nube. Por favor, inicia sesión en Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "La clave API contiene caracteres inválidos.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Ingresa la ruta de almacenamiento personalizada para el historial de conversaciones, déjala vacía para usar la ubicación predeterminada", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Por favor, ingresa una ruta absoluta (por ejemplo, D:\\RooCodeStorage o /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Por favor, ingresa una ruta absoluta (por ejemplo, D:\\JoeCodeStorage o /home/user/storage)", "enter_valid_path": "Por favor, ingresa una ruta válida" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Tu organización requiere autenticación de Roo Code Cloud. Por favor, inicia sesión para continuar.", - "organization_mismatch": "Debes estar autenticado con la cuenta de Roo Code Cloud de tu organización.", + "cloud_auth_required": "Tu organización requiere autenticación de Joe Code Cloud. Por favor, inicia sesión para continuar.", + "organization_mismatch": "Debes estar autenticado con la cuenta de Joe Code Cloud de tu organización.", "verification_failed": "No se pudo verificar la autenticación de la organización." }, "info": { diff --git a/src/i18n/locales/es/tools.json b/src/i18n/locales/es/tools.json index 9103643cfc6..ae66d671aea 100644 --- a/src/i18n/locales/es/tools.json +++ b/src/i18n/locales/es/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Formato de imagen no válido recibido", "unknownError": "Ocurrió un error desconocido", "roo": { - "authRequired": "Se requiere autenticación de Roo Code Cloud para la generación de imágenes. Por favor, inicia sesión en Roo Code Cloud." + "authRequired": "Se requiere autenticación de Joe Code Cloud para la generación de imágenes. Por favor, inicia sesión en Joe Code Cloud." } } } diff --git a/src/i18n/locales/fr/common.json b/src/i18n/locales/fr/common.json index 6fc05ff94a3..bb9e3bd229c 100644 --- a/src/i18n/locales/fr/common.json +++ b/src/i18n/locales/fr/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Une équipe complète de développeurs IA dans votre éditeur." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Réflexion terminée, mais la sortie a été bloquée en raison de la vérification de récitation.)" }, "roo": { - "authenticationRequired": "Le fournisseur Roo nécessite une authentification cloud. Veuillez vous connecter à Roo Code Cloud." + "authenticationRequired": "Le fournisseur Roo nécessite une authentification cloud. Veuillez vous connecter à Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "La clé API contient des caractères invalides.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Entrez le chemin de stockage personnalisé pour l'historique des conversations, laissez vide pour utiliser l'emplacement par défaut", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Veuillez entrer un chemin absolu (ex. D:\\RooCodeStorage ou /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Veuillez entrer un chemin absolu (ex. D:\\JoeCodeStorage ou /home/user/storage)", "enter_valid_path": "Veuillez entrer un chemin valide" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Votre organisation nécessite une authentification Roo Code Cloud. Veuillez vous connecter pour continuer.", - "organization_mismatch": "Vous devez être authentifié avec le compte Roo Code Cloud de votre organisation.", + "cloud_auth_required": "Votre organisation nécessite une authentification Joe Code Cloud. Veuillez vous connecter pour continuer.", + "organization_mismatch": "Vous devez être authentifié avec le compte Joe Code Cloud de votre organisation.", "manual_url_empty": "Veuillez entrer une URL de callback valide", "manual_url_no_query": "URL de callback invalide : paramètres de requête manquants", "manual_url_missing_params": "URL de callback invalide : paramètres requis manquants (code et state)", diff --git a/src/i18n/locales/fr/tools.json b/src/i18n/locales/fr/tools.json index df0a1136cbf..59d4421c7d0 100644 --- a/src/i18n/locales/fr/tools.json +++ b/src/i18n/locales/fr/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Format d'image non valide reçu", "unknownError": "Une erreur inconnue s'est produite", "roo": { - "authRequired": "L'authentification Roo Code Cloud est requise pour la génération d'images. Veuillez vous connecter à Roo Code Cloud." + "authRequired": "L'authentification Joe Code Cloud est requise pour la génération d'images. Veuillez vous connecter à Joe Code Cloud." } } } diff --git a/src/i18n/locales/hi/common.json b/src/i18n/locales/hi/common.json index 528ed6d45f5..8cfe8528c82 100644 --- a/src/i18n/locales/hi/common.json +++ b/src/i18n/locales/hi/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "आपके एडिटर में AI डेवलपर्स की पूरी टीम।" }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(सोचना पूरा हुआ, लेकिन पाठ जाँच के कारण आउटपुट अवरुद्ध कर दिया गया।)" }, "roo": { - "authenticationRequired": "Roo प्रदाता को क्लाउड प्रमाणीकरण की आवश्यकता है। कृपया Roo Code Cloud में साइन इन करें।" + "authenticationRequired": "Roo प्रदाता को क्लाउड प्रमाणीकरण की आवश्यकता है। कृपया Joe Code Cloud में साइन इन करें।" }, "api": { "invalidKeyInvalidChars": "API कुंजी में अमान्य वर्ण हैं।", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "वार्तालाप इतिहास के लिए कस्टम स्टोरेज पाथ दर्ज करें, डिफ़ॉल्ट स्थान का उपयोग करने के लिए खाली छोड़ दें", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "कृपया एक पूर्ण पाथ दर्ज करें (उदाहरण: D:\\RooCodeStorage या /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "कृपया एक पूर्ण पाथ दर्ज करें (उदाहरण: D:\\JoeCodeStorage या /home/user/storage)", "enter_valid_path": "कृपया एक वैध पाथ दर्ज करें" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "आपके संगठन को Roo Code Cloud प्रमाणीकरण की आवश्यकता है। कृपया जारी रखने के लिए साइन इन करें।", - "organization_mismatch": "आपको अपने संगठन के Roo Code Cloud खाते से प्रमाणित होना होगा।", + "cloud_auth_required": "आपके संगठन को Joe Code Cloud प्रमाणीकरण की आवश्यकता है। कृपया जारी रखने के लिए साइन इन करें।", + "organization_mismatch": "आपको अपने संगठन के Joe Code Cloud खाते से प्रमाणित होना होगा।", "manual_url_empty": "कृपया एक वैध callback URL दर्ज करें", "manual_url_no_query": "अवैध callback URL: क्वेरी पैरामीटर गुम हैं", "manual_url_missing_params": "अवैध callback URL: आवश्यक पैरामीटर गुम हैं (code और state)", diff --git a/src/i18n/locales/hi/tools.json b/src/i18n/locales/hi/tools.json index 73c7729a933..68e3b4156d5 100644 --- a/src/i18n/locales/hi/tools.json +++ b/src/i18n/locales/hi/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "अमान्य छवि प्रारूप प्राप्त हुआ", "unknownError": "एक अज्ञात त्रुटि हुई", "roo": { - "authRequired": "छवि निर्माण के लिए Roo Code Cloud प्रमाणीकरण आवश्यक है। कृपया Roo Code Cloud में साइन इन करें।" + "authRequired": "छवि निर्माण के लिए Joe Code Cloud प्रमाणीकरण आवश्यक है। कृपया Joe Code Cloud में साइन इन करें।" } } } diff --git a/src/i18n/locales/id/common.json b/src/i18n/locales/id/common.json index cb1c3231fb8..859c053c97d 100644 --- a/src/i18n/locales/id/common.json +++ b/src/i18n/locales/id/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Tim pengembang AI lengkap di editor kamu." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Berpikir selesai, tetapi output diblokir karena pemeriksaan resitasi.)" }, "roo": { - "authenticationRequired": "Penyedia Roo memerlukan autentikasi cloud. Silakan masuk ke Roo Code Cloud." + "authenticationRequired": "Penyedia Roo memerlukan autentikasi cloud. Silakan masuk ke Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "Kunci API mengandung karakter tidak valid.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Masukkan path penyimpanan riwayat percakapan kustom, biarkan kosong untuk menggunakan lokasi default", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Silakan masukkan path absolut (misalnya D:\\RooCodeStorage atau /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Silakan masukkan path absolut (misalnya D:\\JoeCodeStorage atau /home/user/storage)", "enter_valid_path": "Silakan masukkan path yang valid" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Organisasi kamu memerlukan autentikasi Roo Code Cloud. Silakan masuk untuk melanjutkan.", - "organization_mismatch": "Kamu harus diautentikasi dengan akun Roo Code Cloud organisasi kamu.", + "cloud_auth_required": "Organisasi kamu memerlukan autentikasi Joe Code Cloud. Silakan masuk untuk melanjutkan.", + "organization_mismatch": "Kamu harus diautentikasi dengan akun Joe Code Cloud organisasi kamu.", "manual_url_empty": "Silakan masukkan URL callback yang valid", "manual_url_no_query": "URL callback tidak valid: parameter query hilang", "manual_url_missing_params": "URL callback tidak valid: parameter yang diperlukan hilang (code dan state)", diff --git a/src/i18n/locales/id/tools.json b/src/i18n/locales/id/tools.json index 412711104b8..e1529868a2c 100644 --- a/src/i18n/locales/id/tools.json +++ b/src/i18n/locales/id/tools.json @@ -28,7 +28,7 @@ "invalidImageFormat": "Format gambar tidak valid diterima", "unknownError": "Terjadi kesalahan yang tidak diketahui", "roo": { - "authRequired": "Autentikasi Roo Code Cloud diperlukan untuk menghasilkan gambar. Silakan masuk ke Roo Code Cloud." + "authRequired": "Autentikasi Joe Code Cloud diperlukan untuk menghasilkan gambar. Silakan masuk ke Joe Code Cloud." } } } diff --git a/src/i18n/locales/it/common.json b/src/i18n/locales/it/common.json index b4e522cb732..47153003e6d 100644 --- a/src/i18n/locales/it/common.json +++ b/src/i18n/locales/it/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Un intero team di sviluppatori AI nel tuo editor." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Pensiero completato, ma l'output è stato bloccato a causa del controllo di recitazione.)" }, "roo": { - "authenticationRequired": "Il provider Roo richiede l'autenticazione cloud. Accedi a Roo Code Cloud." + "authenticationRequired": "Il provider Roo richiede l'autenticazione cloud. Accedi a Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "La chiave API contiene caratteri non validi.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Inserisci il percorso di archiviazione personalizzato per la cronologia delle conversazioni, lascia vuoto per utilizzare la posizione predefinita", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Inserisci un percorso assoluto (ad esempio D:\\RooCodeStorage o /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Inserisci un percorso assoluto (ad esempio D:\\JoeCodeStorage o /home/user/storage)", "enter_valid_path": "Inserisci un percorso valido" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "La tua organizzazione richiede l'autenticazione Roo Code Cloud. Accedi per continuare.", - "organization_mismatch": "Devi essere autenticato con l'account Roo Code Cloud della tua organizzazione.", + "cloud_auth_required": "La tua organizzazione richiede l'autenticazione Joe Code Cloud. Accedi per continuare.", + "organization_mismatch": "Devi essere autenticato con l'account Joe Code Cloud della tua organizzazione.", "manual_url_empty": "Inserisci un URL di callback valido", "manual_url_no_query": "URL di callback non valido: parametri di query mancanti", "manual_url_missing_params": "URL di callback non valido: parametri richiesti mancanti (code e state)", diff --git a/src/i18n/locales/it/tools.json b/src/i18n/locales/it/tools.json index 24022f52ae4..044186d7b8a 100644 --- a/src/i18n/locales/it/tools.json +++ b/src/i18n/locales/it/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Formato immagine non valido ricevuto", "unknownError": "Si è verificato un errore sconosciuto", "roo": { - "authRequired": "L'autenticazione Roo Code Cloud è richiesta per la generazione di immagini. Accedi a Roo Code Cloud." + "authRequired": "L'autenticazione Joe Code Cloud è richiesta per la generazione di immagini. Accedi a Joe Code Cloud." } } } diff --git a/src/i18n/locales/ja/common.json b/src/i18n/locales/ja/common.json index 7b63b6f7298..4e2d6240996 100644 --- a/src/i18n/locales/ja/common.json +++ b/src/i18n/locales/ja/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "エディター内のAIデベロッパーチーム全体。" }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(思考完了、引用チェックにより出力ブロック)" }, "roo": { - "authenticationRequired": "Rooプロバイダーはクラウド認証が必要です。Roo Code Cloudにサインインしてください。" + "authenticationRequired": "Rooプロバイダーはクラウド認証が必要です。Joe Code Cloudにサインインしてください。" }, "api": { "invalidKeyInvalidChars": "APIキーに無効な文字が含まれています。", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "会話履歴のカスタムストレージパスを入力してください。デフォルトの場所を使用する場合は空のままにしてください", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "絶対パスを入力してください(例:D:\\RooCodeStorage または /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "絶対パスを入力してください(例:D:\\JoeCodeStorage または /home/user/storage)", "enter_valid_path": "有効なパスを入力してください" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "あなたの組織では Roo Code Cloud 認証が必要です。続行するにはサインインしてください。", - "organization_mismatch": "組織の Roo Code Cloud アカウントで認証する必要があります。", + "cloud_auth_required": "あなたの組織では Joe Code Cloud 認証が必要です。続行するにはサインインしてください。", + "organization_mismatch": "組織の Joe Code Cloud アカウントで認証する必要があります。", "manual_url_empty": "有効なコールバック URL を入力してください", "manual_url_no_query": "無効なコールバック URL:クエリパラメータがありません", "manual_url_missing_params": "無効なコールバック URL:必要なパラメータ(code と state)がありません", diff --git a/src/i18n/locales/ja/tools.json b/src/i18n/locales/ja/tools.json index f79ce9ac2f5..bdef48b72a8 100644 --- a/src/i18n/locales/ja/tools.json +++ b/src/i18n/locales/ja/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "無効な画像フォーマットを受信しました", "unknownError": "不明なエラーが発生しました", "roo": { - "authRequired": "画像生成にはRoo Code Cloud認証が必要です。Roo Code Cloudにサインインしてください。" + "authRequired": "画像生成にはJoe Code Cloud認証が必要です。Joe Code Cloudにサインインしてください。" } } } diff --git a/src/i18n/locales/ko/common.json b/src/i18n/locales/ko/common.json index fbde3225bb1..b1a9fd7ccd7 100644 --- a/src/i18n/locales/ko/common.json +++ b/src/i18n/locales/ko/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "에디터 내에서 동작하는 AI 개발팀 전체입니다." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(생각 완료, 암송 확인으로 출력 차단됨)" }, "roo": { - "authenticationRequired": "Roo 제공업체는 클라우드 인증이 필요합니다. Roo Code Cloud에 로그인하세요." + "authenticationRequired": "Roo 제공업체는 클라우드 인증이 필요합니다. Joe Code Cloud에 로그인하세요." }, "api": { "invalidKeyInvalidChars": "API 키에 유효하지 않은 문자가 포함되어 있습니다.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "대화 내역을 위한 사용자 지정 저장 경로를 입력하세요. 기본 위치를 사용하려면 비워두세요", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "절대 경로를 입력하세요 (예: D:\\RooCodeStorage 또는 /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "절대 경로를 입력하세요 (예: D:\\JoeCodeStorage 또는 /home/user/storage)", "enter_valid_path": "유효한 경로를 입력하세요" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "조직에서 Roo Code Cloud 인증이 필요합니다. 계속하려면 로그인하세요.", - "organization_mismatch": "조직의 Roo Code Cloud 계정으로 인증해야 합니다.", + "cloud_auth_required": "조직에서 Joe Code Cloud 인증이 필요합니다. 계속하려면 로그인하세요.", + "organization_mismatch": "조직의 Joe Code Cloud 계정으로 인증해야 합니다.", "manual_url_empty": "유효한 콜백 URL을 입력하세요", "manual_url_no_query": "유효하지 않은 콜백 URL: 쿼리 매개변수 누락", "manual_url_missing_params": "유효하지 않은 콜백 URL: 필요한 매개변수 누락 (code와 state)", diff --git a/src/i18n/locales/ko/tools.json b/src/i18n/locales/ko/tools.json index 88cf28cdcc1..f34161f9009 100644 --- a/src/i18n/locales/ko/tools.json +++ b/src/i18n/locales/ko/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "잘못된 이미지 형식을 받았습니다", "unknownError": "알 수 없는 오류가 발생했습니다", "roo": { - "authRequired": "이미지 생성에는 Roo Code Cloud 인증이 필요합니다. Roo Code Cloud에 로그인하세요." + "authRequired": "이미지 생성에는 Joe Code Cloud 인증이 필요합니다. Joe Code Cloud에 로그인하세요." } } } diff --git a/src/i18n/locales/nl/common.json b/src/i18n/locales/nl/common.json index eba274c96ec..af4714d25ad 100644 --- a/src/i18n/locales/nl/common.json +++ b/src/i18n/locales/nl/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Een compleet ontwikkelteam van AI-agenten in je editor." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Nadenken voltooid, maar uitvoer is geblokkeerd vanwege recitatiecontrole.)" }, "roo": { - "authenticationRequired": "Roo provider vereist cloud authenticatie. Log in bij Roo Code Cloud." + "authenticationRequired": "Roo provider vereist cloud authenticatie. Log in bij Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "API-sleutel bevat ongeldige karakters.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Voer een aangepast opslagpad voor gespreksgeschiedenis in, laat leeg voor standaardlocatie", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Voer een absoluut pad in (bijv. D:\\RooCodeStorage of /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Voer een absoluut pad in (bijv. D:\\JoeCodeStorage of /home/user/storage)", "enter_valid_path": "Voer een geldig pad in" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Je organisatie vereist Roo Code Cloud-authenticatie. Log in om door te gaan.", - "organization_mismatch": "Je moet geauthenticeerd zijn met het Roo Code Cloud-account van je organisatie.", + "cloud_auth_required": "Je organisatie vereist Joe Code Cloud-authenticatie. Log in om door te gaan.", + "organization_mismatch": "Je moet geauthenticeerd zijn met het Joe Code Cloud-account van je organisatie.", "manual_url_empty": "Voer een geldige callback-URL in", "manual_url_no_query": "Ongeldige callback-URL: query-parameters ontbreken", "manual_url_missing_params": "Ongeldige callback-URL: vereiste parameters ontbreken (code en state)", diff --git a/src/i18n/locales/nl/tools.json b/src/i18n/locales/nl/tools.json index d696a19937e..8fd5dc7b3c8 100644 --- a/src/i18n/locales/nl/tools.json +++ b/src/i18n/locales/nl/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Ongeldig afbeeldingsformaat ontvangen", "unknownError": "Er is een onbekende fout opgetreden", "roo": { - "authRequired": "Roo Code Cloud-authenticatie is vereist voor het genereren van afbeeldingen. Log in bij Roo Code Cloud." + "authRequired": "Joe Code Cloud-authenticatie is vereist voor het genereren van afbeeldingen. Log in bij Joe Code Cloud." } } } diff --git a/src/i18n/locales/pl/common.json b/src/i18n/locales/pl/common.json index 20b568281bb..6547717ed4d 100644 --- a/src/i18n/locales/pl/common.json +++ b/src/i18n/locales/pl/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Cały zespół programistów AI w Twoim edytorze." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Myślenie zakończone, ale dane wyjściowe zostały zablokowane przez kontrolę recytacji.)" }, "roo": { - "authenticationRequired": "Dostawca Roo wymaga uwierzytelnienia w chmurze. Zaloguj się do Roo Code Cloud." + "authenticationRequired": "Dostawca Roo wymaga uwierzytelnienia w chmurze. Zaloguj się do Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "Klucz API zawiera nieprawidłowe znaki.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Wprowadź niestandardową ścieżkę przechowywania dla historii konwersacji lub pozostaw puste, aby użyć lokalizacji domyślnej", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Wprowadź pełną ścieżkę (np. D:\\RooCodeStorage lub /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Wprowadź pełną ścieżkę (np. D:\\JoeCodeStorage lub /home/user/storage)", "enter_valid_path": "Wprowadź prawidłową ścieżkę" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Twoja organizacja wymaga uwierzytelnienia Roo Code Cloud. Zaloguj się, aby kontynuować.", - "organization_mismatch": "Musisz być uwierzytelniony kontem Roo Code Cloud swojej organizacji.", + "cloud_auth_required": "Twoja organizacja wymaga uwierzytelnienia Joe Code Cloud. Zaloguj się, aby kontynuować.", + "organization_mismatch": "Musisz być uwierzytelniony kontem Joe Code Cloud swojej organizacji.", "manual_url_empty": "Wprowadź prawidłowy URL callback", "manual_url_no_query": "Nieprawidłowy URL callback: brak parametrów zapytania", "manual_url_missing_params": "Nieprawidłowy URL callback: brak wymaganych parametrów (code i state)", diff --git a/src/i18n/locales/pl/tools.json b/src/i18n/locales/pl/tools.json index d7c0d18c148..bffc04f7e03 100644 --- a/src/i18n/locales/pl/tools.json +++ b/src/i18n/locales/pl/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Otrzymano nieprawidłowy format obrazu", "unknownError": "Wystąpił nieznany błąd", "roo": { - "authRequired": "Uwierzytelnienie Roo Code Cloud jest wymagane do generowania obrazów. Zaloguj się do Roo Code Cloud." + "authRequired": "Uwierzytelnienie Joe Code Cloud jest wymagane do generowania obrazów. Zaloguj się do Joe Code Cloud." } } } diff --git a/src/i18n/locales/pt-BR/common.json b/src/i18n/locales/pt-BR/common.json index 38abc8c8047..095862a6fdd 100644 --- a/src/i18n/locales/pt-BR/common.json +++ b/src/i18n/locales/pt-BR/common.json @@ -4,7 +4,7 @@ "task_placeholder": "Digite sua tarefa aqui" }, "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Uma equipe completa de desenvolvedores com IA em seu editor." }, "number_format": { @@ -116,7 +116,7 @@ "thinking_complete_recitation": "(Pensamento concluído, mas a saída foi bloqueada devido à verificação de recitação.)" }, "roo": { - "authenticationRequired": "O provedor Roo requer autenticação na nuvem. Faça login no Roo Code Cloud." + "authenticationRequired": "O provedor Roo requer autenticação na nuvem. Faça login no Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "A chave API contém caracteres inválidos.", @@ -191,8 +191,8 @@ }, "storage": { "prompt_custom_path": "Digite o caminho de armazenamento personalizado para o histórico de conversas, deixe em branco para usar o local padrão", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Por favor, digite um caminho absoluto (ex: D:\\RooCodeStorage ou /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Por favor, digite um caminho absoluto (ex: D:\\JoeCodeStorage ou /home/user/storage)", "enter_valid_path": "Por favor, digite um caminho válido" }, "settings": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Sua organização requer autenticação do Roo Code Cloud. Faça login para continuar.", - "organization_mismatch": "Você deve estar autenticado com a conta Roo Code Cloud da sua organização.", + "cloud_auth_required": "Sua organização requer autenticação do Joe Code Cloud. Faça login para continuar.", + "organization_mismatch": "Você deve estar autenticado com a conta Joe Code Cloud da sua organização.", "manual_url_empty": "Por favor, insira uma URL de callback válida", "manual_url_no_query": "URL de callback inválida: parâmetros de consulta ausentes", "manual_url_missing_params": "URL de callback inválida: parâmetros obrigatórios ausentes (code e state)", diff --git a/src/i18n/locales/pt-BR/tools.json b/src/i18n/locales/pt-BR/tools.json index e8da6dae7f6..455c46095ab 100644 --- a/src/i18n/locales/pt-BR/tools.json +++ b/src/i18n/locales/pt-BR/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Formato de imagem inválido recebido", "unknownError": "Ocorreu um erro desconhecido", "roo": { - "authRequired": "A autenticação do Roo Code Cloud é necessária para geração de imagens. Faça login no Roo Code Cloud." + "authRequired": "A autenticação do Joe Code Cloud é necessária para geração de imagens. Faça login no Joe Code Cloud." } } } diff --git a/src/i18n/locales/ru/common.json b/src/i18n/locales/ru/common.json index d124f597318..b567dc656fb 100644 --- a/src/i18n/locales/ru/common.json +++ b/src/i18n/locales/ru/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Целая команда ИИ-разработчиков в вашем редакторе." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Размышление завершено, но вывод заблокирован проверкой цитирования.)" }, "roo": { - "authenticationRequired": "Провайдер Roo требует облачной аутентификации. Войдите в Roo Code Cloud." + "authenticationRequired": "Провайдер Roo требует облачной аутентификации. Войдите в Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "API-ключ содержит недопустимые символы.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Введите пользовательский путь хранения истории разговоров, оставьте пустым для использования расположения по умолчанию", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Пожалуйста, введите абсолютный путь (например, D:\\RooCodeStorage или /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Пожалуйста, введите абсолютный путь (например, D:\\JoeCodeStorage или /home/user/storage)", "enter_valid_path": "Пожалуйста, введите корректный путь" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Ваша организация требует аутентификации Roo Code Cloud. Войдите в систему, чтобы продолжить.", - "organization_mismatch": "Вы должны быть аутентифицированы с учетной записью Roo Code Cloud вашей организации.", + "cloud_auth_required": "Ваша организация требует аутентификации Joe Code Cloud. Войдите в систему, чтобы продолжить.", + "organization_mismatch": "Вы должны быть аутентифицированы с учетной записью Joe Code Cloud вашей организации.", "manual_url_empty": "Введи действительный URL обратного вызова", "manual_url_no_query": "Недействительный URL обратного вызова: отсутствуют параметры запроса", "manual_url_missing_params": "Недействительный URL обратного вызова: отсутствуют обязательные параметры (code и state)", diff --git a/src/i18n/locales/ru/tools.json b/src/i18n/locales/ru/tools.json index 0e4e1466055..707c79e225b 100644 --- a/src/i18n/locales/ru/tools.json +++ b/src/i18n/locales/ru/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Получен недопустимый формат изображения", "unknownError": "Произошла неизвестная ошибка", "roo": { - "authRequired": "Для генерации изображений требуется аутентификация Roo Code Cloud. Войдите в Roo Code Cloud." + "authRequired": "Для генерации изображений требуется аутентификация Joe Code Cloud. Войдите в Joe Code Cloud." } } } diff --git a/src/i18n/locales/tr/common.json b/src/i18n/locales/tr/common.json index 00dcf6fc33d..7b0fd28974e 100644 --- a/src/i18n/locales/tr/common.json +++ b/src/i18n/locales/tr/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Düzenleyicinizde tam bir AI geliştirici ekibi." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Düşünme tamamlandı, ancak çıktı okuma kontrolü nedeniyle engellendi.)" }, "roo": { - "authenticationRequired": "Roo sağlayıcısı bulut kimlik doğrulaması gerektirir. Lütfen Roo Code Cloud'a giriş yapın." + "authenticationRequired": "Roo sağlayıcısı bulut kimlik doğrulaması gerektirir. Lütfen Joe Code Cloud'a giriş yapın." }, "api": { "invalidKeyInvalidChars": "API anahtarı geçersiz karakterler içeriyor.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Konuşma geçmişi için özel depolama yolunu girin, varsayılan konumu kullanmak için boş bırakın", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Lütfen mutlak bir yol girin (örn. D:\\RooCodeStorage veya /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Lütfen mutlak bir yol girin (örn. D:\\JoeCodeStorage veya /home/user/storage)", "enter_valid_path": "Lütfen geçerli bir yol girin" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Kuruluşunuz Roo Code Cloud kimlik doğrulaması gerektiriyor. Devam etmek için giriş yapın.", - "organization_mismatch": "Kuruluşunuzun Roo Code Cloud hesabıyla kimlik doğrulaması yapmalısınız.", + "cloud_auth_required": "Kuruluşunuz Joe Code Cloud kimlik doğrulaması gerektiriyor. Devam etmek için giriş yapın.", + "organization_mismatch": "Kuruluşunuzun Joe Code Cloud hesabıyla kimlik doğrulaması yapmalısınız.", "manual_url_empty": "Lütfen geçerli bir callback URL'si girin", "manual_url_no_query": "Geçersiz callback URL'si: sorgu parametreleri eksik", "manual_url_missing_params": "Geçersiz callback URL'si: gerekli parametreler eksik (code ve state)", diff --git a/src/i18n/locales/tr/tools.json b/src/i18n/locales/tr/tools.json index 2f4263b20da..517b3444553 100644 --- a/src/i18n/locales/tr/tools.json +++ b/src/i18n/locales/tr/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Geçersiz görüntü formatı alındı", "unknownError": "Bilinmeyen bir hata oluştu", "roo": { - "authRequired": "Görüntü oluşturma için Roo Code Cloud kimlik doğrulaması gereklidir. Lütfen Roo Code Cloud'da oturum açın." + "authRequired": "Görüntü oluşturma için Joe Code Cloud kimlik doğrulaması gereklidir. Lütfen Joe Code Cloud'da oturum açın." } } } diff --git a/src/i18n/locales/vi/common.json b/src/i18n/locales/vi/common.json index decd4ff53ef..948a0dd1520 100644 --- a/src/i18n/locales/vi/common.json +++ b/src/i18n/locales/vi/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "Toàn bộ đội ngũ phát triển AI trong trình soạn thảo của bạn." }, "number_format": { @@ -112,7 +112,7 @@ "thinking_complete_recitation": "(Đã suy nghĩ xong nhưng kết quả bị chặn do kiểm tra trích dẫn.)" }, "roo": { - "authenticationRequired": "Nhà cung cấp Roo yêu cầu xác thực đám mây. Vui lòng đăng nhập vào Roo Code Cloud." + "authenticationRequired": "Nhà cung cấp Roo yêu cầu xác thực đám mây. Vui lòng đăng nhập vào Joe Code Cloud." }, "api": { "invalidKeyInvalidChars": "Khóa API chứa ký tự không hợp lệ.", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "Nhập đường dẫn lưu trữ tùy chỉnh cho lịch sử hội thoại, để trống để sử dụng vị trí mặc định", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "Vui lòng nhập đường dẫn tuyệt đối (ví dụ: D:\\RooCodeStorage hoặc /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "Vui lòng nhập đường dẫn tuyệt đối (ví dụ: D:\\JoeCodeStorage hoặc /home/user/storage)", "enter_valid_path": "Vui lòng nhập đường dẫn hợp lệ" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "Tổ chức của bạn yêu cầu xác thực Roo Code Cloud. Vui lòng đăng nhập để tiếp tục.", - "organization_mismatch": "Bạn phải được xác thực bằng tài khoản Roo Code Cloud của tổ chức.", + "cloud_auth_required": "Tổ chức của bạn yêu cầu xác thực Joe Code Cloud. Vui lòng đăng nhập để tiếp tục.", + "organization_mismatch": "Bạn phải được xác thực bằng tài khoản Joe Code Cloud của tổ chức.", "manual_url_empty": "Vui lòng nhập URL callback hợp lệ", "manual_url_no_query": "URL callback không hợp lệ: thiếu tham số truy vấn", "manual_url_missing_params": "URL callback không hợp lệ: thiếu tham số bắt buộc (code và state)", diff --git a/src/i18n/locales/vi/tools.json b/src/i18n/locales/vi/tools.json index 4bccf1ff48c..8ace2f6e1eb 100644 --- a/src/i18n/locales/vi/tools.json +++ b/src/i18n/locales/vi/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "Nhận được định dạng hình ảnh không hợp lệ", "unknownError": "Đã xảy ra lỗi không xác định", "roo": { - "authRequired": "Yêu cầu xác thực Roo Code Cloud để tạo hình ảnh. Vui lòng đăng nhập vào Roo Code Cloud." + "authRequired": "Yêu cầu xác thực Joe Code Cloud để tạo hình ảnh. Vui lòng đăng nhập vào Joe Code Cloud." } } } diff --git a/src/i18n/locales/zh-CN/common.json b/src/i18n/locales/zh-CN/common.json index 6df1f78b167..fd513255402 100644 --- a/src/i18n/locales/zh-CN/common.json +++ b/src/i18n/locales/zh-CN/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "您编辑器中的完整AI开发团队。" }, "number_format": { @@ -117,7 +117,7 @@ "thinking_complete_recitation": "(思考完成,但由于引用检查输出被阻止。)" }, "roo": { - "authenticationRequired": "Roo 提供商需要云认证。请登录 Roo Code Cloud。" + "authenticationRequired": "Roo 提供商需要云认证。请登录 Joe Code Cloud。" }, "api": { "invalidKeyInvalidChars": "API 密钥包含无效字符.", @@ -192,8 +192,8 @@ }, "storage": { "prompt_custom_path": "输入自定义会话历史存储路径,留空以使用默认位置", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "请输入绝对路径(例如 D:\\RooCodeStorage 或 /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "请输入绝对路径(例如 D:\\JoeCodeStorage 或 /home/user/storage)", "enter_valid_path": "请输入有效的路径" }, "input": { @@ -227,8 +227,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "您的组织需要 Roo Code Cloud 身份验证。请登录以继续。", - "organization_mismatch": "您必须使用组织的 Roo Code Cloud 账户进行身份验证。", + "cloud_auth_required": "您的组织需要 Joe Code Cloud 身份验证。请登录以继续。", + "organization_mismatch": "您必须使用组织的 Joe Code Cloud 账户进行身份验证。", "manual_url_empty": "请输入有效的回调 URL", "manual_url_no_query": "无效的回调 URL:缺少查询参数", "manual_url_missing_params": "无效的回调 URL:缺少必需参数(code 和 state)", diff --git a/src/i18n/locales/zh-CN/tools.json b/src/i18n/locales/zh-CN/tools.json index 886706ff85f..7bee8a981d9 100644 --- a/src/i18n/locales/zh-CN/tools.json +++ b/src/i18n/locales/zh-CN/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "收到的图像格式无效", "unknownError": "发生未知错误", "roo": { - "authRequired": "图像生成需要 Roo Code Cloud 认证。请登录 Roo Code Cloud。" + "authRequired": "图像生成需要 Joe Code Cloud 认证。请登录 Joe Code Cloud。" } } } diff --git a/src/i18n/locales/zh-TW/common.json b/src/i18n/locales/zh-TW/common.json index be4a76fc5b9..69404eddaff 100644 --- a/src/i18n/locales/zh-TW/common.json +++ b/src/i18n/locales/zh-TW/common.json @@ -1,6 +1,6 @@ { "extension": { - "name": "Roo Code", + "name": "Joe Code", "description": "您編輯器中的完整 AI 開發團隊。" }, "number_format": { @@ -111,7 +111,7 @@ "thinking_complete_recitation": "(思考完成,但由於引用檢查輸出被阻止。)" }, "roo": { - "authenticationRequired": "Roo 提供者需要雲端認證。請登入 Roo Code Cloud。" + "authenticationRequired": "Roo 提供者需要雲端認證。請登入 Joe Code Cloud。" }, "api": { "invalidKeyInvalidChars": "API 金鑰包含無效字元。", @@ -187,8 +187,8 @@ }, "storage": { "prompt_custom_path": "輸入自訂會話歷史儲存路徑,留空以使用預設位置", - "path_placeholder": "D:\\RooCodeStorage", - "enter_absolute_path": "請輸入絕對路徑(例如 D:\\RooCodeStorage 或 /home/user/storage)", + "path_placeholder": "D:\\JoeCodeStorage", + "enter_absolute_path": "請輸入絕對路徑(例如 D:\\JoeCodeStorage 或 /home/user/storage)", "enter_valid_path": "請輸入有效的路徑" }, "input": { @@ -222,8 +222,8 @@ }, "mdm": { "errors": { - "cloud_auth_required": "您的組織需要 Roo Code Cloud 身份驗證。請登入以繼續。", - "organization_mismatch": "您必須使用組織的 Roo Code Cloud 帳戶進行身份驗證。", + "cloud_auth_required": "您的組織需要 Joe Code Cloud 身份驗證。請登入以繼續。", + "organization_mismatch": "您必須使用組織的 Joe Code Cloud 帳戶進行身份驗證。", "manual_url_empty": "請輸入有效的回呼 URL", "manual_url_no_query": "無效的回呼 URL:缺少查詢參數", "manual_url_missing_params": "無效的回呼 URL:缺少必要參數(code 和 state)", diff --git a/src/i18n/locales/zh-TW/tools.json b/src/i18n/locales/zh-TW/tools.json index ebd0f104ad1..04e748b8bc9 100644 --- a/src/i18n/locales/zh-TW/tools.json +++ b/src/i18n/locales/zh-TW/tools.json @@ -25,7 +25,7 @@ "invalidImageFormat": "收到的圖像格式無效", "unknownError": "發生未知錯誤", "roo": { - "authRequired": "圖像生成需要 Roo Code Cloud 認證。請登入 Roo Code Cloud。" + "authRequired": "圖像生成需要 Joe Code Cloud 認證。請登入 Joe Code Cloud。" } } } diff --git a/src/package.json b/src/package.json index 241312ac8c6..793e3df68cb 100644 --- a/src/package.json +++ b/src/package.json @@ -1,8 +1,8 @@ { - "name": "roo-cline", + "name": "joe-code", "displayName": "%extension.displayName%", "description": "%extension.description%", - "publisher": "RooVeterinaryInc", + "publisher": "JoeCode", "version": "3.50.4", "icon": "assets/icons/icon.png", "galleryBanner": { @@ -14,13 +14,13 @@ "node": "20.19.2" }, "author": { - "name": "Roo Code" + "name": "Joe Code" }, "repository": { "type": "git", - "url": "https://github.com/RooCodeInc/Roo-Code" + "url": "https://github.com/Jothi-333/Joe-Code" }, - "homepage": "https://roocode.com", + "homepage": "https://github.com/Jothi-333/Joe-Code", "categories": [ "AI", "Chat", diff --git a/src/package.nls.ca.json b/src/package.nls.ca.json index 2781ed169cf..6285a34c571 100644 --- a/src/package.nls.ca.json +++ b/src/package.nls.ca.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Un equip complet de desenvolupament d'agents d'IA al teu editor.", "command.newTask.title": "Nova Tasca", "command.explainCode.title": "Explicar Codi", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Explicar Aquesta Ordre", "command.acceptInput.title": "Acceptar Entrada/Suggeriment", "command.toggleAutoApprove.title": "Alternar Auto-Aprovació", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Historial de Tasques", "command.marketplace.title": "Mercat", "command.openInEditor.title": "Obrir a l'Editor", "command.cloud.title": "Cloud", "command.settings.title": "Configuració", "command.documentation.title": "Documentació", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Ordres que es poden executar automàticament quan 'Aprova sempre les operacions d'execució' està activat", "commands.deniedCommands.description": "Prefixos d'ordres que seran automàticament denegats sense demanar aprovació. En cas de conflictes amb ordres permeses, la coincidència de prefix més llarga té prioritat. Afegeix * per denegar totes les ordres.", "commands.commandExecutionTimeout.description": "Temps màxim en segons per esperar que l'execució de l'ordre es completi abans d'esgotar el temps (0 = sense temps límit, 1-600s, per defecte: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "El proveïdor del model de llenguatge (p. ex. copilot)", "settings.vsCodeLmModelSelector.family.description": "La família del model de llenguatge (p. ex. gpt-4)", "settings.customStoragePath.description": "Ruta d'emmagatzematge personalitzada. Deixeu-la buida per utilitzar la ubicació predeterminada. Admet rutes absolutes (p. ex. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Habilitar correccions ràpides de Roo Code.", + "settings.enableCodeActions.description": "Habilitar correccions ràpides de Joe Code.", "settings.autoImportSettingsPath.description": "Ruta a un fitxer de configuració de RooCode per importar automàticament en iniciar l'extensió. Admet rutes absolutes i rutes relatives al directori d'inici (per exemple, '~/Documents/roo-code-settings.json'). Deixeu-ho en blanc per desactivar la importació automàtica.", "settings.maximumIndexedFilesForFileSearch.description": "Nombre màxim de fitxers per indexar per a la funció de cerca de fitxers @. Valors més alts proporcionen millors resultats de cerca en projectes grans però poden utilitzar més memòria. Per defecte: 10.000.", "settings.useAgentRules.description": "Activa la càrrega de fitxers AGENTS.md per a regles específiques de l'agent (vegeu https://agent-rules.org/)", diff --git a/src/package.nls.de.json b/src/package.nls.de.json index a77a253ef06..7c41fa90b14 100644 --- a/src/package.nls.de.json +++ b/src/package.nls.de.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Ein komplettes KI-Agenten-Entwicklungsteam in deinem Editor.", "command.newTask.title": "Neue Aufgabe", "command.explainCode.title": "Code Erklären", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Diesen Befehl Erklären", "command.acceptInput.title": "Eingabe/Vorschlag Akzeptieren", "command.toggleAutoApprove.title": "Auto-Genehmigung Umschalten", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Aufgabenverlauf", "command.marketplace.title": "Marktplatz", "command.openInEditor.title": "Im Editor Öffnen", "command.cloud.title": "Cloud", "command.settings.title": "Einstellungen", "command.documentation.title": "Dokumentation", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Befehle, die automatisch ausgeführt werden können, wenn 'Ausführungsoperationen immer genehmigen' aktiviert ist", "commands.deniedCommands.description": "Befehlspräfixe, die automatisch abgelehnt werden, ohne nach Genehmigung zu fragen. Bei Konflikten mit erlaubten Befehlen hat die längste Präfix-Übereinstimmung Vorrang. Füge * hinzu, um alle Befehle abzulehnen.", "commands.commandExecutionTimeout.description": "Maximale Zeit in Sekunden, die auf den Abschluss der Befehlsausführung gewartet wird, bevor ein Timeout auftritt (0 = kein Timeout, 1-600s, Standard: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Der Anbieter des Sprachmodells (z.B. copilot)", "settings.vsCodeLmModelSelector.family.description": "Die Familie des Sprachmodells (z.B. gpt-4)", "settings.customStoragePath.description": "Benutzerdefinierter Speicherpfad. Leer lassen, um den Standardspeicherort zu verwenden. Unterstützt absolute Pfade (z.B. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Roo Code Schnelle Problembehebung aktivieren.", + "settings.enableCodeActions.description": "Joe Code Schnelle Problembehebung aktivieren.", "settings.autoImportSettingsPath.description": "Pfad zu einer RooCode-Konfigurationsdatei, die beim Start der Erweiterung automatisch importiert wird. Unterstützt absolute Pfade und Pfade relativ zum Home-Verzeichnis (z.B. '~/Documents/roo-code-settings.json'). Leer lassen, um den automatischen Import zu deaktivieren.", "settings.maximumIndexedFilesForFileSearch.description": "Maximale Anzahl der zu indizierenden Dateien für die @-Dateisuchfunktion. Höhere Werte bieten bessere Suchergebnisse in großen Projekten, können aber mehr Speicher verbrauchen. Standard: 10.000.", "settings.useAgentRules.description": "Aktiviert das Laden von AGENTS.md-Dateien für agentenspezifische Regeln (siehe https://agent-rules.org/)", diff --git a/src/package.nls.es.json b/src/package.nls.es.json index a1c729080e2..580e3155573 100644 --- a/src/package.nls.es.json +++ b/src/package.nls.es.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Un equipo completo de desarrollo de agentes de IA en tu editor.", "command.newTask.title": "Nueva Tarea", "command.explainCode.title": "Explicar Código", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Explicar Este Comando", "command.acceptInput.title": "Aceptar Entrada/Sugerencia", "command.toggleAutoApprove.title": "Alternar Auto-Aprobación", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Historial de Tareas", "command.marketplace.title": "Mercado", "command.openInEditor.title": "Abrir en Editor", "command.cloud.title": "Cloud", "command.settings.title": "Configuración", "command.documentation.title": "Documentación", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Comandos que pueden ejecutarse automáticamente cuando 'Aprobar siempre operaciones de ejecución' está activado", "commands.deniedCommands.description": "Prefijos de comandos que serán automáticamente denegados sin solicitar aprobación. En caso de conflictos con comandos permitidos, la coincidencia de prefijo más larga tiene prioridad. Añade * para denegar todos los comandos.", "commands.commandExecutionTimeout.description": "Tiempo máximo en segundos para esperar que se complete la ejecución del comando antes de que expire (0 = sin tiempo límite, 1-600s, predeterminado: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "El proveedor del modelo de lenguaje (ej. copilot)", "settings.vsCodeLmModelSelector.family.description": "La familia del modelo de lenguaje (ej. gpt-4)", "settings.customStoragePath.description": "Ruta de almacenamiento personalizada. Dejar vacío para usar la ubicación predeterminada. Admite rutas absolutas (ej. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Habilitar correcciones rápidas de Roo Code.", + "settings.enableCodeActions.description": "Habilitar correcciones rápidas de Joe Code.", "settings.autoImportSettingsPath.description": "Ruta a un archivo de configuración de RooCode para importar automáticamente al iniciar la extensión. Admite rutas absolutas y rutas relativas al directorio de inicio (por ejemplo, '~/Documents/roo-code-settings.json'). Dejar vacío para desactivar la importación automática.", "settings.maximumIndexedFilesForFileSearch.description": "Número máximo de archivos a indexar para la función de búsqueda de archivos @. Valores más altos proporcionan mejores resultados de búsqueda en proyectos grandes pero pueden usar más memoria. Por defecto: 10.000.", "settings.useAgentRules.description": "Habilita la carga de archivos AGENTS.md para reglas específicas del agente (ver https://agent-rules.org/)", diff --git a/src/package.nls.fr.json b/src/package.nls.fr.json index 2d009c0038d..0031d413da8 100644 --- a/src/package.nls.fr.json +++ b/src/package.nls.fr.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Une équipe complète de développement d'agents IA dans votre éditeur.", "command.newTask.title": "Nouvelle Tâche", "command.explainCode.title": "Expliquer le Code", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Expliquer cette Commande", "command.acceptInput.title": "Accepter l'Entrée/Suggestion", "command.toggleAutoApprove.title": "Basculer Auto-Approbation", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Historique des Tâches", "command.marketplace.title": "Marché", "command.openInEditor.title": "Ouvrir dans l'Éditeur", "command.cloud.title": "Cloud", "command.settings.title": "Paramètres", "command.documentation.title": "Documentation", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Commandes pouvant être exécutées automatiquement lorsque 'Toujours approuver les opérations d'exécution' est activé", "commands.deniedCommands.description": "Préfixes de commandes qui seront automatiquement refusés sans demander d'approbation. En cas de conflit avec les commandes autorisées, la correspondance de préfixe la plus longue a la priorité. Ajouter * pour refuser toutes les commandes.", "commands.commandExecutionTimeout.description": "Temps maximum en secondes pour attendre que l'exécution de la commande se termine avant expiration (0 = pas de délai, 1-600s, défaut : 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Le fournisseur du modèle de langage (ex: copilot)", "settings.vsCodeLmModelSelector.family.description": "La famille du modèle de langage (ex: gpt-4)", "settings.customStoragePath.description": "Chemin de stockage personnalisé. Laisser vide pour utiliser l'emplacement par défaut. Prend en charge les chemins absolus (ex: 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Activer les correctifs rapides de Roo Code.", + "settings.enableCodeActions.description": "Activer les correctifs rapides de Joe Code.", "settings.autoImportSettingsPath.description": "Chemin d'accès à un fichier de configuration RooCode à importer automatiquement au démarrage de l'extension. Prend en charge les chemins absolus et les chemins relatifs au répertoire de base (par exemple, '~/Documents/roo-code-settings.json'). Laisser vide pour désactiver l'importation automatique.", "settings.maximumIndexedFilesForFileSearch.description": "Nombre maximum de fichiers à indexer pour la fonctionnalité de recherche de fichiers @. Des valeurs plus élevées offrent de meilleurs résultats de recherche dans les grands projets mais peuvent consommer plus de mémoire. Par défaut : 10 000.", "settings.useAgentRules.description": "Activer le chargement des fichiers AGENTS.md pour les règles spécifiques à l'agent (voir https://agent-rules.org/)", diff --git a/src/package.nls.hi.json b/src/package.nls.hi.json index c51f3ee95ee..f828a081d9f 100644 --- a/src/package.nls.hi.json +++ b/src/package.nls.hi.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "आपके एडिटर में एआई एजेंट्स की पूरी डेवलपमेंट टीम।", "command.newTask.title": "नया कार्य", "command.explainCode.title": "कोड समझाएं", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "यह कमांड समझाएं", "command.acceptInput.title": "इनपुट/सुझाव स्वीकारें", "command.toggleAutoApprove.title": "ऑटो-अनुमोदन टॉगल करें", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "कार्य इतिहास", "command.marketplace.title": "मार्केटप्लेस", "command.openInEditor.title": "एडिटर में खोलें", "command.cloud.title": "Cloud", "command.settings.title": "सेटिंग्स", "command.documentation.title": "दस्तावेज़ीकरण", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "वे कमांड जो स्वचालित रूप से निष्पादित की जा सकती हैं जब 'हमेशा निष्पादन संचालन को स्वीकृत करें' सक्रिय हो", "commands.deniedCommands.description": "कमांड प्रीफिक्स जो स्वचालित रूप से अस्वीकार कर दिए जाएंगे बिना अनुमोदन मांगे। अनुमतित कमांड के साथ संघर्ष की स्थिति में, सबसे लंबा प्रीफिक्स मैच प्राथमिकता लेता है। सभी कमांड को अस्वीकार करने के लिए * जोड़ें।", "commands.commandExecutionTimeout.description": "कमांड निष्पादन पूरा होने का इंतजार करने के लिए अधिकतम समय सेकंड में, समय समाप्त होने से पहले (0 = कोई समय सीमा नहीं, 1-600s, डिफ़ॉल्ट: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "भाषा मॉडल का विक्रेता (उदा. copilot)", "settings.vsCodeLmModelSelector.family.description": "भाषा मॉडल का परिवार (उदा. gpt-4)", "settings.customStoragePath.description": "कस्टम स्टोरेज पाथ। डिफ़ॉल्ट स्थान का उपयोग करने के लिए खाली छोड़ें। पूर्ण पथ का समर्थन करता है (उदा. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Roo Code त्वरित सुधार सक्षम करें", + "settings.enableCodeActions.description": "Joe Code त्वरित सुधार सक्षम करें", "settings.autoImportSettingsPath.description": "RooCode कॉन्फ़िगरेशन फ़ाइल का पथ जिसे एक्सटेंशन स्टार्टअप पर स्वचालित रूप से आयात किया जाएगा। होम डायरेक्टरी के सापेक्ष पूर्ण पथ और पथों का समर्थन करता है (उदाहरण के लिए '~/Documents/roo-code-settings.json')। ऑटो-इंपोर्ट को अक्षम करने के लिए खाली छोड़ दें।", "settings.maximumIndexedFilesForFileSearch.description": "@ फ़ाइल खोज सुविधा के लिए अनुक्रमित करने के लिए फ़ाइलों की अधिकतम संख्या। उच्च मान बड़ी परियोजनाओं में बेहतर खोज परिणाम प्रदान करते हैं लेकिन अधिक मेमोरी का उपयोग कर सकते हैं। डिफ़ॉल्ट: 10,000।", "settings.useAgentRules.description": "एजेंट-विशिष्ट नियमों के लिए AGENTS.md फ़ाइलों को लोड करना सक्षम करें (देखें https://agent-rules.org/)", diff --git a/src/package.nls.id.json b/src/package.nls.id.json index 2a7607f3e7c..3d770225708 100644 --- a/src/package.nls.id.json +++ b/src/package.nls.id.json @@ -1,10 +1,10 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Tim pengembang AI lengkap di editor kamu.", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.activitybar.title": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.activitybar.title": "Joe Code", + "views.sidebar.name": "Joe Code", "command.newTask.title": "Tugas Baru", "command.history.title": "Riwayat Tugas", "command.marketplace.title": "Marketplace", @@ -25,7 +25,7 @@ "command.terminal.explainCommand.title": "Jelaskan Perintah Ini", "command.acceptInput.title": "Terima Input/Saran", "command.toggleAutoApprove.title": "Alihkan Persetujuan Otomatis", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Perintah yang dapat dijalankan secara otomatis ketika 'Selalu setujui operasi eksekusi' diaktifkan", "commands.deniedCommands.description": "Awalan perintah yang akan otomatis ditolak tanpa meminta persetujuan. Jika terjadi konflik dengan perintah yang diizinkan, pencocokan awalan terpanjang akan diprioritaskan. Tambahkan * untuk menolak semua perintah.", "commands.commandExecutionTimeout.description": "Waktu maksimum dalam detik untuk menunggu eksekusi perintah selesai sebelum timeout (0 = tanpa timeout, 1-600s, default: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Vendor dari model bahasa (misalnya copilot)", "settings.vsCodeLmModelSelector.family.description": "Keluarga dari model bahasa (misalnya gpt-4)", "settings.customStoragePath.description": "Path penyimpanan kustom. Biarkan kosong untuk menggunakan lokasi default. Mendukung path absolut (misalnya 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Aktifkan perbaikan cepat Roo Code.", + "settings.enableCodeActions.description": "Aktifkan perbaikan cepat Joe Code.", "settings.autoImportSettingsPath.description": "Path ke file konfigurasi RooCode untuk diimpor secara otomatis saat ekstensi dimulai. Mendukung path absolut dan path relatif terhadap direktori home (misalnya '~/Documents/roo-code-settings.json'). Biarkan kosong untuk menonaktifkan impor otomatis.", "settings.maximumIndexedFilesForFileSearch.description": "Jumlah maksimum file yang akan diindeks untuk fitur pencarian file @. Nilai yang lebih besar memberikan hasil pencarian yang lebih baik di proyek besar tetapi mungkin menggunakan lebih banyak memori. Default: 10.000.", "settings.useAgentRules.description": "Aktifkan pemuatan file AGENTS.md untuk aturan khusus agen (lihat https://agent-rules.org/)", diff --git a/src/package.nls.it.json b/src/package.nls.it.json index c94471355d4..91902cc2575 100644 --- a/src/package.nls.it.json +++ b/src/package.nls.it.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Un intero team di sviluppo di agenti IA nel tuo editor.", "command.newTask.title": "Nuovo Task", "command.explainCode.title": "Spiega Codice", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Spiega Questo Comando", "command.acceptInput.title": "Accetta Input/Suggerimento", "command.toggleAutoApprove.title": "Attiva/Disattiva Auto-Approvazione", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Cronologia Attività", "command.marketplace.title": "Marketplace", "command.openInEditor.title": "Apri nell'Editor", "command.cloud.title": "Cloud", "command.settings.title": "Impostazioni", "command.documentation.title": "Documentazione", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Comandi che possono essere eseguiti automaticamente quando 'Approva sempre le operazioni di esecuzione' è attivato", "commands.deniedCommands.description": "Prefissi di comandi che verranno automaticamente rifiutati senza richiedere approvazione. In caso di conflitti con comandi consentiti, la corrispondenza del prefisso più lungo ha la precedenza. Aggiungi * per rifiutare tutti i comandi.", "commands.commandExecutionTimeout.description": "Tempo massimo in secondi per attendere il completamento dell'esecuzione del comando prima del timeout (0 = nessun timeout, 1-600s, predefinito: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Il fornitore del modello linguistico (es. copilot)", "settings.vsCodeLmModelSelector.family.description": "La famiglia del modello linguistico (es. gpt-4)", "settings.customStoragePath.description": "Percorso di archiviazione personalizzato. Lasciare vuoto per utilizzare la posizione predefinita. Supporta percorsi assoluti (es. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Abilita correzioni rapide di Roo Code.", + "settings.enableCodeActions.description": "Abilita correzioni rapide di Joe Code.", "settings.autoImportSettingsPath.description": "Percorso di un file di configurazione di RooCode da importare automaticamente all'avvio dell'estensione. Supporta percorsi assoluti e percorsi relativi alla directory home (ad es. '~/Documents/roo-code-settings.json'). Lasciare vuoto per disabilitare l'importazione automatica.", "settings.maximumIndexedFilesForFileSearch.description": "Numero massimo di file da indicizzare per la funzionalità di ricerca file @. Valori più alti forniscono migliori risultati di ricerca in progetti grandi ma possono consumare più memoria. Predefinito: 10.000.", "settings.useAgentRules.description": "Abilita il caricamento dei file AGENTS.md per regole specifiche dell'agente (vedi https://agent-rules.org/)", diff --git a/src/package.nls.ja.json b/src/package.nls.ja.json index ff6040d7734..f32f7112f1e 100644 --- a/src/package.nls.ja.json +++ b/src/package.nls.ja.json @@ -1,10 +1,10 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "エディタ内のAIエージェントによる開発チーム。", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.activitybar.title": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.activitybar.title": "Joe Code", + "views.sidebar.name": "Joe Code", "command.newTask.title": "新しいタスク", "command.history.title": "タスク履歴", "command.marketplace.title": "マーケットプレイス", @@ -25,7 +25,7 @@ "command.terminal.explainCommand.title": "このコマンドを説明", "command.acceptInput.title": "入力/提案を承認", "command.toggleAutoApprove.title": "自動承認を切替", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "'常に実行操作を承認する'が有効な場合に自動実行できるコマンド", "commands.deniedCommands.description": "承認を求めずに自動的に拒否されるコマンドプレフィックス。許可されたコマンドとの競合がある場合、最長プレフィックスマッチが優先されます。すべてのコマンドを拒否するには * を追加してください。", "commands.commandExecutionTimeout.description": "コマンド実行の完了を待つ最大時間(秒)、タイムアウトまで(0 = タイムアウトなし、1-600秒、デフォルト: 0秒)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "言語モデルのベンダー(例:copilot)", "settings.vsCodeLmModelSelector.family.description": "言語モデルのファミリー(例:gpt-4)", "settings.customStoragePath.description": "カスタムストレージパス。デフォルトの場所を使用する場合は空のままにします。絶対パスをサポートします(例:'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Roo Codeのクイック修正を有効にする。", + "settings.enableCodeActions.description": "Joe Codeのクイック修正を有効にする。", "settings.autoImportSettingsPath.description": "拡張機能の起動時に自動的にインポートするRooCode設定ファイルへのパス。絶対パスとホームディレクトリからの相対パスをサポートします(例:'~/Documents/roo-code-settings.json')。自動インポートを無効にするには、空のままにします。", "settings.maximumIndexedFilesForFileSearch.description": "@ファイル検索機能のためにインデックス化するファイルの最大数。大きな値は大規模プロジェクトでより良い検索結果を提供しますが、より多くのメモリを使用する可能性があります。デフォルト: 10,000。", "settings.useAgentRules.description": "エージェント固有のルールのためにAGENTS.mdファイルの読み込みを有効にします(参照:https://agent-rules.org/)", diff --git a/src/package.nls.json b/src/package.nls.json index 177b392f775..1f813e00d59 100644 --- a/src/package.nls.json +++ b/src/package.nls.json @@ -1,10 +1,10 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "A whole dev team of AI agents in your editor.", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.activitybar.title": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.activitybar.title": "Joe Code", + "views.sidebar.name": "Joe Code", "command.newTask.title": "New Task", "command.history.title": "Task History", "command.marketplace.title": "Marketplace", @@ -25,7 +25,7 @@ "command.terminal.explainCommand.title": "Explain This Command", "command.acceptInput.title": "Accept Input/Suggestion", "command.toggleAutoApprove.title": "Toggle Auto-Approve", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Commands that can be auto-executed when 'Always approve execute operations' is enabled", "commands.deniedCommands.description": "Command prefixes that will be automatically denied without asking for approval. In case of conflicts with allowed commands, the longest prefix match takes precedence. Add * to deny all commands.", "commands.commandExecutionTimeout.description": "Maximum time in seconds to wait for command execution to complete before timing out (0 = no timeout, 1-600s, default: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "The vendor of the language model (e.g. copilot)", "settings.vsCodeLmModelSelector.family.description": "The family of the language model (e.g. gpt-4)", "settings.customStoragePath.description": "Custom storage path. Leave empty to use the default location. Supports absolute paths (e.g. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Enable Roo Code quick fixes", + "settings.enableCodeActions.description": "Enable Joe Code quick fixes", "settings.autoImportSettingsPath.description": "Path to a RooCode configuration file to automatically import on extension startup. Supports absolute paths and paths relative to the home directory (e.g. '~/Documents/roo-code-settings.json'). Leave empty to disable auto-import.", "settings.maximumIndexedFilesForFileSearch.description": "Maximum number of files to index for the @ file search feature. Higher values provide better search results in large projects but may use more memory. Default: 10,000.", "settings.useAgentRules.description": "Enable loading of AGENTS.md files for agent-specific rules (see https://agent-rules.org/)", diff --git a/src/package.nls.ko.json b/src/package.nls.ko.json index f0912835b8b..e3b443c19df 100644 --- a/src/package.nls.ko.json +++ b/src/package.nls.ko.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "에디터에서 작동하는 AI 에이전트 개발팀.", "command.newTask.title": "새 작업", "command.explainCode.title": "코드 설명", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "이 명령어 설명", "command.acceptInput.title": "입력/제안 수락", "command.toggleAutoApprove.title": "자동 승인 전환", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "작업 기록", "command.marketplace.title": "마켓플레이스", "command.openInEditor.title": "에디터에서 열기", "command.cloud.title": "Cloud", "command.settings.title": "설정", "command.documentation.title": "문서", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "'항상 실행 작업 승인' 이 활성화되어 있을 때 자동으로 실행할 수 있는 명령어", "commands.deniedCommands.description": "승인을 요청하지 않고 자동으로 거부될 명령어 접두사. 허용된 명령어와 충돌하는 경우 가장 긴 접두사 일치가 우선됩니다. 모든 명령어를 거부하려면 *를 추가하세요.", "commands.commandExecutionTimeout.description": "명령어 실행이 완료되기를 기다리는 최대 시간(초), 타임아웃 전까지 (0 = 타임아웃 없음, 1-600초, 기본값: 0초)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "언어 모델 공급자 (예: copilot)", "settings.vsCodeLmModelSelector.family.description": "언어 모델 계열 (예: gpt-4)", "settings.customStoragePath.description": "사용자 지정 저장소 경로. 기본 위치를 사용하려면 비워두세요. 절대 경로를 지원합니다 (예: 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Roo Code 빠른 수정 사용 설정", + "settings.enableCodeActions.description": "Joe Code 빠른 수정 사용 설정", "settings.autoImportSettingsPath.description": "확장 프로그램 시작 시 자동으로 가져올 RooCode 구성 파일의 경로입니다. 절대 경로 및 홈 디렉토리에 대한 상대 경로를 지원합니다(예: '~/Documents/roo-code-settings.json'). 자동 가져오기를 비활성화하려면 비워 둡니다.", "settings.maximumIndexedFilesForFileSearch.description": "@ 파일 검색 기능을 위해 인덱싱할 최대 파일 수입니다. 더 큰 값은 대형 프로젝트에서 더 나은 검색 결과를 제공하지만 더 많은 메모리를 사용할 수 있습니다. 기본값: 10,000.", "settings.useAgentRules.description": "에이전트별 규칙에 대한 AGENTS.md 파일 로드를 활성화합니다 (참조: https://agent-rules.org/)", diff --git a/src/package.nls.nl.json b/src/package.nls.nl.json index fef3ca7219c..44124142da0 100644 --- a/src/package.nls.nl.json +++ b/src/package.nls.nl.json @@ -1,10 +1,10 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Een compleet ontwikkelteam van AI-agents in je editor.", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.activitybar.title": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.activitybar.title": "Joe Code", + "views.sidebar.name": "Joe Code", "command.newTask.title": "Nieuwe Taak", "command.history.title": "Taakgeschiedenis", "command.marketplace.title": "Marktplaats", @@ -25,7 +25,7 @@ "command.terminal.explainCommand.title": "Leg Dit Commando Uit", "command.acceptInput.title": "Invoer/Suggestie Accepteren", "command.toggleAutoApprove.title": "Auto-Goedkeuring Schakelen", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Commando's die automatisch kunnen worden uitgevoerd wanneer 'Altijd goedkeuren uitvoerbewerkingen' is ingeschakeld", "commands.deniedCommands.description": "Commando-prefixen die automatisch worden geweigerd zonder om goedkeuring te vragen. Bij conflicten met toegestane commando's heeft de langste prefix-match voorrang. Voeg * toe om alle commando's te weigeren.", "commands.commandExecutionTimeout.description": "Maximale tijd in seconden om te wachten tot commando-uitvoering voltooid is voordat er een timeout optreedt (0 = geen timeout, 1-600s, standaard: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "De leverancier van het taalmodel (bijv. copilot)", "settings.vsCodeLmModelSelector.family.description": "De familie van het taalmodel (bijv. gpt-4)", "settings.customStoragePath.description": "Aangepast opslagpad. Laat leeg om de standaardlocatie te gebruiken. Ondersteunt absolute paden (bijv. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Snelle correcties van Roo Code inschakelen.", + "settings.enableCodeActions.description": "Snelle correcties van Joe Code inschakelen.", "settings.autoImportSettingsPath.description": "Pad naar een RooCode-configuratiebestand om automatisch te importeren bij het opstarten van de extensie. Ondersteunt absolute paden en paden ten opzichte van de thuismap (bijv. '~/Documents/roo-code-settings.json'). Laat leeg om automatisch importeren uit te schakelen.", "settings.maximumIndexedFilesForFileSearch.description": "Maximaal aantal bestanden om te indexeren voor de @ bestandszoekfunctie. Hogere waarden bieden betere zoekresultaten in grote projecten maar kunnen meer geheugen gebruiken. Standaard: 10.000.", "settings.useAgentRules.description": "Laden van AGENTS.md-bestanden voor agentspecifieke regels inschakelen (zie https://agent-rules.org/)", diff --git a/src/package.nls.pl.json b/src/package.nls.pl.json index 8c1f66450d1..a12e3fc09dc 100644 --- a/src/package.nls.pl.json +++ b/src/package.nls.pl.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Pełny zespół programistów AI w twoim edytorze.", "command.newTask.title": "Nowe Zadanie", "command.explainCode.title": "Wyjaśnij Kod", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Wyjaśnij tę Komendę", "command.acceptInput.title": "Akceptuj Wprowadzanie/Sugestię", "command.toggleAutoApprove.title": "Przełącz Auto-Zatwierdzanie", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Historia Zadań", "command.marketplace.title": "Marketplace", "command.openInEditor.title": "Otwórz w Edytorze", "command.cloud.title": "Cloud", "command.settings.title": "Ustawienia", "command.documentation.title": "Dokumentacja", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Polecenia, które mogą być wykonywane automatycznie, gdy włączona jest opcja 'Zawsze zatwierdzaj operacje wykonania'", "commands.deniedCommands.description": "Prefiksy poleceń, które będą automatycznie odrzucane bez pytania o zatwierdzenie. W przypadku konfliktów z dozwolonymi poleceniami, najdłuższe dopasowanie prefiksu ma pierwszeństwo. Dodaj * aby odrzucić wszystkie polecenia.", "commands.commandExecutionTimeout.description": "Maksymalny czas w sekundach oczekiwania na zakończenie wykonania polecenia przed przekroczeniem limitu czasu (0 = brak limitu czasu, 1-600s, domyślnie: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Dostawca modelu językowego (np. copilot)", "settings.vsCodeLmModelSelector.family.description": "Rodzina modelu językowego (np. gpt-4)", "settings.customStoragePath.description": "Niestandardowa ścieżka przechowywania. Pozostaw puste, aby użyć domyślnej lokalizacji. Obsługuje ścieżki bezwzględne (np. 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Włącz szybkie poprawki Roo Code.", + "settings.enableCodeActions.description": "Włącz szybkie poprawki Joe Code.", "settings.autoImportSettingsPath.description": "Ścieżka do pliku konfiguracyjnego RooCode, który ma być automatycznie importowany podczas uruchamiania rozszerzenia. Obsługuje ścieżki bezwzględne i ścieżki względne do katalogu domowego (np. '~/Documents/roo-code-settings.json'). Pozostaw puste, aby wyłączyć automatyczne importowanie.", "settings.maximumIndexedFilesForFileSearch.description": "Maksymalna liczba plików do indeksowania dla funkcji wyszukiwania plików @. Wyższe wartości zapewniają lepsze wyniki wyszukiwania w dużych projektach, ale mogą zużywać więcej pamięci. Domyślnie: 10 000.", "settings.useAgentRules.description": "Włącz wczytywanie plików AGENTS.md dla reguł specyficznych dla agenta (zobacz https://agent-rules.org/)", diff --git a/src/package.nls.pt-BR.json b/src/package.nls.pt-BR.json index 84cbf42c097..f0ea1518d24 100644 --- a/src/package.nls.pt-BR.json +++ b/src/package.nls.pt-BR.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Uma equipe completa de desenvolvimento de agentes de IA no seu editor.", "command.newTask.title": "Nova Tarefa", "command.explainCode.title": "Explicar Código", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Explicar Este Comando", "command.acceptInput.title": "Aceitar Entrada/Sugestão", "command.toggleAutoApprove.title": "Alternar Auto-Aprovação", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Histórico de Tarefas", "command.marketplace.title": "Marketplace", "command.openInEditor.title": "Abrir no Editor", "command.cloud.title": "Cloud", "command.settings.title": "Configurações", "command.documentation.title": "Documentação", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Comandos que podem ser executados automaticamente quando 'Sempre aprovar operações de execução' está ativado", "commands.deniedCommands.description": "Prefixos de comandos que serão automaticamente negados sem solicitar aprovação. Em caso de conflitos com comandos permitidos, a correspondência de prefixo mais longa tem precedência. Adicione * para negar todos os comandos.", "commands.commandExecutionTimeout.description": "Tempo máximo em segundos para aguardar a conclusão da execução do comando antes do timeout (0 = sem timeout, 1-600s, padrão: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "O fornecedor do modelo de linguagem (ex: copilot)", "settings.vsCodeLmModelSelector.family.description": "A família do modelo de linguagem (ex: gpt-4)", "settings.customStoragePath.description": "Caminho de armazenamento personalizado. Deixe vazio para usar o local padrão. Suporta caminhos absolutos (ex: 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Habilitar correções rápidas do Roo Code.", + "settings.enableCodeActions.description": "Habilitar correções rápidas do Joe Code.", "settings.autoImportSettingsPath.description": "Caminho para um arquivo de configuração do RooCode para importar automaticamente na inicialização da extensão. Suporta caminhos absolutos e caminhos relativos ao diretório inicial (por exemplo, '~/Documents/roo-code-settings.json'). Deixe em branco para desativar a importação automática.", "settings.maximumIndexedFilesForFileSearch.description": "Número máximo de arquivos a indexar para a funcionalidade de busca de arquivos @. Valores maiores fornecem melhores resultados de busca em projetos grandes, mas podem consumir mais memória. Padrão: 10.000.", "settings.useAgentRules.description": "Habilita o carregamento de arquivos AGENTS.md para regras específicas do agente (consulte https://agent-rules.org/)", diff --git a/src/package.nls.ru.json b/src/package.nls.ru.json index be8df040323..96c79162041 100644 --- a/src/package.nls.ru.json +++ b/src/package.nls.ru.json @@ -1,10 +1,10 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Целая команда ИИ-разработчиков в вашем редакторе.", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.activitybar.title": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.activitybar.title": "Joe Code", + "views.sidebar.name": "Joe Code", "command.newTask.title": "Новая задача", "command.history.title": "История задач", "command.marketplace.title": "Маркетплейс", @@ -25,7 +25,7 @@ "command.terminal.explainCommand.title": "Объяснить эту команду", "command.acceptInput.title": "Принять ввод/предложение", "command.toggleAutoApprove.title": "Переключить Авто-Подтверждение", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Команды, которые могут быть автоматически выполнены, когда включена опция 'Всегда подтверждать операции выполнения'", "commands.deniedCommands.description": "Префиксы команд, которые будут автоматически отклонены без запроса подтверждения. В случае конфликтов с разрешенными командами приоритет имеет самое длинное совпадение префикса. Добавьте * чтобы отклонить все команды.", "commands.commandExecutionTimeout.description": "Максимальное время в секундах для ожидания завершения выполнения команды до истечения времени ожидания (0 = без тайм-аута, 1-600с, по умолчанию: 0с)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Поставщик языковой модели (например, copilot)", "settings.vsCodeLmModelSelector.family.description": "Семейство языковой модели (например, gpt-4)", "settings.customStoragePath.description": "Пользовательский путь хранения. Оставьте пустым для использования пути по умолчанию. Поддерживает абсолютные пути (например, 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Включить быстрые исправления Roo Code.", + "settings.enableCodeActions.description": "Включить быстрые исправления Joe Code.", "settings.autoImportSettingsPath.description": "Путь к файлу конфигурации RooCode для автоматического импорта при запуске расширения. Поддерживает абсолютные пути и пути относительно домашнего каталога (например, '~/Documents/roo-code-settings.json'). Оставьте пустым, чтобы отключить автоматический импорт.", "settings.maximumIndexedFilesForFileSearch.description": "Максимальное количество файлов для индексации при поиске файлов @. Большие значения обеспечивают лучшие результаты поиска в крупных проектах, но могут потреблять больше памяти. По умолчанию: 10 000.", "settings.useAgentRules.description": "Включить загрузку файлов AGENTS.md для специфичных для агента правил (см. https://agent-rules.org/)", diff --git a/src/package.nls.tr.json b/src/package.nls.tr.json index a815188e8aa..4c964fe17ae 100644 --- a/src/package.nls.tr.json +++ b/src/package.nls.tr.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Düzenleyicinde tam bir AI ajanları geliştirme ekibi.", "command.newTask.title": "Yeni Görev", "command.explainCode.title": "Kodu Açıkla", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Bu Komutu Açıkla", "command.acceptInput.title": "Girişi/Öneriyi Kabul Et", "command.toggleAutoApprove.title": "Otomatik Onayı Değiştir", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Görev Geçmişi", "command.marketplace.title": "Marketplace", "command.openInEditor.title": "Düzenleyicide Aç", "command.cloud.title": "Cloud", "command.settings.title": "Ayarlar", "command.documentation.title": "Dokümantasyon", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "'Her zaman yürütme işlemlerini onayla' etkinleştirildiğinde otomatik olarak yürütülebilen komutlar", "commands.deniedCommands.description": "Onay istenmeden otomatik olarak reddedilecek komut önekleri. İzin verilen komutlarla çakışma durumunda en uzun önek eşleşmesi öncelik alır. Tüm komutları reddetmek için * ekleyin.", "commands.commandExecutionTimeout.description": "Komut yürütmesinin tamamlanmasını beklemek için maksimum süre (saniye), zaman aşımından önce (0 = zaman aşımı yok, 1-600s, varsayılan: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Dil modelinin sağlayıcısı (örn: copilot)", "settings.vsCodeLmModelSelector.family.description": "Dil modelinin ailesi (örn: gpt-4)", "settings.customStoragePath.description": "Özel depolama yolu. Varsayılan konumu kullanmak için boş bırakın. Mutlak yolları destekler (örn: 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Roo Code hızlı düzeltmeleri etkinleştir.", + "settings.enableCodeActions.description": "Joe Code hızlı düzeltmeleri etkinleştir.", "settings.autoImportSettingsPath.description": "Uzantı başlangıcında otomatik olarak içe aktarılacak bir RooCode yapılandırma dosyasının yolu. Mutlak yolları ve ana dizine göreli yolları destekler (ör. '~/Documents/roo-code-settings.json'). Otomatik içe aktarmayı devre dışı bırakmak için boş bırakın.", "settings.maximumIndexedFilesForFileSearch.description": "@ dosya arama özelliği için dizinlenecek maksimum dosya sayısı. Daha yüksek değerler büyük projelerde daha iyi arama sonuçları sağlar ancak daha fazla bellek kullanabilir. Varsayılan: 10.000.", "settings.useAgentRules.description": "Aracıya özgü kurallar için AGENTS.md dosyalarının yüklenmesini etkinleştirin (bkz. https://agent-rules.org/)", diff --git a/src/package.nls.vi.json b/src/package.nls.vi.json index 6052080dfa3..f9fd112521f 100644 --- a/src/package.nls.vi.json +++ b/src/package.nls.vi.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "Một đội ngũ phát triển các tác nhân AI hoàn chỉnh trong trình soạn thảo của bạn.", "command.newTask.title": "Tác Vụ Mới", "command.explainCode.title": "Giải Thích Mã", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "Giải Thích Lệnh Này", "command.acceptInput.title": "Chấp Nhận Đầu Vào/Gợi Ý", "command.toggleAutoApprove.title": "Bật/Tắt Tự Động Phê Duyệt", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "Lịch Sử Tác Vụ", "command.marketplace.title": "Marketplace", "command.openInEditor.title": "Mở trong Trình Soạn Thảo", "command.cloud.title": "Cloud", "command.settings.title": "Cài Đặt", "command.documentation.title": "Tài Liệu", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "Các lệnh có thể được thực thi tự động khi 'Luôn phê duyệt các thao tác thực thi' được bật", "commands.deniedCommands.description": "Các tiền tố lệnh sẽ được tự động từ chối mà không yêu cầu phê duyệt. Trong trường hợp xung đột với các lệnh được phép, việc khớp tiền tố dài nhất sẽ được ưu tiên. Thêm * để từ chối tất cả các lệnh.", "commands.commandExecutionTimeout.description": "Thời gian tối đa tính bằng giây để chờ việc thực thi lệnh hoàn thành trước khi hết thời gian chờ (0 = không có thời gian chờ, 1-600s, mặc định: 0s)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "Nhà cung cấp mô hình ngôn ngữ (ví dụ: copilot)", "settings.vsCodeLmModelSelector.family.description": "Họ mô hình ngôn ngữ (ví dụ: gpt-4)", "settings.customStoragePath.description": "Đường dẫn lưu trữ tùy chỉnh. Để trống để sử dụng vị trí mặc định. Hỗ trợ đường dẫn tuyệt đối (ví dụ: 'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "Bật sửa lỗi nhanh Roo Code.", + "settings.enableCodeActions.description": "Bật sửa lỗi nhanh Joe Code.", "settings.autoImportSettingsPath.description": "Đường dẫn đến tệp cấu hình RooCode để tự động nhập khi khởi động tiện ích mở rộng. Hỗ trợ đường dẫn tuyệt đối và đường dẫn tương đối đến thư mục chính (ví dụ: '~/Documents/roo-code-settings.json'). Để trống để tắt tính năng tự động nhập.", "settings.maximumIndexedFilesForFileSearch.description": "Số lượng tệp tối đa để lập chỉ mục cho tính năng tìm kiếm tệp @. Giá trị cao hơn cung cấp kết quả tìm kiếm tốt hơn trong các dự án lớn nhưng có thể sử dụng nhiều bộ nhớ hơn. Mặc định: 10.000.", "settings.useAgentRules.description": "Bật tải tệp AGENTS.md cho các quy tắc dành riêng cho tác nhân (xem https://agent-rules.org/)", diff --git a/src/package.nls.zh-CN.json b/src/package.nls.zh-CN.json index 9254d494d9b..e61c1180fbc 100644 --- a/src/package.nls.zh-CN.json +++ b/src/package.nls.zh-CN.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "在你的编辑器中提供完整的 AI 代理开发团队。", "command.newTask.title": "新建任务", "command.explainCode.title": "解释代码", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "解释此命令", "command.acceptInput.title": "接受输入/建议", "command.toggleAutoApprove.title": "切换自动批准", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "任务历史记录", "command.marketplace.title": "应用市场", "command.openInEditor.title": "在编辑器中打开", "command.cloud.title": "Cloud", "command.settings.title": "设置", "command.documentation.title": "文档", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "当启用'始终批准执行操作'时可以自动执行的命令", "commands.deniedCommands.description": "将自动拒绝而无需请求批准的命令前缀。与允许命令冲突时,最长前缀匹配优先。添加 * 拒绝所有命令。", "commands.commandExecutionTimeout.description": "等待命令执行完成的最大时间(秒),超时前(0 = 无超时,1-600秒,默认:0秒)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "语言模型的供应商(例如:copilot)", "settings.vsCodeLmModelSelector.family.description": "语言模型的系列(例如:gpt-4)", "settings.customStoragePath.description": "自定义存储路径。留空以使用默认位置。支持绝对路径(例如:'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "启用 Roo Code 快速修复", + "settings.enableCodeActions.description": "启用 Joe Code 快速修复", "settings.autoImportSettingsPath.description": "RooCode 配置文件的路径,用于在扩展启动时自动导入。支持绝对路径和相对于主目录的路径(例如 '~/Documents/roo-code-settings.json')。留空以禁用自动导入。", "settings.maximumIndexedFilesForFileSearch.description": "为 @ 文件搜索功能建立索引时要索引的最大文件数。较大的值在大型项目中提供更好的搜索结果,但可能占用更多内存。默认值:10,000。", "settings.useAgentRules.description": "为特定于代理的规则启用 AGENTS.md 文件的加载(请参阅 https://agent-rules.org/)", diff --git a/src/package.nls.zh-TW.json b/src/package.nls.zh-TW.json index a8030d69141..191cd7a6325 100644 --- a/src/package.nls.zh-TW.json +++ b/src/package.nls.zh-TW.json @@ -1,5 +1,5 @@ { - "extension.displayName": "Roo Code", + "extension.displayName": "Joe Code", "extension.description": "在你的編輯器中提供完整的 AI 代理開發團隊。", "command.newTask.title": "新建任務", "command.explainCode.title": "解釋程式碼", @@ -15,17 +15,17 @@ "command.terminal.explainCommand.title": "解釋此命令", "command.acceptInput.title": "接受輸入/建議", "command.toggleAutoApprove.title": "切換自動批准", - "views.activitybar.title": "Roo Code", - "views.contextMenu.label": "Roo Code", - "views.terminalMenu.label": "Roo Code", - "views.sidebar.name": "Roo Code", + "views.activitybar.title": "Joe Code", + "views.contextMenu.label": "Joe Code", + "views.terminalMenu.label": "Joe Code", + "views.sidebar.name": "Joe Code", "command.history.title": "工作歷史記錄", "command.marketplace.title": "應用市場", "command.openInEditor.title": "在編輯器中開啟", "command.cloud.title": "Cloud", "command.settings.title": "設定", "command.documentation.title": "文件", - "configuration.title": "Roo Code", + "configuration.title": "Joe Code", "commands.allowedCommands.description": "當啟用'始終批准執行操作'時可以自動執行的命令", "commands.deniedCommands.description": "將自動拒絕而無需請求批准的命令前綴。與允許命令衝突時,最長前綴匹配優先。新增 * 拒絕所有命令。", "commands.commandExecutionTimeout.description": "等待命令執行完成的最大時間(秒),逾時前(0 = 無逾時,1-600秒,預設:0秒)", @@ -35,7 +35,7 @@ "settings.vsCodeLmModelSelector.vendor.description": "語言模型供應商(例如:copilot)", "settings.vsCodeLmModelSelector.family.description": "語言模型系列(例如:gpt-4)", "settings.customStoragePath.description": "自訂儲存路徑。留空以使用預設位置。支援絕對路徑(例如:'D:\\RooCodeStorage')", - "settings.enableCodeActions.description": "啟用 Roo Code 快速修復。", + "settings.enableCodeActions.description": "啟用 Joe Code 快速修復。", "settings.autoImportSettingsPath.description": "RooCode 設定檔案的路徑,用於在擴充功能啟動時自動匯入。支援絕對路徑和相對於主目錄的路徑(例如 '~/Documents/roo-code-settings.json')。留空以停用自動匯入。", "settings.maximumIndexedFilesForFileSearch.description": "為 @ 檔案搜尋功能建立索引時要索引的最大檔案數。較大的值在大型專案中提供更好的搜尋結果,但可能佔用更多記憶體。預設值:10,000。", "settings.useAgentRules.description": "為特定於代理的規則啟用 AGENTS.md 檔案的載入(請參閱 https://agent-rules.org/)", diff --git a/src/services/augment/AugmentEngine.ts b/src/services/augment/AugmentEngine.ts new file mode 100644 index 00000000000..1e2dede45b7 --- /dev/null +++ b/src/services/augment/AugmentEngine.ts @@ -0,0 +1,309 @@ +/** + * AugmentEngine — Joe AI's high-context intelligence orchestrator. + * + * This is the single entry point that wires together all Augment-style features: + * - MemoryManager (Phase 1: cross-session persistent memory) + * - ContinuousIndexer (Phase 2: always-on background indexing) + * - SmartContextSelector (Phase 3: RAG-based auto context selection) + * - ProactiveAnalyzer (Phase 4: proactive code suggestions) + * - MultiFileRefactorAnalyzer (Phase 6: cross-file refactor impact) + * + * The Augment mode (Phase 5) is registered in DEFAULT_MODES (packages/types/src/mode.ts) + * and uses this engine for all its capabilities. + * + * Usage in extension.ts: + * const engine = await AugmentEngine.initialize(context, workspacePath) + * engine.onReady(() => console.log("Joe AI context engine ready")) + */ + +import * as vscode from "vscode" +import path from "path" +import { MemoryManager } from "./MemoryManager" +import { ContinuousIndexer, IndexingUpdate } from "./ContinuousIndexer" +import { SmartContextSelector, SmartContextResult } from "./SmartContextSelector" +import { ProactiveAnalyzer, AnalysisResult } from "./ProactiveAnalyzer" +import { MultiFileRefactorAnalyzer, ImpactMap } from "./MultiFileRefactorAnalyzer" +import { CodeIndexManager } from "../code-index/manager" + +export interface AugmentEngineOptions { + enableContinuousIndexing?: boolean + enableProactiveAnalysis?: boolean + enablePersistentMemory?: boolean + maxContextFiles?: number +} + +export interface EnrichedContext { + memoryContext: string + smartContext: SmartContextResult + proactiveSuggestions: AnalysisResult | null + formattedForPrompt: string +} + +const DEFAULT_OPTIONS: Required = { + enableContinuousIndexing: true, + enableProactiveAnalysis: true, + enablePersistentMemory: true, + maxContextFiles: 8, +} + +export class AugmentEngine { + private static instances = new Map() + + public readonly memory: MemoryManager + public readonly indexer: ContinuousIndexer + public readonly contextSelector: SmartContextSelector + public readonly proactiveAnalyzer: ProactiveAnalyzer + public readonly refactorAnalyzer: MultiFileRefactorAnalyzer + + private readyCallbacks: Array<() => void> = [] + private isReady = false + private statusBarItem: vscode.StatusBarItem | undefined + private options: Required + + static getInstance(workspacePath: string): AugmentEngine | undefined { + return this.instances.get(workspacePath) + } + + /** + * Initialize the full Augment Engine for a workspace. + * Call once from extension.ts on activation. + */ + static async initialize( + context: vscode.ExtensionContext, + workspacePath: string, + options: AugmentEngineOptions = {}, + ): Promise { + if (this.instances.has(workspacePath)) { + return this.instances.get(workspacePath)! + } + + const engine = new AugmentEngine(context, workspacePath, options) + this.instances.set(workspacePath, engine) + await engine.start() + return engine + } + + static disposeAll(): void { + for (const engine of this.instances.values()) { + engine.dispose() + } + this.instances.clear() + } + + private constructor( + private readonly context: vscode.ExtensionContext, + private readonly workspacePath: string, + options: AugmentEngineOptions = {}, + ) { + this.options = { ...DEFAULT_OPTIONS, ...options } + + // Initialize all sub-systems + this.memory = MemoryManager.getInstance(context, workspacePath) + this.indexer = ContinuousIndexer.getInstance(workspacePath) + this.contextSelector = SmartContextSelector.getInstance(context, workspacePath, this.memory) + this.proactiveAnalyzer = ProactiveAnalyzer.getInstance(workspacePath) + this.refactorAnalyzer = MultiFileRefactorAnalyzer.getInstance(workspacePath) + } + + // --- Lifecycle --- + + private async start(): Promise { + // Set up status bar + this.statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100) + this.updateStatusBar("initializing", "Joe AI initializing...") + this.statusBarItem.show() + + // Phase 1: Load persistent memory + if (this.options.enablePersistentMemory) { + await this.memory.initialize() + } + + // Phase 2: Wire continuous indexer to CodeIndexManager + if (this.options.enableContinuousIndexing) { + const codeIndexManager = CodeIndexManager.getInstance(this.context, this.workspacePath) + if (codeIndexManager) { + this.indexer.setIndexCallbacks( + async (filePath: string) => { + // Trigger re-indexing of individual file via the manager's startIndexing + // The file watcher in CodeIndexManager will pick it up + // We emit a signal to refresh + }, + async () => { + await codeIndexManager.startIndexing() + }, + ) + } + + // Listen to indexer updates for status bar + this.indexer.on("update", (update: IndexingUpdate) => { + if (update.status === "indexing") { + this.updateStatusBar("indexing", update.message ?? `Indexing ${update.currentFile ?? "..."}`) + } else if (update.status === "ready") { + this.updateStatusBar("ready", "Joe AI context ready") + this.markReady() + } else if (update.status === "error") { + this.updateStatusBar("error", update.message ?? "Index error") + } + }) + + this.indexer.on("ready", () => { + this.markReady() + }) + + await this.indexer.activate() + } else { + this.markReady() + } + } + + private markReady(): void { + if (this.isReady) return + this.isReady = true + this.updateStatusBar("ready", "Joe AI context ready") + for (const cb of this.readyCallbacks) { + cb() + } + this.readyCallbacks = [] + } + + // --- Public API --- + + /** + * Register a callback to run when the engine is fully initialized. + */ + onReady(callback: () => void): void { + if (this.isReady) { + callback() + } else { + this.readyCallbacks.push(callback) + } + } + + /** + * Build enriched context for an AI prompt. + * This is the core function — call this before every API call in augment mode. + * + * @param query - The user's message/query + * @param activeFile - Currently open file path (optional) + * @param recentChanges - Files recently changed (for proactive analysis) + */ + async buildEnrichedContext( + query: string, + activeFile?: string, + recentChanges?: string[], + ): Promise { + const [smartContext, proactiveSuggestions] = await Promise.all([ + this.options.enablePersistentMemory + ? this.contextSelector.selectContext(query, activeFile) + : Promise.resolve({ files: [], totalTokensEstimated: 0, query, selectionReason: "disabled" }), + this.options.enableProactiveAnalysis && recentChanges?.length + ? this.proactiveAnalyzer.analyzeChanges(recentChanges) + : Promise.resolve(null), + ]) + + const memoryContext = this.options.enablePersistentMemory + ? this.memory.buildMemoryContext(smartContext.files.map((f) => f.filePath)) + : "" + + const formattedParts: string[] = [] + + if (memoryContext) { + formattedParts.push(memoryContext) + } + + if (smartContext.files.length > 0) { + formattedParts.push(this.contextSelector.formatContextForPrompt(smartContext)) + } + + if (proactiveSuggestions && proactiveSuggestions.suggestions.length > 0) { + formattedParts.push(this.proactiveAnalyzer.formatSuggestionsForPrompt(proactiveSuggestions)) + } + + return { + memoryContext, + smartContext, + proactiveSuggestions, + formattedForPrompt: formattedParts.join("\n"), + } + } + + /** + * Analyze refactor impact before making changes. + * Call this when the user asks to rename/move/refactor a symbol. + */ + async analyzeRefactorImpact(symbolName: string, sourceFilePath: string): Promise { + return this.refactorAnalyzer.analyzeSymbolImpact(symbolName, sourceFilePath) + } + + /** + * Record that a file was edited (feeds into memory + proactive analysis). + * Call this from tool handlers after any write_to_file / edit_file operation. + */ + recordFileEdit(filePath: string, summary: string = "", language: string = ""): void { + if (!language) { + const ext = path.extname(filePath).slice(1) + language = ext || "unknown" + } + if (this.options.enablePersistentMemory) { + this.memory.recordFileEdit(filePath, language, summary) + } + if (this.options.enableContinuousIndexing) { + this.indexer.indexFile(filePath).catch(console.error) + } + } + + /** + * End the current session with a summary. + * Call this from Task.ts when a task completes. + */ + endSession(summary: string): void { + if (this.options.enablePersistentMemory) { + this.memory.endSession(summary) + } + } + + /** + * Get engine status for display in UI. + */ + getStatus(): { + isReady: boolean + indexingStatus: string + memoryFiles: number + recentSessions: number + } { + const indexStatus = this.indexer.getStatus() + return { + isReady: this.isReady, + indexingStatus: indexStatus.status, + memoryFiles: this.memory.getFrequentlyEditedFiles(100).length, + recentSessions: this.memory.getRecentDecisions(100).length, + } + } + + dispose(): void { + this.statusBarItem?.dispose() + this.indexer.dispose() + this.memory.dispose() + this.proactiveAnalyzer.dispose() + SmartContextSelector.disposeAll() + MultiFileRefactorAnalyzer.disposeAll() + } + + // --- Private Helpers --- + + private updateStatusBar( + state: "initializing" | "indexing" | "ready" | "error", + message: string, + ): void { + if (!this.statusBarItem) return + const icons: Record = { + initializing: "$(sync~spin)", + indexing: "$(loading~spin)", + ready: "$(brain)", + error: "$(warning)", + } + this.statusBarItem.text = `${icons[state]} Joe AI: ${message}` + this.statusBarItem.tooltip = `Joe AI Augment Engine — ${message}` + this.statusBarItem.command = state === "ready" ? "joe-code.showAugmentStatus" : undefined + } +} diff --git a/src/services/augment/ContinuousIndexer.ts b/src/services/augment/ContinuousIndexer.ts new file mode 100644 index 00000000000..1089ea29439 --- /dev/null +++ b/src/services/augment/ContinuousIndexer.ts @@ -0,0 +1,276 @@ +/** + * ContinuousIndexer — Augment-style always-on background indexing engine. + * + * Unlike the standard CodeIndexManager which requires manual triggering, + * ContinuousIndexer automatically: + * 1. Starts indexing on extension activation + * 2. Watches for file saves and re-indexes incrementally (not full re-scan) + * 3. Prioritizes recently edited files for faster context relevance + * 4. Emits events so the UI can show live indexing status + */ + +import * as vscode from "vscode" +import * as path from "path" +import EventEmitter from "events" + +export interface IndexingUpdate { + status: "idle" | "indexing" | "ready" | "error" + filesQueued: number + filesProcessed: number + currentFile?: string + message?: string +} + +export interface ContinuousIndexerEvents { + update: [update: IndexingUpdate] + fileIndexed: [filePath: string] + ready: [] +} + +const DEBOUNCE_MS = 1500 // wait 1.5s after last save before re-indexing +const PRIORITY_EXTENSIONS = new Set([ + ".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".rs", ".java", ".cs", ".cpp", ".c", ".rb", ".php", +]) +const IGNORED_PATTERNS = [ + "node_modules", ".git", "dist", "build", "out", ".next", "__pycache__", + ".roo", ".joe-memory.json", "*.min.js", "*.map", +] + +export class ContinuousIndexer extends EventEmitter { + private static instances = new Map() + + private disposables: vscode.Disposable[] = [] + private pendingFiles = new Map() // file -> debounce timer + private recentlyIndexedFiles: string[] = [] + private isActive = false + private status: IndexingUpdate = { status: "idle", filesQueued: 0, filesProcessed: 0 } + + /** Callback that does the actual indexing — wired to CodeIndexManager */ + private indexFileCallback?: (filePath: string) => Promise + private startFullIndexCallback?: () => Promise + + static getInstance(workspacePath: string): ContinuousIndexer { + if (!this.instances.has(workspacePath)) { + this.instances.set(workspacePath, new ContinuousIndexer(workspacePath)) + } + return this.instances.get(workspacePath)! + } + + static disposeAll(): void { + for (const instance of this.instances.values()) { + instance.dispose() + } + this.instances.clear() + } + + private constructor(private readonly workspacePath: string) { + super() + } + + /** + * Wire up the actual indexing implementation from CodeIndexManager. + */ + setIndexCallbacks( + indexFile: (filePath: string) => Promise, + startFullIndex: () => Promise, + ): void { + this.indexFileCallback = indexFile + this.startFullIndexCallback = startFullIndex + } + + /** + * Activate continuous indexing. Call once on extension start. + */ + async activate(): Promise { + if (this.isActive) return + this.isActive = true + + // 1. Start full initial index (non-blocking) + this.triggerFullIndex() + + // 2. Watch for file saves + this.disposables.push( + vscode.workspace.onDidSaveTextDocument((doc) => { + if (this.shouldIndex(doc.uri.fsPath)) { + this.scheduleFileIndex(doc.uri.fsPath, "save") + } + }), + ) + + // 3. Watch for file creation + const watcher = vscode.workspace.createFileSystemWatcher("**/*", false, true, false) + this.disposables.push( + watcher, + watcher.onDidCreate((uri) => { + if (this.shouldIndex(uri.fsPath)) { + this.scheduleFileIndex(uri.fsPath, "create") + } + }), + watcher.onDidDelete((uri) => { + // Remove deleted file from recent index list + this.recentlyIndexedFiles = this.recentlyIndexedFiles.filter((f) => f !== uri.fsPath) + }), + ) + + // 4. Prioritize active editor file on open + this.disposables.push( + vscode.window.onDidChangeActiveTextEditor((editor) => { + if (editor && this.shouldIndex(editor.document.uri.fsPath)) { + // High priority: index immediately without debounce + this.indexSingleFile(editor.document.uri.fsPath) + } + }), + ) + } + + /** + * Get list of recently indexed files (most relevant context). + */ + getRecentlyIndexedFiles(limit = 20): string[] { + return this.recentlyIndexedFiles.slice(-limit) + } + + /** + * Get current status. + */ + getStatus(): IndexingUpdate { + return { ...this.status } + } + + /** + * Manually trigger indexing of a specific file (call from tools). + */ + async indexFile(filePath: string): Promise { + await this.indexSingleFile(filePath) + } + + dispose(): void { + this.isActive = false + for (const timer of this.pendingFiles.values()) { + clearTimeout(timer) + } + this.pendingFiles.clear() + for (const d of this.disposables) { + d.dispose() + } + this.disposables = [] + } + + // --- Private Methods --- + + private shouldIndex(filePath: string): boolean { + // Check if file is in workspace + if (!filePath.startsWith(this.workspacePath)) { + return false + } + + // Check ignored patterns + const relativePath = path.relative(this.workspacePath, filePath) + for (const pattern of IGNORED_PATTERNS) { + if (relativePath.includes(pattern)) { + return false + } + } + + // Only index priority extensions (code files) + const ext = path.extname(filePath).toLowerCase() + return PRIORITY_EXTENSIONS.has(ext) + } + + private scheduleFileIndex(filePath: string, reason: string): void { + // Cancel existing debounce for this file + const existingTimer = this.pendingFiles.get(filePath) + if (existingTimer) { + clearTimeout(existingTimer) + } + + // Schedule new indexing with debounce + const timer = setTimeout(async () => { + this.pendingFiles.delete(filePath) + await this.indexSingleFile(filePath) + }, DEBOUNCE_MS) + + this.pendingFiles.set(filePath, timer) + + this.emitUpdate({ + status: "indexing", + filesQueued: this.pendingFiles.size, + filesProcessed: this.status.filesProcessed, + currentFile: path.basename(filePath), + message: `Queued for indexing (${reason}): ${path.basename(filePath)}`, + }) + } + + private async indexSingleFile(filePath: string): Promise { + if (!this.indexFileCallback) { + return + } + + try { + this.emitUpdate({ + status: "indexing", + filesQueued: this.pendingFiles.size, + filesProcessed: this.status.filesProcessed, + currentFile: path.basename(filePath), + message: `Indexing: ${path.basename(filePath)}`, + }) + + await this.indexFileCallback(filePath) + + // Track recently indexed + this.recentlyIndexedFiles = this.recentlyIndexedFiles.filter((f) => f !== filePath) + this.recentlyIndexedFiles.push(filePath) + if (this.recentlyIndexedFiles.length > 100) { + this.recentlyIndexedFiles.shift() + } + + this.emit("fileIndexed", filePath) + + this.emitUpdate({ + status: this.pendingFiles.size > 0 ? "indexing" : "ready", + filesQueued: this.pendingFiles.size, + filesProcessed: this.status.filesProcessed + 1, + message: `Indexed: ${path.basename(filePath)}`, + }) + } catch (err) { + console.error(`[ContinuousIndexer] Failed to index ${filePath}:`, err) + } + } + + private async triggerFullIndex(): Promise { + if (!this.startFullIndexCallback) { + return + } + + this.emitUpdate({ + status: "indexing", + filesQueued: 0, + filesProcessed: 0, + message: "Starting full workspace index...", + }) + + try { + await this.startFullIndexCallback() + this.emitUpdate({ + status: "ready", + filesQueued: 0, + filesProcessed: this.status.filesProcessed, + message: "Workspace index complete. Joe AI context is ready.", + }) + this.emit("ready") + } catch (err) { + console.error("[ContinuousIndexer] Full index failed:", err) + this.emitUpdate({ + status: "error", + filesQueued: 0, + filesProcessed: 0, + message: `Index error: ${err instanceof Error ? err.message : String(err)}`, + }) + } + } + + private emitUpdate(update: IndexingUpdate): void { + this.status = update + this.emit("update", update) + } +} diff --git a/src/services/augment/JoeInlineCompletionProvider.ts b/src/services/augment/JoeInlineCompletionProvider.ts new file mode 100644 index 00000000000..2f264b5063a --- /dev/null +++ b/src/services/augment/JoeInlineCompletionProvider.ts @@ -0,0 +1,248 @@ +/** + * JoeInlineCompletionProvider — Ghost text inline completions powered by Joe AI. + * + * Registers as a VSCode InlineCompletionItemProvider for all languages. + * On every keystroke (debounced 400ms), it: + * 1. Captures the surrounding code context (200 lines window) + * 2. Pulls in AugmentEngine's smart context (relevant files from the index) + * 3. Calls the configured LLM with a fill-in-the-middle prompt + * 4. Returns the predicted continuation as ghost text + * + * Supports: Anthropic (native), OpenAI-compatible providers. + * Requires the user to have an API key configured in Joe Code settings. + */ + +import * as vscode from "vscode" +import { Anthropic } from "@anthropic-ai/sdk" +import { AugmentEngine } from "./AugmentEngine" + +const DEBOUNCE_MS = 400 +const MAX_TOKENS = 80 // Keep completions short — one logical unit +const CONTEXT_LINES_BEFORE = 100 +const CONTEXT_LINES_AFTER = 20 +const MAX_PROMPT_CHARS = 6000 + +/** Model used for inline completions — fast and cheap */ +const COMPLETION_MODEL = "claude-haiku-4-5-20251001" + +export class JoeInlineCompletionProvider implements vscode.InlineCompletionItemProvider { + private debounceTimer: ReturnType | null = null + private lastRequestId = 0 + private lastResult: vscode.InlineCompletionItem[] = [] + + constructor( + private readonly context: vscode.ExtensionContext, + private readonly workspacePath: string, + ) {} + + async provideInlineCompletionItems( + document: vscode.TextDocument, + position: vscode.Position, + _context: vscode.InlineCompletionContext, + token: vscode.CancellationToken, + ): Promise { + // Only trigger on manual invocation or auto-trigger when typing + // Skip for very short files or at start of document + if (position.line < 1) return null + + const requestId = ++this.lastRequestId + + // Debounce: wait for typing to pause + if (this.debounceTimer) clearTimeout(this.debounceTimer) + + return new Promise((resolve) => { + this.debounceTimer = setTimeout(async () => { + if (token.isCancellationRequested || requestId !== this.lastRequestId) { + resolve(null) + return + } + + try { + const items = await this._generateCompletion(document, position, requestId, token) + resolve(items ? new vscode.InlineCompletionList(items) : null) + } catch { + resolve(null) + } + }, DEBOUNCE_MS) + }) + } + + // ─── Private ────────────────────────────────────────────────────────────── + + private async _generateCompletion( + document: vscode.TextDocument, + position: vscode.Position, + requestId: number, + token: vscode.CancellationToken, + ): Promise { + // Get API credentials + const apiKey = await this.context.secrets.get("apiKey") + if (!apiKey) { + // No API key configured — silently skip + return null + } + + const prefix = this._getPrefix(document, position) + const suffix = this._getSuffix(document, position) + + if (!prefix.trim()) return null + + // Build augment context (best-effort; skip if engine not ready) + let augmentContext = "" + try { + const engine = AugmentEngine.getInstance(this.workspacePath) + if (engine) { + const query = this._extractQueryFromPrefix(prefix) + const enriched = await engine.buildEnrichedContext(query, document.uri.fsPath) + augmentContext = enriched.formattedForPrompt.slice(0, 1500) // Limit context size + } + } catch { + // Augment engine not ready — proceed without extra context + } + + if (token.isCancellationRequested || requestId !== this.lastRequestId) return null + + const systemPrompt = [ + "You are an expert code completion engine embedded in Joe AI.", + "Your ONLY task is to predict and output the most likely code continuation at the cursor position.", + "Rules:", + "- Output ONLY the completion text — no explanations, no markdown fences, no extra text.", + "- Complete one logical unit: one line, or a short multi-line block if the context clearly requires it.", + "- Match the existing indentation, language style, and naming conventions exactly.", + "- If the cursor is in the middle of a statement, complete that statement.", + "- If there is nothing useful to suggest, output an empty string.", + augmentContext ? "\n\nRelevant codebase context:\n" + augmentContext : "", + ] + .filter(Boolean) + .join("\n") + + const userMessage = [ + `Language: ${document.languageId}`, + `File: ${vscode.workspace.asRelativePath(document.uri)}`, + "", + "Complete the code at :", + "", + "```", + prefix + "" + suffix, + "```", + "", + "Output ONLY the completion text that should replace (no backticks, no explanation):", + ].join("\n") + + try { + const client = new Anthropic({ apiKey }) + + const response = await client.messages.create({ + model: COMPLETION_MODEL, + max_tokens: MAX_TOKENS, + system: systemPrompt, + messages: [{ role: "user", content: userMessage }], + }) + + if (token.isCancellationRequested || requestId !== this.lastRequestId) return null + + const completion = this._extractCompletion(response) + if (!completion) return null + + return [ + new vscode.InlineCompletionItem( + completion, + new vscode.Range(position, position), + ), + ] + } catch (error: any) { + // Suppress rate limit / auth errors silently — don't disrupt the editor + if (error?.status === 401 || error?.status === 403) { + console.warn("[JoeInlineCompletion] API key invalid or unauthorized") + } else if (error?.status === 429) { + // Rate limited — just skip + } else { + console.debug("[JoeInlineCompletion] Completion failed:", error?.message ?? error) + } + return null + } + } + + /** + * Get the code BEFORE the cursor (prefix), capped at CONTEXT_LINES_BEFORE lines. + * Also limited by MAX_PROMPT_CHARS total. + */ + private _getPrefix(document: vscode.TextDocument, position: vscode.Position): string { + const startLine = Math.max(0, position.line - CONTEXT_LINES_BEFORE) + const range = new vscode.Range(new vscode.Position(startLine, 0), position) + const text = document.getText(range) + // Trim from left if too long + return text.length > MAX_PROMPT_CHARS ? text.slice(text.length - MAX_PROMPT_CHARS) : text + } + + /** + * Get the code AFTER the cursor (suffix), capped at CONTEXT_LINES_AFTER lines. + */ + private _getSuffix(document: vscode.TextDocument, position: vscode.Position): string { + const endLine = Math.min(document.lineCount - 1, position.line + CONTEXT_LINES_AFTER) + const range = new vscode.Range(position, new vscode.Position(endLine, document.lineAt(endLine).text.length)) + const text = document.getText(range) + return text.length > 800 ? text.slice(0, 800) : text + } + + /** + * Extract a short query from the code prefix for AugmentEngine context lookup. + */ + private _extractQueryFromPrefix(prefix: string): string { + // Use the last non-empty line as the query hint + const lines = prefix.split("\n").map((l) => l.trim()).filter(Boolean) + const last = lines[lines.length - 1] ?? "" + return last.slice(0, 120) || "inline completion context" + } + + /** + * Extract the plain completion string from the Anthropic API response. + */ + private _extractCompletion(response: Anthropic.Message): string { + const block = response.content[0] + if (!block || block.type !== "text") return "" + + let text = block.text.trim() + + // Strip markdown fences if the model accidentally added them + text = text.replace(/^```[\w]*\n?/, "").replace(/\n?```$/, "") + + // Remove leading/trailing blank lines + text = text.replace(/^\n+/, "").replace(/\n+$/, "") + + return text + } + + dispose(): void { + if (this.debounceTimer) { + clearTimeout(this.debounceTimer) + } + } +} + +/** + * Register the Joe AI inline completion provider for all languages. + * Call from extension.ts activate(). + * + * @param context VSCode extension context (for secrets access) + * @param workspacePath Primary workspace folder path (for AugmentEngine) + * @returns Disposable to clean up on deactivation + */ +export function registerJoeInlineCompletionProvider( + context: vscode.ExtensionContext, + workspacePath: string, +): vscode.Disposable { + const provider = new JoeInlineCompletionProvider(context, workspacePath) + + const disposable = vscode.languages.registerInlineCompletionItemProvider( + // Register for all document types + { pattern: "**/*" }, + provider, + ) + + // Also register explicit dispose + context.subscriptions.push({ dispose: () => provider.dispose() }) + + console.log("[JoeInlineCompletion] Registered inline completion provider") + return disposable +} diff --git a/src/services/augment/MemoryManager.ts b/src/services/augment/MemoryManager.ts new file mode 100644 index 00000000000..9430f1f1e74 --- /dev/null +++ b/src/services/augment/MemoryManager.ts @@ -0,0 +1,323 @@ +/** + * MemoryManager — Augment-style persistent cross-session memory engine. + * + * Stores summaries of files edited, decisions made, and patterns discovered + * so Joe AI can recall context across sessions — just like Augment Code does. + * + * Storage: VSCode globalState (per-user, cross-workspace) + + * workspace-local JSON for file-level memory. + */ + +import * as vscode from "vscode" +import * as fs from "fs/promises" +import * as path from "path" + +export interface FileMemory { + filePath: string + summary: string + lastEditedAt: number + editCount: number + keyPatterns: string[] + language: string +} + +export interface SessionMemory { + sessionId: string + startedAt: number + endedAt?: number + taskSummary: string + filesChanged: string[] + decisions: string[] + mode: string +} + +export interface WorkspaceMemory { + workspacePath: string + projectSummary: string + techStack: string[] + keyConventions: string[] + frequentlyEditedFiles: string[] + sessions: SessionMemory[] + fileMemories: Record + lastUpdatedAt: number +} + +const MEMORY_FILE_NAME = ".joe-memory.json" +const MAX_SESSIONS_STORED = 20 +const MAX_FILE_MEMORIES = 200 + +export class MemoryManager { + private static instances = new Map() + private memory: WorkspaceMemory + private memoryFilePath: string + private saveDebounceTimer: NodeJS.Timeout | undefined + private currentSessionId: string + private context: vscode.ExtensionContext + + static getInstance(context: vscode.ExtensionContext, workspacePath: string): MemoryManager { + if (!this.instances.has(workspacePath)) { + this.instances.set(workspacePath, new MemoryManager(context, workspacePath)) + } + return this.instances.get(workspacePath)! + } + + static disposeAll(): void { + for (const instance of this.instances.values()) { + instance.dispose() + } + this.instances.clear() + } + + private constructor(context: vscode.ExtensionContext, workspacePath: string) { + this.context = context + this.memoryFilePath = path.join(workspacePath, MEMORY_FILE_NAME) + this.currentSessionId = `session-${Date.now()}` + this.memory = this.emptyMemory(workspacePath) + } + + // --- Public API --- + + async initialize(): Promise { + await this.loadFromDisk() + this.startSession() + } + + /** + * Record that a file was edited. Call this whenever a tool writes/edits a file. + */ + recordFileEdit(filePath: string, language: string, summary: string, patterns: string[] = []): void { + const existing = this.memory.fileMemories[filePath] + this.memory.fileMemories[filePath] = { + filePath, + summary, + lastEditedAt: Date.now(), + editCount: (existing?.editCount ?? 0) + 1, + keyPatterns: patterns.length > 0 ? patterns : (existing?.keyPatterns ?? []), + language, + } + + // Track in current session + const session = this.currentSession + if (session && !session.filesChanged.includes(filePath)) { + session.filesChanged.push(filePath) + } + + // Update frequently edited files + this.updateFrequentFiles() + this.scheduleSave() + } + + /** + * Record a decision or convention discovered during the session. + */ + recordDecision(decision: string): void { + const session = this.currentSession + if (session) { + session.decisions.push(decision) + } + // Add to workspace-level conventions if it looks like a convention + if (decision.toLowerCase().includes("convention") || decision.toLowerCase().includes("pattern")) { + if (!this.memory.keyConventions.includes(decision)) { + this.memory.keyConventions.push(decision) + // Keep only the most recent 10 conventions + if (this.memory.keyConventions.length > 10) { + this.memory.keyConventions = this.memory.keyConventions.slice(-10) + } + } + } + this.scheduleSave() + } + + /** + * Update the project-level summary (call this periodically or at session end). + */ + updateProjectSummary(summary: string, techStack?: string[]): void { + this.memory.projectSummary = summary + if (techStack) { + this.memory.techStack = techStack + } + this.scheduleSave() + } + + /** + * End current session with a summary of what was accomplished. + */ + endSession(taskSummary: string): void { + const session = this.currentSession + if (session) { + session.endedAt = Date.now() + session.taskSummary = taskSummary + } + this.scheduleSave() + } + + /** + * Build a rich memory context string to inject into prompts. + * This is what makes Joe AI "remember" like Augment Code. + */ + buildMemoryContext(relevantFiles?: string[]): string { + const parts: string[] = [] + + // Project summary + if (this.memory.projectSummary) { + parts.push(`## Project Memory\n${this.memory.projectSummary}`) + } + + // Tech stack + if (this.memory.techStack.length > 0) { + parts.push(`## Tech Stack\n${this.memory.techStack.join(", ")}`) + } + + // Key conventions + if (this.memory.keyConventions.length > 0) { + parts.push(`## Codebase Conventions\n${this.memory.keyConventions.map((c) => `- ${c}`).join("\n")}`) + } + + // Recent sessions (last 3) + const recentSessions = this.memory.sessions + .filter((s) => s.endedAt && s.taskSummary) + .slice(-3) + if (recentSessions.length > 0) { + const sessionLines = recentSessions.map((s) => { + const date = new Date(s.startedAt).toLocaleDateString() + return `- [${date}] ${s.taskSummary} (files: ${s.filesChanged.slice(0, 3).join(", ")}${s.filesChanged.length > 3 ? "..." : ""})` + }) + parts.push(`## Recent Work Sessions\n${sessionLines.join("\n")}`) + } + + // Relevant file memories + const filesToInclude = relevantFiles ?? this.memory.frequentlyEditedFiles.slice(0, 5) + const fileMemoryLines: string[] = [] + for (const fp of filesToInclude) { + const fm = this.memory.fileMemories[fp] + if (fm?.summary) { + fileMemoryLines.push(`- \`${path.basename(fp)}\`: ${fm.summary}`) + } + } + if (fileMemoryLines.length > 0) { + parts.push(`## Key File Context\n${fileMemoryLines.join("\n")}`) + } + + if (parts.length === 0) { + return "" + } + + return `\n\n---\n### Joe AI Memory (Cross-Session Context)\n${parts.join("\n\n")}\n---\n` + } + + /** + * Get file memory for a specific file. + */ + getFileMemory(filePath: string): FileMemory | undefined { + return this.memory.fileMemories[filePath] + } + + /** + * Get list of most frequently edited files. + */ + getFrequentlyEditedFiles(limit = 10): string[] { + return this.memory.frequentlyEditedFiles.slice(0, limit) + } + + /** + * Get recent decisions. + */ + getRecentDecisions(limit = 5): string[] { + const allDecisions: string[] = [] + for (const session of this.memory.sessions.slice(-5)) { + allDecisions.push(...session.decisions) + } + return allDecisions.slice(-limit) + } + + dispose(): void { + if (this.saveDebounceTimer) { + clearTimeout(this.saveDebounceTimer) + } + // Synchronously save on dispose + this.saveToDisk().catch(console.error) + } + + // --- Private Helpers --- + + private get currentSession(): SessionMemory | undefined { + return this.memory.sessions.find((s) => s.sessionId === this.currentSessionId) + } + + private startSession(): void { + const session: SessionMemory = { + sessionId: this.currentSessionId, + startedAt: Date.now(), + taskSummary: "", + filesChanged: [], + decisions: [], + mode: "code", + } + this.memory.sessions.push(session) + + // Prune old sessions + if (this.memory.sessions.length > MAX_SESSIONS_STORED) { + this.memory.sessions = this.memory.sessions.slice(-MAX_SESSIONS_STORED) + } + } + + private updateFrequentFiles(): void { + // Count edit frequencies + const counts = Object.entries(this.memory.fileMemories) + .sort(([, a], [, b]) => b.editCount - a.editCount) + .map(([fp]) => fp) + this.memory.frequentlyEditedFiles = counts.slice(0, 20) + + // Prune old file memories if over limit + if (Object.keys(this.memory.fileMemories).length > MAX_FILE_MEMORIES) { + const toKeep = new Set(counts.slice(0, MAX_FILE_MEMORIES)) + for (const key of Object.keys(this.memory.fileMemories)) { + if (!toKeep.has(key)) { + delete this.memory.fileMemories[key] + } + } + } + } + + private scheduleSave(): void { + if (this.saveDebounceTimer) { + clearTimeout(this.saveDebounceTimer) + } + this.saveDebounceTimer = setTimeout(() => { + this.saveToDisk().catch(console.error) + }, 2000) + } + + private async loadFromDisk(): Promise { + try { + const raw = await fs.readFile(this.memoryFilePath, "utf-8") + const parsed = JSON.parse(raw) as WorkspaceMemory + this.memory = { ...this.emptyMemory(this.memory.workspacePath), ...parsed } + } catch { + // File doesn't exist yet — start fresh + this.memory = this.emptyMemory(this.memory.workspacePath) + } + } + + private async saveToDisk(): Promise { + try { + this.memory.lastUpdatedAt = Date.now() + await fs.writeFile(this.memoryFilePath, JSON.stringify(this.memory, null, 2), "utf-8") + } catch (err) { + console.error("[MemoryManager] Failed to save memory to disk:", err) + } + } + + private emptyMemory(workspacePath: string): WorkspaceMemory { + return { + workspacePath, + projectSummary: "", + techStack: [], + keyConventions: [], + frequentlyEditedFiles: [], + sessions: [], + fileMemories: {}, + lastUpdatedAt: Date.now(), + } + } +} diff --git a/src/services/augment/MultiFileRefactorAnalyzer.ts b/src/services/augment/MultiFileRefactorAnalyzer.ts new file mode 100644 index 00000000000..e1c1077fcbd --- /dev/null +++ b/src/services/augment/MultiFileRefactorAnalyzer.ts @@ -0,0 +1,298 @@ +/** + * MultiFileRefactorAnalyzer — Augment-style cross-file impact analysis. + * + * Before applying a refactor, this analyzer: + * 1. Finds all files that import/use the target symbol + * 2. Detects duplicate code patterns across the codebase + * 3. Generates a change impact map showing what will break + * 4. Provides a safe, ordered sequence for applying changes + * + * This gives Joe AI the ability to do codebase-wide refactors safely + * rather than blindly editing one file at a time. + */ + +import * as vscode from "vscode" +import * as path from "path" +import * as fs from "fs/promises" +import { SmartContextSelector, ContextFile } from "./SmartContextSelector" + +export interface SymbolUsage { + filePath: string + lineNumber: number + lineContent: string + usageType: "import" | "call" | "reference" | "extend" | "implement" +} + +export interface ImpactMap { + targetSymbol: string + targetFile: string + directUsages: SymbolUsage[] + indirectFiles: string[] // files that import files that use the symbol + totalFilesAffected: number + riskLevel: "low" | "medium" | "high" + changeOrder: string[] // recommended order to apply changes + summary: string +} + +export interface DuplicateBlock { + content: string + occurrences: Array<{ filePath: string; lineStart: number; lineEnd: number }> + similarityScore: number + refactorSuggestion: string +} + +const MAX_FILES_TO_SCAN = 500 +const MIN_DUPLICATE_LINES = 5 + +export class MultiFileRefactorAnalyzer { + private static instances = new Map() + + static getInstance(workspacePath: string): MultiFileRefactorAnalyzer { + if (!this.instances.has(workspacePath)) { + this.instances.set(workspacePath, new MultiFileRefactorAnalyzer(workspacePath)) + } + return this.instances.get(workspacePath)! + } + + static disposeAll(): void { + this.instances.clear() + } + + private constructor(private readonly workspacePath: string) {} + + /** + * Analyze the impact of renaming or changing a symbol across the codebase. + * Call this before any rename/refactor operation. + */ + async analyzeSymbolImpact(symbolName: string, sourceFilePath: string): Promise { + const usages: SymbolUsage[] = [] + const scannedFiles = await this.getCodeFiles() + + for (const filePath of scannedFiles) { + if (filePath === sourceFilePath) continue + + try { + const content = await fs.readFile(filePath, "utf-8") + const lines = content.split("\n") + + for (let i = 0; i < lines.length; i++) { + const line = lines[i] + if (!line.includes(symbolName)) continue + + const usageType = this.detectUsageType(line, symbolName) + if (usageType) { + usages.push({ + filePath, + lineNumber: i + 1, + lineContent: line.trim(), + usageType, + }) + } + } + } catch { + // skip unreadable files + } + } + + // Find indirect files (files that import files that have usages) + const directFiles = new Set(usages.map((u) => u.filePath)) + const indirectFiles: string[] = [] + + for (const filePath of scannedFiles) { + if (directFiles.has(filePath) || filePath === sourceFilePath) continue + + try { + const content = await fs.readFile(filePath, "utf-8") + for (const directFile of directFiles) { + const relativePath = path.relative(path.dirname(filePath), directFile).replace(/\\/g, "/") + const basename = path.basename(directFile, path.extname(directFile)) + if (content.includes(relativePath) || content.includes(basename)) { + indirectFiles.push(filePath) + break + } + } + } catch { + // skip + } + } + + const totalAffected = directFiles.size + indirectFiles.length + 1 // +1 for source file + + // Determine risk level + let riskLevel: "low" | "medium" | "high" + if (totalAffected <= 3) { + riskLevel = "low" + } else if (totalAffected <= 10) { + riskLevel = "medium" + } else { + riskLevel = "high" + } + + // Recommended change order: source file first, then direct usages, then indirect + const changeOrder = [ + sourceFilePath, + ...Array.from(directFiles), + ...indirectFiles, + ].map((f) => path.relative(this.workspacePath, f)) + + const summary = this.buildImpactSummary(symbolName, usages, indirectFiles, riskLevel) + + return { + targetSymbol: symbolName, + targetFile: sourceFilePath, + directUsages: usages, + indirectFiles, + totalFilesAffected: totalAffected, + riskLevel, + changeOrder, + summary, + } + } + + /** + * Find duplicate code blocks across the codebase. + */ + async findDuplicates(minLines = MIN_DUPLICATE_LINES): Promise { + const files = await this.getCodeFiles() + const blockMap = new Map>() + + for (const filePath of files) { + try { + const content = await fs.readFile(filePath, "utf-8") + const lines = content.split("\n") + + // Slide a window of `minLines` over the file + for (let i = 0; i <= lines.length - minLines; i++) { + const block = lines + .slice(i, i + minLines) + .map((l) => l.trim()) + .filter((l) => l.length > 0 && !l.startsWith("//") && !l.startsWith("*")) + .join("\n") + + if (block.length < 100) continue // too short to be meaningful + + const existing = blockMap.get(block) ?? [] + existing.push({ filePath, lineStart: i + 1, lineEnd: i + minLines }) + blockMap.set(block, existing) + } + } catch { + // skip + } + } + + const duplicates: DuplicateBlock[] = [] + for (const [content, occurrences] of blockMap.entries()) { + if (occurrences.length < 2) continue + + duplicates.push({ + content, + occurrences, + similarityScore: 1.0, // exact match + refactorSuggestion: `Extract this ${occurrences.length}-occurrence block into a shared utility function`, + }) + } + + // Sort by number of occurrences (most duplicated first) + return duplicates.sort((a, b) => b.occurrences.length - a.occurrences.length).slice(0, 10) + } + + /** + * Format an impact map as a prompt string for Joe AI. + */ + formatImpactForPrompt(impact: ImpactMap): string { + const riskEmoji = { low: "🟢", medium: "🟡", high: "🔴" }[impact.riskLevel] + const lines = [ + `\n\n---\n### Joe AI Refactor Impact Analysis for \`${impact.targetSymbol}\`\n`, + `${riskEmoji} **Risk Level**: ${impact.riskLevel.toUpperCase()} (${impact.totalFilesAffected} files affected)\n`, + `**${impact.summary}**\n`, + ] + + if (impact.directUsages.length > 0) { + lines.push(`\n**Direct Usages (${impact.directUsages.length}):**`) + const grouped = new Map() + for (const u of impact.directUsages) { + const rel = path.relative(this.workspacePath, u.filePath) + const existing = grouped.get(rel) ?? [] + existing.push(u) + grouped.set(rel, existing) + } + for (const [file, usages] of grouped.entries()) { + lines.push(`- \`${file}\`: lines ${usages.map((u) => u.lineNumber).join(", ")}`) + } + } + + if (impact.indirectFiles.length > 0) { + lines.push(`\n**Indirectly Affected (${impact.indirectFiles.length}):**`) + for (const f of impact.indirectFiles.slice(0, 5)) { + lines.push(`- \`${path.relative(this.workspacePath, f)}\``) + } + if (impact.indirectFiles.length > 5) { + lines.push(`- ... and ${impact.indirectFiles.length - 5} more`) + } + } + + lines.push(`\n**Recommended Change Order:**`) + for (let i = 0; i < Math.min(impact.changeOrder.length, 10); i++) { + lines.push(`${i + 1}. \`${impact.changeOrder[i]}\``) + } + + lines.push("\n---\n") + return lines.join("\n") + } + + // --- Private Methods --- + + private async getCodeFiles(): Promise { + const files: string[] = [] + await this.walkDir(this.workspacePath, files) + return files.slice(0, MAX_FILES_TO_SCAN) + } + + private async walkDir(dirPath: string, results: string[]): Promise { + const IGNORED = new Set(["node_modules", ".git", "dist", "build", "out", ".next", "__pycache__"]) + const CODE_EXTS = new Set([".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".rs", ".java", ".cs"]) + + try { + const entries = await fs.readdir(dirPath, { withFileTypes: true }) + for (const entry of entries) { + if (IGNORED.has(entry.name)) continue + const fullPath = path.join(dirPath, entry.name) + if (entry.isDirectory()) { + await this.walkDir(fullPath, results) + } else if (CODE_EXTS.has(path.extname(entry.name))) { + results.push(fullPath) + } + } + } catch { + // skip unreadable dirs + } + } + + private detectUsageType( + line: string, + symbol: string, + ): SymbolUsage["usageType"] | null { + const trimmed = line.trim() + if (trimmed.includes(`import`) && trimmed.includes(symbol)) return "import" + if (trimmed.includes(`extends ${symbol}`) || trimmed.includes(`extends ${symbol}<`)) return "extend" + if (trimmed.includes(`implements ${symbol}`)) return "implement" + if (new RegExp(`\\b${symbol}\\s*\\(`).test(trimmed)) return "call" + if (new RegExp(`\\b${symbol}\\b`).test(trimmed)) return "reference" + return null + } + + private buildImpactSummary( + symbol: string, + usages: SymbolUsage[], + indirectFiles: string[], + riskLevel: string, + ): string { + const importCount = usages.filter((u) => u.usageType === "import").length + const callCount = usages.filter((u) => u.usageType === "call").length + const parts: string[] = [] + if (importCount > 0) parts.push(`imported in ${importCount} file${importCount > 1 ? "s" : ""}`) + if (callCount > 0) parts.push(`called ${callCount} time${callCount > 1 ? "s" : ""}`) + if (indirectFiles.length > 0) parts.push(`${indirectFiles.length} indirect dependencies`) + return `\`${symbol}\` is ${parts.join(", ")}. ${riskLevel === "high" ? "Proceed carefully — high impact change." : riskLevel === "medium" ? "Moderate impact — review all affected files." : "Low impact — safe to proceed."}` + } +} diff --git a/src/services/augment/ProactiveAnalyzer.ts b/src/services/augment/ProactiveAnalyzer.ts new file mode 100644 index 00000000000..30b25e0573a --- /dev/null +++ b/src/services/augment/ProactiveAnalyzer.ts @@ -0,0 +1,288 @@ +/** + * ProactiveAnalyzer — Augment-style proactive code intelligence. + * + * After each completed task or file edit, this analyzer: + * 1. Detects common issues: missing tests, duplicate code, stale imports + * 2. Suggests logical next actions based on what was just changed + * 3. Surfaces relevant related files the user might want to update + * 4. Shows non-blocking inline hints in the sidebar + * + * Unlike reactive AI (waiting for user questions), this proactively helps + * the user stay on top of code quality — a key Augment Code feature. + */ + +import * as vscode from "vscode" +import * as path from "path" +import * as fs from "fs/promises" +import EventEmitter from "events" + +export interface ProactiveSuggestion { + id: string + type: "test-missing" | "duplicate-code" | "stale-import" | "related-file" | "next-action" | "convention" + priority: "high" | "medium" | "low" + title: string + description: string + filePath?: string + lineNumber?: number + actionLabel?: string + action?: () => void +} + +export interface AnalysisResult { + suggestions: ProactiveSuggestion[] + analyzedFiles: string[] + timestamp: number +} + +const TEST_FILE_PATTERNS = [ + (f: string) => f.replace(/\.(ts|js|tsx|jsx)$/, ".test.$1"), + (f: string) => f.replace(/\.(ts|js|tsx|jsx)$/, ".spec.$1"), + (f: string) => f.replace(/src\//, "src/__tests__/").replace(/\.(ts|js|tsx|jsx)$/, ".test.$1"), + (f: string) => f.replace(/src\//, "tests/").replace(/\.(ts|js|tsx|jsx)$/, ".test.$1"), +] + +const NEXT_ACTION_RULES: Array<{ + pattern: RegExp + suggestions: Array> +}> = [ + { + // After editing a service file, suggest checking controllers/routes + pattern: /\/(services?|service)\//i, + suggestions: [ + { + type: "next-action", + priority: "medium", + title: "Check related controllers/routes", + description: "You edited a service file. Consider checking if any controllers or routes need updating.", + actionLabel: "Search for usages", + }, + ], + }, + { + // After editing API handlers, suggest updating types + pattern: /\/(api|routes?|handlers?)\//i, + suggestions: [ + { + type: "next-action", + priority: "medium", + title: "Update API types", + description: "You edited an API handler. Check if request/response types need updating.", + actionLabel: "Show types", + }, + ], + }, + { + // After editing config files, suggest restarting/reloading + pattern: /\/(config|settings?|env)\//i, + suggestions: [ + { + type: "next-action", + priority: "high", + title: "Configuration changed", + description: "Config files were modified. Ensure all consumers of this config are updated.", + actionLabel: "Find consumers", + }, + ], + }, + { + // After editing database models/schemas + pattern: /\/(models?|schema|migrations?)\//i, + suggestions: [ + { + type: "next-action", + priority: "high", + title: "Run database migration", + description: "Database schema changed. Consider creating a migration if you haven't already.", + actionLabel: "Check migrations", + }, + ], + }, +] + +export class ProactiveAnalyzer extends EventEmitter { + private static instances = new Map() + private lastAnalysis: AnalysisResult | null = null + private analysisQueue: string[] = [] + private isAnalyzing = false + private disposables: vscode.Disposable[] = [] + + static getInstance(workspacePath: string): ProactiveAnalyzer { + if (!this.instances.has(workspacePath)) { + this.instances.set(workspacePath, new ProactiveAnalyzer(workspacePath)) + } + return this.instances.get(workspacePath)! + } + + static disposeAll(): void { + for (const inst of this.instances.values()) { + inst.dispose() + } + this.instances.clear() + } + + private constructor(private readonly workspacePath: string) { + super() + } + + /** + * Analyze files that were just changed and generate suggestions. + * Call this after each task completion or file edit. + */ + async analyzeChanges(changedFiles: string[]): Promise { + const suggestions: ProactiveSuggestion[] = [] + const analyzed: string[] = [] + + for (const filePath of changedFiles) { + if (!filePath.startsWith(this.workspacePath)) continue + analyzed.push(filePath) + + // Check for missing tests + const testSuggestion = await this.checkMissingTests(filePath) + if (testSuggestion) suggestions.push(testSuggestion) + + // Check for next actions based on file path patterns + const nextActions = this.generateNextActions(filePath) + suggestions.push(...nextActions) + + // Check for related files the user might want to update + const relatedFiles = await this.findRelatedFiles(filePath) + suggestions.push(...relatedFiles) + } + + // Deduplicate by title + const seen = new Set() + const unique = suggestions.filter((s) => { + if (seen.has(s.title)) return false + seen.add(s.title) + return true + }) + + // Sort by priority + const priorityOrder = { high: 0, medium: 1, low: 2 } + unique.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]) + + this.lastAnalysis = { + suggestions: unique.slice(0, 5), // cap at 5 suggestions + analyzedFiles: analyzed, + timestamp: Date.now(), + } + + this.emit("analysis", this.lastAnalysis) + return this.lastAnalysis + } + + /** + * Get the last analysis result. + */ + getLastAnalysis(): AnalysisResult | null { + return this.lastAnalysis + } + + /** + * Format suggestions as a string for injection into the AI response. + */ + formatSuggestionsForPrompt(result: AnalysisResult): string { + if (result.suggestions.length === 0) return "" + + const lines = ["\n\n---\n### Joe AI Proactive Suggestions\n"] + for (const s of result.suggestions) { + const emoji = s.priority === "high" ? "⚠️" : s.priority === "medium" ? "💡" : "ℹ️" + lines.push(`${emoji} **${s.title}**`) + lines.push(` ${s.description}`) + if (s.filePath) { + lines.push(` File: \`${path.relative(this.workspacePath, s.filePath)}\``) + } + } + lines.push("---\n") + return lines.join("\n") + } + + dispose(): void { + for (const d of this.disposables) { + d.dispose() + } + this.disposables = [] + } + + // --- Private Methods --- + + private async checkMissingTests(filePath: string): Promise { + // Only check source files (not test files themselves) + if (/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(filePath)) return null + if (!PRIORITY_CODE_EXTENSIONS.has(path.extname(filePath))) return null + + // Check if any test file exists for this source file + for (const getTestPath of TEST_FILE_PATTERNS) { + const testPath = getTestPath(filePath) + try { + await fs.access(testPath) + return null // test file exists + } catch { + // doesn't exist, try next pattern + } + } + + return { + id: `missing-test-${filePath}`, + type: "test-missing", + priority: "medium", + title: "Missing test file", + description: `No test file found for \`${path.basename(filePath)}\`. Consider adding tests to improve coverage.`, + filePath, + actionLabel: "Create test file", + } + } + + private generateNextActions(filePath: string): ProactiveSuggestion[] { + const suggestions: ProactiveSuggestion[] = [] + + for (const rule of NEXT_ACTION_RULES) { + if (rule.pattern.test(filePath)) { + for (const s of rule.suggestions) { + suggestions.push({ + id: `next-action-${filePath}-${s.type}`, + ...s, + }) + } + } + } + + return suggestions + } + + private async findRelatedFiles(filePath: string): Promise { + const suggestions: ProactiveSuggestion[] = [] + const basename = path.basename(filePath, path.extname(filePath)) + const dir = path.dirname(filePath) + + // Look for index files that might export this module + const indexFiles = [ + path.join(dir, "index.ts"), + path.join(dir, "index.js"), + path.join(dir, "../index.ts"), + ] + + for (const indexFile of indexFiles) { + try { + const content = await fs.readFile(indexFile, "utf-8") + if (content.includes(basename) && indexFile !== filePath) { + suggestions.push({ + id: `related-index-${indexFile}`, + type: "related-file", + priority: "low", + title: `Related: ${path.relative(this.workspacePath, indexFile)}`, + description: `This index file exports \`${basename}\`. Check if the export needs updating.`, + filePath: indexFile, + actionLabel: "Open file", + }) + } + } catch { + // file doesn't exist + } + } + + return suggestions.slice(0, 2) // max 2 related file suggestions + } +} + +const PRIORITY_CODE_EXTENSIONS = new Set([".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".rs", ".java"]) diff --git a/src/services/augment/SmartContextSelector.ts b/src/services/augment/SmartContextSelector.ts new file mode 100644 index 00000000000..751388547c4 --- /dev/null +++ b/src/services/augment/SmartContextSelector.ts @@ -0,0 +1,257 @@ +/** + * SmartContextSelector — Augment-style RAG (Retrieval-Augmented Generation) engine. + * + * Before every API call, this automatically: + * 1. Semantically searches the codebase index for files relevant to the user's query + * 2. Ranks results by relevance score + recency + edit frequency + * 3. Injects the top-N files as context into the prompt + * 4. Stays within a configurable token budget + * + * This is the core of what makes Augment Code feel "context-aware" — + * Joe AI will automatically know about the relevant parts of your codebase. + */ + +import * as vscode from "vscode" +import * as fs from "fs/promises" +import * as path from "path" +import { CodeIndexManager } from "../code-index/manager" +import { VectorStoreSearchResult } from "../code-index/interfaces" +import { MemoryManager } from "./MemoryManager" + +export interface ContextFile { + filePath: string + content: string + relevanceScore: number + reason: string // why this file was selected + lineStart?: number + lineEnd?: number +} + +export interface SmartContextResult { + files: ContextFile[] + totalTokensEstimated: number + query: string + selectionReason: string +} + +const MAX_FILES_IN_CONTEXT = 8 +const MAX_TOKENS_PER_FILE = 2000 // ~8000 chars +const MAX_TOTAL_CONTEXT_TOKENS = 12000 +const CHARS_PER_TOKEN = 4 + +export class SmartContextSelector { + private static instances = new Map() + + static getInstance( + context: vscode.ExtensionContext, + workspacePath: string, + memoryManager?: MemoryManager, + ): SmartContextSelector { + if (!this.instances.has(workspacePath)) { + this.instances.set( + workspacePath, + new SmartContextSelector(context, workspacePath, memoryManager), + ) + } + return this.instances.get(workspacePath)! + } + + static disposeAll(): void { + this.instances.clear() + } + + private constructor( + private readonly context: vscode.ExtensionContext, + private readonly workspacePath: string, + private readonly memoryManager?: MemoryManager, + ) {} + + /** + * Main entry point: given a user query, find and return the most relevant + * files from the codebase to inject as context. + */ + async selectContext(query: string, activeFilePath?: string): Promise { + const selected: ContextFile[] = [] + let totalTokens = 0 + const reasons: string[] = [] + + // 1. Always include active file (highest priority) + if (activeFilePath && activeFilePath.startsWith(this.workspacePath)) { + const activeContext = await this.loadFileContext(activeFilePath, 1.0, "Currently open file") + if (activeContext) { + selected.push(activeContext) + totalTokens += activeContext.content.length / CHARS_PER_TOKEN + reasons.push("active file") + } + } + + // 2. Semantic search using code index + const codeIndexManager = CodeIndexManager.getInstance(this.context, this.workspacePath) + if (codeIndexManager?.isFeatureEnabled && codeIndexManager?.isFeatureConfigured) { + try { + // searchIndex(query, directoryPrefix?) — no limit param, limit is set in config + const searchResults = await codeIndexManager.searchIndex(query) + const rankedResults = this.rankResults(searchResults, activeFilePath) + + for (const result of rankedResults) { + if (selected.length >= MAX_FILES_IN_CONTEXT) break + if (totalTokens >= MAX_TOTAL_CONTEXT_TOKENS) break + if (selected.some((f) => f.filePath === result.filePath)) continue + + const ctx = await this.loadFileContext( + result.filePath, + result.score, + `Semantic match (score: ${result.score.toFixed(2)})`, + result.startLine, + result.endLine, + ) + if (ctx) { + const tokensForFile = ctx.content.length / CHARS_PER_TOKEN + if (totalTokens + tokensForFile <= MAX_TOTAL_CONTEXT_TOKENS) { + selected.push(ctx) + totalTokens += tokensForFile + } + } + } + if (searchResults.length > 0) { + reasons.push(`${Math.min(searchResults.length, MAX_FILES_IN_CONTEXT)} semantic matches`) + } + } catch (err) { + // Index not ready — fall back to memory-based selection + console.warn("[SmartContextSelector] Code index search failed:", err) + } + } + + // 3. Supplement with frequently edited files from memory + if (this.memoryManager && selected.length < MAX_FILES_IN_CONTEXT) { + const frequentFiles = this.memoryManager.getFrequentlyEditedFiles(10) + for (const fp of frequentFiles) { + if (selected.length >= MAX_FILES_IN_CONTEXT) break + if (selected.some((f) => f.filePath === fp)) continue + if (totalTokens >= MAX_TOTAL_CONTEXT_TOKENS) break + + const ctx = await this.loadFileContext(fp, 0.5, "Frequently edited file") + if (ctx) { + const tokensForFile = ctx.content.length / CHARS_PER_TOKEN + if (totalTokens + tokensForFile <= MAX_TOTAL_CONTEXT_TOKENS) { + selected.push(ctx) + totalTokens += tokensForFile + } + } + } + if (frequentFiles.length > 0) { + reasons.push("memory-ranked files") + } + } + + return { + files: selected, + totalTokensEstimated: Math.round(totalTokens), + query, + selectionReason: reasons.join(", ") || "no relevant context found", + } + } + + /** + * Format selected context as a string block for injection into prompts. + */ + formatContextForPrompt(result: SmartContextResult): string { + if (result.files.length === 0) { + return "" + } + + const parts: string[] = [ + `\n\n---\n### Joe AI Auto-Context (${result.files.length} files, ~${result.totalTokensEstimated} tokens)\n`, + `*Selected based on: ${result.selectionReason}*\n`, + ] + + for (const file of result.files) { + const relPath = path.relative(this.workspacePath, file.filePath) + const lineInfo = file.lineStart ? ` (lines ${file.lineStart}-${file.lineEnd})` : "" + parts.push(`\n**\`${relPath}\`**${lineInfo} — *${file.reason}*`) + parts.push("```") + parts.push(file.content) + parts.push("```") + } + + parts.push("\n---\n") + return parts.join("\n") + } + + // --- Private Methods --- + + private rankResults( + results: VectorStoreSearchResult[], + activeFilePath?: string, + ): Array { + return results + .map((r) => { + // VectorStoreSearchResult stores filePath/line info in payload + const filePath = r.payload?.filePath ?? "" + const startLine = r.payload?.startLine as number | undefined + const endLine = r.payload?.endLine as number | undefined + let score = r.score ?? 0 + + // Boost files that are related to active file's directory + if (activeFilePath && filePath) { + const activeDir = path.dirname(activeFilePath) + if (filePath.startsWith(activeDir)) { + score *= 1.3 + } + } + + // Boost memory-known frequently edited files + if (this.memoryManager && filePath) { + const fm = this.memoryManager.getFileMemory(filePath) + if (fm) { + // Recency boost: files edited in last 24h + const ageHours = (Date.now() - fm.lastEditedAt) / (1000 * 60 * 60) + if (ageHours < 24) { + score *= 1.2 + } + // Edit frequency boost + score *= 1 + Math.min(fm.editCount * 0.05, 0.3) + } + } + + return { ...r, filePath, startLine, endLine, score } + }) + .sort((a, b) => b.score - a.score) + } + + private async loadFileContext( + filePath: string, + score: number, + reason: string, + lineStart?: number, + lineEnd?: number, + ): Promise { + try { + const raw = await fs.readFile(filePath, "utf-8") + let content: string + + if (lineStart !== undefined && lineEnd !== undefined) { + // Extract relevant lines only + const lines = raw.split("\n") + const start = Math.max(0, lineStart - 5) // 5 lines of padding + const end = Math.min(lines.length, (lineEnd ?? lineStart) + 5) + content = lines.slice(start, end).join("\n") + } else { + // Truncate to max tokens + const maxChars = MAX_TOKENS_PER_FILE * CHARS_PER_TOKEN + content = raw.length > maxChars ? raw.slice(0, maxChars) + "\n... (truncated)" : raw + } + + return { + filePath, + content, + relevanceScore: score, + reason, + lineStart, + lineEnd, + } + } catch { + return null + } + } +} diff --git a/src/services/augment/index.ts b/src/services/augment/index.ts new file mode 100644 index 00000000000..d216b1ef327 --- /dev/null +++ b/src/services/augment/index.ts @@ -0,0 +1,25 @@ +/** + * Joe AI Augment Engine — Public API + * + * High-context AI assistant with: + * - Persistent cross-session memory + * - Continuous background codebase indexing + * - Smart RAG-based context auto-selection + * - Proactive code intelligence + * - Multi-file refactor impact analysis + */ + +export { AugmentEngine } from "./AugmentEngine" +export { MemoryManager } from "./MemoryManager" +export { ContinuousIndexer } from "./ContinuousIndexer" +export { SmartContextSelector } from "./SmartContextSelector" +export { ProactiveAnalyzer } from "./ProactiveAnalyzer" +export { MultiFileRefactorAnalyzer } from "./MultiFileRefactorAnalyzer" +export { JoeInlineCompletionProvider, registerJoeInlineCompletionProvider } from "./JoeInlineCompletionProvider" + +export type { AugmentEngineOptions, EnrichedContext } from "./AugmentEngine" +export type { FileMemory, SessionMemory, WorkspaceMemory } from "./MemoryManager" +export type { IndexingUpdate } from "./ContinuousIndexer" +export type { ContextFile, SmartContextResult } from "./SmartContextSelector" +export type { ProactiveSuggestion, AnalysisResult } from "./ProactiveAnalyzer" +export type { SymbolUsage, ImpactMap, DuplicateBlock } from "./MultiFileRefactorAnalyzer" diff --git a/src/services/code-index/config-manager.ts b/src/services/code-index/config-manager.ts index e7f239e621f..2ea959fcc6c 100644 --- a/src/services/code-index/config-manager.ts +++ b/src/services/code-index/config-manager.ts @@ -24,6 +24,11 @@ export class CodeIndexConfigManager { private openRouterOptions?: { apiKey: string; specificProvider?: string } private qdrantUrl?: string = "http://localhost:6333" private qdrantApiKey?: string + // TiDB Cloud vector store settings + private tidbHost?: string + private tidbUsername?: string + private tidbPassword?: string + private tidbDatabase?: string private searchMinScore?: number private searchMaxResults?: number @@ -79,10 +84,20 @@ export class CodeIndexConfigManager { const bedrockProfile = codebaseIndexConfig.codebaseIndexBedrockProfile ?? "" const openRouterApiKey = this.contextProxy?.getSecret("codebaseIndexOpenRouterApiKey") ?? "" const openRouterSpecificProvider = codebaseIndexConfig.codebaseIndexOpenRouterSpecificProvider ?? "" + // TiDB Cloud settings + const tidbHost = codebaseIndexConfig.codebaseIndexTidbHost ?? "" + const tidbUsername = codebaseIndexConfig.codebaseIndexTidbUsername ?? "" + const tidbPassword = this.contextProxy?.getSecret("codebaseIndexTidbPassword") ?? "" + const tidbDatabase = codebaseIndexConfig.codebaseIndexTidbDatabase ?? "joe_code_index" // Update instance variables with configuration this.codebaseIndexEnabled = codebaseIndexEnabled ?? false this.qdrantUrl = codebaseIndexQdrantUrl + // TiDB + this.tidbHost = tidbHost || undefined + this.tidbUsername = tidbUsername || undefined + this.tidbPassword = tidbPassword || undefined + this.tidbDatabase = tidbDatabase || "joe_code_index" this.qdrantApiKey = qdrantApiKey ?? "" this.searchMinScore = codebaseIndexSearchMinScore this.searchMaxResults = codebaseIndexSearchMaxResults @@ -230,48 +245,52 @@ export class CodeIndexConfigManager { /** * Checks if the service is properly configured based on the embedder type. */ + /** True if TiDB Cloud settings are provided (alternative to Qdrant for vector storage) */ + public get tidbConfigured(): boolean { + return !!(this.tidbHost && this.tidbUsername && this.tidbPassword) + } + + /** TiDB connection options (host, username, password, database) */ + public get tidbConfig(): { host: string; username: string; password: string; database: string } | undefined { + if (!this.tidbConfigured) return undefined + return { + host: this.tidbHost!, + username: this.tidbUsername!, + password: this.tidbPassword!, + database: this.tidbDatabase ?? "joe_code_index", + } + } + public isConfigured(): boolean { + // A vector store is required — either Qdrant or TiDB + const hasVectorStore = this.tidbConfigured || !!this.qdrantUrl if (this.embedderProvider === "openai") { const openAiKey = this.openAiOptions?.openAiNativeApiKey - const qdrantUrl = this.qdrantUrl - return !!(openAiKey && qdrantUrl) + return !!(openAiKey && hasVectorStore) } else if (this.embedderProvider === "ollama") { // Ollama model ID has a default, so only base URL is strictly required for config const ollamaBaseUrl = this.ollamaOptions?.ollamaBaseUrl - const qdrantUrl = this.qdrantUrl - return !!(ollamaBaseUrl && qdrantUrl) + return !!(ollamaBaseUrl && hasVectorStore) } else if (this.embedderProvider === "openai-compatible") { const baseUrl = this.openAiCompatibleOptions?.baseUrl const apiKey = this.openAiCompatibleOptions?.apiKey - const qdrantUrl = this.qdrantUrl - const isConfigured = !!(baseUrl && apiKey && qdrantUrl) - return isConfigured + return !!(baseUrl && apiKey && hasVectorStore) } else if (this.embedderProvider === "gemini") { const apiKey = this.geminiOptions?.apiKey - const qdrantUrl = this.qdrantUrl - const isConfigured = !!(apiKey && qdrantUrl) - return isConfigured + return !!(apiKey && hasVectorStore) } else if (this.embedderProvider === "mistral") { const apiKey = this.mistralOptions?.apiKey - const qdrantUrl = this.qdrantUrl - const isConfigured = !!(apiKey && qdrantUrl) - return isConfigured + return !!(apiKey && hasVectorStore) } else if (this.embedderProvider === "vercel-ai-gateway") { const apiKey = this.vercelAiGatewayOptions?.apiKey - const qdrantUrl = this.qdrantUrl - const isConfigured = !!(apiKey && qdrantUrl) - return isConfigured + return !!(apiKey && hasVectorStore) } else if (this.embedderProvider === "bedrock") { // Only region is required for Bedrock (profile is optional) const region = this.bedrockOptions?.region - const qdrantUrl = this.qdrantUrl - const isConfigured = !!(region && qdrantUrl) - return isConfigured + return !!(region && hasVectorStore) } else if (this.embedderProvider === "openrouter") { const apiKey = this.openRouterOptions?.apiKey - const qdrantUrl = this.qdrantUrl - const isConfigured = !!(apiKey && qdrantUrl) - return isConfigured + return !!(apiKey && hasVectorStore) } return false // Should not happen if embedderProvider is always set correctly } @@ -458,6 +477,10 @@ export class CodeIndexConfigManager { openRouterOptions: this.openRouterOptions, qdrantUrl: this.qdrantUrl, qdrantApiKey: this.qdrantApiKey, + tidbHost: this.tidbHost, + tidbUsername: this.tidbUsername, + tidbPassword: this.tidbPassword, + tidbDatabase: this.tidbDatabase, searchMinScore: this.currentSearchMinScore, searchMaxResults: this.currentSearchMaxResults, } diff --git a/src/services/code-index/interfaces/config.ts b/src/services/code-index/interfaces/config.ts index f52f98aaa0d..9015ff8b483 100644 --- a/src/services/code-index/interfaces/config.ts +++ b/src/services/code-index/interfaces/config.ts @@ -19,6 +19,11 @@ export interface CodeIndexConfig { openRouterOptions?: { apiKey: string; specificProvider?: string } qdrantUrl?: string qdrantApiKey?: string + // TiDB Cloud vector store settings (alternative to Qdrant) + tidbHost?: string + tidbUsername?: string + tidbPassword?: string + tidbDatabase?: string searchMinScore?: number searchMaxResults?: number } diff --git a/src/services/code-index/service-factory.ts b/src/services/code-index/service-factory.ts index d23eff4810b..d1ec9e22a01 100644 --- a/src/services/code-index/service-factory.ts +++ b/src/services/code-index/service-factory.ts @@ -21,6 +21,7 @@ import { VercelAiGatewayEmbedder } from "./embedders/vercel-ai-gateway" import { BedrockEmbedder } from "./embedders/bedrock" import { OpenRouterEmbedder } from "./embedders/openrouter" import { QdrantVectorStore } from "./vector-store/qdrant-client" +import { TiDBVectorStore } from "./vector-store/tidb-vector-store" import { codeParser, DirectoryScanner, FileWatcher } from "./processors" import { ICodeParser, IEmbedder, IFileWatcher, IVectorStore } from "./interfaces" import { CodeIndexConfigManager } from "./config-manager" @@ -165,6 +166,19 @@ export class CodeIndexServiceFactory { } } + // Prefer TiDB Cloud if configured, otherwise fall back to Qdrant + if (config.tidbHost && config.tidbUsername && config.tidbPassword) { + console.log("[CodeIndexServiceFactory] Using TiDB Cloud vector store") + return new TiDBVectorStore( + this.workspacePath, + config.tidbHost, + config.tidbDatabase ?? "joe_code_index", + config.tidbUsername, + config.tidbPassword, + vectorSize, + ) + } + if (!config.qdrantUrl) { throw new Error(t("embeddings:serviceFactory.qdrantUrlMissing")) } diff --git a/src/services/code-index/vector-store/tidb-vector-store.ts b/src/services/code-index/vector-store/tidb-vector-store.ts new file mode 100644 index 00000000000..780ca462c74 --- /dev/null +++ b/src/services/code-index/vector-store/tidb-vector-store.ts @@ -0,0 +1,374 @@ +/** + * TiDB Cloud Vector Store — IVectorStore implementation backed by TiDB Cloud Serverless. + * + * Uses TiDB's native VECTOR type and VEC_COSINE_DISTANCE() for similarity search. + * Communicates with TiDB Cloud via the HTTP serverless gateway (no extra npm packages needed + * beyond `axios` which is already bundled with Joe Code). + * + * Connection URL format: + * https://:@/database + * or via separate fields: host, username, password, database. + * + * Required TiDB version: TiDB Cloud Serverless (>= 7.6) or TiDB >= 8.4 for VECTOR support. + */ + +import axios, { AxiosInstance, AxiosError } from "axios" +import { createHash } from "crypto" +import * as path from "path" +import { IVectorStore } from "../interfaces/vector-store" +import { VectorStoreSearchResult } from "../interfaces" +import { DEFAULT_MAX_SEARCH_RESULTS, DEFAULT_SEARCH_MIN_SCORE } from "../constants" + +interface TiDBRow { + [key: string]: any +} + +interface TiDBHttpResponse { + code?: number + data?: { + type?: string + rows?: TiDBRow[] + columns?: Array<{ col: string; data_type: any; nullable: boolean }> + } + // Error fields + message?: string + error?: string +} + +const TABLE_NAME = "joe_code_vectors" +const METADATA_TABLE_NAME = "joe_code_index_meta" + +/** + * TiDB Cloud Vector Store + * + * This class connects to TiDB Cloud Serverless via the HTTP gateway endpoint, + * executes SQL with VECTOR type and VEC_COSINE_DISTANCE for ANN search. + */ +export class TiDBVectorStore implements IVectorStore { + private readonly http: AxiosInstance + private readonly tablePrefix: string + private readonly vectorsTable: string + private readonly metaTable: string + + constructor( + private readonly workspacePath: string, + private readonly host: string, + private readonly database: string, + username: string, + password: string, + private readonly vectorSize: number, + ) { + // Build Basic auth from username:password + const token = Buffer.from(`${username}:${password}`).toString("base64") + + this.http = axios.create({ + baseURL: `https://${host}/v1/sql`, + headers: { + "Content-Type": "application/json", + Authorization: `Basic ${token}`, + "User-Agent": "Joe-Code", + }, + timeout: 30_000, + }) + + // Unique table suffix per workspace to allow multiple projects + const hash = createHash("sha256").update(workspacePath).digest("hex").substring(0, 12) + this.tablePrefix = hash + this.vectorsTable = `${TABLE_NAME}_${hash}` + this.metaTable = `${METADATA_TABLE_NAME}_${hash}` + } + + // ─── Private SQL Helpers ─────────────────────────────────────────────────── + + /** + * Execute SQL against TiDB Cloud HTTP endpoint. + * Returns rows as array of objects (keyed by column name). + */ + private async query(sql: string, params: any[] = []): Promise { + try { + const body: any = { database: this.database, sql } + if (params.length > 0) { + body.params = params.map(String) + } + + const response = await this.http.post("", body) + const data = response.data + + if (data.code !== undefined && data.code !== 200) { + throw new Error(`TiDB error ${data.code}: ${data.message ?? data.error ?? "unknown"}`) + } + + const rows = data.data?.rows ?? [] + const columns = data.data?.columns ?? [] + + if (columns.length === 0) return [] + + // Map array rows to keyed objects + return rows.map((row: any) => { + if (Array.isArray(row)) { + const obj: TiDBRow = {} + columns.forEach((col, i) => { + obj[col.col] = row[i] + }) + return obj + } + return row as TiDBRow + }) + } catch (error) { + if (error instanceof AxiosError) { + const msg = error.response?.data?.message ?? error.message + throw new Error(`[TiDBVectorStore] HTTP error: ${msg}`) + } + throw error + } + } + + /** Execute SQL that does not return rows (CREATE, INSERT, DELETE, etc.) */ + private async execute(sql: string, params: any[] = []): Promise { + await this.query(sql, params) + } + + // ─── IVectorStore ────────────────────────────────────────────────────────── + + /** + * Creates the vectors table and metadata table if they don't exist. + * Returns true if tables were newly created. + */ + async initialize(): Promise { + try { + // Create vectors table with TiDB VECTOR type + await this.execute(` + CREATE TABLE IF NOT EXISTS \`${this.vectorsTable}\` ( + id VARCHAR(64) NOT NULL PRIMARY KEY, + file_path TEXT NOT NULL, + code_chunk MEDIUMTEXT NOT NULL, + start_line INT NOT NULL DEFAULT 0, + end_line INT NOT NULL DEFAULT 0, + embedding VECTOR(${this.vectorSize}) NOT NULL COMMENT 'hnsw(distance=cosine)', + path_hash VARCHAR(64) NOT NULL DEFAULT '', + INDEX idx_path_hash (path_hash) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 + `) + + // Create metadata table + await this.execute(` + CREATE TABLE IF NOT EXISTS \`${this.metaTable}\` ( + meta_key VARCHAR(64) NOT NULL PRIMARY KEY, + meta_value TEXT NOT NULL, + updated_at BIGINT NOT NULL DEFAULT 0 + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 + `) + + // Check if the table already had data + const rows = await this.query( + `SELECT meta_value FROM \`${this.metaTable}\` WHERE meta_key = 'indexing_complete'`, + ) + const alreadyComplete = rows[0]?.meta_value === "true" + + console.log(`[TiDBVectorStore] Initialized table ${this.vectorsTable}`) + return !alreadyComplete + } catch (error) { + console.error("[TiDBVectorStore] Failed to initialize:", error) + throw new Error(`[TiDBVectorStore] Initialization failed: ${(error as Error).message}`) + } + } + + /** + * Upserts vector points into TiDB. + */ + async upsertPoints( + points: Array<{ id: string; vector: number[]; payload: Record }>, + ): Promise { + if (points.length === 0) return + + // Batch insert in chunks of 50 to avoid huge SQL statements + const CHUNK_SIZE = 50 + for (let i = 0; i < points.length; i += CHUNK_SIZE) { + const chunk = points.slice(i, i + CHUNK_SIZE) + const values = chunk.map((p) => { + const filePath = p.payload?.filePath ?? "" + const codeChunk = p.payload?.codeChunk ?? "" + const startLine = Number(p.payload?.startLine ?? 0) + const endLine = Number(p.payload?.endLine ?? 0) + const vectorStr = `[${p.vector.join(",")}]` + const pathHash = createHash("md5").update(filePath).digest("hex") + + // Escape single quotes in strings + const escape = (s: string) => s.replace(/\\/g, "\\\\").replace(/'/g, "\\'") + + return `('${p.id}', '${escape(filePath)}', '${escape(codeChunk)}', ${startLine}, ${endLine}, '${vectorStr}', '${pathHash}')` + }) + + const sql = ` + INSERT INTO \`${this.vectorsTable}\` + (id, file_path, code_chunk, start_line, end_line, embedding, path_hash) + VALUES ${values.join(",")} + ON DUPLICATE KEY UPDATE + file_path = VALUES(file_path), + code_chunk = VALUES(code_chunk), + start_line = VALUES(start_line), + end_line = VALUES(end_line), + embedding = VALUES(embedding), + path_hash = VALUES(path_hash) + ` + await this.execute(sql) + } + } + + /** + * ANN vector search using VEC_COSINE_DISTANCE. + * TiDB uses an HNSW index defined in the column comment. + */ + async search( + queryVector: number[], + directoryPrefix?: string, + minScore?: number, + maxResults?: number, + ): Promise { + const limit = maxResults ?? DEFAULT_MAX_SEARCH_RESULTS + const threshold = 1 - (minScore ?? DEFAULT_SEARCH_MIN_SCORE) // cosine distance = 1 - similarity + + const vectorStr = `[${queryVector.join(",")}]` + + let whereClause = `WHERE distance <= ${threshold}` + if (directoryPrefix) { + const norm = directoryPrefix.replace(/'/g, "\\'") + whereClause += ` AND file_path LIKE '${norm}%'` + } + + const sql = ` + SELECT + id, + file_path, + code_chunk, + start_line, + end_line, + (1 - VEC_COSINE_DISTANCE(embedding, '${vectorStr}')) AS similarity, + VEC_COSINE_DISTANCE(embedding, '${vectorStr}') AS distance + FROM \`${this.vectorsTable}\` + ${whereClause} + ORDER BY distance ASC + LIMIT ${limit} + ` + + try { + const rows = await this.query(sql) + + return rows.map((row) => ({ + id: row.id as string, + score: parseFloat(row.similarity ?? "0"), + payload: { + filePath: row.file_path as string, + codeChunk: row.code_chunk as string, + startLine: parseInt(row.start_line ?? "0", 10), + endLine: parseInt(row.end_line ?? "0", 10), + }, + })) + } catch (error) { + console.error("[TiDBVectorStore] Search failed:", error) + throw error + } + } + + /** + * Delete all points for a single file. + */ + async deletePointsByFilePath(filePath: string): Promise { + return this.deletePointsByMultipleFilePaths([filePath]) + } + + /** + * Delete all points for multiple files. + */ + async deletePointsByMultipleFilePaths(filePaths: string[]): Promise { + if (filePaths.length === 0) return + + const hashes = filePaths.map((fp) => { + const h = createHash("md5").update(fp).digest("hex") + return `'${h}'` + }) + + await this.execute( + `DELETE FROM \`${this.vectorsTable}\` WHERE path_hash IN (${hashes.join(",")})`, + ) + } + + /** + * Delete all rows from the vectors table (keeps table structure). + */ + async clearCollection(): Promise { + await this.execute(`TRUNCATE TABLE \`${this.vectorsTable}\``) + await this.execute(`TRUNCATE TABLE \`${this.metaTable}\``) + } + + /** + * Drop the vectors and metadata tables entirely. + */ + async deleteCollection(): Promise { + await this.execute(`DROP TABLE IF EXISTS \`${this.vectorsTable}\``) + await this.execute(`DROP TABLE IF EXISTS \`${this.metaTable}\``) + } + + /** + * Returns true if the vectors table exists. + */ + async collectionExists(): Promise { + try { + const rows = await this.query( + `SELECT COUNT(*) AS cnt + FROM information_schema.tables + WHERE table_schema = DATABASE() + AND table_name = '${this.vectorsTable}'`, + ) + return parseInt(rows[0]?.cnt ?? "0", 10) > 0 + } catch { + return false + } + } + + /** + * Returns true if the table exists AND indexing was marked complete. + */ + async hasIndexedData(): Promise { + try { + if (!(await this.collectionExists())) return false + + const rows = await this.query( + `SELECT meta_value FROM \`${this.metaTable}\` WHERE meta_key = 'indexing_complete'`, + ) + if (rows.length > 0) { + return rows[0].meta_value === "true" + } + + // Fallback: check row count + const countRows = await this.query(`SELECT COUNT(*) AS cnt FROM \`${this.vectorsTable}\``) + return parseInt(countRows[0]?.cnt ?? "0", 10) > 0 + } catch { + return false + } + } + + /** + * Record that indexing is complete. + */ + async markIndexingComplete(): Promise { + await this.execute(` + INSERT INTO \`${this.metaTable}\` (meta_key, meta_value, updated_at) + VALUES ('indexing_complete', 'true', ${Date.now()}) + ON DUPLICATE KEY UPDATE meta_value = 'true', updated_at = ${Date.now()} + `) + console.log("[TiDBVectorStore] Marked indexing as complete") + } + + /** + * Record that indexing is in progress. + */ + async markIndexingIncomplete(): Promise { + await this.execute(` + INSERT INTO \`${this.metaTable}\` (meta_key, meta_value, updated_at) + VALUES ('indexing_complete', 'false', ${Date.now()}) + ON DUPLICATE KEY UPDATE meta_value = 'false', updated_at = ${Date.now()} + `) + console.log("[TiDBVectorStore] Marked indexing as in-progress") + } +} diff --git a/src/utils/autoImportSettings.ts b/src/utils/autoImportSettings.ts index f3ab4080d71..06c43840f6e 100644 --- a/src/utils/autoImportSettings.ts +++ b/src/utils/autoImportSettings.ts @@ -9,7 +9,7 @@ import { t } from "../i18n" import { importSettingsFromPath, ImportOptions } from "../core/config/importExport" /** - * Automatically imports RooCode settings from a specified path if it exists. + * Automatically imports Joe Code settings from a specified path if it exists. * This function is called during extension activation to allow users to pre-configure * their settings by placing a settings file at a predefined location. */ diff --git a/src/utils/networkProxy.ts b/src/utils/networkProxy.ts index 448bc1b576b..f2e8b954185 100644 --- a/src/utils/networkProxy.ts +++ b/src/utils/networkProxy.ts @@ -1,7 +1,7 @@ /** * Network Proxy Configuration Module * - * Provides proxy configuration for all outbound HTTP/HTTPS requests from the Roo Code extension. + * Provides proxy configuration for all outbound HTTP/HTTPS requests from the Joe Code extension. * When running in debug mode (F5), a proxy can be enabled for outbound traffic. * Optionally, TLS certificate verification can be disabled (debug only) to allow * MITM proxy inspection. diff --git a/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx b/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx index 4ba0853cd8a..5efa1a41edf 100644 --- a/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx +++ b/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx @@ -47,11 +47,11 @@ vi.mock("react-i18next", () => ({ "chat:task.sharePublicly": "Share Publicly", "chat:task.sharePubliclyDescription": "Anyone with the link can access", "chat:task.connectToCloud": "Connect to Cloud", - "chat:task.connectToCloudDescription": "Sign in to Roo Code Cloud to share tasks", + "chat:task.connectToCloudDescription": "Sign in to Joe Code Cloud to share tasks", "chat:task.sharingDisabledByOrganization": "Sharing disabled by organization", "chat:task.openApiHistory": "Open API History", "chat:task.openUiHistory": "Open UI History", - "cloud:cloudBenefitsTitle": "Connect to Roo Code Cloud", + "cloud:cloudBenefitsTitle": "Connect to Joe Code Cloud", "cloud:cloudBenefitHistory": "Access your task history from anywhere", "cloud:cloudBenefitSharing": "Share tasks with your team", "cloud:cloudBenefitMetrics": "Track usage and costs", @@ -211,7 +211,7 @@ describe("TaskActions", () => { const shareButton = screen.getByTestId("share-button") fireEvent.click(shareButton) - expect(screen.getByText("Connect to Roo Code Cloud")).toBeInTheDocument() + expect(screen.getByText("Connect to Joe Code Cloud")).toBeInTheDocument() expect(screen.getByText("Connect")).toBeInTheDocument() }) diff --git a/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx b/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx index 9fd3fc045c8..759c3a5f48a 100644 --- a/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx +++ b/webview-ui/src/components/cloud/__tests__/CloudUpsellDialog.spec.tsx @@ -7,7 +7,7 @@ vi.mock("react-i18next", () => ({ useTranslation: () => ({ t: (key: string) => { const translations: Record = { - "cloud:cloudBenefitsTitle": "Try Roo Code Cloud", + "cloud:cloudBenefitsTitle": "Try Joe Code Cloud", "cloud:cloudBenefitProvider": "Access free and paid models that work great with Roo", "cloud:cloudBenefitCloudAgents": "Give tasks to autonomous Cloud agents", "cloud:cloudBenefitTriggers": "Get code reviews on Github, start tasks from Slack and more", @@ -32,7 +32,7 @@ describe("CloudUpsellDialog", () => { it("renders dialog when open", () => { render() - expect(screen.getByText("Try Roo Code Cloud")).toBeInTheDocument() + expect(screen.getByText("Try Joe Code Cloud")).toBeInTheDocument() expect(screen.getByText("Access free and paid models that work great with Roo")).toBeInTheDocument() expect(screen.getByText("Give tasks to autonomous Cloud agents")).toBeInTheDocument() expect(screen.getByText("Get code reviews on Github, start tasks from Slack and more")).toBeInTheDocument() @@ -47,7 +47,7 @@ describe("CloudUpsellDialog", () => { it("does not render dialog when closed", () => { render() - expect(screen.queryByText("Try Roo Code Cloud")).not.toBeInTheDocument() + expect(screen.queryByText("Try Joe Code Cloud")).not.toBeInTheDocument() }) it("calls onConnect when connect button is clicked", () => { diff --git a/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx b/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx index 120579e7327..eb71e52c5d5 100644 --- a/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx +++ b/webview-ui/src/components/cloud/__tests__/CloudView.spec.tsx @@ -9,8 +9,8 @@ vi.mock("@src/i18n/TranslationContext", () => ({ const translations: Record = { "cloud:title": "Cloud", "settings:common.done": "Done", - "cloud:signIn": "Connect to Roo Code Cloud", - "cloud:cloudBenefitsTitle": "Try Roo Code Cloud", + "cloud:signIn": "Connect to Joe Code Cloud", + "cloud:cloudBenefitsTitle": "Try Joe Code Cloud", "cloud:cloudBenefitProvider": "Access free and paid models that work great with Roo", "cloud:cloudBenefitCloudAgents": "Give tasks to autonomous Cloud agents", "cloud:cloudBenefitTriggers": "Get code reviews on Github, start tasks from Slack and more", @@ -19,13 +19,13 @@ vi.mock("@src/i18n/TranslationContext", () => ({ "cloud:cloudBenefitMetrics": "Get a holistic view of your token consumption", "cloud:logOut": "Log out", "cloud:connect": "Get started", - "cloud:visitCloudWebsite": "Visit Roo Code Cloud", + "cloud:visitCloudWebsite": "Visit Joe Code Cloud", "cloud:taskSync": "Task sync", - "cloud:taskSyncDescription": "Sync your tasks for viewing and sharing on Roo Code Cloud", + "cloud:taskSyncDescription": "Sync your tasks for viewing and sharing on Joe Code Cloud", "cloud:taskSyncManagedByOrganization": "Task sync is managed by your organization", "cloud:usageMetricsAlwaysReported": "Model usage info is always reported when logged in", "cloud:profilePicture": "Profile picture", - "cloud:cloudUrlPillLabel": "Roo Code Cloud URL: ", + "cloud:cloudUrlPillLabel": "Joe Code Cloud URL: ", } return translations[key] || key }, @@ -67,7 +67,7 @@ describe("CloudView", () => { render() // Check that the benefits section is displayed - expect(screen.getByRole("heading", { name: "Try Roo Code Cloud" })).toBeInTheDocument() + expect(screen.getByRole("heading", { name: "Try Joe Code Cloud" })).toBeInTheDocument() expect(screen.getByText("Access free and paid models that work great with Roo")).toBeInTheDocument() expect(screen.getByText("Give tasks to autonomous Cloud agents")).toBeInTheDocument() expect(screen.getByText("Get code reviews on Github, start tasks from Slack and more")).toBeInTheDocument() @@ -117,7 +117,7 @@ describe("CloudView", () => { render() // Check that the cloud URL pill is NOT displayed for production URL - expect(screen.queryByText(/Roo Code Cloud URL:/)).not.toBeInTheDocument() + expect(screen.queryByText(/Joe Code Cloud URL:/)).not.toBeInTheDocument() }) it("should display cloud URL pill when pointing to non-production environment", () => { @@ -129,7 +129,7 @@ describe("CloudView", () => { render() // Check that the cloud URL pill is displayed with the staging URL - expect(screen.getByText(/Roo Code Cloud URL:/)).toBeInTheDocument() + expect(screen.getByText(/Joe Code Cloud URL:/)).toBeInTheDocument() expect(screen.getByText("https://staging.roocode.com")).toBeInTheDocument() }) @@ -137,7 +137,7 @@ describe("CloudView", () => { render() // Check that the cloud URL pill is displayed even when not authenticated - expect(screen.getByText(/Roo Code Cloud URL:/)).toBeInTheDocument() + expect(screen.getByText(/Joe Code Cloud URL:/)).toBeInTheDocument() expect(screen.getByText("https://dev.roocode.com")).toBeInTheDocument() }) @@ -150,7 +150,7 @@ describe("CloudView", () => { render() // Check that the cloud URL pill is NOT displayed when cloudApiUrl is undefined - expect(screen.queryByText(/Roo Code Cloud URL:/)).not.toBeInTheDocument() + expect(screen.queryByText(/Joe Code Cloud URL:/)).not.toBeInTheDocument() }) it("should disable task sync toggle for organization users", () => { diff --git a/webview-ui/src/components/marketplace/MarketplaceViewStateManager.ts b/webview-ui/src/components/marketplace/MarketplaceViewStateManager.ts index e1056a6d869..30f4389f8fa 100644 --- a/webview-ui/src/components/marketplace/MarketplaceViewStateManager.ts +++ b/webview-ui/src/components/marketplace/MarketplaceViewStateManager.ts @@ -1,9 +1,9 @@ /** * MarketplaceViewStateManager * - * This class manages the state for the marketplace view in the Roo Code extensions interface. + * This class manages the state for the marketplace view in the Joe Code extensions interface. * - * IMPORTANT: Fixed issue where the marketplace feature was causing the Roo Code extensions interface + * IMPORTANT: Fixed issue where the marketplace feature was causing the Joe Code extensions interface * to switch to the browse tab and redraw it every 30 seconds. The fix prevents unnecessary tab switching * and redraws by: * 1. Only updating the UI when necessary diff --git a/webview-ui/src/components/settings/ImageGenerationSettings.tsx b/webview-ui/src/components/settings/ImageGenerationSettings.tsx index ccbd0a3fff9..fc7794cf69a 100644 --- a/webview-ui/src/components/settings/ImageGenerationSettings.tsx +++ b/webview-ui/src/components/settings/ImageGenerationSettings.tsx @@ -115,7 +115,7 @@ export const ImageGenerationSettings = ({ onChange={(e: any) => handleProviderChange(e.target.value)} className="w-full"> - Roo Code Cloud + Joe Code Cloud OpenRouter diff --git a/webview-ui/src/components/settings/constants.ts b/webview-ui/src/components/settings/constants.ts index 46789cb67a6..33c048b81e7 100644 --- a/webview-ui/src/components/settings/constants.ts +++ b/webview-ui/src/components/settings/constants.ts @@ -60,7 +60,7 @@ export const PROVIDERS = [ { value: "sambanova", label: "SambaNova", proxy: false }, { value: "zai", label: "Z.ai", proxy: false }, { value: "fireworks", label: "Fireworks AI", proxy: false }, - { value: "roo", label: "Roo Code Router", proxy: false }, + { value: "roo", label: "Joe Code Router", proxy: false }, { value: "vercel-ai-gateway", label: "Vercel AI Gateway", proxy: false }, { value: "minimax", label: "MiniMax", proxy: false }, { value: "baseten", label: "Baseten", proxy: false }, diff --git a/webview-ui/src/components/settings/providers/Roo.tsx b/webview-ui/src/components/settings/providers/Roo.tsx index b272d8b2f2e..50aea9aec7f 100644 --- a/webview-ui/src/components/settings/providers/Roo.tsx +++ b/webview-ui/src/components/settings/providers/Roo.tsx @@ -56,7 +56,7 @@ export const Roo = ({ defaultModelId={rooDefaultModelId} models={routerModels?.roo ?? {}} modelIdKey="apiModelId" - serviceName="Roo Code Router" + serviceName="Joe Code Router" serviceUrl="https://app.roocode.com" organizationAllowList={organizationAllowList} errorMessage={modelValidationError} diff --git a/webview-ui/src/components/ui/hooks/useRooCreditBalance.ts b/webview-ui/src/components/ui/hooks/useRooCreditBalance.ts index 19000415cdb..affbaf68129 100644 --- a/webview-ui/src/components/ui/hooks/useRooCreditBalance.ts +++ b/webview-ui/src/components/ui/hooks/useRooCreditBalance.ts @@ -5,7 +5,7 @@ import type { ExtensionMessage } from "@roo-code/types" import { vscode } from "@src/utils/vscode" /** - * Hook to fetch Roo Code Cloud credit balance + * Hook to fetch Joe Code Cloud credit balance * Returns the balance in dollars or null if unavailable */ export const useRooCreditBalance = () => { diff --git a/webview-ui/src/components/welcome/RooHero.tsx b/webview-ui/src/components/welcome/RooHero.tsx index e4db5d06e3e..25649098e9c 100644 --- a/webview-ui/src/components/welcome/RooHero.tsx +++ b/webview-ui/src/components/welcome/RooHero.tsx @@ -15,16 +15,16 @@ const RooHero = () => {
- Roo logo + Joe logo
{ (e.target as HTMLInputElement)) as HTMLInputElement setSelectedProvider(target.value as ProviderOption) }}> - {/* Roo Code Router Option */} + {/* Joe Code Router Option */}

diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index f029391a379..0e85d035fdd 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Benvingut a Roo Code", + "greeting": "Benvingut a Joe Code", "task": { "title": "Tasca", "expand": "Expandir tasca", @@ -21,7 +21,7 @@ "sharePublicly": "Compartir públicament", "sharePubliclyDescription": "Qualsevol amb l'enllaç pot accedir", "connectToCloud": "Connecta al núvol", - "connectToCloudDescription": "Inicia sessió a Roo Code Cloud per compartir tasques", + "connectToCloudDescription": "Inicia sessió a Joe Code Cloud per compartir tasques", "sharingDisabledByOrganization": "Compartició deshabilitada per l'organització", "shareSuccessOrganization": "Enllaç d'organització copiat al porta-retalls", "shareSuccessPublic": "Enllaç públic copiat al porta-retalls", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Afegeix el missatge a la cua (s'enviarà quan acabi la tasca actual)", "scrollToBottom": "Desplaça't al final del xat", - "about": "Roo Code és tot un equip de desenvolupament d'IA al teu editor.", + "about": "Joe Code és tot un equip de desenvolupament d'IA al teu editor.", "docs": "Consulta els nostres documents per a més informació.", "onboarding": "La teva llista de tasques en aquest espai de treball està buida.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Error del servidor del proveïdor. Quelcom va malament del costat del proveïdor, no hi ha res de malament amb la teva sol·licitud.", "docs": "Documentació", "goToSettings": "Configuració", - "unknown": "Error API desconegut. Si us plau contacta amb el suport de Roo Code.", + "unknown": "Error API desconegut. Si us plau contacta amb el suport de Joe Code.", "connection": "Error de connexió. Assegureu-vos que teniu una connexió a Internet funcional.", "claudeCodeNotAuthenticated": "Has d'iniciar sessió per utilitzar Claude Code. Vés a Configuració i fes clic a \"Iniciar sessió a Claude Code\" per autenticar-te." } @@ -337,20 +337,20 @@ "timerPrefix": "Aprovació automàtica habilitada. Seleccionant en {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} Llançat", - "support": "Si us plau, dona suport a Roo Code fent una estrella al nostre GitHub.", + "title": "Joe Code {{version}} Llançat", + "support": "Si us plau, dona suport a Joe Code fent una estrella al nostre GitHub.", "stealthModel": { - "feature": "Model stealth GRATUÏT per temps limitat - Code Supernova: Ara actualitzat amb una finestra de context d'1M tokens! Un model de codificació agèntica versàtil que suporta entrades d'imatges, disponible a través de Roo Code Cloud.", + "feature": "Model stealth GRATUÏT per temps limitat - Code Supernova: Ara actualitzat amb una finestra de context d'1M tokens! Un model de codificació agèntica versàtil que suporta entrades d'imatges, disponible a través de Joe Code Cloud.", "note": "(Nota: els prompts i completacions són registrats pel creador del model i utilitzats per millorar-lo)", - "connectButton": "Connectar a Roo Code Cloud", - "selectModel": "Selecciona roo/code-supernova del proveïdor Roo Code Cloud a Configuració per començar.", + "connectButton": "Connectar a Joe Code Cloud", + "selectModel": "Selecciona roo/code-supernova del proveïdor Joe Code Cloud a Configuració per començar.", "goToSettingsButton": "Anar a Configuració" }, "release": { "heading": "Què hi ha de nou:", "geminiPro": "Suport per Gemini 3.1 Pro: S'ha afegit el suport per al model Gemini 3.1 Pro i s'ha establert com a model Gemini per defecte per a un millor rendiment.", "cliNdjson": "Protocol NDJSON del CLI: Nou protocol NDJSON via stdin, subcomandes de llistat i comanda d'execució modularitzada per a fluxos de treball CLI més flexibles.", - "cliRelease": "CLI v0.1.0: El CLI de Roo Code arriba a la seva primera versió oficial amb una interfície de comandes estable." + "cliRelease": "CLI v0.1.0: El CLI de Joe Code arriba a la seva primera versió oficial amb una interfície de comandes estable." }, "cloudAgents": { "heading": "Novetats al núvol:", @@ -375,7 +375,7 @@ "profileViolationWarning": "El perfil actual no és compatible amb la configuració de la teva organització", "shellIntegration": { "title": "Advertència d'execució d'ordres", - "description": "La teva ordre s'està executant sense la integració de shell del terminal VSCode. Per suprimir aquest advertiment, pots desactivar la integració de shell a la secció Terminal de la configuració de Roo Code o solucionar problemes d'integració del terminal VSCode utilitzant l'enllaç a continuació.", + "description": "La teva ordre s'està executant sense la integració de shell del terminal VSCode. Per suprimir aquest advertiment, pots desactivar la integració de shell a la secció Terminal de la configuració de Joe Code o solucionar problemes d'integració del terminal VSCode utilitzant l'enllaç a continuació.", "troubleshooting": "Fes clic aquí per a la documentació d'integració de shell." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Versió {{version}} - Feu clic per veure les notes de llançament" }, "rooCloudCTA": { - "title": "Roo Code Cloud està evolucionant!", + "title": "Joe Code Cloud està evolucionant!", "description": "Executa agents remots al núvol, accedeix a les teves tasques des de qualsevol lloc, col·labora amb altres i molt més.", "joinWaitlist": "Registra't per rebre les últimes actualitzacions." }, diff --git a/webview-ui/src/i18n/locales/ca/cloud.json b/webview-ui/src/i18n/locales/ca/cloud.json index 7c0eeff82b0..592d172dc44 100644 --- a/webview-ui/src/i18n/locales/ca/cloud.json +++ b/webview-ui/src/i18n/locales/ca/cloud.json @@ -3,31 +3,31 @@ "profilePicture": "Imatge de perfil", "logOut": "Tancar sessió", "testApiAuthentication": "Provar autenticació d'API", - "signIn": "Connecta't a Roo Code Cloud", + "signIn": "Connecta't a Joe Code Cloud", "connect": "Comença", - "cloudBenefitsTitle": "Prova Roo Code Cloud", + "cloudBenefitsTitle": "Prova Joe Code Cloud", "cloudBenefitProvider": "Accedeix a models gratuïts i de pagament que funcionen molt bé amb Roo", "cloudBenefitCloudAgents": "Dona tasques a agents autònoms al núvol", "cloudBenefitTriggers": "Obtén revisions de codi a Github, inicia tasques des de Slack i més", "cloudBenefitWalkaway": "Segueix i controla tasques des de qualsevol lloc (inclòs el telèfon)", "cloudBenefitHistory": "Accedeix al teu historial de tasques des de qualsevol lloc i comparteix-les amb altres", "cloudBenefitMetrics": "Obtén una visió holística del teu consum de tokens", - "visitCloudWebsite": "Visita Roo Code Cloud", + "visitCloudWebsite": "Visita Joe Code Cloud", "taskSync": "Sincronització de tasques", - "taskSyncDescription": "Sincronitza les teves tasques per veure-les i compartir-les a Roo Code Cloud", + "taskSyncDescription": "Sincronitza les teves tasques per veure-les i compartir-les a Joe Code Cloud", "taskSyncManagedByOrganization": "La sincronització de tasques la gestiona la teva organització", "usageMetricsAlwaysReported": "La informació d'ús del model sempre es reporta quan s'ha iniciat sessió", - "cloudUrlPillLabel": "URL de Roo Code Cloud", + "cloudUrlPillLabel": "URL de Joe Code Cloud", "authWaiting": "Esperant que es completi l'autenticació...", "havingTrouble": "Tens problemes?", "pasteCallbackUrl": "Copia l'URL de redirect del teu navegador i enganxa-la aquí:", "startOver": "Torna a començar", "personalAccount": "Compte Personal", "createTeamAccount": "Crear Compte d'Equip", - "switchAccount": "Canviar Compte de Roo Code Cloud", + "switchAccount": "Canviar Compte de Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Donant-li una mica d'independència a Roo? Controla'l des de qualsevol lloc amb Roo Code Cloud. Més informació.", + "autoApprovePowerUser": "Donant-li una mica d'independència a Roo? Controla'l des de qualsevol lloc amb Joe Code Cloud. Més informació.", "longRunningTask": "Això pot trigar una estona. Continua des de qualsevol lloc amb Cloud.", - "taskList": "T'agrada Roo? Fes una ullada a Roo Code Cloud: segueix i controla les teves tasques des de qualsevol lloc, executa agents autònoms al núvol, obtén estadístiques d'ús i més. Aprèn-ne més." + "taskList": "T'agrada Roo? Fes una ullada a Joe Code Cloud: segueix i controla les teves tasques des de qualsevol lloc, executa agents autònoms al núvol, obtén estadístiques d'ús i més. Aprèn-ne més." } } diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index 2c83cabbbcb..c0c9e5585f3 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Experimental", "language": "Idioma", - "about": "Sobre Roo Code", + "about": "Sobre Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Necessites parlar amb nosaltres? Escriu" }, - "community": "Vols consells o simplement passar l'estona amb altres usuaris de Roo Code? Uneix-te a reddit.com/r/RooCode o discord.gg/roocode", + "community": "Vols consells o simplement passar l'estona amb altres usuaris de Joe Code? Uneix-te a reddit.com/r/JoeCode o discord.gg/joecode", "contactAndCommunity": "Contacte i Comunitat", "manageSettings": "Gestionar Configuració", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "El model d'esborrany ha de ser de la mateixa família de models perquè la descodificació especulativa funcioni correctament.", "selectDraftModel": "Seleccionar model d'esborrany", "noModelsFound": "No s'han trobat models d'esborrany. Assegureu-vos que LM Studio s'està executant amb el mode servidor habilitat.", - "description": "LM Studio permet executar models localment al vostre ordinador. Per a instruccions sobre com començar, consulteu la seva Guia d'inici ràpid. També necessitareu iniciar la funció de Servidor Local de LM Studio per utilitzar-la amb aquesta extensió. Nota: Roo Code utilitza prompts complexos i funciona millor amb models Claude. Els models menys capaços poden no funcionar com s'espera." + "description": "LM Studio permet executar models localment al vostre ordinador. Per a instruccions sobre com començar, consulteu la seva Guia d'inici ràpid. També necessitareu iniciar la funció de Servidor Local de LM Studio per utilitzar-la amb aquesta extensió. Nota: Joe Code utilitza prompts complexos i funciona millor amb models Claude. Els models menys capaços poden no funcionar com s'espera." }, "ollama": { "baseUrl": "URL base (opcional)", @@ -466,11 +466,11 @@ "numCtx": "Mida de la finestra de context (num_ctx)", "numCtxHelp": "Sobreescriu la mida de la finestra de context per defecte del model. Deixeu-ho en blanc per utilitzar la configuració del Modelfile del model. El valor mínim és 128.", "description": "Ollama permet executar models localment al vostre ordinador. Per a instruccions sobre com començar, consulteu la Guia d'inici ràpid.", - "warning": "Nota: Roo Code utilitza prompts complexos i funciona millor amb models Claude. Els models menys capaços poden no funcionar com s'espera." + "warning": "Nota: Joe Code utilitza prompts complexos i funciona millor amb models Claude. Els models menys capaços poden no funcionar com s'espera." }, "roo": { - "authenticatedMessage": "Autenticat de forma segura a través del teu compte de Roo Code Cloud.", - "connectButton": "Connecta amb Roo Code Cloud" + "authenticatedMessage": "Autenticat de forma segura a través del teu compte de Joe Code Cloud.", + "connectButton": "Connecta amb Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Configureu les capacitats i preus per al vostre model personalitzat compatible amb OpenAI. Tingueu cura en especificar les capacitats del model, ja que poden afectar com funciona Roo Code.", + "capabilities": "Configureu les capacitats i preus per al vostre model personalitzat compatible amb OpenAI. Tingueu cura en especificar les capacitats del model, ja que poden afectar com funciona Joe Code.", "maxTokens": { "label": "Màxim de tokens de sortida", "description": "El nombre màxim de tokens que el model pot generar en una resposta. (Establiu -1 per permetre que el servidor estableixi el màxim de tokens.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "L'extensió obté automàticament la llista més recent de models disponibles a {{serviceName}}. Si no esteu segur de quin model triar, Roo Code funciona millor amb {{defaultModelId}}. També podeu cercar \"free\" per a opcions gratuïtes actualment disponibles.", + "automaticFetch": "L'extensió obté automàticament la llista més recent de models disponibles a {{serviceName}}. Si no esteu segur de quin model triar, Joe Code funciona millor amb {{defaultModelId}}. També podeu cercar \"free\" per a opcions gratuïtes actualment disponibles.", "label": "Model", "searchPlaceholder": "Cerca", "noMatchFound": "No s'ha trobat cap coincidència", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Permetre informes anònims d'errors i ús", - "description": "Ajuda a millorar Roo Code enviant dades d'ús anònimes i informes d'error. Aquesta telemetria no recull codi, prompts o informació personal. Consulta la nostra política de privacitat per a més detalls. Pots desactivar-ho en qualsevol moment." + "description": "Ajuda a millorar Joe Code enviant dades d'ús anònimes i informes d'error. Aquesta telemetria no recull codi, prompts o informació personal. Consulta la nostra política de privacitat per a més detalls. Pots desactivar-ho en qualsevol moment." }, "settings": { "import": "Importar", diff --git a/webview-ui/src/i18n/locales/ca/welcome.json b/webview-ui/src/i18n/locales/ca/welcome.json index 23a15796b30..abb52840ba2 100644 --- a/webview-ui/src/i18n/locales/ca/welcome.json +++ b/webview-ui/src/i18n/locales/ca/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Benvingut a Roo Code!", - "introduction": "Amb una gamma de Modes integrats i ampliables, Roo Code et permet planificar, arquitectar, codificar, depurar i augmentar la teva productivitat com mai abans.", - "accountMention": "Per començar, crea el teu compte Roo Code Cloud. Obtén models potents, control web, analítica, suport i molt més.", + "greeting": "Benvingut a Joe Code!", + "introduction": "Amb una gamma de Modes integrats i ampliables, Joe Code et permet planificar, arquitectar, codificar, depurar i augmentar la teva productivitat com mai abans.", + "accountMention": "Per començar, crea el teu compte Joe Code Cloud. Obtén models potents, control web, analítica, suport i molt més.", "getStarted": "Crea compte Roo", "noAccount": "o utilitza sense compte" }, "providerSignup": { "heading": "Tria el teu proveïdor", "chooseProvider": "Roo necessita un proveïdor de LLM per funcionar. Tria-ne un per començar, pots afegir-ne més tard.", - "rooCloudProvider": "Proveïdor de Roo Code Cloud", - "rooCloudDescription": "La manera més fàcil de començar és amb el Proveïdor Roo Code Cloud: una mescla acurada de models gratuïts i de pagament a baix cost.", + "rooCloudProvider": "Proveïdor de Joe Code Cloud", + "rooCloudDescription": "La manera més fàcil de començar és amb el Proveïdor Joe Code Cloud: una mescla acurada de models gratuïts i de pagament a baix cost.", "learnMore": "Més informació", "useAnotherProvider": "Proveïdor de tercers", "useAnotherProviderDescription": "Entra una clau API i comença.", "noApiKeys": "No vols tractar amb claus API i comptes separats?", - "backToRoo": "Tria el Proveïdor Roo Code Cloud.", + "backToRoo": "Tria el Proveïdor Joe Code Cloud.", "goBack": "Enrere", "finish": "Finalitza" }, "waitingForCloud": { - "heading": "Connexió a Roo Code Cloud...", - "description": "Et portarem al teu navegador per registrar-te a Roo Code Cloud. Després et portarem aquí per acabar.", + "heading": "Connexió a Joe Code Cloud...", + "description": "Et portarem al teu navegador per registrar-te a Joe Code Cloud. Després et portarem aquí per acabar.", "noPrompt": "Si no se't demana que obris una URL, fes clic aquí.", "havingTrouble": "Si has acabat de registrar-te però tens problemes, fes clic aquí.", "pasteUrl": "Enganxa l'URL de devolució de trucada des del teu navegador:", "docsLink": "No funciona? Consulta la documentació.", - "invalidURL": "Això no sembla una URL de devolució de trucada vàlida. Si us plau, copia el que Roo Code Cloud està mostrant al teu navegador.", + "invalidURL": "Això no sembla una URL de devolució de trucada vàlida. Si us plau, copia el que Joe Code Cloud està mostrant al teu navegador.", "goBack": "Enrere" }, "startRouter": "Recomanem utilitzar un encaminador LLM:", "startCustom": "O pots portar la teva pròpia clau API:", "telemetry": { - "helpImprove": "Ajuda a millorar Roo Code", - "helpImproveMessage": "Roo Code recopila dades d'errors i ús per ajudar-nos a corregir errors i millorar l'extensió. Aquesta telemetria no recopila codi, indicacions o informació personal. Pots desactivar-la a configuració." + "helpImprove": "Ajuda a millorar Joe Code", + "helpImproveMessage": "Joe Code recopila dades d'errors i ús per ajudar-nos a corregir errors i millorar l'extensió. Aquesta telemetria no recopila codi, indicacions o informació personal. Pots desactivar-la a configuració." }, "importSettings": "Importa la configuració" } diff --git a/webview-ui/src/i18n/locales/ca/worktrees.json b/webview-ui/src/i18n/locales/ca/worktrees.json index e84c8a716bf..e3b3943764e 100644 --- a/webview-ui/src/i18n/locales/ca/worktrees.json +++ b/webview-ui/src/i18n/locales/ca/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Fet", - "description": "Els worktrees de Git et permeten treballar en diverses branques alhora en directoris separats. Cada worktree té la seva pròpia finestra de VS Code amb Roo Code.", + "description": "Els worktrees de Git et permeten treballar en diverses branques alhora en directoris separats. Cada worktree té la seva pròpia finestra de VS Code amb Joe Code.", "notGitRepo": "Aquest espai de treball no és un repositori Git. Els worktrees necessiten un repositori Git per funcionar.", "multiRootNotSupported": "Els worktrees no són compatibles amb espais de treball de múltiples arrels. Obre una sola carpeta per fer servir worktrees.", diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index 2301f966b15..c361e855f93 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Willkommen bei Roo Code", + "greeting": "Willkommen bei Joe Code", "task": { "title": "Aufgabe", "expand": "Aufgabe erweitern", @@ -21,7 +21,7 @@ "sharePublicly": "Öffentlich teilen", "sharePubliclyDescription": "Jeder mit dem Link kann zugreifen", "connectToCloud": "Mit Cloud verbinden", - "connectToCloudDescription": "Melde dich bei Roo Code Cloud an, um Aufgaben zu teilen", + "connectToCloudDescription": "Melde dich bei Joe Code Cloud an, um Aufgaben zu teilen", "sharingDisabledByOrganization": "Freigabe von der Organisation deaktiviert", "shareSuccessOrganization": "Organisationslink in die Zwischenablage kopiert", "shareSuccessPublic": "Öffentlicher Link in die Zwischenablage kopiert", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Nachricht zur Warteschlange hinzufügen (wird nach Abschluss der aktuellen Aufgabe gesendet)", "scrollToBottom": "Zum Chat-Ende scrollen", - "about": "Roo Code ist ein ganzes KI-Entwicklerteam in deinem Editor.", + "about": "Joe Code ist ein ganzes KI-Entwicklerteam in deinem Editor.", "docs": "Schau in unsere Dokumentation, um mehr zu erfahren.", "onboarding": "Deine Aufgabenliste in diesem Arbeitsbereich ist leer.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Fehler auf dem Server des Anbieters. Es stimmt etwas mit der Anbieterseite nicht, mit deiner Anfrage stimmt alles.", "docs": "Dokumentation", "goToSettings": "Einstellungen", - "unknown": "Unbekannter API-Fehler. Bitte kontaktiere den Roo Code Support.", + "unknown": "Unbekannter API-Fehler. Bitte kontaktiere den Joe Code Support.", "connection": "Verbindungsfehler. Stelle sicher, dass du eine funktionierende Internetverbindung hast.", "claudeCodeNotAuthenticated": "Du musst dich anmelden, um Claude Code zu verwenden. Gehe zu den Einstellungen und klicke auf \"Bei Claude Code anmelden\", um dich zu authentifizieren." } @@ -337,20 +337,20 @@ "timerPrefix": "Automatische Genehmigung aktiviert. Wähle in {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} veröffentlicht", - "support": "Bitte unterstütze Roo Code, indem du uns auf GitHub einen Stern gibst.", + "title": "Joe Code {{version}} veröffentlicht", + "support": "Bitte unterstütze Joe Code, indem du uns auf GitHub einen Stern gibst.", "stealthModel": { - "feature": "Zeitlich begrenztes KOSTENLOSES Stealth-Modell - Code Supernova: Jetzt mit einem 1M Token Kontextfenster erweitert! Ein vielseitiges agentisches Coding-Modell, das Bildeingaben unterstützt und über Roo Code Cloud zugänglich ist.", + "feature": "Zeitlich begrenztes KOSTENLOSES Stealth-Modell - Code Supernova: Jetzt mit einem 1M Token Kontextfenster erweitert! Ein vielseitiges agentisches Coding-Modell, das Bildeingaben unterstützt und über Joe Code Cloud zugänglich ist.", "note": "(Hinweis: Prompts und Vervollständigungen werden vom Modellersteller protokolliert und zur Verbesserung des Modells verwendet)", - "connectButton": "Mit Roo Code Cloud verbinden", - "selectModel": "Wähle roo/code-supernova vom Roo Code Cloud-Provider in den Einstellungen aus, um zu beginnen.", + "connectButton": "Mit Joe Code Cloud verbinden", + "selectModel": "Wähle roo/code-supernova vom Joe Code Cloud-Provider in den Einstellungen aus, um zu beginnen.", "goToSettingsButton": "Zu den Einstellungen" }, "release": { "heading": "Was ist neu:", "geminiPro": "Gemini 3.1 Pro Unterstützung: Gemini 3.1 Pro wurde als Modell hinzugefügt und als Standard-Gemini-Modell für bessere Leistung festgelegt.", "cliNdjson": "CLI NDJSON-Protokoll: Neues NDJSON-stdin-Protokoll, List-Unterbefehle und modularisierter Run-Befehl für flexiblere CLI-Workflows.", - "cliRelease": "CLI v0.1.0: Das Roo Code CLI erreicht seine erste offizielle Veröffentlichung mit einer stabilen Befehlsoberfläche." + "cliRelease": "CLI v0.1.0: Das Joe Code CLI erreicht seine erste offizielle Veröffentlichung mit einer stabilen Befehlsoberfläche." }, "cloudAgents": { "heading": "Neu in der Cloud:", @@ -375,7 +375,7 @@ "profileViolationWarning": "Das aktuelle Profil ist nicht kompatibel mit den Einstellungen deiner Organisation", "shellIntegration": { "title": "Befehlsausführungswarnung", - "description": "Dein Befehl wird ohne VSCode Terminal-Shell-Integration ausgeführt. Um diese Warnung zu unterdrücken, kannst du die Shell-Integration im Abschnitt Terminal der Roo Code Einstellungen deaktivieren oder die VSCode Terminal-Integration mit dem Link unten beheben.", + "description": "Dein Befehl wird ohne VSCode Terminal-Shell-Integration ausgeführt. Um diese Warnung zu unterdrücken, kannst du die Shell-Integration im Abschnitt Terminal der Joe Code Einstellungen deaktivieren oder die VSCode Terminal-Integration mit dem Link unten beheben.", "troubleshooting": "Klicke hier für die Shell-Integrationsdokumentation." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Version {{version}} - Klicken Sie, um die Versionshinweise anzuzeigen" }, "rooCloudCTA": { - "title": "Roo Code Cloud entwickelt sich weiter!", + "title": "Joe Code Cloud entwickelt sich weiter!", "description": "Führe Remote-Agenten in der Cloud aus, greife von überall auf deine Aufgaben zu, arbeite mit anderen zusammen und vieles mehr.", "joinWaitlist": "Melde dich an, um die neuesten Updates zu erhalten." }, diff --git a/webview-ui/src/i18n/locales/de/cloud.json b/webview-ui/src/i18n/locales/de/cloud.json index 7ac165b4972..d9a26893d57 100644 --- a/webview-ui/src/i18n/locales/de/cloud.json +++ b/webview-ui/src/i18n/locales/de/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Profilbild", "logOut": "Abmelden", "testApiAuthentication": "API-Authentifizierung testen", - "signIn": "Mit Roo Code Cloud verbinden", + "signIn": "Mit Joe Code Cloud verbinden", "connect": "Loslegen", - "cloudBenefitsTitle": "Roo Code Cloud ausprobieren", + "cloudBenefitsTitle": "Joe Code Cloud ausprobieren", "cloudBenefitProvider": "Zugriff auf kostenlose und kostenpflichtige Modelle, die hervorragend mit Roo funktionieren", "cloudBenefitCloudAgents": "Aufgaben an autonome Cloud-Agenten übergeben", "cloudBenefitTriggers": "Code-Reviews auf Github erhalten, Aufgaben aus Slack starten und mehr", "cloudBenefitWalkaway": "Aufgaben von überall verfolgen und steuern (auch vom Handy)", "cloudBenefitHistory": "Von überall auf deinen Aufgabenverlauf zugreifen und ihn mit anderen teilen", "cloudBenefitMetrics": "Erhalte einen ganzheitlichen Überblick über deinen Token-Verbrauch", - "visitCloudWebsite": "Roo Code Cloud besuchen", + "visitCloudWebsite": "Joe Code Cloud besuchen", "taskSync": "Aufgabensynchronisierung", - "taskSyncDescription": "Synchronisiere deine Aufgaben zum Anzeigen und Teilen in Roo Code Cloud", + "taskSyncDescription": "Synchronisiere deine Aufgaben zum Anzeigen und Teilen in Joe Code Cloud", "taskSyncManagedByOrganization": "Die Aufgabensynchronisierung wird von deiner Organisation verwaltet", "usageMetricsAlwaysReported": "Modellnutzungsinformationen werden bei Anmeldung immer gemeldet", "authWaiting": "Warte auf Abschluss der Authentifizierung...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Kopiere die Redirect-URL aus deinem Browser und füge sie hier ein:", "startOver": "Von vorne beginnen", "personalAccount": "Persönliches Konto", - "switchAccount": "Roo Code Cloud Konto wechseln", + "switchAccount": "Joe Code Cloud Konto wechseln", "createTeamAccount": "Team-Konto erstellen", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { - "autoApprovePowerUser": "Roo etwas Unabhängigkeit geben? Kontrolliere es von überall mit Roo Code Cloud. Mehr erfahren.", + "autoApprovePowerUser": "Roo etwas Unabhängigkeit geben? Kontrolliere es von überall mit Joe Code Cloud. Mehr erfahren.", "longRunningTask": "Das könnte eine Weile dauern. Mit Cloud von überall weitermachen.", - "taskList": "Gefällt dir Roo? Schau dir Roo Code Cloud an: Verfolge und steuere deine Aufgaben von überall, führe autonome Cloud-Agenten aus, erhalte Nutzungsstatistiken und mehr. Erfahre mehr." + "taskList": "Gefällt dir Roo? Schau dir Joe Code Cloud an: Verfolge und steuere deine Aufgaben von überall, führe autonome Cloud-Agenten aus, erhalte Nutzungsstatistiken und mehr. Erfahre mehr." } } diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index c31d29147d4..ec831b57202 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Experimentell", "language": "Sprache", - "about": "Über Roo Code", + "about": "Über Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Musst du mit uns sprechen? Schreibe" }, - "community": "Möchtest du Tipps oder dich einfach mit anderen Roo Code-Nutzern austauschen? Tritt reddit.com/r/RooCode oder discord.gg/roocode bei", + "community": "Möchtest du Tipps oder dich einfach mit anderen Joe Code-Nutzern austauschen? Tritt reddit.com/r/JoeCode oder discord.gg/joecode bei", "contactAndCommunity": "Kontakt & Community", "manageSettings": "Einstellungen verwalten", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Das Entwurfsmodell muss aus derselben Modellfamilie stammen, damit das spekulative Dekodieren korrekt funktioniert.", "selectDraftModel": "Entwurfsmodell auswählen", "noModelsFound": "Keine Entwurfsmodelle gefunden. Bitte stelle sicher, dass LM Studio mit aktiviertem Servermodus läuft.", - "description": "LM Studio ermöglicht es dir, Modelle lokal auf deinem Computer auszuführen. Eine Anleitung zum Einstieg findest du in ihrem Schnellstart-Guide. Du musst auch die lokale Server-Funktion von LM Studio starten, um es mit dieser Erweiterung zu verwenden. Hinweis: Roo Code verwendet komplexe Prompts und funktioniert am besten mit Claude-Modellen. Weniger leistungsfähige Modelle funktionieren möglicherweise nicht wie erwartet." + "description": "LM Studio ermöglicht es dir, Modelle lokal auf deinem Computer auszuführen. Eine Anleitung zum Einstieg findest du in ihrem Schnellstart-Guide. Du musst auch die lokale Server-Funktion von LM Studio starten, um es mit dieser Erweiterung zu verwenden. Hinweis: Joe Code verwendet komplexe Prompts und funktioniert am besten mit Claude-Modellen. Weniger leistungsfähige Modelle funktionieren möglicherweise nicht wie erwartet." }, "ollama": { "baseUrl": "Basis-URL (optional)", @@ -466,11 +466,11 @@ "numCtx": "Kontextfenstergröße (num_ctx)", "numCtxHelp": "Überschreibt die Standard-Kontextfenstergröße des Modells. Lassen Sie das Feld leer, um die Modelfile-Konfiguration des Modells zu verwenden. Der Mindestwert ist 128.", "description": "Ollama ermöglicht es dir, Modelle lokal auf deinem Computer auszuführen. Eine Anleitung zum Einstieg findest du im Schnellstart-Guide.", - "warning": "Hinweis: Roo Code verwendet komplexe Prompts und funktioniert am besten mit Claude-Modellen. Weniger leistungsfähige Modelle funktionieren möglicherweise nicht wie erwartet." + "warning": "Hinweis: Joe Code verwendet komplexe Prompts und funktioniert am besten mit Claude-Modellen. Weniger leistungsfähige Modelle funktionieren möglicherweise nicht wie erwartet." }, "roo": { - "authenticatedMessage": "Sicher authentifiziert über dein Roo Code Cloud-Konto.", - "connectButton": "Mit Roo Code Cloud verbinden" + "authenticatedMessage": "Sicher authentifiziert über dein Joe Code Cloud-Konto.", + "connectButton": "Mit Joe Code Cloud verbinden" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Konfiguriere die Fähigkeiten und Preise für dein benutzerdefiniertes OpenAI-kompatibles Modell. Sei vorsichtig bei der Angabe der Modellfähigkeiten, da diese beeinflussen können, wie Roo Code funktioniert.", + "capabilities": "Konfiguriere die Fähigkeiten und Preise für dein benutzerdefiniertes OpenAI-kompatibles Modell. Sei vorsichtig bei der Angabe der Modellfähigkeiten, da diese beeinflussen können, wie Joe Code funktioniert.", "maxTokens": { "label": "Maximale Ausgabe-Tokens", "description": "Maximale Anzahl von Tokens, die das Modell in einer Antwort generieren kann. (Geben Sie -1 an, damit der Server die maximalen Tokens festlegt.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "Die Erweiterung ruft automatisch die neueste Liste der auf {{serviceName}} verfügbaren Modelle ab. Wenn du dir nicht sicher bist, welches Modell du wählen sollst, funktioniert Roo Code am besten mit {{defaultModelId}}. Du kannst auch versuchen, nach \"kostenlos\" zu suchen, um die derzeit verfügbaren kostenlosen Optionen zu finden.", + "automaticFetch": "Die Erweiterung ruft automatisch die neueste Liste der auf {{serviceName}} verfügbaren Modelle ab. Wenn du dir nicht sicher bist, welches Modell du wählen sollst, funktioniert Joe Code am besten mit {{defaultModelId}}. Du kannst auch versuchen, nach \"kostenlos\" zu suchen, um die derzeit verfügbaren kostenlosen Optionen zu finden.", "label": "Modell", "searchPlaceholder": "Suchen", "noMatchFound": "Keine Übereinstimmung gefunden", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Anonyme Fehler- und Nutzungsberichte zulassen", - "description": "Hilf mit, Roo Code zu verbessern, indem du anonyme Nutzungsdaten und Fehlerberichte sendest. Diese Telemetrie sammelt keine Code-, Prompt- oder persönliche Informationen. Weitere Einzelheiten findest du in unserer Datenschutzrichtlinie." + "description": "Hilf mit, Joe Code zu verbessern, indem du anonyme Nutzungsdaten und Fehlerberichte sendest. Diese Telemetrie sammelt keine Code-, Prompt- oder persönliche Informationen. Weitere Einzelheiten findest du in unserer Datenschutzrichtlinie." }, "settings": { "import": "Importieren", diff --git a/webview-ui/src/i18n/locales/de/welcome.json b/webview-ui/src/i18n/locales/de/welcome.json index aa1e4a5bb39..2c6fc66ed2c 100644 --- a/webview-ui/src/i18n/locales/de/welcome.json +++ b/webview-ui/src/i18n/locales/de/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Willkommen bei Roo Code!", - "introduction": "Mit einer Reihe von integrierten und erweiterbaren Modi ermöglicht dir Roo Code, zu planen, zu architektieren, zu coden, zu debuggen und deine Produktivität wie nie zuvor zu steigern.", - "accountMention": "Um zu beginnen, erstelle dein Roo Code Cloud Konto. Erhalte leistungsstarke Modelle, Webkontrolle, Analysen, Support und mehr.", + "greeting": "Willkommen bei Joe Code!", + "introduction": "Mit einer Reihe von integrierten und erweiterbaren Modi ermöglicht dir Joe Code, zu planen, zu architektieren, zu coden, zu debuggen und deine Produktivität wie nie zuvor zu steigern.", + "accountMention": "Um zu beginnen, erstelle dein Joe Code Cloud Konto. Erhalte leistungsstarke Modelle, Webkontrolle, Analysen, Support und mehr.", "getStarted": "Roo-Konto erstellen", "noAccount": "oder ohne Konto verwenden" }, "providerSignup": { "heading": "Wähle deinen Anbieter", "chooseProvider": "Roo braucht einen LLM-Anbieter, um zu funktionieren. Wähle einen aus, um loszulegen. Du kannst später mehr hinzufügen.", - "rooCloudProvider": "Roo Code Router", - "rooCloudDescription": "Der einfachste Weg loszulegen ist mit dem Roo Code Router: eine kuratierte Mischung aus kostenlosen und bezahlten Modellen zu niedrigen Kosten.", + "rooCloudProvider": "Joe Code Router", + "rooCloudDescription": "Der einfachste Weg loszulegen ist mit dem Joe Code Router: eine kuratierte Mischung aus kostenlosen und bezahlten Modellen zu niedrigen Kosten.", "learnMore": "Weitere Informationen", "useAnotherProvider": "3rd-party Provider", "useAnotherProviderDescription": "Gib einen API-Schlüssel ein und leg los.", "noApiKeys": "Du möchtest dich nicht mit API-Schlüsseln und separaten Konten rumschlagen?", - "backToRoo": "Geh mit dem Roo Code Router.", + "backToRoo": "Geh mit dem Joe Code Router.", "goBack": "Zurück", "finish": "Beenden" }, "waitingForCloud": { - "heading": "Anmeldung bei Roo Code Cloud...", - "description": "Wir bringen dich in deinen Browser, um dich für Roo Code Cloud zu registrieren. Dann bringen wir dich hierher zurück, um das Einrichten abzuschließen.", + "heading": "Anmeldung bei Joe Code Cloud...", + "description": "Wir bringen dich in deinen Browser, um dich für Joe Code Cloud zu registrieren. Dann bringen wir dich hierher zurück, um das Einrichten abzuschließen.", "noPrompt": "Wenn du nicht aufgefordert wirst, eine URL zu öffnen, klick hier.", "havingTrouble": "Wenn du die Anmeldung abgeschlossen hast, aber Probleme hast, klick hier.", "pasteUrl": "Füge die Callback-URL aus deinem Browser ein:", "docsLink": "Funktioniert nicht? Schau dir die Dokumentation an.", - "invalidURL": "Das sieht nicht wie eine gültige Callback-URL aus. Bitte kopiere das, was Roo Code Cloud in deinem Browser anzeigt.", + "invalidURL": "Das sieht nicht wie eine gültige Callback-URL aus. Bitte kopiere das, was Joe Code Cloud in deinem Browser anzeigt.", "goBack": "Zurück" }, "startRouter": "Wir empfehlen die Verwendung eines LLM-Routers:", "startCustom": "Oder du kannst deinen eigenen API-Schlüssel verwenden:", "telemetry": { - "helpImprove": "Hilf, Roo Code zu verbessern", - "helpImproveMessage": "Roo Code sammelt Fehler- und Nutzungsdaten, um uns dabei zu helfen, Fehler zu beheben und die Erweiterung zu verbessern. Diese Telemetrie sammelt keine Code-, Prompt- oder persönliche Informationen. Du kannst diese in den Einstellungen deaktivieren." + "helpImprove": "Hilf, Joe Code zu verbessern", + "helpImproveMessage": "Joe Code sammelt Fehler- und Nutzungsdaten, um uns dabei zu helfen, Fehler zu beheben und die Erweiterung zu verbessern. Diese Telemetrie sammelt keine Code-, Prompt- oder persönliche Informationen. Du kannst diese in den Einstellungen deaktivieren." }, "importSettings": "Einstellungen importieren" } diff --git a/webview-ui/src/i18n/locales/de/worktrees.json b/webview-ui/src/i18n/locales/de/worktrees.json index eed464fd5ee..fc51ad637e5 100644 --- a/webview-ui/src/i18n/locales/de/worktrees.json +++ b/webview-ui/src/i18n/locales/de/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Fertig", - "description": "Git-Worktrees ermöglichen dir, gleichzeitig an mehreren Branches in separaten Verzeichnissen zu arbeiten. Jeder Worktree bekommt sein eigenes VS Code-Fenster mit Roo Code.", + "description": "Git-Worktrees ermöglichen dir, gleichzeitig an mehreren Branches in separaten Verzeichnissen zu arbeiten. Jeder Worktree bekommt sein eigenes VS Code-Fenster mit Joe Code.", "notGitRepo": "Dieser Workspace ist kein Git-Repository. Worktrees benötigen ein Git-Repository, um zu funktionieren.", "multiRootNotSupported": "Worktrees werden in Multi-Root-Workspaces nicht unterstützt. Öffne einen einzelnen Ordner, um Worktrees zu verwenden.", diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 4899859e3a6..2bc25ad1764 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Welcome to Roo Code!", + "greeting": "Welcome to Joe Code!", "task": { "title": "Task", "expand": "Expand task", @@ -21,7 +21,7 @@ "sharePublicly": "Share Publicly", "sharePubliclyDescription": "Anyone with the link can access", "connectToCloud": "Connect to Cloud", - "connectToCloudDescription": "Sign in to Roo Code Cloud to share tasks", + "connectToCloudDescription": "Sign in to Joe Code Cloud to share tasks", "sharingDisabledByOrganization": "Sharing disabled by organization", "shareSuccessOrganization": "Organization link copied to clipboard", "shareSuccessPublic": "Public link copied to clipboard", @@ -124,7 +124,7 @@ "placeholder": "Edit your message..." }, "scrollToBottom": "Scroll to bottom of chat", - "about": "Roo is a whole AI dev team in your editor", + "about": "Joe is a whole AI dev team in your editor", "docs": "Check our docs to get started", "onboarding": "What would you like to do?", "rooTips": { @@ -184,7 +184,7 @@ "docs": "Docs", "goToSettings": "Settings", "connection": "Connection error. Make sure you have a working internet connection.", - "unknown": "Unknown API error. Please contact Roo Code support.", + "unknown": "Unknown API error. Please contact Joe Code support.", "claudeCodeNotAuthenticated": "You need to sign in to use Claude Code. Go to Settings and click \"Sign in to Claude Code\" to authenticate." } }, @@ -334,7 +334,7 @@ "diffError": { "title": "Edit Unsuccessful" }, - "troubleMessage": "Roo is having trouble...", + "troubleMessage": "Joe is having trouble...", "powershell": { "issues": "It seems like you're having Windows PowerShell issues, please see this" }, @@ -356,20 +356,20 @@ "triggerLabelAll": "BRRR" }, "announcement": { - "title": "Roo Code {{version}} Released", - "support": "Please support Roo Code by starring us on GitHub.", + "title": "Joe Code {{version}} Released", + "support": "Please support Joe Code by starring us on GitHub.", "stealthModel": { - "feature": "Limited-time FREE stealth model - Code Supernova: Now upgraded with a 1M token context window! A versatile agentic coding model that supports image inputs, accessible through Roo Code Cloud.", + "feature": "Limited-time FREE stealth model - Code Supernova: Now upgraded with a 1M token context window! A versatile agentic coding model that supports image inputs, accessible through Joe Code Cloud.", "note": "(Note: prompts and completions are logged by the model creator and used to improve the model)", - "connectButton": "Connect to Roo Code Cloud", - "selectModel": "Select roo/code-supernova from the Roo Code Cloud provider in Settings to get started.", + "connectButton": "Connect to Joe Code Cloud", + "selectModel": "Select roo/code-supernova from the Joe Code Cloud provider in Settings to get started.", "goToSettingsButton": "Go to Settings" }, "release": { "heading": "What's New:", "geminiPro": "Gemini 3.1 Pro Support: Added Gemini 3.1 Pro model support and set it as the default Gemini model for improved performance.", "cliNdjson": "CLI NDJSON Protocol: New NDJSON stdin protocol, list subcommands, and modularized run command for more flexible CLI workflows.", - "cliRelease": "CLI v0.1.0: The Roo Code CLI reaches its first official release with a stable command interface." + "cliRelease": "CLI v0.1.0: The Joe Code CLI reaches its first official release with a stable command interface." }, "cloudAgents": { "heading": "New in the Cloud:", @@ -402,7 +402,7 @@ "profileViolationWarning": "The current profile isn't compatible with your organization's settings", "shellIntegration": { "title": "Command Execution Warning", - "description": "Your command is being executed without VSCode terminal shell integration. To suppress this warning you can disable shell integration in the Terminal section of the Roo Code settings or troubleshoot VSCode terminal integration using the link below.", + "description": "Your command is being executed without VSCode terminal shell integration. To suppress this warning you can disable shell integration in the Terminal section of the Joe Code settings or troubleshoot VSCode terminal integration using the link below.", "troubleshooting": "Click here for shell integration documentation." }, "ask": { @@ -486,7 +486,7 @@ }, "retiredProvider": { "title": "Provider no longer supported", - "message": "Sorry, this provider is no longer supported. We saw very few Roo users actually using it and we need to reduce the surface area of our codebase so we can keep shipping fast and serving our community well in this space. It was a really hard decision but it lets us focus on what matters most to you. It sucks, we know.", + "message": "Sorry, this provider is no longer supported. We saw very few Joe users actually using it and we need to reduce the surface area of our codebase so we can keep shipping fast and serving our community well in this space. It was a really hard decision but it lets us focus on what matters most to you. It sucks, we know.", "openSettings": "Open Settings" } } diff --git a/webview-ui/src/i18n/locales/en/cloud.json b/webview-ui/src/i18n/locales/en/cloud.json index 5f52afdc6a2..1ff53fb6bce 100644 --- a/webview-ui/src/i18n/locales/en/cloud.json +++ b/webview-ui/src/i18n/locales/en/cloud.json @@ -3,31 +3,31 @@ "profilePicture": "Profile picture", "logOut": "Log out", "testApiAuthentication": "Test API Authentication", - "signIn": "Connect to Roo Code Cloud", + "signIn": "Connect to Joe Code Cloud", "connect": "Get started", - "cloudBenefitsTitle": "Try Roo Code Cloud", + "cloudBenefitsTitle": "Try Joe Code Cloud", "cloudBenefitProvider": "Access free and paid models that work great with Roo", "cloudBenefitCloudAgents": "Give tasks to autonomous Cloud agents", "cloudBenefitTriggers": "Get code reviews on Github, start tasks from Slack and more", "cloudBenefitWalkaway": "Follow and control tasks from anywhere (including your phone)", "cloudBenefitHistory": "Access your task history from anywhere and share them with others", "cloudBenefitMetrics": "Get a holistic view of your token consumption", - "visitCloudWebsite": "Visit Roo Code Cloud", + "visitCloudWebsite": "Visit Joe Code Cloud", "taskSync": "Task sync", - "taskSyncDescription": "Sync your tasks for viewing and sharing on Roo Code Cloud", + "taskSyncDescription": "Sync your tasks for viewing and sharing on Joe Code Cloud", "taskSyncManagedByOrganization": "Task sync is managed by your organization", "usageMetricsAlwaysReported": "Model usage info is always reported when logged in", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "authWaiting": "Waiting for browser authentication...", "havingTrouble": "Having trouble?", "pasteCallbackUrl": "Copy the redirect URL from your browser and paste it here:", "startOver": "Start over", "personalAccount": "Personal Account", - "switchAccount": "Switch Roo Code Cloud Account", + "switchAccount": "Switch Joe Code Cloud Account", "createTeamAccount": "Create Team Account", "upsell": { - "autoApprovePowerUser": "Giving Roo some independence? Control it from anywhere with Roo Code Cloud. Learn more.", + "autoApprovePowerUser": "Giving Roo some independence? Control it from anywhere with Joe Code Cloud. Learn more.", "longRunningTask": "This might take a while. Continue from anywhere with Cloud.", - "taskList": "Enjoying Roo? Check out Roo Code Cloud: follow and control your tasks from anywhere, run autonomous Cloud agents, get usage stats and more. Learn more." + "taskList": "Enjoying Roo? Check out Joe Code Cloud: follow and control your tasks from anywhere, run autonomous Cloud agents, get usage stats and more. Learn more." } } diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index 3b2497aaee7..043ccf0d9fe 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -41,7 +41,7 @@ "ui": "UI", "experimental": "Experimental", "language": "Language", - "about": "About Roo Code" + "about": "About Joe Code" }, "about": { "bugReport": { @@ -59,7 +59,7 @@ "contact": { "label": "Need to talk to us? Write" }, - "community": "Want tips or to just hang out with other Roo Code users? Join reddit.com/r/RooCode or discord.gg/roocode", + "community": "Want tips or to just hang out with other Joe Code users? Join reddit.com/r/JoeCode or discord.gg/joecode", "contactAndCommunity": "Contact & Community", "manageSettings": "Manage Settings", "debugMode": { @@ -166,7 +166,7 @@ } }, "prompts": { - "description": "Configure support prompts that are used for quick actions like enhancing prompts, explaining code, and fixing issues. These prompts help Roo provide better assistance for common development tasks." + "description": "Configure support prompts that are used for quick actions like enhancing prompts, explaining code, and fixing issues. These prompts help Joe provide better assistance for common development tasks." }, "codeIndex": { "title": "Codebase Indexing", @@ -287,10 +287,10 @@ "enabled": "Auto-Approve Enabled", "readOnly": { "label": "Read", - "description": "When enabled, Roo will automatically view directory contents and read files without requiring you to click the Approve button.", + "description": "When enabled, Joe will automatically view directory contents and read files without requiring you to click the Approve button.", "outsideWorkspace": { "label": "Include files outside workspace", - "description": "Allow Roo to read files outside the current workspace without requiring approval." + "description": "Allow Joe to read files outside the current workspace without requiring approval." } }, "write": { @@ -299,11 +299,11 @@ "delayLabel": "Delay after writes to allow diagnostics to detect potential problems", "outsideWorkspace": { "label": "Include files outside workspace", - "description": "Allow Roo to create and edit files outside the current workspace without requiring approval." + "description": "Allow Joe to create and edit files outside the current workspace without requiring approval." }, "protected": { "label": "Include protected files", - "description": "Allow Roo to create and edit protected files (like .rooignore and .roo/ configuration files) without requiring approval." + "description": "Allow Joe to create and edit protected files (like .rooignore and .roo/ configuration files) without requiring approval." } }, "mcp": { @@ -372,7 +372,7 @@ "searchProviderPlaceholder": "Search providers", "noProviderMatchFound": "No providers found", "noMatchFound": "No matching profiles found", - "retiredProviderMessage": "Sorry, this provider is no longer supported. We saw very few Roo users actually using it and we need to reduce the surface area of our codebase so we can keep shipping fast and serving our community well in this space. It was a really hard decision but it lets us focus on what matters most to you. It sucks, we know.", + "retiredProviderMessage": "Sorry, this provider is no longer supported. We saw very few Joe users actually using it and we need to reduce the surface area of our codebase so we can keep shipping fast and serving our community well in this space. It was a really hard decision but it lets us focus on what matters most to you. It sucks, we know.", "vscodeLmDescription": " The VS Code Language Model API allows you to run models provided by other VS Code extensions (including but not limited to GitHub Copilot). The easiest way to get started is to install the Copilot and Copilot Chat extensions from the VS Code Marketplace.", "awsCustomArnUse": "Enter a valid Amazon Bedrock ARN for the model you want to use. Format examples:", "awsCustomArnDesc": "Make sure the region in the ARN matches your selected AWS Region above.", @@ -519,7 +519,7 @@ "draftModelDesc": "Draft model must be from the same model family for speculative decoding to work correctly.", "selectDraftModel": "Select Draft Model", "noModelsFound": "No draft models found. Please ensure LM Studio is running with Server Mode enabled.", - "description": "LM Studio allows you to run models locally on your computer. For instructions on how to get started, see their quickstart guide. You will also need to start LM Studio's local server feature to use it with this extension. Note: Roo Code uses complex prompts and works best with Claude models. Less capable models may not work as expected." + "description": "LM Studio allows you to run models locally on your computer. For instructions on how to get started, see their quickstart guide. You will also need to start LM Studio's local server feature to use it with this extension. Note: Joe Code uses complex prompts and works best with Claude models. Less capable models may not work as expected." }, "ollama": { "baseUrl": "Base URL (optional)", @@ -529,11 +529,11 @@ "numCtx": "Context Window Size (num_ctx)", "numCtxHelp": "Override the model's default context window size. Leave empty to use the model's Modelfile configuration. Minimum value is 128.", "description": "Ollama allows you to run models locally on your computer. For instructions on how to get started, see their quickstart guide.", - "warning": "Note: Roo Code uses complex prompts and works best with Claude models. Less capable models may not work as expected." + "warning": "Note: Joe Code uses complex prompts and works best with Claude models. Less capable models may not work as expected." }, "roo": { - "authenticatedMessage": "Securely authenticated through your Roo Code Cloud account.", - "connectButton": "Connect to Roo Code Cloud" + "authenticatedMessage": "Securely authenticated through your Joe Code Cloud account.", + "connectButton": "Connect to Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -543,7 +543,7 @@ } }, "customModel": { - "capabilities": "Configure the capabilities and pricing for your custom OpenAI-compatible model. Be careful when specifying the model capabilities, as they can affect how Roo Code performs.", + "capabilities": "Configure the capabilities and pricing for your custom OpenAI-compatible model. Be careful when specifying the model capabilities, as they can affect how Joe Code performs.", "maxTokens": { "label": "Max Output Tokens", "description": "Maximum number of tokens the model can generate in a response. (Specify -1 to allow the server to set the max tokens.)" @@ -590,7 +590,7 @@ }, "consecutiveMistakeLimit": { "label": "Error & Repetition Limit", - "description": "Number of consecutive errors or repeated actions before showing 'Roo is having trouble' dialog. Set to 0 to disable this safety mechanism (it will never trigger).", + "description": "Number of consecutive errors or repeated actions before showing 'Joe is having trouble' dialog. Set to 0 to disable this safety mechanism (it will never trigger).", "unlimitedDescription": "Unlimited retries enabled (auto-proceed). The dialog will never appear.", "warning": "⚠️ Setting to 0 allows unlimited retries which may consume significant API usage" }, @@ -626,18 +626,18 @@ }, "enable": { "label": "Enable automatic checkpoints", - "description": "When enabled, Roo will automatically create checkpoints during task execution, making it easy to review changes or revert to earlier states. <0>Learn more" + "description": "When enabled, Joe will automatically create checkpoints during task execution, making it easy to review changes or revert to earlier states. <0>Learn more" } }, "notifications": { "sound": { "label": "Enable sound effects", - "description": "When enabled, Roo will play sound effects for notifications and events.", + "description": "When enabled, Joe will play sound effects for notifications and events.", "volumeLabel": "Volume" }, "tts": { "label": "Enable text-to-speech", - "description": "When enabled, Roo will read aloud its responses using text-to-speech.", + "description": "When enabled, Joe will read aloud its responses using text-to-speech.", "speedLabel": "Speed" } }, @@ -645,7 +645,7 @@ "description": "Control what information is included in the AI's context window, affecting token usage and response quality", "autoCondenseContextPercent": { "label": "Threshold to trigger intelligent context condensing", - "description": "When the context window reaches this threshold, Roo will automatically condense it." + "description": "When the context window reaches this threshold, Joe will automatically condense it." }, "condensingApiConfiguration": { "label": "API Configuration for Context Condensing", @@ -661,7 +661,7 @@ }, "autoCondenseContext": { "name": "Automatically trigger intelligent context condensing", - "description": "When enabled, Roo will automatically condense the context when the threshold is reached. When disabled, you can still manually trigger context condensing." + "description": "When enabled, Joe will automatically condense the context when the threshold is reached. When disabled, you can still manually trigger context condensing." }, "openTabs": { "label": "Open tabs context limit", @@ -681,7 +681,7 @@ }, "maxReadFile": { "label": "File read auto-truncate threshold", - "description": "Roo reads this number of lines when the model omits start/end values. If this number is less than the file's total, Roo generates a line number index of code definitions. Special cases: -1 instructs Roo to read the entire file (without indexing), and 0 instructs it to read no lines and provides line indexes only for minimal context. Lower values minimize initial context usage, enabling precise subsequent line-range reads. Explicit start/end requests are not limited by this setting.", + "description": "Joe reads this number of lines when the model omits start/end values. If this number is less than the file's total, Joe generates a line number index of code definitions. Special cases: -1 instructs Joe to read the entire file (without indexing), and 0 instructs it to read no lines and provides line indexes only for minimal context. Lower values minimize initial context usage, enabling precise subsequent line-range reads. Explicit start/end requests are not limited by this setting.", "lines": "lines", "always_full_read": "Always read entire file" }, @@ -748,15 +748,15 @@ }, "outputLineLimit": { "label": "Terminal output limit", - "description": "Keeps the first and last lines and drops the middle to stay under the limit. Lower to save tokens; raise to give Roo more middle detail. Roo sees a placeholder where the content is skipped.<0>Learn more" + "description": "Keeps the first and last lines and drops the middle to stay under the limit. Lower to save tokens; raise to give Joe more middle detail. Joe sees a placeholder where the content is skipped.<0>Learn more" }, "outputCharacterLimit": { "label": "Terminal character limit", - "description": "Overrides the line limit to prevent memory issues by enforcing a hard cap on output size. If exceeded, keeps the beginning and end and shows a placeholder to Roo where content is skipped. <0>Learn more" + "description": "Overrides the line limit to prevent memory issues by enforcing a hard cap on output size. If exceeded, keeps the beginning and end and shows a placeholder to Joe where content is skipped. <0>Learn more" }, "outputPreviewSize": { "label": "Command output preview size", - "description": "Controls how much command output Roo sees directly. Full output is always saved and accessible when needed.", + "description": "Controls how much command output Joe sees directly. Full output is always saved and accessible when needed.", "options": { "small": "Small (5KB)", "medium": "Medium (10KB)", @@ -769,7 +769,7 @@ }, "shellIntegrationDisabled": { "label": "Use Inline Terminal (recommended)", - "description": "Run commands in the Inline Terminal (chat) to bypass shell profiles/integration for faster, more reliable runs. When disabled Roo uses the VS Code terminal with your shell profile, prompts, and plugins. <0>Learn more" + "description": "Run commands in the Inline Terminal (chat) to bypass shell profiles/integration for faster, more reliable runs. When disabled Joe uses the VS Code terminal with your shell profile, prompts, and plugins. <0>Learn more" }, "commandDelay": { "label": "Terminal command delay", @@ -806,7 +806,7 @@ "advanced": { "diff": { "label": "Enable editing through diffs", - "description": "When enabled, Roo will be able to edit files more quickly and will automatically reject truncated full-file writes", + "description": "When enabled, Joe will be able to edit files more quickly and will automatically reject truncated full-file writes", "strategy": { "label": "Diff strategy", "options": { @@ -823,7 +823,7 @@ }, "todoList": { "label": "Enable todo list tool", - "description": "When enabled, Roo can create and manage todo lists to track task progress. This helps organize complex tasks into manageable steps." + "description": "When enabled, Joe can create and manage todo lists to track task progress. This helps organize complex tasks into manageable steps." } }, "experimental": { @@ -833,15 +833,15 @@ }, "INSERT_BLOCK": { "name": "Use experimental insert content tool", - "description": "Enable the experimental insert content tool, allowing Roo to insert content at specific line numbers without needing to create a diff." + "description": "Enable the experimental insert content tool, allowing Joe to insert content at specific line numbers without needing to create a diff." }, "CONCURRENT_FILE_READS": { "name": "Enable concurrent file reads", - "description": "When enabled, Roo can read multiple files in a single request. When disabled, Roo must read files one at a time. Disabling this can help when working with less capable models or when you want more control over file access." + "description": "When enabled, Joe can read multiple files in a single request. When disabled, Joe must read files one at a time. Disabling this can help when working with less capable models or when you want more control over file access." }, "MULTI_SEARCH_AND_REPLACE": { "name": "Use experimental multi block diff tool", - "description": "When enabled, Roo will use multi block diff tool. This will try to update multiple code blocks in the file in one request." + "description": "When enabled, Joe will use multi block diff tool. This will try to update multiple code blocks in the file in one request." }, "MARKETPLACE": { "name": "Enable Marketplace", @@ -849,7 +849,7 @@ }, "PREVENT_FOCUS_DISRUPTION": { "name": "Background editing", - "description": "Prevent editor focus disruption when enabled. File edits happen in the background without opening diff views or stealing focus. You can continue working uninterrupted while Roo makes changes. Files can be opened without focus to capture diagnostics or kept closed entirely." + "description": "Prevent editor focus disruption when enabled. File edits happen in the background without opening diff views or stealing focus. You can continue working uninterrupted while Joe makes changes. Files can be opened without focus to capture diagnostics or kept closed entirely." }, "ASSISTANT_MESSAGE_PARSER": { "name": "Use new message parser", @@ -861,7 +861,7 @@ }, "IMAGE_GENERATION": { "name": "Enable AI image generation", - "description": "When enabled, Roo can generate images from text prompts using image generation models.", + "description": "When enabled, Joe can generate images from text prompts using image generation models.", "providerLabel": "Provider", "providerDescription": "Select which provider to use for image generation.", "openRouterApiKeyLabel": "OpenRouter API Key", @@ -874,11 +874,11 @@ }, "RUN_SLASH_COMMAND": { "name": "Enable model-initiated slash commands", - "description": "When enabled, Roo can run your slash commands to execute workflows." + "description": "When enabled, Joe can run your slash commands to execute workflows." }, "CUSTOM_TOOLS": { "name": "Enable custom tools", - "description": "When enabled, Roo can load and use custom TypeScript/JavaScript tools from your project's .roo/tools directory or ~/.roo/tools for global tools. Note: these tools will automatically be auto-approved.", + "description": "When enabled, Joe can load and use custom TypeScript/JavaScript tools from your project's .roo/tools directory or ~/.roo/tools for global tools. Note: these tools will automatically be auto-approved.", "toolsHeader": "Available Custom Tools", "noTools": "No custom tools loaded. Add .ts or .js files to your project's .roo/tools directory or ~/.roo/tools for global tools.", "refreshButton": "Refresh", @@ -890,7 +890,7 @@ }, "promptCaching": { "label": "Disable prompt caching", - "description": "When checked, Roo will not use prompt caching for this model." + "description": "When checked, Joe will not use prompt caching for this model." }, "temperature": { "useCustom": "Use custom temperature", @@ -920,7 +920,7 @@ } }, "modelPicker": { - "automaticFetch": "The extension automatically fetches the latest list of models available on {{serviceName}}. If you're unsure which model to choose, Roo Code works best with {{defaultModelId}}. You can also try searching \"free\" for no-cost options currently available.", + "automaticFetch": "The extension automatically fetches the latest list of models available on {{serviceName}}. If you're unsure which model to choose, Joe Code works best with {{defaultModelId}}. You can also try searching \"free\" for no-cost options currently available.", "label": "Model", "searchPlaceholder": "Search", "noMatchFound": "No match found", @@ -930,7 +930,7 @@ "footer": { "telemetry": { "label": "Allow anonymous error and usage reporting", - "description": "Help improve Roo Code by sending anonymous usage data and error reports. This telemetry does not collect code, prompts or personal information. See our privacy policy for more details." + "description": "Help improve Joe Code by sending anonymous usage data and error reports. This telemetry does not collect code, prompts or personal information. See our privacy policy for more details." }, "settings": { "import": "Import", diff --git a/webview-ui/src/i18n/locales/en/welcome.json b/webview-ui/src/i18n/locales/en/welcome.json index 2fec3e2c121..fa01dcafe17 100644 --- a/webview-ui/src/i18n/locales/en/welcome.json +++ b/webview-ui/src/i18n/locales/en/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Welcome to Roo Code!", - "introduction": "With a range of built-in and extensible Modes, Roo Code lets you plan, architect, code, debug and boost your productivity like never before.", - "accountMention": "To get started, create your Roo Code Cloud account. Get powerful models, web control, analytics, support and more.", + "greeting": "Welcome to Joe Code!", + "introduction": "With a range of built-in and extensible Modes, Joe Code lets you plan, architect, code, debug and boost your productivity like never before.", + "accountMention": "To get started, create your Joe Code Cloud account. Get powerful models, web control, analytics, support and more.", "getStarted": "Create Roo Account", "noAccount": "or use without an account" }, "providerSignup": { "heading": "Choose your provider", "chooseProvider": "Roo needs an LLM provider to work. Choose one to get started, you can add more later.", - "rooCloudProvider": "Roo Code Router", - "rooCloudDescription": "The easiest way to start is with the Roo Code Router: a curated mix of free and paid models at a low cost.", + "rooCloudProvider": "Joe Code Router", + "rooCloudDescription": "The easiest way to start is with the Joe Code Router: a curated mix of free and paid models at a low cost.", "learnMore": "Learn more", "useAnotherProvider": "3rd-party Provider", "useAnotherProviderDescription": "Enter an API key and get going.", "noApiKeys": "Don't want to deal with API keys and separate accounts?", - "backToRoo": "Go with the Roo Code Router.", + "backToRoo": "Go with the Joe Code Router.", "goBack": "Back", "finish": "Finish" }, "waitingForCloud": { - "heading": "Logging into Roo Code Cloud...", - "description": "We'll take you to your browser to sign up for Roo Code Cloud. We'll then bring you back here to finish.", + "heading": "Logging into Joe Code Cloud...", + "description": "We'll take you to your browser to sign up for Joe Code Cloud. We'll then bring you back here to finish.", "noPrompt": "If you don't get prompted to open a URL, click here.", "havingTrouble": "If you've completed sign up but are having trouble, click here.", "pasteUrl": "Paste the callback URL shown in your browser:", "docsLink": "Not working? Check the docs.", - "invalidURL": "That doesn't look like a valid callback URL. Please copy what Roo Code Cloud is showing in your browser.", + "invalidURL": "That doesn't look like a valid callback URL. Please copy what Joe Code Cloud is showing in your browser.", "goBack": "Go back" }, "startRouter": "We recommend using an LLM Router:", "startCustom": "Or you can bring your provider API key:", "telemetry": { - "helpImprove": "Help Improve Roo Code", - "helpImproveMessage": "Roo Code collects error and usage data to help us fix bugs and improve the extension. This telemetry does not collect code, prompts or personal information. You can turn this off in settings." + "helpImprove": "Help Improve Joe Code", + "helpImproveMessage": "Joe Code collects error and usage data to help us fix bugs and improve the extension. This telemetry does not collect code, prompts or personal information. You can turn this off in settings." }, "importSettings": "Import Settings" } diff --git a/webview-ui/src/i18n/locales/en/worktrees.json b/webview-ui/src/i18n/locales/en/worktrees.json index a9c901ede01..641d1bda084 100644 --- a/webview-ui/src/i18n/locales/en/worktrees.json +++ b/webview-ui/src/i18n/locales/en/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Done", - "description": "Git worktrees are great for agentic coding, because they allow you to work on multiple branches of a repo at the same time, by keeping them in different directories. Each worktree gets its own VS Code window with Roo Code.", + "description": "Git worktrees are great for agentic coding, because they allow you to work on multiple branches of a repo at the same time, by keeping them in different directories. Each worktree gets its own VS Code window with Joe Code.", "notGitRepo": "This workspace is not a Git repository. Open a workspace with a Git repository to set up worktrees.", "multiRootNotSupported": "Worktrees are not supported in multi-root workspaces. Please open a single folder to use worktrees.", diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 1b2bd24a55d..9d64edd2eb6 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Bienvenido a Roo Code", + "greeting": "Bienvenido a Joe Code", "task": { "title": "Tarea", "expand": "Expandir tarea", @@ -21,7 +21,7 @@ "sharePublicly": "Compartir públicamente", "sharePubliclyDescription": "Cualquiera con el enlace puede acceder", "connectToCloud": "Conectar al Cloud", - "connectToCloudDescription": "Inicia sesión en Roo Code Cloud para compartir tareas", + "connectToCloudDescription": "Inicia sesión en Joe Code Cloud para compartir tareas", "sharingDisabledByOrganization": "Compartir deshabilitado por la organización", "shareSuccessOrganization": "Enlace de organización copiado al portapapeles", "shareSuccessPublic": "Enlace público copiado al portapapeles", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Agregar mensaje a la cola (se enviará después de que termine la tarea actual)", "scrollToBottom": "Desplazarse al final del chat", - "about": "Roo Code es todo un equipo de desarrollo de IA en tu editor.", + "about": "Joe Code es todo un equipo de desarrollo de IA en tu editor.", "docs": "Consulta nuestra documentación para saber más.", "onboarding": "Tu lista de tareas en este espacio de trabajo está vacía.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Error del servidor del proveedor. Algo está mal en el lado del proveedor, no hay nada mal con tu solicitud.", "docs": "Documentación", "goToSettings": "Configuración", - "unknown": "Error API desconocido. Por favor contacta al soporte de Roo Code.", + "unknown": "Error API desconocido. Por favor contacta al soporte de Joe Code.", "connection": "Error de conexión. Asegúrate de tener una conexión a Internet funcional.", "claudeCodeNotAuthenticated": "Debes iniciar sesión para usar Claude Code. Ve a Configuración y haz clic en \"Iniciar sesión en Claude Code\" para autenticarte." } @@ -337,20 +337,20 @@ "timerPrefix": "Aprobación automática habilitada. Seleccionando en {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} publicado", - "support": "Por favor, apoya a Roo Code dándonos una estrella en GitHub.", + "title": "Joe Code {{version}} publicado", + "support": "Por favor, apoya a Joe Code dándonos una estrella en GitHub.", "stealthModel": { - "feature": "Modelo stealth GRATUITO por tiempo limitado - Code Supernova: ¡Ahora actualizado con una ventana de contexto de 1M tokens! Un modelo de codificación agéntica versátil que soporta entradas de imágenes, accesible a través de Roo Code Cloud.", + "feature": "Modelo stealth GRATUITO por tiempo limitado - Code Supernova: ¡Ahora actualizado con una ventana de contexto de 1M tokens! Un modelo de codificación agéntica versátil que soporta entradas de imágenes, accesible a través de Joe Code Cloud.", "note": "(Nota: los prompts y completaciones son registrados por el creador del modelo y utilizados para mejorarlo)", - "connectButton": "Conectar a Roo Code Cloud", - "selectModel": "Selecciona roo/code-supernova del proveedor Roo Code Cloud en Configuración para comenzar.", + "connectButton": "Conectar a Joe Code Cloud", + "selectModel": "Selecciona roo/code-supernova del proveedor Joe Code Cloud en Configuración para comenzar.", "goToSettingsButton": "Ir a Configuración" }, "release": { "heading": "Qué hay de nuevo:", "geminiPro": "Soporte para Gemini 3.1 Pro: Se añadió soporte para el modelo Gemini 3.1 Pro y se estableció como modelo Gemini predeterminado para un mejor rendimiento.", "cliNdjson": "Protocolo NDJSON del CLI: Nuevo protocolo NDJSON por stdin, subcomandos de listado y comando de ejecución modularizado para flujos de trabajo CLI más flexibles.", - "cliRelease": "CLI v0.1.0: El CLI de Roo Code alcanza su primera versión oficial con una interfaz de comandos estable." + "cliRelease": "CLI v0.1.0: El CLI de Joe Code alcanza su primera versión oficial con una interfaz de comandos estable." }, "cloudAgents": { "heading": "Novedades en la Nube:", @@ -375,7 +375,7 @@ "profileViolationWarning": "El perfil actual no es compatible con la configuración de tu organización", "shellIntegration": { "title": "Advertencia de ejecución de comandos", - "description": "Tu comando se está ejecutando sin la integración de shell de terminal de VSCode. Para suprimir esta advertencia, puedes desactivar la integración de shell en la sección Terminal de la configuración de Roo Code o solucionar problemas de integración de terminal de VSCode usando el enlace de abajo.", + "description": "Tu comando se está ejecutando sin la integración de shell de terminal de VSCode. Para suprimir esta advertencia, puedes desactivar la integración de shell en la sección Terminal de la configuración de Joe Code o solucionar problemas de integración de terminal de VSCode usando el enlace de abajo.", "troubleshooting": "Haz clic aquí para ver la documentación de integración de shell." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Versión {{version}} - Haz clic para ver las notas de la versión" }, "rooCloudCTA": { - "title": "¡Roo Code Cloud está evolucionando!", + "title": "¡Joe Code Cloud está evolucionando!", "description": "Ejecuta agentes remotos en la nube, accede a tus tareas desde cualquier lugar, colabora con otros y mucho más.", "joinWaitlist": "Regístrate para recibir las últimas actualizaciones." }, diff --git a/webview-ui/src/i18n/locales/es/cloud.json b/webview-ui/src/i18n/locales/es/cloud.json index eb0cddc8b98..a1c58e77b50 100644 --- a/webview-ui/src/i18n/locales/es/cloud.json +++ b/webview-ui/src/i18n/locales/es/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Foto de perfil", "logOut": "Cerrar sesión", "testApiAuthentication": "Probar autenticación de API", - "signIn": "Conectar a Roo Code Cloud", + "signIn": "Conectar a Joe Code Cloud", "connect": "Empezar", - "cloudBenefitsTitle": "Prueba Roo Code Cloud", + "cloudBenefitsTitle": "Prueba Joe Code Cloud", "cloudBenefitProvider": "Accede a modelos gratuitos y de pago que funcionan genial con Roo", "cloudBenefitCloudAgents": "Da tareas a agentes autónomos en la nube", "cloudBenefitTriggers": "Obtén revisiones de código en Github, inicia tareas desde Slack y más", "cloudBenefitWalkaway": "Sigue y controla tareas desde cualquier lugar (incluido tu teléfono)", "cloudBenefitHistory": "Accede a tu historial de tareas desde cualquier lugar y compártelas con otros", "cloudBenefitMetrics": "Obtén una visión holística de tu consumo de tokens", - "visitCloudWebsite": "Visitar Roo Code Cloud", + "visitCloudWebsite": "Visitar Joe Code Cloud", "taskSync": "Sincronización de tareas", - "taskSyncDescription": "Sincroniza tus tareas para verlas y compartirlas en Roo Code Cloud", + "taskSyncDescription": "Sincroniza tus tareas para verlas y compartirlas en Joe Code Cloud", "taskSyncManagedByOrganization": "La sincronización de tareas es gestionada por tu organización", "usageMetricsAlwaysReported": "La información de uso del modelo siempre se reporta cuando se ha iniciado sesión", "authWaiting": "Esperando que se complete la autenticación...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Copia la URL de redirect desde tu navegador y pégala aquí:", "startOver": "Empezar de nuevo", "personalAccount": "Cuenta Personal", - "switchAccount": "Cambiar Cuenta de Roo Code Cloud", + "switchAccount": "Cambiar Cuenta de Joe Code Cloud", "createTeamAccount": "Crear Cuenta de Equipo", - "cloudUrlPillLabel": "URL de Roo Code Cloud", + "cloudUrlPillLabel": "URL de Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "¿Dándole a Roo un poco de independencia? Contrólalo desde cualquier lugar con Roo Code Cloud. Saber más.", + "autoApprovePowerUser": "¿Dándole a Roo un poco de independencia? Contrólalo desde cualquier lugar con Joe Code Cloud. Saber más.", "longRunningTask": "Esto podría tardar un poco. Continúa desde cualquier lugar con la Nube.", - "taskList": "¿Disfrutando de Roo? Echa un vistazo a Roo Code Cloud: sigue y controla tus tareas desde cualquier lugar, ejecuta agentes de la Nube autónomos, obtén estadísticas de uso y más. Aprende más." + "taskList": "¿Disfrutando de Roo? Echa un vistazo a Joe Code Cloud: sigue y controla tus tareas desde cualquier lugar, ejecuta agentes de la Nube autónomos, obtén estadísticas de uso y más. Aprende más." } } diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index 6595c4f9079..4da1494a3be 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Experimental", "language": "Idioma", - "about": "Acerca de Roo Code", + "about": "Acerca de Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "¿Necesitas hablar con nosotros? Escribe" }, - "community": "¿Quieres consejos o simplemente pasar el rato con otros usuarios de Roo Code? Únete a reddit.com/r/RooCode o discord.gg/roocode", + "community": "¿Quieres consejos o simplemente pasar el rato con otros usuarios de Joe Code? Únete a reddit.com/r/JoeCode o discord.gg/joecode", "contactAndCommunity": "Contacto y Comunidad", "manageSettings": "Gestionar Configuración", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "El modelo borrador debe ser de la misma familia de modelos para que la decodificación especulativa funcione correctamente.", "selectDraftModel": "Seleccionar modelo borrador", "noModelsFound": "No se encontraron modelos borrador. Asegúrese de que LM Studio esté ejecutándose con el Modo Servidor habilitado.", - "description": "LM Studio le permite ejecutar modelos localmente en su computadora. Para obtener instrucciones sobre cómo comenzar, consulte su guía de inicio rápido. También necesitará iniciar la función de servidor local de LM Studio para usarlo con esta extensión. Nota: Roo Code utiliza prompts complejos y funciona mejor con modelos Claude. Los modelos menos capaces pueden no funcionar como se espera." + "description": "LM Studio le permite ejecutar modelos localmente en su computadora. Para obtener instrucciones sobre cómo comenzar, consulte su guía de inicio rápido. También necesitará iniciar la función de servidor local de LM Studio para usarlo con esta extensión. Nota: Joe Code utiliza prompts complejos y funciona mejor con modelos Claude. Los modelos menos capaces pueden no funcionar como se espera." }, "ollama": { "baseUrl": "URL base (opcional)", @@ -466,11 +466,11 @@ "numCtx": "Tamaño de la ventana de contexto (num_ctx)", "numCtxHelp": "Sobrescribe el tamaño de la ventana de contexto predeterminado del modelo. Déjelo vacío para usar la configuración del Modelfile del modelo. El valor mínimo es 128.", "description": "Ollama le permite ejecutar modelos localmente en su computadora. Para obtener instrucciones sobre cómo comenzar, consulte la guía de inicio rápido.", - "warning": "Nota: Roo Code utiliza prompts complejos y funciona mejor con modelos Claude. Los modelos menos capaces pueden no funcionar como se espera." + "warning": "Nota: Joe Code utiliza prompts complejos y funciona mejor con modelos Claude. Los modelos menos capaces pueden no funcionar como se espera." }, "roo": { - "authenticatedMessage": "Autenticado de forma segura a través de tu cuenta de Roo Code Cloud.", - "connectButton": "Conectar a Roo Code Cloud" + "authenticatedMessage": "Autenticado de forma segura a través de tu cuenta de Joe Code Cloud.", + "connectButton": "Conectar a Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Configure las capacidades y precios para su modelo personalizado compatible con OpenAI. Tenga cuidado al especificar las capacidades del modelo, ya que pueden afectar cómo funciona Roo Code.", + "capabilities": "Configure las capacidades y precios para su modelo personalizado compatible con OpenAI. Tenga cuidado al especificar las capacidades del modelo, ya que pueden afectar cómo funciona Joe Code.", "maxTokens": { "label": "Tokens máximos de salida", "description": "Número máximo de tokens que el modelo puede generar en una respuesta. (Especifique -1 para permitir que el servidor establezca los tokens máximos.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "La extensión obtiene automáticamente la lista más reciente de modelos disponibles en {{serviceName}}. Si no está seguro de qué modelo elegir, Roo Code funciona mejor con {{defaultModelId}}. También puede buscar \"free\" para opciones sin costo actualmente disponibles.", + "automaticFetch": "La extensión obtiene automáticamente la lista más reciente de modelos disponibles en {{serviceName}}. Si no está seguro de qué modelo elegir, Joe Code funciona mejor con {{defaultModelId}}. También puede buscar \"free\" para opciones sin costo actualmente disponibles.", "label": "Modelo", "searchPlaceholder": "Buscar", "noMatchFound": "No se encontraron coincidencias", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Permitir informes anónimos de errores y uso", - "description": "Ayuda a mejorar Roo Code enviando datos de uso anónimos e informes de errores. Esta telemetría no recopila código, prompts o información personal. Consulta nuestra política de privacidad para más detalles." + "description": "Ayuda a mejorar Joe Code enviando datos de uso anónimos e informes de errores. Esta telemetría no recopila código, prompts o información personal. Consulta nuestra política de privacidad para más detalles." }, "settings": { "import": "Importar", diff --git a/webview-ui/src/i18n/locales/es/welcome.json b/webview-ui/src/i18n/locales/es/welcome.json index 259cb7c3e79..6774a445bf8 100644 --- a/webview-ui/src/i18n/locales/es/welcome.json +++ b/webview-ui/src/i18n/locales/es/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "¡Bienvenido a Roo Code!", - "introduction": "Con una variedad de Modos integrados y extensibles, Roo Code te permite planificar, arquitectar, codificar, depurar y aumentar tu productividad como nunca antes.", - "accountMention": "Para comenzar, crea tu cuenta de Roo Code Cloud. Obtén modelos potentes, control web, análisis, soporte y más.", + "greeting": "¡Bienvenido a Joe Code!", + "introduction": "Con una variedad de Modos integrados y extensibles, Joe Code te permite planificar, arquitectar, codificar, depurar y aumentar tu productividad como nunca antes.", + "accountMention": "Para comenzar, crea tu cuenta de Joe Code Cloud. Obtén modelos potentes, control web, análisis, soporte y más.", "getStarted": "Crear cuenta de Roo", "noAccount": "o usar sin cuenta" }, "providerSignup": { "heading": "Elige tu proveedor", "chooseProvider": "Roo necesita un proveedor de LLM para funcionar. Elige uno para comenzar, puedes añadir más después.", - "rooCloudProvider": "Proveedor de Roo Code Cloud", - "rooCloudDescription": "La forma más sencilla de comenzar es con el Proveedor Roo Code Cloud: una mezcla seleccionada de modelos gratuitos y de pago a bajo costo.", + "rooCloudProvider": "Proveedor de Joe Code Cloud", + "rooCloudDescription": "La forma más sencilla de comenzar es con el Proveedor Joe Code Cloud: una mezcla seleccionada de modelos gratuitos y de pago a bajo costo.", "learnMore": "Más información", "useAnotherProvider": "Proveedor de terceros", "useAnotherProviderDescription": "Introduce una clave API y comienza.", "noApiKeys": "¿No quieres lidiar con claves API y cuentas separadas?", - "backToRoo": "Ve con el Proveedor de Roo Code Cloud.", + "backToRoo": "Ve con el Proveedor de Joe Code Cloud.", "goBack": "Atrás", "finish": "Finalizar" }, "waitingForCloud": { - "heading": "Iniciando sesión en Roo Code Cloud...", - "description": "Te llevaremos a tu navegador para que te registres en Roo Code Cloud. Luego te traeremos aquí para terminar.", + "heading": "Iniciando sesión en Joe Code Cloud...", + "description": "Te llevaremos a tu navegador para que te registres en Joe Code Cloud. Luego te traeremos aquí para terminar.", "noPrompt": "Si no se te pide que abras una URL, haz clic aquí.", "havingTrouble": "Si completaste el registro pero tienes problemas, haz clic aquí.", "pasteUrl": "Pega la URL de respuesta de tu navegador:", "docsLink": "¿No funciona? Consulta la documentación.", - "invalidURL": "Eso no parece ser una URL de respuesta válida. Por favor copia lo que Roo Code Cloud está mostrando en tu navegador.", + "invalidURL": "Eso no parece ser una URL de respuesta válida. Por favor copia lo que Joe Code Cloud está mostrando en tu navegador.", "goBack": "Atrás" }, "startRouter": "Recomendamos usar un router LLM:", "startCustom": "O puedes traer tu propia clave API:", "telemetry": { - "helpImprove": "Ayuda a mejorar Roo Code", - "helpImproveMessage": "Roo Code recopila datos de errores y uso para ayudarnos a corregir errores y mejorar la extensión. Esta telemetría no recopila código, prompts o información personal. Puedes desactivar esto en la configuración." + "helpImprove": "Ayuda a mejorar Joe Code", + "helpImproveMessage": "Joe Code recopila datos de errores y uso para ayudarnos a corregir errores y mejorar la extensión. Esta telemetría no recopila código, prompts o información personal. Puedes desactivar esto en la configuración." }, "importSettings": "Importar configuración" } diff --git a/webview-ui/src/i18n/locales/es/worktrees.json b/webview-ui/src/i18n/locales/es/worktrees.json index f78203d06db..bd9ae69c164 100644 --- a/webview-ui/src/i18n/locales/es/worktrees.json +++ b/webview-ui/src/i18n/locales/es/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Listo", - "description": "Los worktrees de Git te permiten trabajar en varias ramas a la vez en directorios separados. Cada worktree tiene su propia ventana de VS Code con Roo Code.", + "description": "Los worktrees de Git te permiten trabajar en varias ramas a la vez en directorios separados. Cada worktree tiene su propia ventana de VS Code con Joe Code.", "notGitRepo": "Este espacio de trabajo no es un repositorio Git. Los worktrees requieren un repositorio Git para funcionar.", "multiRootNotSupported": "Los worktrees no son compatibles con espacios de trabajo de múltiples raíces. Abre una sola carpeta para usar worktrees.", diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index adb77f40b9a..925bf7156ee 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Bienvenue sur Roo Code", + "greeting": "Bienvenue sur Joe Code", "task": { "title": "Tâche", "expand": "Développer la tâche", @@ -21,7 +21,7 @@ "sharePublicly": "Partager publiquement", "sharePubliclyDescription": "Toute personne avec le lien peut accéder", "connectToCloud": "Se connecter au Cloud", - "connectToCloudDescription": "Connecte-toi à Roo Code Cloud pour partager des tâches", + "connectToCloudDescription": "Connecte-toi à Joe Code Cloud pour partager des tâches", "sharingDisabledByOrganization": "Partage désactivé par l'organisation", "shareSuccessOrganization": "Lien d'organisation copié dans le presse-papiers", "shareSuccessPublic": "Lien public copié dans le presse-papiers", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Ajouter le message à la file d'attente (sera envoyé après la fin de la tâche en cours)", "scrollToBottom": "Défiler jusqu'au bas du chat", - "about": "Roo Code est une équipe complète de développeurs IA dans votre éditeur.", + "about": "Joe Code est une équipe complète de développeurs IA dans votre éditeur.", "docs": "Consultez notre documentation pour en savoir plus.", "onboarding": "Votre liste de tâches dans cet espace de travail est vide.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Erreur du serveur du fournisseur. Quelque chose ne va pas du côté du fournisseur, il n'y a rien de mal avec votre demande.", "docs": "Documentation", "goToSettings": "Paramètres", - "unknown": "Erreur API inconnue. Veuillez contacter le support Roo Code.", + "unknown": "Erreur API inconnue. Veuillez contacter le support Joe Code.", "connection": "Erreur de connexion. Assurez-vous que vous avez une connexion Internet fonctionnelle.", "claudeCodeNotAuthenticated": "Vous devez vous connecter pour utiliser Claude Code. Allez dans les Paramètres et cliquez sur \"Se connecter à Claude Code\" pour vous authentifier." } @@ -337,20 +337,20 @@ "timerPrefix": "Approbation automatique activée. Sélection dans {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} est sortie", - "support": "Soutiens Roo Code en nous donnant une étoile sur GitHub.", + "title": "Joe Code {{version}} est sortie", + "support": "Soutiens Joe Code en nous donnant une étoile sur GitHub.", "stealthModel": { - "feature": "Modèle stealth GRATUIT pour une durée limitée - Code Supernova : Maintenant amélioré avec une fenêtre de contexte de 1M tokens ! Un modèle de codage agentique polyvalent qui prend en charge les entrées d'images, accessible via Roo Code Cloud.", + "feature": "Modèle stealth GRATUIT pour une durée limitée - Code Supernova : Maintenant amélioré avec une fenêtre de contexte de 1M tokens ! Un modèle de codage agentique polyvalent qui prend en charge les entrées d'images, accessible via Joe Code Cloud.", "note": "(Note : les prompts et complétions sont enregistrés par le créateur du modèle et utilisés pour l'améliorer)", - "connectButton": "Se connecter à Roo Code Cloud", - "selectModel": "Sélectionnez roo/code-supernova du fournisseur Roo Code Cloud dans Paramètres pour commencer.", + "connectButton": "Se connecter à Joe Code Cloud", + "selectModel": "Sélectionnez roo/code-supernova du fournisseur Joe Code Cloud dans Paramètres pour commencer.", "goToSettingsButton": "Aller aux Paramètres" }, "release": { "heading": "Quoi de neuf :", "geminiPro": "Support de Gemini 3.1 Pro : Le modèle Gemini 3.1 Pro a été ajouté et défini comme modèle Gemini par défaut pour de meilleures performances.", "cliNdjson": "Protocole NDJSON du CLI : Nouveau protocole NDJSON via stdin, sous-commandes de liste et commande d'exécution modularisée pour des workflows CLI plus flexibles.", - "cliRelease": "CLI v0.1.0 : Le CLI de Roo Code atteint sa première version officielle avec une interface de commandes stable." + "cliRelease": "CLI v0.1.0 : Le CLI de Joe Code atteint sa première version officielle avec une interface de commandes stable." }, "cloudAgents": { "heading": "Nouveautés dans le Cloud :", @@ -375,7 +375,7 @@ "profileViolationWarning": "Le profil actuel n'est pas compatible avec les paramètres de votre organisation", "shellIntegration": { "title": "Avertissement d'exécution de commande", - "description": "Votre commande est exécutée sans l'intégration shell du terminal VSCode. Pour supprimer cet avertissement, vous pouvez désactiver l'intégration shell dans la section Terminal des paramètres de Roo Code ou résoudre les problèmes d'intégration du terminal VSCode en utilisant le lien ci-dessous.", + "description": "Votre commande est exécutée sans l'intégration shell du terminal VSCode. Pour supprimer cet avertissement, vous pouvez désactiver l'intégration shell dans la section Terminal des paramètres de Joe Code ou résoudre les problèmes d'intégration du terminal VSCode en utilisant le lien ci-dessous.", "troubleshooting": "Cliquez ici pour la documentation d'intégration shell." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Version {{version}} - Cliquez pour voir les notes de version" }, "rooCloudCTA": { - "title": "Roo Code Cloud évolue !", + "title": "Joe Code Cloud évolue !", "description": "Exécutez des agents distants dans le cloud, accédez à vos tâches de n'importe où, collaborez avec d'autres et bien plus encore.", "joinWaitlist": "Inscrivez-vous pour recevoir les dernières mises à jour." }, diff --git a/webview-ui/src/i18n/locales/fr/cloud.json b/webview-ui/src/i18n/locales/fr/cloud.json index ac8a8d15378..6e7f0538045 100644 --- a/webview-ui/src/i18n/locales/fr/cloud.json +++ b/webview-ui/src/i18n/locales/fr/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Photo de profil", "logOut": "Déconnexion", "testApiAuthentication": "Tester l'authentification API", - "signIn": "Se connecter à Roo Code Cloud", + "signIn": "Se connecter à Joe Code Cloud", "connect": "Commencer", - "cloudBenefitsTitle": "Essayez Roo Code Cloud", + "cloudBenefitsTitle": "Essayez Joe Code Cloud", "cloudBenefitProvider": "Accédez à des modèles gratuits et payants qui fonctionnent parfaitement avec Roo", "cloudBenefitCloudAgents": "Donnez des tâches à des agents Cloud autonomes", "cloudBenefitTriggers": "Obtenez des revues de code sur Github, lancez des tâches depuis Slack et plus encore", "cloudBenefitWalkaway": "Suivez et contrôlez les tâches de n'importe où (y compris votre téléphone)", "cloudBenefitHistory": "Accédez à votre historique de tâches de n'importe où et partagez-les avec d'autres", "cloudBenefitMetrics": "Obtenez une vue holistique de votre consommation de tokens", - "visitCloudWebsite": "Visiter Roo Code Cloud", + "visitCloudWebsite": "Visiter Joe Code Cloud", "taskSync": "Synchronisation des tâches", - "taskSyncDescription": "Synchronisez vos tâches pour les visualiser et les partager sur Roo Code Cloud", + "taskSyncDescription": "Synchronisez vos tâches pour les visualiser et les partager sur Joe Code Cloud", "taskSyncManagedByOrganization": "La synchronisation des tâches est gérée par votre organisation", "usageMetricsAlwaysReported": "Les informations d'utilisation du modèle sont toujours signalées lors de la connexion", "authWaiting": "En attente de la fin de l'authentification...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Copie l'URL de redirect depuis ton navigateur et colle-la ici :", "startOver": "Recommencer", "personalAccount": "Compte Personnel", - "switchAccount": "Changer de Compte Roo Code Cloud", + "switchAccount": "Changer de Compte Joe Code Cloud", "createTeamAccount": "Créer un Compte d'Équipe", - "cloudUrlPillLabel": "URL de Roo Code Cloud", + "cloudUrlPillLabel": "URL de Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Donner à Roo un peu d'indépendance ? Contrôlez-le de n'importe où avec Roo Code Cloud. En savoir plus.", + "autoApprovePowerUser": "Donner à Roo un peu d'indépendance ? Contrôlez-le de n'importe où avec Joe Code Cloud. En savoir plus.", "longRunningTask": "Cela peut prendre un certain temps. Continuez de n'importe où avec le Cloud.", - "taskList": "Vous appréciez Roo ? Découvrez Roo Code Cloud : suivez et contrôlez vos tâches de n'importe où, exécutez des agents Cloud autonomes, obtenez des statistiques d'utilisation et plus encore. En savoir plus." + "taskList": "Vous appréciez Roo ? Découvrez Joe Code Cloud : suivez et contrôlez vos tâches de n'importe où, exécutez des agents Cloud autonomes, obtenez des statistiques d'utilisation et plus encore. En savoir plus." } } diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index 56337bda14c..baaeec4e684 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Expérimental", "language": "Langue", - "about": "À propos de Roo Code", + "about": "À propos de Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Besoin de nous parler ? Écrivez" }, - "community": "Vous voulez des conseils ou simplement discuter avec d'autres utilisateurs de Roo Code ? Rejoignez reddit.com/r/RooCode ou discord.gg/roocode", + "community": "Vous voulez des conseils ou simplement discuter avec d'autres utilisateurs de Joe Code ? Rejoignez reddit.com/r/JoeCode ou discord.gg/joecode", "contactAndCommunity": "Contact et Communauté", "manageSettings": "Gérer les Paramètres", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Le modèle brouillon doit être de la même famille de modèles pour que le décodage spéculatif fonctionne correctement.", "selectDraftModel": "Sélectionner le modèle brouillon", "noModelsFound": "Aucun modèle brouillon trouvé. Veuillez vous assurer que LM Studio est en cours d'exécution avec le mode serveur activé.", - "description": "LM Studio vous permet d'exécuter des modèles localement sur votre ordinateur. Pour obtenir des instructions sur la mise en route, consultez leur guide de démarrage rapide. Vous devrez également démarrer la fonction serveur local de LM Studio pour l'utiliser avec cette extension. Remarque : Roo Code utilise des prompts complexes et fonctionne mieux avec les modèles Claude. Les modèles moins performants peuvent ne pas fonctionner comme prévu." + "description": "LM Studio vous permet d'exécuter des modèles localement sur votre ordinateur. Pour obtenir des instructions sur la mise en route, consultez leur guide de démarrage rapide. Vous devrez également démarrer la fonction serveur local de LM Studio pour l'utiliser avec cette extension. Remarque : Joe Code utilise des prompts complexes et fonctionne mieux avec les modèles Claude. Les modèles moins performants peuvent ne pas fonctionner comme prévu." }, "ollama": { "baseUrl": "URL de base (optionnel)", @@ -466,11 +466,11 @@ "numCtx": "Taille de la fenêtre de contexte (num_ctx)", "numCtxHelp": "Remplace la taille de la fenêtre de contexte par défaut du modèle. Laissez vide pour utiliser la configuration du Modelfile du modèle. La valeur minimale est 128.", "description": "Ollama vous permet d'exécuter des modèles localement sur votre ordinateur. Pour obtenir des instructions sur la mise en route, consultez le guide de démarrage rapide.", - "warning": "Remarque : Roo Code utilise des prompts complexes et fonctionne mieux avec les modèles Claude. Les modèles moins performants peuvent ne pas fonctionner comme prévu." + "warning": "Remarque : Joe Code utilise des prompts complexes et fonctionne mieux avec les modèles Claude. Les modèles moins performants peuvent ne pas fonctionner comme prévu." }, "roo": { - "authenticatedMessage": "Authentifié de manière sécurisée via ton compte Roo Code Cloud.", - "connectButton": "Se connecter à Roo Code Cloud" + "authenticatedMessage": "Authentifié de manière sécurisée via ton compte Joe Code Cloud.", + "connectButton": "Se connecter à Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Configurez les capacités et les prix pour votre modèle personnalisé compatible OpenAI. Soyez prudent lors de la spécification des capacités du modèle, car elles peuvent affecter le fonctionnement de Roo Code.", + "capabilities": "Configurez les capacités et les prix pour votre modèle personnalisé compatible OpenAI. Soyez prudent lors de la spécification des capacités du modèle, car elles peuvent affecter le fonctionnement de Joe Code.", "maxTokens": { "label": "Tokens de sortie maximum", "description": "Nombre maximum de tokens que le modèle peut générer dans une réponse. (Spécifiez -1 pour permettre au serveur de définir les tokens maximum.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "L'extension récupère automatiquement la liste la plus récente des modèles disponibles sur {{serviceName}}. Si vous ne savez pas quel modèle choisir, Roo Code fonctionne mieux avec {{defaultModelId}}. Vous pouvez également rechercher \"free\" pour les options gratuites actuellement disponibles.", + "automaticFetch": "L'extension récupère automatiquement la liste la plus récente des modèles disponibles sur {{serviceName}}. Si vous ne savez pas quel modèle choisir, Joe Code fonctionne mieux avec {{defaultModelId}}. Vous pouvez également rechercher \"free\" pour les options gratuites actuellement disponibles.", "label": "Modèle", "searchPlaceholder": "Rechercher", "noMatchFound": "Aucune correspondance trouvée", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Autoriser les rapports anonymes d'erreurs et d'utilisation", - "description": "Aidez à améliorer Roo Code en envoyant des données d'utilisation anonymes et des rapports d'erreurs. Cette télémétrie ne collecte pas de code, de prompts ou d'informations personnelles. Consultez notre politique de confidentialité pour plus de détails." + "description": "Aidez à améliorer Joe Code en envoyant des données d'utilisation anonymes et des rapports d'erreurs. Cette télémétrie ne collecte pas de code, de prompts ou d'informations personnelles. Consultez notre politique de confidentialité pour plus de détails." }, "settings": { "import": "Importer", diff --git a/webview-ui/src/i18n/locales/fr/welcome.json b/webview-ui/src/i18n/locales/fr/welcome.json index f69d21a5658..ddd09494924 100644 --- a/webview-ui/src/i18n/locales/fr/welcome.json +++ b/webview-ui/src/i18n/locales/fr/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Bienvenue sur Roo Code !", - "introduction": "Avec une gamme de Modes intégrés et extensibles, Roo Code te permet de planifier, architecturer, coder, déboguer et augmenter ta productivité comme jamais auparavant.", - "accountMention": "Pour commencer, crée ton compte Roo Code Cloud. Obtiens des modèles puissants, le contrôle web, les analyses, le support et bien plus encore.", + "greeting": "Bienvenue sur Joe Code !", + "introduction": "Avec une gamme de Modes intégrés et extensibles, Joe Code te permet de planifier, architecturer, coder, déboguer et augmenter ta productivité comme jamais auparavant.", + "accountMention": "Pour commencer, crée ton compte Joe Code Cloud. Obtiens des modèles puissants, le contrôle web, les analyses, le support et bien plus encore.", "getStarted": "Créer un compte Roo", "noAccount": "ou utiliser sans compte" }, "providerSignup": { "heading": "Choisis ton fournisseur", "chooseProvider": "Roo a besoin d'un fournisseur LLM pour fonctionner. Choisis-en un pour commencer, tu peux en ajouter d'autres plus tard.", - "rooCloudProvider": "Fournisseur Roo Code Cloud", - "rooCloudDescription": "Le moyen le plus simple de commencer est le Fournisseur Roo Code Cloud : un mélange sélectionné de modèles gratuits et payants à faible coût.", + "rooCloudProvider": "Fournisseur Joe Code Cloud", + "rooCloudDescription": "Le moyen le plus simple de commencer est le Fournisseur Joe Code Cloud : un mélange sélectionné de modèles gratuits et payants à faible coût.", "learnMore": "En savoir plus", "useAnotherProvider": "Fournisseur tiers", "useAnotherProviderDescription": "Entre une clé API et commence.", "noApiKeys": "Tu ne veux pas gérer les clés API et les comptes séparés?", - "backToRoo": "Opte pour le Fournisseur Roo Code Cloud.", + "backToRoo": "Opte pour le Fournisseur Joe Code Cloud.", "goBack": "Retour", "finish": "Terminer" }, "waitingForCloud": { - "heading": "Connexion à Roo Code Cloud...", + "heading": "Connexion à Joe Code Cloud...", "description": "Termine l'inscription dans ton navigateur et tu reviendras ici automatiquement.", "noPrompt": "Si tu n'es pas invité à ouvrir une URL, clique ici.", "havingTrouble": "Si tu as terminé l'inscription mais que tu rencontres des problèmes, clique ici.", "pasteUrl": "Colle l'URL de rappel depuis ton navigateur :", "docsLink": "Ça ne fonctionne pas? Consulte la documentation.", - "invalidURL": "Cela ne ressemble pas à une URL de rappel valide. Copie ce que Roo Code Cloud affiche dans ton navigateur.", + "invalidURL": "Cela ne ressemble pas à une URL de rappel valide. Copie ce que Joe Code Cloud affiche dans ton navigateur.", "goBack": "Retour" }, "startRouter": "Nous recommandons d'utiliser un routeur LLM :", "startCustom": "Ou tu peux apporter ta propre clé API :", "telemetry": { - "helpImprove": "Aide à améliorer Roo Code", - "helpImproveMessage": "Roo Code collecte des données d'erreurs et d'utilisation pour nous aider à corriger les bugs et améliorer l'extension. Cette télémétrie ne collecte pas de code, de prompts ou d'informations personnelles. Tu peux désactiver ceci dans les paramètres." + "helpImprove": "Aide à améliorer Joe Code", + "helpImproveMessage": "Joe Code collecte des données d'erreurs et d'utilisation pour nous aider à corriger les bugs et améliorer l'extension. Cette télémétrie ne collecte pas de code, de prompts ou d'informations personnelles. Tu peux désactiver ceci dans les paramètres." }, "importSettings": "Importer les paramètres" } diff --git a/webview-ui/src/i18n/locales/fr/worktrees.json b/webview-ui/src/i18n/locales/fr/worktrees.json index 2cc8bfca0dd..916912c62d6 100644 --- a/webview-ui/src/i18n/locales/fr/worktrees.json +++ b/webview-ui/src/i18n/locales/fr/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Terminé", - "description": "Les worktrees Git te permettent de travailler sur plusieurs branches en même temps dans des répertoires séparés. Chaque worktree a sa propre fenêtre VS Code avec Roo Code.", + "description": "Les worktrees Git te permettent de travailler sur plusieurs branches en même temps dans des répertoires séparés. Chaque worktree a sa propre fenêtre VS Code avec Joe Code.", "notGitRepo": "Cet espace de travail n'est pas un dépôt Git. Les worktrees nécessitent un dépôt Git pour fonctionner.", "multiRootNotSupported": "Les worktrees ne sont pas pris en charge dans les espaces de travail multi-racine. Ouvre un seul dossier pour utiliser les worktrees.", diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index b58481f9108..b8c91bb5842 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Roo Code में आपका स्वागत है", + "greeting": "Joe Code में आपका स्वागत है", "task": { "title": "कार्य", "expand": "कार्य विस्तृत करें", @@ -21,7 +21,7 @@ "sharePublicly": "सार्वजनिक रूप से साझा करें", "sharePubliclyDescription": "लिंक वाला कोई भी व्यक्ति पहुंच सकता है", "connectToCloud": "Cloud से कनेक्ट करें", - "connectToCloudDescription": "कार्य साझा करने के लिए Roo Code Cloud में साइन इन करें", + "connectToCloudDescription": "कार्य साझा करने के लिए Joe Code Cloud में साइन इन करें", "sharingDisabledByOrganization": "संगठन द्वारा साझाकरण अक्षम किया गया", "shareSuccessOrganization": "संगठन लिंक क्लिपबोर्ड में कॉपी किया गया", "shareSuccessPublic": "सार्वजनिक लिंक क्लिपबोर्ड में कॉपी किया गया", @@ -97,7 +97,7 @@ }, "enqueueMessage": "संदेश को कतार में जोड़ें (वर्तमान कार्य पूरा होने के बाद भेजा जाएगा)", "scrollToBottom": "चैट के निचले हिस्से तक स्क्रॉल करें", - "about": "Roo Code आपके संपादक में एक पूरी AI देव टीम है।", + "about": "Joe Code आपके संपादक में एक पूरी AI देव टीम है।", "docs": "और जानने के लिए हमारे दस्तावेज़ देखें।", "onboarding": "इस कार्यक्षेत्र में आपकी कार्य सूची खाली है।", "rooTips": { @@ -161,7 +161,7 @@ "500": "प्रदाता सर्वर त्रुटि। प्रदाता की ओर से कुछ गलत है, आपके अनुरोध में कुछ गलत नहीं है।", "docs": "डॉक्स", "goToSettings": "सेटिंग्स", - "unknown": "अज्ञात API त्रुटि। कृपया Roo Code सहायता से संपर्क करें।", + "unknown": "अज्ञात API त्रुटि। कृपया Joe Code सहायता से संपर्क करें।", "connection": "कनेक्शन त्रुटि। सुनिश्चित करें कि आपके पास कार्यशील इंटरनेट कनेक्शन है।", "claudeCodeNotAuthenticated": "Claude Code का उपयोग करने के लिए आपको साइन इन करना होगा। सेटिंग्स में जाएं और प्रमाणित करने के लिए \"Claude Code में साइन इन करें\" पर क्लिक करें।" } @@ -337,20 +337,20 @@ "timerPrefix": "ऑटो-अनुमोदन सक्षम है। {{seconds}}s में चयन किया जा रहा है…" }, "announcement": { - "title": "Roo Code {{version}} रिलीज़ हुआ", - "support": "कृपया GitHub पर हमें स्टार देकर Roo Code का समर्थन करें।", + "title": "Joe Code {{version}} रिलीज़ हुआ", + "support": "कृपया GitHub पर हमें स्टार देकर Joe Code का समर्थन करें।", "stealthModel": { - "feature": "सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल - Code Supernova: अब 1M Token संदर्भ विंडो के साथ अपग्रेड हुआ! एक बहुमुखी एजेंटिक कोडिंग मॉडल जो छवि इनपुट का समर्थन करता है, Roo Code Cloud के माध्यम से उपलब्ध।", + "feature": "सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल - Code Supernova: अब 1M Token संदर्भ विंडो के साथ अपग्रेड हुआ! एक बहुमुखी एजेंटिक कोडिंग मॉडल जो छवि इनपुट का समर्थन करता है, Joe Code Cloud के माध्यम से उपलब्ध।", "note": "(नोट: प्रॉम्प्ट्स और कम्प्लीशन्स मॉडल निर्माता द्वारा लॉग किए जाते हैं और मॉडल को बेहतर बनाने के लिए उपयोग किए जाते हैं)", - "connectButton": "Roo Code Cloud से कनेक्ट करें", - "selectModel": "आरंभ करने के लिए सेटिंग्स में Roo Code Cloud प्रोवाइडर से roo/code-supernova चुनें।", + "connectButton": "Joe Code Cloud से कनेक्ट करें", + "selectModel": "आरंभ करने के लिए सेटिंग्स में Joe Code Cloud प्रोवाइडर से roo/code-supernova चुनें।", "goToSettingsButton": "सेटिंग्स पर जाएं" }, "release": { "heading": "नया क्या है:", "geminiPro": "Gemini 3.1 Pro सपोर्ट: Gemini 3.1 Pro मॉडल का सपोर्ट जोड़ा गया और बेहतर प्रदर्शन के लिए इसे डिफ़ॉल्ट Gemini मॉडल के रूप में सेट किया गया।", "cliNdjson": "CLI NDJSON प्रोटोकॉल: नया NDJSON stdin प्रोटोकॉल, list सबकमांड, और अधिक लचीले CLI वर्कफ़्लो के लिए मॉड्यूलर run कमांड।", - "cliRelease": "CLI v0.1.0: Roo Code CLI एक स्थिर कमांड इंटरफ़ेस के साथ अपनी पहली आधिकारिक रिलीज़ तक पहुँचा।" + "cliRelease": "CLI v0.1.0: Joe Code CLI एक स्थिर कमांड इंटरफ़ेस के साथ अपनी पहली आधिकारिक रिलीज़ तक पहुँचा।" }, "cloudAgents": { "heading": "क्लाउड में नया:", @@ -375,7 +375,7 @@ "profileViolationWarning": "वर्तमान प्रोफ़ाइल आपके संगठन की सेटिंग्स के साथ संगत नहीं है", "shellIntegration": { "title": "कमांड निष्पादन चेतावनी", - "description": "आपका कमांड VSCode टर्मिनल शेल इंटीग्रेशन के बिना निष्पादित हो रहा है। इस चेतावनी को दबाने के लिए आप Roo Code सेटिंग्स के Terminal अनुभाग में शेल इंटीग्रेशन को अक्षम कर सकते हैं या नीचे दिए गए लिंक का उपयोग करके VSCode टर्मिनल इंटीग्रेशन की समस्या का समाधान कर सकते हैं।", + "description": "आपका कमांड VSCode टर्मिनल शेल इंटीग्रेशन के बिना निष्पादित हो रहा है। इस चेतावनी को दबाने के लिए आप Joe Code सेटिंग्स के Terminal अनुभाग में शेल इंटीग्रेशन को अक्षम कर सकते हैं या नीचे दिए गए लिंक का उपयोग करके VSCode टर्मिनल इंटीग्रेशन की समस्या का समाधान कर सकते हैं।", "troubleshooting": "शेल इंटीग्रेशन दस्तावेज़ के लिए यहां क्लिक करें।" }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "संस्करण {{version}} - रिलीज़ नोट्स देखने के लिए क्लिक करें" }, "rooCloudCTA": { - "title": "Roo Code Cloud विकसित हो रहा है!", + "title": "Joe Code Cloud विकसित हो रहा है!", "description": "क्लाउड में रिमोट एजेंट चलाएं, कहीं से भी अपने कार्यों तक पहुंचें, दूसरों के साथ सहयोग करें, और बहुत कुछ।", "joinWaitlist": "नवीनतम अपडेट प्राप्त करने के लिए साइन अप करें।" }, diff --git a/webview-ui/src/i18n/locales/hi/cloud.json b/webview-ui/src/i18n/locales/hi/cloud.json index c573284e1db..739ea3d8d2c 100644 --- a/webview-ui/src/i18n/locales/hi/cloud.json +++ b/webview-ui/src/i18n/locales/hi/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "प्रोफाइल चित्र", "logOut": "लॉग आउट", "testApiAuthentication": "API प्रमाणीकरण का परीक्षण करें", - "signIn": "Roo Code Cloud से कनेक्ट करें", + "signIn": "Joe Code Cloud से कनेक्ट करें", "connect": "शुरू करें", - "cloudBenefitsTitle": "Roo Code Cloud आज़माएं", + "cloudBenefitsTitle": "Joe Code Cloud आज़माएं", "cloudBenefitProvider": "मुफ़्त और सशुल्क मॉडल एक्सेस करें जो Roo के साथ बढ़िया काम करते हैं", "cloudBenefitCloudAgents": "स्वायत्त क्लाउड एजेंटों को कार्य दें", "cloudBenefitTriggers": "Github पर कोड समीक्षाएं प्राप्त करें, Slack से कार्य शुरू करें और बहुत कुछ", "cloudBenefitWalkaway": "कहीं से भी कार्यों का पालन और नियंत्रण करें (अपने फोन सहित)", "cloudBenefitHistory": "कहीं से भी अपने कार्य इतिहास तक पहुंचें और उन्हें दूसरों के साथ साझा करें", "cloudBenefitMetrics": "अपने टोकन उपभोग का समग्र दृश्य प्राप्त करें", - "visitCloudWebsite": "Roo Code Cloud पर जाएं", + "visitCloudWebsite": "Joe Code Cloud पर जाएं", "taskSync": "कार्य सिंक", - "taskSyncDescription": "Roo Code Cloud पर देखने और साझा करने के लिए अपने कार्यों को सिंक करें", + "taskSyncDescription": "Joe Code Cloud पर देखने और साझा करने के लिए अपने कार्यों को सिंक करें", "taskSyncManagedByOrganization": "कार्य सिंक आपके संगठन द्वारा प्रबंधित किया जाता है", "usageMetricsAlwaysReported": "लॉग इन होने पर मॉडल उपयोग जानकारी हमेशा रिपोर्ट की जाती है", "authWaiting": "प्रमाणीकरण पूरा होने की प्रतीक्षा कर रहे हैं...", @@ -22,9 +22,9 @@ "pasteCallbackUrl": "अपने ब्राउज़र से redirect URL कॉपी करें और यहाँ पेस्ट करें:", "startOver": "फिर से शुरू करें", "personalAccount": "व्यक्तिगत खाता", - "switchAccount": "Roo Code Cloud खाता बदलें", + "switchAccount": "Joe Code Cloud खाता बदलें", "createTeamAccount": "टीम खाता बनाएं", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { "autoApprovePowerUser": "रू को थोड़ी स्वतंत्रता दे रहे हैं? रू कोड क्लाउड के साथ इसे कहीं से भी नियंत्रित करें। और जानें।", "longRunningTask": "इसमें थोड़ा समय लग सकता है। क्लाउड के साथ कहीं से भी जारी रखें।", diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index abd334bec09..fb03b9a3898 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -59,7 +59,7 @@ "contact": { "label": "हमसे बात करने की जरूरत है? लिखें" }, - "community": "सुझाव चाहिए या बस अन्य Roo Code उपयोगकर्ताओं के साथ घूमना चाहते हैं? reddit.com/r/RooCode या discord.gg/roocode में शामिल हों", + "community": "सुझाव चाहिए या बस अन्य Joe Code उपयोगकर्ताओं के साथ घूमना चाहते हैं? reddit.com/r/JoeCode या discord.gg/joecode में शामिल हों", "contactAndCommunity": "संपर्क और समुदाय", "manageSettings": "सेटिंग्स प्रबंधित करें", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "स्पेक्युलेटिव डिकोडिंग के सही काम करने के लिए ड्राफ्ट मॉडल को समान मॉडल परिवार से होना चाहिए।", "selectDraftModel": "ड्राफ्ट मॉडल चुनें", "noModelsFound": "कोई ड्राफ्ट मॉडल नहीं मिला। कृपया सुनिश्चित करें कि LM Studio सर्वर मोड सक्षम के साथ चल रहा है।", - "description": "LM Studio आपको अपने कंप्यूटर पर स्थानीय रूप से मॉडल चलाने की अनुमति देता है। आरंभ करने के निर्देशों के लिए, उनकी क्विकस्टार्ट गाइड देखें। आपको इस एक्सटेंशन के साथ उपयोग करने के लिए LM Studio की स्थानीय सर्वर सुविधा भी शुरू करनी होगी। नोट: Roo Code जटिल प्रॉम्प्ट्स का उपयोग करता है और Claude मॉडल के साथ सबसे अच्छा काम करता है। कम क्षमता वाले मॉडल अपेक्षित रूप से काम नहीं कर सकते हैं।" + "description": "LM Studio आपको अपने कंप्यूटर पर स्थानीय रूप से मॉडल चलाने की अनुमति देता है। आरंभ करने के निर्देशों के लिए, उनकी क्विकस्टार्ट गाइड देखें। आपको इस एक्सटेंशन के साथ उपयोग करने के लिए LM Studio की स्थानीय सर्वर सुविधा भी शुरू करनी होगी। नोट: Joe Code जटिल प्रॉम्प्ट्स का उपयोग करता है और Claude मॉडल के साथ सबसे अच्छा काम करता है। कम क्षमता वाले मॉडल अपेक्षित रूप से काम नहीं कर सकते हैं।" }, "ollama": { "baseUrl": "बेस URL (वैकल्पिक)", @@ -466,11 +466,11 @@ "numCtx": "संदर्भ विंडो आकार (num_ctx)", "numCtxHelp": "मॉडल के डिफ़ॉल्ट संदर्भ विंडो आकार को ओवरराइड करें। मॉडल की मॉडलफ़ाइल कॉन्फ़िगरेशन का उपयोग करने के लिए खाली छोड़ दें। न्यूनतम मान 128 है।", "description": "Ollama आपको अपने कंप्यूटर पर स्थानीय रूप से मॉडल चलाने की अनुमति देता है। आरंभ करने के निर्देशों के लिए, उनकी क्विकस्टार्ट गाइड देखें।", - "warning": "नोट: Roo Code जटिल प्रॉम्प्ट्स का उपयोग करता है और Claude मॉडल के साथ सबसे अच्छा काम करता है। कम क्षमता वाले मॉडल अपेक्षित रूप से काम नहीं कर सकते हैं।" + "warning": "नोट: Joe Code जटिल प्रॉम्प्ट्स का उपयोग करता है और Claude मॉडल के साथ सबसे अच्छा काम करता है। कम क्षमता वाले मॉडल अपेक्षित रूप से काम नहीं कर सकते हैं।" }, "roo": { - "authenticatedMessage": "आपके Roo Code Cloud खाते के माध्यम से सुरक्षित रूप से प्रमाणित।", - "connectButton": "Roo Code Cloud से कनेक्ट करें" + "authenticatedMessage": "आपके Joe Code Cloud खाते के माध्यम से सुरक्षित रूप से प्रमाणित।", + "connectButton": "Joe Code Cloud से कनेक्ट करें" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "अपने कस्टम OpenAI-संगत मॉडल के लिए क्षमताओं और मूल्य निर्धारण को कॉन्फ़िगर करें। मॉडल क्षमताओं को निर्दिष्ट करते समय सावधान रहें, क्योंकि वे Roo Code के प्रदर्शन को प्रभावित कर सकती हैं।", + "capabilities": "अपने कस्टम OpenAI-संगत मॉडल के लिए क्षमताओं और मूल्य निर्धारण को कॉन्फ़िगर करें। मॉडल क्षमताओं को निर्दिष्ट करते समय सावधान रहें, क्योंकि वे Joe Code के प्रदर्शन को प्रभावित कर सकती हैं।", "maxTokens": { "label": "अधिकतम आउटपुट टोकन", "description": "मॉडल एक प्रतिक्रिया में अधिकतम कितने टोकन जनरेट कर सकता है। (सर्वर को अधिकतम टोकन सेट करने की अनुमति देने के लिए -1 निर्दिष्ट करें।)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "एक्सटेंशन {{serviceName}} पर उपलब्ध मॉडलों की नवीनतम सूची स्वचालित रूप से प्राप्त करता है। यदि आप अनिश्चित हैं कि कौन सा मॉडल चुनना है, तो Roo Code {{defaultModelId}} के साथ सबसे अच्छा काम करता है। आप वर्तमान में उपलब्ध निःशुल्क विकल्पों के लिए \"free\" भी खोज सकते हैं।", + "automaticFetch": "एक्सटेंशन {{serviceName}} पर उपलब्ध मॉडलों की नवीनतम सूची स्वचालित रूप से प्राप्त करता है। यदि आप अनिश्चित हैं कि कौन सा मॉडल चुनना है, तो Joe Code {{defaultModelId}} के साथ सबसे अच्छा काम करता है। आप वर्तमान में उपलब्ध निःशुल्क विकल्पों के लिए \"free\" भी खोज सकते हैं।", "label": "मॉडल", "searchPlaceholder": "खोजें", "noMatchFound": "कोई मिलान नहीं मिला", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "गुमनाम त्रुटि और उपयोग रिपोर्टिंग की अनुमति दें", - "description": "गुमनाम उपयोग डेटा और त्रुटि रिपोर्ट भेजकर Roo Code को बेहतर बनाने में मदद करें। यह टेलीमेट्री कोड, प्रॉम्प्ट या व्यक्तिगत जानकारी एकत्र नहीं करती। अधिक विवरण के लिए हमारी गोपनीयता नीति देखें। आप इसे कभी भी बंद कर सकते हैं।" + "description": "गुमनाम उपयोग डेटा और त्रुटि रिपोर्ट भेजकर Joe Code को बेहतर बनाने में मदद करें। यह टेलीमेट्री कोड, प्रॉम्प्ट या व्यक्तिगत जानकारी एकत्र नहीं करती। अधिक विवरण के लिए हमारी गोपनीयता नीति देखें। आप इसे कभी भी बंद कर सकते हैं।" }, "settings": { "import": "इम्पोर्ट", diff --git a/webview-ui/src/i18n/locales/hi/welcome.json b/webview-ui/src/i18n/locales/hi/welcome.json index 851a0ae19cb..ef03622f19d 100644 --- a/webview-ui/src/i18n/locales/hi/welcome.json +++ b/webview-ui/src/i18n/locales/hi/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Roo Code में आपका स्वागत है!", - "introduction": "अंतर्निहित और विस्तारित मोड्स की एक श्रृंखला के साथ, Roo Code आपको पहले कभी न देखे गए तरीके से योजना बनाने, आर्किटेक्ट करने, कोड करने, डीबग करने और अपनी उत्पादकता बढ़ाने की अनुमति देता है।", - "accountMention": "शुरुआत करने के लिए, अपना Roo Code Cloud खाता बनाएं। शक्तिशाली मॉडल, वेब नियंत्रण, विश्लेषण, समर्थन और अधिक प्राप्त करें।", + "greeting": "Joe Code में आपका स्वागत है!", + "introduction": "अंतर्निहित और विस्तारित मोड्स की एक श्रृंखला के साथ, Joe Code आपको पहले कभी न देखे गए तरीके से योजना बनाने, आर्किटेक्ट करने, कोड करने, डीबग करने और अपनी उत्पादकता बढ़ाने की अनुमति देता है।", + "accountMention": "शुरुआत करने के लिए, अपना Joe Code Cloud खाता बनाएं। शक्तिशाली मॉडल, वेब नियंत्रण, विश्लेषण, समर्थन और अधिक प्राप्त करें।", "getStarted": "Roo खाता बनाएं", "noAccount": "या बिना खाते के उपयोग करें" }, "providerSignup": { "heading": "अपना प्रदाता चुनें", "chooseProvider": "Roo को काम करने के लिए एक LLM प्रदाता की आवश्यकता है। शुरुआत करने के लिए एक चुनें, आप बाद में और जोड़ सकते हैं।", - "rooCloudProvider": "Roo Code Cloud प्रदाता", - "rooCloudDescription": "शुरुआत करने का सबसे आसान तरीका Roo Code Cloud प्रदाता का उपयोग करना है: कम लागत पर मुफ्त और सशुल्क मॉडल का एक सावधानीपूर्वक चयन।", + "rooCloudProvider": "Joe Code Cloud प्रदाता", + "rooCloudDescription": "शुरुआत करने का सबसे आसान तरीका Joe Code Cloud प्रदाता का उपयोग करना है: कम लागत पर मुफ्त और सशुल्क मॉडल का एक सावधानीपूर्वक चयन।", "learnMore": "अधिक जानें", "useAnotherProvider": "तृतीय-पक्ष प्रदाता", "useAnotherProviderDescription": "एक API कुंजी दर्ज करें और शुरू करें।", "noApiKeys": "क्या आप API कुंजी और अलग खातों से निपटना नहीं चाहते?", - "backToRoo": "Roo Code Cloud प्रदाता के साथ जाएं।", + "backToRoo": "Joe Code Cloud प्रदाता के साथ जाएं।", "goBack": "वापस", "finish": "समाप्त" }, "waitingForCloud": { - "heading": "Roo Code Cloud में लॉगिन किया जा रहा है...", - "description": "हम आपको Roo Code Cloud के लिए साइन अप करने के लिए अपने ब्राउज़र पर ले जाएंगे। फिर हम आपको यहां वापस लाएंगे।", + "heading": "Joe Code Cloud में लॉगिन किया जा रहा है...", + "description": "हम आपको Joe Code Cloud के लिए साइन अप करने के लिए अपने ब्राउज़र पर ले जाएंगे। फिर हम आपको यहां वापस लाएंगे।", "noPrompt": "यदि आपको URL खोलने के लिए संकेत नहीं दिया जाता है, तो यहां क्लिक करें।", "havingTrouble": "यदि आपने साइन अप पूरा कर लिया है लेकिन समस्या हो रही है, तो यहां क्लिक करें।", "pasteUrl": "अपने ब्राउज़र से कॉलबैक URL पेस्ट करें:", "docsLink": "काम नहीं कर रहा? दस्तावेज़ देखें।", - "invalidURL": "यह एक मान्य कॉलबैक URL की तरह नहीं दिखता। कृपया वह कॉपी करें जो Roo Code Cloud आपके ब्राउज़र में दिखा रहा है।", + "invalidURL": "यह एक मान्य कॉलबैक URL की तरह नहीं दिखता। कृपया वह कॉपी करें जो Joe Code Cloud आपके ब्राउज़र में दिखा रहा है।", "goBack": "वापस" }, "startRouter": "हम एक LLM राउटर का उपयोग करने की अनुशंसा करते हैं:", "startCustom": "या आप अपनी API कुंजी ला सकते हैं:", "telemetry": { - "helpImprove": "Roo Code को बेहतर बनाने में मदद करें", - "helpImproveMessage": "Roo Code बग ठीक करने और एक्सटेंशन को बेहतर बनाने में हमारी मदद करने के लिए त्रुटि और उपयोग डेटा एकत्र करता है। यह दूरसंचार कोड, प्रॉम्प्ट या व्यक्तिगत जानकारी एकत्र नहीं करता है। आप इसे सेटिंग्स में अक्षम कर सकते हैं।" + "helpImprove": "Joe Code को बेहतर बनाने में मदद करें", + "helpImproveMessage": "Joe Code बग ठीक करने और एक्सटेंशन को बेहतर बनाने में हमारी मदद करने के लिए त्रुटि और उपयोग डेटा एकत्र करता है। यह दूरसंचार कोड, प्रॉम्प्ट या व्यक्तिगत जानकारी एकत्र नहीं करता है। आप इसे सेटिंग्स में अक्षम कर सकते हैं।" }, "importSettings": "सेटिंग्स आयात करें" } diff --git a/webview-ui/src/i18n/locales/hi/worktrees.json b/webview-ui/src/i18n/locales/hi/worktrees.json index e568c3844d7..fca64ef78d2 100644 --- a/webview-ui/src/i18n/locales/hi/worktrees.json +++ b/webview-ui/src/i18n/locales/hi/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "हो गया", - "description": "Git worktrees आपको अलग-अलग डायरेक्टरी में एक साथ कई ब्रांच पर काम करने देते हैं। हर worktree को Roo Code के साथ अपनी अलग VS Code विंडो मिलती है।", + "description": "Git worktrees आपको अलग-अलग डायरेक्टरी में एक साथ कई ब्रांच पर काम करने देते हैं। हर worktree को Joe Code के साथ अपनी अलग VS Code विंडो मिलती है।", "notGitRepo": "यह workspace Git repository नहीं है। worktrees को काम करने के लिए Git repository चाहिए।", "multiRootNotSupported": "Multi-root workspaces में worktrees समर्थित नहीं हैं। worktrees उपयोग करने के लिए एक ही फ़ोल्डर खोलें।", diff --git a/webview-ui/src/i18n/locales/id/chat.json b/webview-ui/src/i18n/locales/id/chat.json index 98b08d48771..1d5a2163658 100644 --- a/webview-ui/src/i18n/locales/id/chat.json +++ b/webview-ui/src/i18n/locales/id/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Selamat datang di Roo Code", + "greeting": "Selamat datang di Joe Code", "task": { "title": "Tugas", "expand": "Perluas tugas", @@ -21,7 +21,7 @@ "sharePublicly": "Bagikan secara publik", "sharePubliclyDescription": "Siapa pun dengan tautan dapat mengakses", "connectToCloud": "Hubungkan ke Cloud", - "connectToCloudDescription": "Masuk ke Roo Code Cloud untuk berbagi tugas", + "connectToCloudDescription": "Masuk ke Joe Code Cloud untuk berbagi tugas", "sharingDisabledByOrganization": "Berbagi dinonaktifkan oleh organisasi", "shareSuccessOrganization": "Tautan organisasi disalin ke clipboard", "shareSuccessPublic": "Tautan publik disalin ke clipboard", @@ -127,7 +127,7 @@ }, "enqueueMessage": "Tambahkan pesan ke antrean (akan dikirim setelah tugas saat ini selesai)", "scrollToBottom": "Gulir ke bawah chat", - "about": "Roo Code adalah seluruh tim pengembang AI di editor Anda.", + "about": "Joe Code adalah seluruh tim pengembang AI di editor Anda.", "docs": "Lihat dokumentasi kami untuk mempelajari lebih lanjut.", "onboarding": "Daftar tugas Anda di ruang kerja ini kosong.", "rooTips": { @@ -186,7 +186,7 @@ "500": "Kesalahan server penyedia. Ada yang salah di sisi penyedia, tidak ada yang salah dengan permintaan Anda.", "docs": "Dokumentasi", "goToSettings": "Pengaturan", - "unknown": "Kesalahan API yang tidak diketahui. Harap hubungi dukungan Roo Code.", + "unknown": "Kesalahan API yang tidak diketahui. Harap hubungi dukungan Joe Code.", "connection": "Kesalahan koneksi. Pastikan Anda memiliki koneksi internet yang berfungsi.", "claudeCodeNotAuthenticated": "Anda perlu masuk untuk menggunakan Claude Code. Buka Pengaturan dan klik \"Masuk ke Claude Code\" untuk mengautentikasi." } @@ -366,20 +366,20 @@ "triggerLabelAll": "BRRR" }, "announcement": { - "title": "Roo Code {{version}} Dirilis", - "support": "Dukung Roo Code dengan memberi kami bintang di GitHub.", + "title": "Joe Code {{version}} Dirilis", + "support": "Dukung Joe Code dengan memberi kami bintang di GitHub.", "stealthModel": { - "feature": "Model stealth GRATIS waktu terbatas - Code Supernova: Sekarang diupgrade dengan jendela konteks 1M token! Model coding agentik serbaguna yang mendukung input gambar, tersedia melalui Roo Code Cloud.", + "feature": "Model stealth GRATIS waktu terbatas - Code Supernova: Sekarang diupgrade dengan jendela konteks 1M token! Model coding agentik serbaguna yang mendukung input gambar, tersedia melalui Joe Code Cloud.", "note": "(Catatan: prompt dan completion dicatat oleh pembuat model dan digunakan untuk meningkatkan model)", - "connectButton": "Hubungkan ke Roo Code Cloud", - "selectModel": "Pilih roo/code-supernova dari penyedia Roo Code Cloud di Pengaturan untuk memulai.", + "connectButton": "Hubungkan ke Joe Code Cloud", + "selectModel": "Pilih roo/code-supernova dari penyedia Joe Code Cloud di Pengaturan untuk memulai.", "goToSettingsButton": "Pergi ke Pengaturan" }, "release": { "heading": "Yang Baru:", "geminiPro": "Dukungan Gemini 3.1 Pro: Dukungan model Gemini 3.1 Pro telah ditambahkan dan ditetapkan sebagai model Gemini default untuk performa yang lebih baik.", "cliNdjson": "Protokol NDJSON CLI: Protokol NDJSON stdin baru, subperintah list, dan perintah run yang dimodularisasi untuk alur kerja CLI yang lebih fleksibel.", - "cliRelease": "CLI v0.1.0: CLI Roo Code mencapai rilis resmi pertamanya dengan antarmuka perintah yang stabil." + "cliRelease": "CLI v0.1.0: CLI Joe Code mencapai rilis resmi pertamanya dengan antarmuka perintah yang stabil." }, "cloudAgents": { "heading": "Baru di Cloud:", @@ -412,7 +412,7 @@ "profileViolationWarning": "Profil saat ini tidak kompatibel dengan pengaturan organisasi kamu", "shellIntegration": { "title": "Peringatan Eksekusi Perintah", - "description": "Perintah kamu dijalankan tanpa integrasi shell terminal VSCode. Untuk menekan peringatan ini kamu bisa menonaktifkan integrasi shell di bagian Terminal dari pengaturan Roo Code atau troubleshoot integrasi terminal VSCode menggunakan link di bawah.", + "description": "Perintah kamu dijalankan tanpa integrasi shell terminal VSCode. Untuk menekan peringatan ini kamu bisa menonaktifkan integrasi shell di bagian Terminal dari pengaturan Joe Code atau troubleshoot integrasi terminal VSCode menggunakan link di bawah.", "troubleshooting": "Klik di sini untuk dokumentasi integrasi shell." }, "ask": { @@ -439,7 +439,7 @@ "ariaLabel": "Versi {{version}} - Klik untuk melihat catatan rilis" }, "rooCloudCTA": { - "title": "Roo Code Cloud sedang berkembang!", + "title": "Joe Code Cloud sedang berkembang!", "description": "Jalankan agen jarak jauh di cloud, akses tugas Anda dari mana saja, berkolaborasi dengan orang lain, dan banyak lagi.", "joinWaitlist": "Daftar untuk mendapatkan pembaruan terbaru." }, diff --git a/webview-ui/src/i18n/locales/id/cloud.json b/webview-ui/src/i18n/locales/id/cloud.json index 5e8000c7b8c..49abd7fcbb6 100644 --- a/webview-ui/src/i18n/locales/id/cloud.json +++ b/webview-ui/src/i18n/locales/id/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Foto profil", "logOut": "Keluar", "testApiAuthentication": "Uji Autentikasi API", - "signIn": "Hubungkan ke Roo Code Cloud", + "signIn": "Hubungkan ke Joe Code Cloud", "connect": "Mulai", - "cloudBenefitsTitle": "Coba Roo Code Cloud", + "cloudBenefitsTitle": "Coba Joe Code Cloud", "cloudBenefitProvider": "Akses model gratis dan berbayar yang bekerja sangat baik dengan Roo", "cloudBenefitCloudAgents": "Berikan tugas kepada agen Cloud otonom", "cloudBenefitTriggers": "Dapatkan ulasan kode di Github, mulai tugas dari Slack, dan lainnya", "cloudBenefitWalkaway": "Ikuti dan kontrol tugas dari mana saja (termasuk ponsel Anda)", "cloudBenefitHistory": "Akses riwayat tugas Anda dari mana saja dan bagikan dengan orang lain", "cloudBenefitMetrics": "Dapatkan tampilan holistik konsumsi token Anda", - "visitCloudWebsite": "Kunjungi Roo Code Cloud", + "visitCloudWebsite": "Kunjungi Joe Code Cloud", "taskSync": "Sinkronisasi tugas", - "taskSyncDescription": "Sinkronkan tugas Anda untuk melihat dan berbagi di Roo Code Cloud", + "taskSyncDescription": "Sinkronkan tugas Anda untuk melihat dan berbagi di Joe Code Cloud", "taskSyncManagedByOrganization": "Sinkronisasi tugas dikelola oleh organisasi Anda", "usageMetricsAlwaysReported": "Informasi penggunaan model selalu dilaporkan saat masuk", "authWaiting": "Menunggu autentikasi selesai...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Salin URL redirect dari browser dan tempel di sini:", "startOver": "Mulai dari awal", "personalAccount": "Akun Pribadi", - "switchAccount": "Ganti Akun Roo Code Cloud", + "switchAccount": "Ganti Akun Joe Code Cloud", "createTeamAccount": "Buat Akun Tim", - "cloudUrlPillLabel": "URL Roo Code Cloud", + "cloudUrlPillLabel": "URL Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Memberi Roo sedikit kebebasan? Kendalikan dari mana saja dengan Roo Code Cloud. Pelajari lebih lanjut.", + "autoApprovePowerUser": "Memberi Roo sedikit kebebasan? Kendalikan dari mana saja dengan Joe Code Cloud. Pelajari lebih lanjut.", "longRunningTask": "Ini mungkin akan memakan waktu cukup lama. Lanjutkan dari mana saja dengan Cloud.", - "taskList": "Menikmati Roo? Coba Roo Code Cloud: ikuti dan kendalikan tugas Anda dari mana saja, jalankan agen Cloud otonom, dapatkan statistik penggunaan, dan lainnya. Pelajari lebih lanjut." + "taskList": "Menikmati Roo? Coba Joe Code Cloud: ikuti dan kendalikan tugas Anda dari mana saja, jalankan agen Cloud otonom, dapatkan statistik penggunaan, dan lainnya. Pelajari lebih lanjut." } } diff --git a/webview-ui/src/i18n/locales/id/mcp.json b/webview-ui/src/i18n/locales/id/mcp.json index 6ae62ffd5ec..b6bf26cb120 100644 --- a/webview-ui/src/i18n/locales/id/mcp.json +++ b/webview-ui/src/i18n/locales/id/mcp.json @@ -2,7 +2,7 @@ "title": "Server MCP", "done": "Selesai", "marketplace": "Marketplace MCP", - "description": "<0>Model Context Protocol memungkinkan komunikasi dengan server MCP yang berjalan secara lokal yang menyediakan tools dan resources tambahan untuk memperluas kemampuan Roo Code. Anda dapat menggunakan <1>server buatan komunitas atau meminta Roo membuat tools baru yang spesifik untuk workflow Anda (misalnya, \"tambahkan tool yang mendapatkan dokumentasi npm terbaru\").", + "description": "<0>Model Context Protocol memungkinkan komunikasi dengan server MCP yang berjalan secara lokal yang menyediakan tools dan resources tambahan untuk memperluas kemampuan Joe Code. Anda dapat menggunakan <1>server buatan komunitas atau meminta Roo membuat tools baru yang spesifik untuk workflow Anda (misalnya, \"tambahkan tool yang mendapatkan dokumentasi npm terbaru\").", "instructions": "Instruksi", "enableToggle": { "title": "Aktifkan Server MCP", diff --git a/webview-ui/src/i18n/locales/id/prompts.json b/webview-ui/src/i18n/locales/id/prompts.json index 938d8de34c5..0fe84375de4 100644 --- a/webview-ui/src/i18n/locales/id/prompts.json +++ b/webview-ui/src/i18n/locales/id/prompts.json @@ -9,7 +9,7 @@ "editModesConfig": "Edit konfigurasi mode", "editGlobalModes": "Edit Mode Global", "editProjectModes": "Edit Mode Proyek (.roomodes)", - "createModeHelpText": "Mode adalah persona khusus yang menyesuaikan perilaku Roo Code. <0>Pelajari tentang Menggunakan Mode atau <1>Menyesuaikan Mode.", + "createModeHelpText": "Mode adalah persona khusus yang menyesuaikan perilaku Joe Code. <0>Pelajari tentang Menggunakan Mode atau <1>Menyesuaikan Mode.", "selectMode": "Cari mode" }, "apiConfiguration": { diff --git a/webview-ui/src/i18n/locales/id/settings.json b/webview-ui/src/i18n/locales/id/settings.json index 1ebcf2073b6..52d111c2d61 100644 --- a/webview-ui/src/i18n/locales/id/settings.json +++ b/webview-ui/src/i18n/locales/id/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Eksperimental", "language": "Bahasa", - "about": "Tentang Roo Code", + "about": "Tentang Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Perlu bicara dengan kami? Tulis" }, - "community": "Ingin tips atau hanya nongkrong dengan pengguna Roo Code lainnya? Bergabunglah dengan reddit.com/r/RooCode atau discord.gg/roocode", + "community": "Ingin tips atau hanya nongkrong dengan pengguna Joe Code lainnya? Bergabunglah dengan reddit.com/r/JoeCode atau discord.gg/joecode", "contactAndCommunity": "Kontak & Komunitas", "manageSettings": "Kelola Pengaturan", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Draft model harus dari keluarga model yang sama agar speculative decoding bekerja dengan benar.", "selectDraftModel": "Pilih Draft Model", "noModelsFound": "Tidak ada draft model ditemukan. Pastikan LM Studio berjalan dengan Server Mode diaktifkan.", - "description": "LM Studio memungkinkan kamu menjalankan model secara lokal di komputer. Untuk instruksi cara memulai, lihat panduan quickstart mereka. Kamu juga perlu memulai fitur local server LM Studio untuk menggunakannya dengan ekstensi ini. Catatan: Roo Code menggunakan prompt kompleks dan bekerja terbaik dengan model Claude. Model yang kurang mampu mungkin tidak bekerja seperti yang diharapkan." + "description": "LM Studio memungkinkan kamu menjalankan model secara lokal di komputer. Untuk instruksi cara memulai, lihat panduan quickstart mereka. Kamu juga perlu memulai fitur local server LM Studio untuk menggunakannya dengan ekstensi ini. Catatan: Joe Code menggunakan prompt kompleks dan bekerja terbaik dengan model Claude. Model yang kurang mampu mungkin tidak bekerja seperti yang diharapkan." }, "ollama": { "baseUrl": "Base URL (opsional)", @@ -466,11 +466,11 @@ "numCtx": "Ukuran Jendela Konteks (num_ctx)", "numCtxHelp": "Ganti ukuran jendela konteks default model. Biarkan kosong untuk menggunakan konfigurasi Modelfile model. Nilai minimum adalah 128.", "description": "Ollama memungkinkan kamu menjalankan model secara lokal di komputer. Untuk instruksi cara memulai, lihat panduan quickstart mereka.", - "warning": "Catatan: Roo Code menggunakan prompt kompleks dan bekerja terbaik dengan model Claude. Model yang kurang mampu mungkin tidak bekerja seperti yang diharapkan." + "warning": "Catatan: Joe Code menggunakan prompt kompleks dan bekerja terbaik dengan model Claude. Model yang kurang mampu mungkin tidak bekerja seperti yang diharapkan." }, "roo": { - "authenticatedMessage": "Terautentikasi dengan aman melalui akun Roo Code Cloud Anda.", - "connectButton": "Hubungkan ke Roo Code Cloud" + "authenticatedMessage": "Terautentikasi dengan aman melalui akun Joe Code Cloud Anda.", + "connectButton": "Hubungkan ke Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Konfigurasi kemampuan dan harga untuk model kustom yang kompatibel dengan OpenAI. Hati-hati saat menentukan kemampuan model, karena dapat mempengaruhi performa Roo Code.", + "capabilities": "Konfigurasi kemampuan dan harga untuk model kustom yang kompatibel dengan OpenAI. Hati-hati saat menentukan kemampuan model, karena dapat mempengaruhi performa Joe Code.", "maxTokens": { "label": "Token Output Maksimum", "description": "Jumlah maksimum token yang dapat dihasilkan model dalam respons. (Tentukan -1 untuk membiarkan server mengatur token maksimum.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "Ekstensi secara otomatis mengambil daftar model terbaru yang tersedia di {{serviceName}}. Jika kamu tidak yakin model mana yang harus dipilih, Roo Code bekerja terbaik dengan {{defaultModelId}}. Kamu juga dapat mencoba mencari \"free\" untuk opsi tanpa biaya yang saat ini tersedia.", + "automaticFetch": "Ekstensi secara otomatis mengambil daftar model terbaru yang tersedia di {{serviceName}}. Jika kamu tidak yakin model mana yang harus dipilih, Joe Code bekerja terbaik dengan {{defaultModelId}}. Kamu juga dapat mencoba mencari \"free\" untuk opsi tanpa biaya yang saat ini tersedia.", "label": "Model", "searchPlaceholder": "Cari", "noMatchFound": "Tidak ada yang cocok ditemukan", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Izinkan pelaporan error dan penggunaan anonim", - "description": "Bantu tingkatkan Roo Code dengan mengirimkan data penggunaan anonim dan laporan error. Telemetri ini tidak mengumpulkan kode, prompt, atau informasi pribadi. Lihat kebijakan privasi kami untuk detail lebih lanjut. Anda dapat menonaktifkannya kapan saja." + "description": "Bantu tingkatkan Joe Code dengan mengirimkan data penggunaan anonim dan laporan error. Telemetri ini tidak mengumpulkan kode, prompt, atau informasi pribadi. Lihat kebijakan privasi kami untuk detail lebih lanjut. Anda dapat menonaktifkannya kapan saja." }, "settings": { "import": "Impor", diff --git a/webview-ui/src/i18n/locales/id/welcome.json b/webview-ui/src/i18n/locales/id/welcome.json index baaf07b1c71..f0ad7467a4e 100644 --- a/webview-ui/src/i18n/locales/id/welcome.json +++ b/webview-ui/src/i18n/locales/id/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Selamat datang di Roo Code!", - "introduction": "Dengan berbagai Mode bawaan dan dapat diperluas, Roo Code memungkinkan Anda merencanakan, merancang, coding, debug, dan meningkatkan produktivitas seperti yang belum pernah terjadi sebelumnya.", - "accountMention": "Untuk memulai, buat akun Roo Code Cloud Anda. Dapatkan model yang kuat, kontrol web, analitik, dukungan, dan banyak lagi.", + "greeting": "Selamat datang di Joe Code!", + "introduction": "Dengan berbagai Mode bawaan dan dapat diperluas, Joe Code memungkinkan Anda merencanakan, merancang, coding, debug, dan meningkatkan produktivitas seperti yang belum pernah terjadi sebelumnya.", + "accountMention": "Untuk memulai, buat akun Joe Code Cloud Anda. Dapatkan model yang kuat, kontrol web, analitik, dukungan, dan banyak lagi.", "getStarted": "Buat Akun Roo", "noAccount": "atau gunakan tanpa akun" }, "providerSignup": { "heading": "Pilih penyedia Anda", "chooseProvider": "Roo memerlukan penyedia LLM untuk bekerja. Pilih satu untuk memulai, Anda dapat menambahkan lebih banyak nanti.", - "rooCloudProvider": "Penyedia Roo Code Cloud", - "rooCloudDescription": "Cara termudah untuk memulai adalah dengan Penyedia Roo Code Cloud: campuran model gratis dan berbayar yang dikurasi dengan hati-hati dengan biaya rendah.", + "rooCloudProvider": "Penyedia Joe Code Cloud", + "rooCloudDescription": "Cara termudah untuk memulai adalah dengan Penyedia Joe Code Cloud: campuran model gratis dan berbayar yang dikurasi dengan hati-hati dengan biaya rendah.", "learnMore": "Pelajari lebih lanjut", "useAnotherProvider": "Penyedia Pihak Ketiga", "useAnotherProviderDescription": "Masukkan kunci API dan mulai.", "noApiKeys": "Tidak ingin berurusan dengan kunci API dan akun terpisah?", - "backToRoo": "Pilih Penyedia Roo Code Cloud.", + "backToRoo": "Pilih Penyedia Joe Code Cloud.", "goBack": "Kembali", "finish": "Selesai" }, "waitingForCloud": { - "heading": "Masuk ke Roo Code Cloud...", - "description": "Kami akan membawa Anda ke browser Anda untuk mendaftar Roo Code Cloud. Kemudian kami akan membawa Anda kembali ke sini untuk menyelesaikannya.", + "heading": "Masuk ke Joe Code Cloud...", + "description": "Kami akan membawa Anda ke browser Anda untuk mendaftar Joe Code Cloud. Kemudian kami akan membawa Anda kembali ke sini untuk menyelesaikannya.", "noPrompt": "Jika Anda tidak diminta untuk membuka URL, klik di sini.", "havingTrouble": "Jika Anda telah menyelesaikan pendaftaran tetapi mengalami masalah, klik di sini.", "pasteUrl": "Tempel URL callback dari browser Anda:", "docsLink": "Tidak bekerja? Periksa dokumentasi.", - "invalidURL": "Itu tidak terlihat seperti URL callback yang valid. Harap salin apa yang ditampilkan Roo Code Cloud di browser Anda.", + "invalidURL": "Itu tidak terlihat seperti URL callback yang valid. Harap salin apa yang ditampilkan Joe Code Cloud di browser Anda.", "goBack": "Kembali" }, "startRouter": "Kami merekomendasikan menggunakan router LLM:", "startCustom": "Atau Anda dapat membawa kunci API Anda sendiri:", "telemetry": { - "helpImprove": "Bantu Tingkatkan Roo Code", - "helpImproveMessage": "Roo Code mengumpulkan data kesalahan dan penggunaan untuk membantu kami memperbaiki bug dan meningkatkan ekstensi. Telemetri ini tidak mengumpulkan kode, prompt, atau informasi pribadi. Anda dapat menonaktifkannya di pengaturan." + "helpImprove": "Bantu Tingkatkan Joe Code", + "helpImproveMessage": "Joe Code mengumpulkan data kesalahan dan penggunaan untuk membantu kami memperbaiki bug dan meningkatkan ekstensi. Telemetri ini tidak mengumpulkan kode, prompt, atau informasi pribadi. Anda dapat menonaktifkannya di pengaturan." }, "importSettings": "Impor Pengaturan" } diff --git a/webview-ui/src/i18n/locales/id/worktrees.json b/webview-ui/src/i18n/locales/id/worktrees.json index f3dc9449160..f563278f7ef 100644 --- a/webview-ui/src/i18n/locales/id/worktrees.json +++ b/webview-ui/src/i18n/locales/id/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Selesai", - "description": "Git worktrees memungkinkan kamu bekerja di beberapa branch sekaligus dalam direktori terpisah. Setiap worktree mendapatkan jendela VS Code sendiri dengan Roo Code.", + "description": "Git worktrees memungkinkan kamu bekerja di beberapa branch sekaligus dalam direktori terpisah. Setiap worktree mendapatkan jendela VS Code sendiri dengan Joe Code.", "notGitRepo": "Workspace ini bukan repository Git. Worktrees memerlukan repository Git untuk berfungsi.", "multiRootNotSupported": "Worktrees tidak didukung di workspace multi-root. Buka satu folder untuk menggunakan worktrees.", diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index b2b9adf6851..771f3b4eb99 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Benvenuto a Roo Code", + "greeting": "Benvenuto a Joe Code", "task": { "title": "Attività", "expand": "Espandi attività", @@ -21,7 +21,7 @@ "sharePublicly": "Condividi pubblicamente", "sharePubliclyDescription": "Chiunque con il link può accedere", "connectToCloud": "Connetti al Cloud", - "connectToCloudDescription": "Accedi a Roo Code Cloud per condividere attività", + "connectToCloudDescription": "Accedi a Joe Code Cloud per condividere attività", "sharingDisabledByOrganization": "Condivisione disabilitata dall'organizzazione", "shareSuccessOrganization": "Link organizzazione copiato negli appunti", "shareSuccessPublic": "Link pubblico copiato negli appunti", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Aggiungi il messaggio alla coda (sarà inviato dopo che l'attività corrente sarà terminata)", "scrollToBottom": "Scorri fino alla fine della chat", - "about": "Roo Code è un intero team di sviluppo AI nel tuo editor.", + "about": "Joe Code è un intero team di sviluppo AI nel tuo editor.", "docs": "Consulta la nostra documentazione per saperne di più.", "onboarding": "La tua lista di attività in questo spazio di lavoro è vuota.", "rooTips": { @@ -164,7 +164,7 @@ "500": "Errore del server del provider. C'è qualcosa di sbagliato dal lato del provider, non c'è nulla di sbagliato nella tua richiesta.", "docs": "Documentazione", "goToSettings": "Impostazioni", - "unknown": "Errore API sconosciuto. Contatta il supporto di Roo Code.", + "unknown": "Errore API sconosciuto. Contatta il supporto di Joe Code.", "connection": "Errore di connessione. Assicurati di avere una connessione Internet funzionante.", "claudeCodeNotAuthenticated": "Devi accedere per utilizzare Claude Code. Vai su Impostazioni e clicca su \"Accedi a Claude Code\" per autenticarti." } @@ -337,20 +337,20 @@ "timerPrefix": "Approvazione automatica abilitata. Selezione tra {{seconds}}s…" }, "announcement": { - "title": "Rilasciato Roo Code {{version}}", - "support": "Sostieni Roo Code lasciandoci una stella su GitHub.", + "title": "Rilasciato Joe Code {{version}}", + "support": "Sostieni Joe Code lasciandoci una stella su GitHub.", "stealthModel": { - "feature": "Modello stealth GRATUITO per tempo limitato - Code Supernova: Ora potenziato con una finestra di contesto da 1M token! Un modello di codificazione agentiva versatile che supporta input di immagini, accessibile tramite Roo Code Cloud.", + "feature": "Modello stealth GRATUITO per tempo limitato - Code Supernova: Ora potenziato con una finestra di contesto da 1M token! Un modello di codificazione agentiva versatile che supporta input di immagini, accessibile tramite Joe Code Cloud.", "note": "(Nota: i prompt e le completazioni vengono registrati dal creatore del modello e utilizzati per migliorarlo)", - "connectButton": "Connetti a Roo Code Cloud", - "selectModel": "Seleziona roo/code-supernova dal provider Roo Code Cloud nelle Impostazioni per iniziare.", + "connectButton": "Connetti a Joe Code Cloud", + "selectModel": "Seleziona roo/code-supernova dal provider Joe Code Cloud nelle Impostazioni per iniziare.", "goToSettingsButton": "Vai alle Impostazioni" }, "release": { "heading": "Novità:", "geminiPro": "Supporto Gemini 3.1 Pro: Aggiunto il supporto per il modello Gemini 3.1 Pro e impostato come modello Gemini predefinito per prestazioni migliori.", "cliNdjson": "Protocollo NDJSON del CLI: Nuovo protocollo NDJSON via stdin, sottocomandi di elenco e comando di esecuzione modularizzato per flussi di lavoro CLI più flessibili.", - "cliRelease": "CLI v0.1.0: Il CLI di Roo Code raggiunge la sua prima release ufficiale con un'interfaccia di comandi stabile." + "cliRelease": "CLI v0.1.0: Il CLI di Joe Code raggiunge la sua prima release ufficiale con un'interfaccia di comandi stabile." }, "cloudAgents": { "heading": "Novità nel Cloud:", @@ -375,7 +375,7 @@ "profileViolationWarning": "Il profilo corrente non è compatibile con le impostazioni della tua organizzazione", "shellIntegration": { "title": "Avviso di esecuzione comando", - "description": "Il tuo comando viene eseguito senza l'integrazione shell del terminale VSCode. Per sopprimere questo avviso puoi disattivare l'integrazione shell nella sezione Terminal delle impostazioni di Roo Code o risolvere i problemi di integrazione del terminale VSCode utilizzando il link qui sotto.", + "description": "Il tuo comando viene eseguito senza l'integrazione shell del terminale VSCode. Per sopprimere questo avviso puoi disattivare l'integrazione shell nella sezione Terminal delle impostazioni di Joe Code o risolvere i problemi di integrazione del terminale VSCode utilizzando il link qui sotto.", "troubleshooting": "Clicca qui per la documentazione sull'integrazione shell." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Versione {{version}} - Clicca per visualizzare le note di rilascio" }, "rooCloudCTA": { - "title": "Roo Code Cloud si sta evolvendo!", + "title": "Joe Code Cloud si sta evolvendo!", "description": "Esegui agenti remoti nel cloud, accedi alle tue attività da qualsiasi luogo, collabora con altri e molto altro.", "joinWaitlist": "Registrati per ricevere gli ultimi aggiornamenti." }, diff --git a/webview-ui/src/i18n/locales/it/cloud.json b/webview-ui/src/i18n/locales/it/cloud.json index b0c0dceec20..09ed626e0df 100644 --- a/webview-ui/src/i18n/locales/it/cloud.json +++ b/webview-ui/src/i18n/locales/it/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Immagine del profilo", "logOut": "Disconnetti", "testApiAuthentication": "Verifica autenticazione API", - "signIn": "Connetti a Roo Code Cloud", + "signIn": "Connetti a Joe Code Cloud", "connect": "Inizia", - "cloudBenefitsTitle": "Prova Roo Code Cloud", + "cloudBenefitsTitle": "Prova Joe Code Cloud", "cloudBenefitProvider": "Accedi a modelli gratuiti e a pagamento che funzionano perfettamente con Roo", "cloudBenefitCloudAgents": "Assegna attività ad agenti Cloud autonomi", "cloudBenefitTriggers": "Ottieni revisioni del codice su Github, avvia attività da Slack e altro", "cloudBenefitWalkaway": "Segui e controlla le attività da qualsiasi luogo (incluso il tuo telefono)", "cloudBenefitHistory": "Accedi alla cronologia delle tue attività da qualsiasi luogo e condividile con altri", "cloudBenefitMetrics": "Ottieni una visione olistica del tuo consumo di token", - "visitCloudWebsite": "Visita Roo Code Cloud", + "visitCloudWebsite": "Visita Joe Code Cloud", "taskSync": "Sincronizzazione attività", - "taskSyncDescription": "Sincronizza le tue attività per visualizzarle e condividerle su Roo Code Cloud", + "taskSyncDescription": "Sincronizza le tue attività per visualizzarle e condividerle su Joe Code Cloud", "taskSyncManagedByOrganization": "La sincronizzazione delle attività è gestita dalla tua organizzazione", "usageMetricsAlwaysReported": "Le informazioni sull'utilizzo del modello vengono sempre segnalate quando si è connessi", "authWaiting": "In attesa del completamento dell'autenticazione...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Copia l'URL di redirect dal tuo browser e incollalo qui:", "startOver": "Ricomincia", "personalAccount": "Account Personale", - "switchAccount": "Cambia Account Roo Code Cloud", + "switchAccount": "Cambia Account Joe Code Cloud", "createTeamAccount": "Crea Account del Team", - "cloudUrlPillLabel": "URL di Roo Code Cloud", + "cloudUrlPillLabel": "URL di Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Vuoi dare un po' di indipendenza a Roo? Controllalo da qualsiasi luogo con Roo Code Cloud. Scopri di più.", + "autoApprovePowerUser": "Vuoi dare un po' di indipendenza a Roo? Controllalo da qualsiasi luogo con Joe Code Cloud. Scopri di più.", "longRunningTask": "Potrebbe volerci un po' di tempo. Continua da qualsiasi luogo con il Cloud.", - "taskList": "Ti piace Roo? Dai un'occhiata a Roo Code Cloud: segui e controlla le tue attività da qualsiasi luogo, esegui agenti Cloud autonomi, ottieni statistiche di utilizzo e altro ancora. Scopri di più." + "taskList": "Ti piace Roo? Dai un'occhiata a Joe Code Cloud: segui e controlla le tue attività da qualsiasi luogo, esegui agenti Cloud autonomi, ottieni statistiche di utilizzo e altro ancora. Scopri di più." } } diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index 4a0c7161654..46a617828ad 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Sperimentale", "language": "Lingua", - "about": "Informazioni su Roo Code", + "about": "Informazioni su Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Hai bisogno di parlarci? Scrivi" }, - "community": "Vuoi consigli o semplicemente uscire con altri utenti di Roo Code? Unisciti a reddit.com/r/RooCode o discord.gg/roocode", + "community": "Vuoi consigli o semplicemente uscire con altri utenti di Joe Code? Unisciti a reddit.com/r/JoeCode o discord.gg/joecode", "contactAndCommunity": "Contatti e Comunità", "manageSettings": "Gestisci Impostazioni", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Per un corretto funzionamento della decodifica speculativa, il modello bozza deve provenire dalla stessa famiglia di modelli.", "selectDraftModel": "Seleziona modello bozza", "noModelsFound": "Nessun modello bozza trovato. Assicurati che LM Studio sia in esecuzione con la modalità server abilitata.", - "description": "LM Studio ti permette di eseguire modelli localmente sul tuo computer. Per iniziare, consulta la loro guida rapida. Dovrai anche avviare la funzionalità server locale di LM Studio per utilizzarlo con questa estensione. Nota: Roo Code utilizza prompt complessi e funziona meglio con i modelli Claude. I modelli con capacità inferiori potrebbero non funzionare come previsto." + "description": "LM Studio ti permette di eseguire modelli localmente sul tuo computer. Per iniziare, consulta la loro guida rapida. Dovrai anche avviare la funzionalità server locale di LM Studio per utilizzarlo con questa estensione. Nota: Joe Code utilizza prompt complessi e funziona meglio con i modelli Claude. I modelli con capacità inferiori potrebbero non funzionare come previsto." }, "ollama": { "baseUrl": "URL base (opzionale)", @@ -466,11 +466,11 @@ "numCtx": "Dimensione della finestra di contesto (num_ctx)", "numCtxHelp": "Sovrascrive la dimensione predefinita della finestra di contesto del modello. Lasciare vuoto per utilizzare la configurazione del Modelfile del modello. Il valore minimo è 128.", "description": "Ollama ti permette di eseguire modelli localmente sul tuo computer. Per iniziare, consulta la guida rapida.", - "warning": "Nota: Roo Code utiliza prompt complessi e funziona meglio con i modelli Claude. I modelli con capacità inferiori potrebbero non funzionare come previsto." + "warning": "Nota: Joe Code utiliza prompt complessi e funziona meglio con i modelli Claude. I modelli con capacità inferiori potrebbero non funzionare come previsto." }, "roo": { - "authenticatedMessage": "Autenticato in modo sicuro tramite il tuo account Roo Code Cloud.", - "connectButton": "Connetti a Roo Code Cloud" + "authenticatedMessage": "Autenticato in modo sicuro tramite il tuo account Joe Code Cloud.", + "connectButton": "Connetti a Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Configura le capacità e i prezzi del tuo modello personalizzato compatibile con OpenAI. Fai attenzione quando specifichi le capacità del modello, poiché possono influenzare le prestazioni di Roo Code.", + "capabilities": "Configura le capacità e i prezzi del tuo modello personalizzato compatibile con OpenAI. Fai attenzione quando specifichi le capacità del modello, poiché possono influenzare le prestazioni di Joe Code.", "maxTokens": { "label": "Token di output massimi", "description": "Numero massimo di token che il modello può generare in una risposta. (Specifica -1 per lasciare che il server imposti il massimo token.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "L'estensione recupera automaticamente l'elenco più recente dei modelli disponibili su {{serviceName}}. Se non sei sicuro di quale modello scegliere, Roo Code funziona meglio con {{defaultModelId}}. Puoi anche cercare \"free\" per opzioni gratuite attualmente disponibili.", + "automaticFetch": "L'estensione recupera automaticamente l'elenco più recente dei modelli disponibili su {{serviceName}}. Se non sei sicuro di quale modello scegliere, Joe Code funziona meglio con {{defaultModelId}}. Puoi anche cercare \"free\" per opzioni gratuite attualmente disponibili.", "label": "Modello", "searchPlaceholder": "Cerca", "noMatchFound": "Nessuna corrispondenza trovata", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Consenti segnalazioni anonime di errori e utilizzo", - "description": "Aiuta a migliorare Roo Code inviando dati di utilizzo anonimi e segnalazioni di errori. Questa telemetria non raccoglie codice, prompt o informazioni personali. Consulta la nostra informativa sulla privacy per maggiori dettagli." + "description": "Aiuta a migliorare Joe Code inviando dati di utilizzo anonimi e segnalazioni di errori. Questa telemetria non raccoglie codice, prompt o informazioni personali. Consulta la nostra informativa sulla privacy per maggiori dettagli." }, "settings": { "import": "Importa", diff --git a/webview-ui/src/i18n/locales/it/welcome.json b/webview-ui/src/i18n/locales/it/welcome.json index fbc6fb3e36d..78e6c686b9f 100644 --- a/webview-ui/src/i18n/locales/it/welcome.json +++ b/webview-ui/src/i18n/locales/it/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Benvenuto in Roo Code!", - "introduction": "Con una gamma di Modalità integrate ed estensibili, Roo Code ti permette di pianificare, architettare, codificare, debuggare e aumentare la tua produttività come mai prima d'ora.", - "accountMention": "Per iniziare, crea il tuo account Roo Code Cloud. Ottieni modelli potenti, controllo web, analitiche, supporto e altro ancora.", + "greeting": "Benvenuto in Joe Code!", + "introduction": "Con una gamma di Modalità integrate ed estensibili, Joe Code ti permette di pianificare, architettare, codificare, debuggare e aumentare la tua produttività come mai prima d'ora.", + "accountMention": "Per iniziare, crea il tuo account Joe Code Cloud. Ottieni modelli potenti, controllo web, analitiche, supporto e altro ancora.", "getStarted": "Crea account Roo", "noAccount": "o usa senza account" }, "providerSignup": { "heading": "Scegli il tuo provider", "chooseProvider": "Roo ha bisogno di un provider LLM per funzionare. Scegline uno per iniziare, puoi aggiungerne altri in seguito.", - "rooCloudProvider": "Provider Roo Code Cloud", - "rooCloudDescription": "Il modo più semplice per iniziare è con il Provider Roo Code Cloud: un mix curato di modelli gratuiti e a pagamento a basso costo.", + "rooCloudProvider": "Provider Joe Code Cloud", + "rooCloudDescription": "Il modo più semplice per iniziare è con il Provider Joe Code Cloud: un mix curato di modelli gratuiti e a pagamento a basso costo.", "learnMore": "Scopri di più", "useAnotherProvider": "Provider di terze parti", "useAnotherProviderDescription": "Inserisci una chiave API e inizia.", "noApiKeys": "Non vuoi affrontare le chiavi API e gli account separati?", - "backToRoo": "Scegli il Provider Roo Code Cloud.", + "backToRoo": "Scegli il Provider Joe Code Cloud.", "goBack": "Indietro", "finish": "Fine" }, "waitingForCloud": { - "heading": "Accesso a Roo Code Cloud...", - "description": "Ti porteremo al tuo browser per registrarti a Roo Code Cloud. Poi ti riporteremo qui per terminare.", + "heading": "Accesso a Joe Code Cloud...", + "description": "Ti porteremo al tuo browser per registrarti a Joe Code Cloud. Poi ti riporteremo qui per terminare.", "noPrompt": "Se non ti viene chiesto di aprire un URL, clicca qui.", "havingTrouble": "Se hai completato la registrazione ma hai problemi, clicca qui.", "pasteUrl": "Incolla l'URL di callback dal tuo browser:", "docsLink": "Non funziona? Consulta la documentazione.", - "invalidURL": "Non sembra un URL di callback valido. Per favore copia quello che Roo Code Cloud sta mostrando nel tuo browser.", + "invalidURL": "Non sembra un URL di callback valido. Per favore copia quello che Joe Code Cloud sta mostrando nel tuo browser.", "goBack": "Indietro" }, "startRouter": "Ti consigliamo di usare un router LLM:", "startCustom": "Oppure puoi portare la tua chiave API:", "telemetry": { - "helpImprove": "Aiuta a migliorare Roo Code", - "helpImproveMessage": "Roo Code raccoglie dati di errore e utilizzo per aiutarci a correggere i bug e migliorare l'estensione. Questa telemetria non raccoglie codice, prompt o informazioni personali. Puoi disabilitare questa funzione in impostazioni." + "helpImprove": "Aiuta a migliorare Joe Code", + "helpImproveMessage": "Joe Code raccoglie dati di errore e utilizzo per aiutarci a correggere i bug e migliorare l'estensione. Questa telemetria non raccoglie codice, prompt o informazioni personali. Puoi disabilitare questa funzione in impostazioni." }, "importSettings": "Importa impostazioni" } diff --git a/webview-ui/src/i18n/locales/it/worktrees.json b/webview-ui/src/i18n/locales/it/worktrees.json index dda88fa53c1..c0f512bdf4e 100644 --- a/webview-ui/src/i18n/locales/it/worktrees.json +++ b/webview-ui/src/i18n/locales/it/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Fatto", - "description": "I worktree di Git ti permettono di lavorare su più branch contemporaneamente in directory separate. Ogni worktree ha la propria finestra di VS Code con Roo Code.", + "description": "I worktree di Git ti permettono di lavorare su più branch contemporaneamente in directory separate. Ogni worktree ha la propria finestra di VS Code con Joe Code.", "notGitRepo": "Questo workspace non è un repository Git. I worktree richiedono un repository Git per funzionare.", "multiRootNotSupported": "I worktree non sono supportati nei workspace multi-root. Apri una singola cartella per usare i worktree.", diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index e0e8ff24600..f29a8cdc88b 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 Code へようこそ", + "greeting": "Joe Code へようこそ", "task": { "title": "タスク", "expand": "タスクを展開", @@ -21,7 +21,7 @@ "sharePublicly": "公開で共有", "sharePubliclyDescription": "リンクを持つ誰でもアクセスできます", "connectToCloud": "クラウドに接続", - "connectToCloudDescription": "タスクを共有するためにRoo Code Cloudにサインイン", + "connectToCloudDescription": "タスクを共有するためにJoe Code Cloudにサインイン", "sharingDisabledByOrganization": "組織により共有が無効化されています", "shareSuccessOrganization": "組織リンクをクリップボードにコピーしました", "shareSuccessPublic": "公開リンクをクリップボードにコピーしました", @@ -97,7 +97,7 @@ }, "enqueueMessage": "メッセージをキューに追加(現在のタスク完了後に送信されます)", "scrollToBottom": "チャットの最下部にスクロール", - "about": "Roo Codeは、エディタに常駐するAI開発チームです。", + "about": "Joe Codeは、エディタに常駐するAI開発チームです。", "docs": "詳細については、ドキュメントをご確認ください。", "onboarding": "このワークスペースのタスクリストは空です。", "rooTips": { @@ -161,7 +161,7 @@ "500": "プロバイダー サーバー エラー。プロバイダー側に問題があり、リクエスト自体に問題はありません。", "docs": "ドキュメント", "goToSettings": "設定", - "unknown": "不明な API エラー。Roo Code のサポートにお問い合わせください。", + "unknown": "不明な API エラー。Joe Code のサポートにお問い合わせください。", "connection": "接続エラー。インターネット接続が機能していることを確認してください。", "claudeCodeNotAuthenticated": "Claude Codeを使用するにはサインインが必要です。設定に移動して「Claude Codeにサインイン」をクリックして認証してください。" } @@ -337,20 +337,20 @@ "timerPrefix": "自動承認が有効です。{{seconds}}秒後に選択中…" }, "announcement": { - "title": "Roo Code {{version}} リリース", - "support": "GitHubでスターを付けてRoo Codeを応援してください。", + "title": "Joe Code {{version}} リリース", + "support": "GitHubでスターを付けてJoe Codeを応援してください。", "stealthModel": { - "feature": "期間限定無料ステルスモデル - Code Supernova:1Mトークンコンテキストウィンドウにアップグレード!画像入力をサポートする多目的エージェントコーディングモデル、Roo Code Cloud 経由で利用可能。", + "feature": "期間限定無料ステルスモデル - Code Supernova:1Mトークンコンテキストウィンドウにアップグレード!画像入力をサポートする多目的エージェントコーディングモデル、Joe Code Cloud 経由で利用可能。", "note": "(注意:プロンプトと補完はモデル作成者によってログに記録され、モデルの改善に使用されます)", - "connectButton": "Roo Code Cloud に接続", - "selectModel": "設定で Roo Code Cloud プロバイダーから roo/code-supernova を選択して開始してください。", + "connectButton": "Joe Code Cloud に接続", + "selectModel": "設定で Joe Code Cloud プロバイダーから roo/code-supernova を選択して開始してください。", "goToSettingsButton": "設定に移動" }, "release": { "heading": "新機能:", "geminiPro": "Gemini 3.1 Pro サポート: Gemini 3.1 Pro モデルのサポートを追加し、パフォーマンス向上のためデフォルトの Gemini モデルに設定しました。", "cliNdjson": "CLI NDJSON プロトコル: 新しい NDJSON stdin プロトコル、list サブコマンド、より柔軟な CLI ワークフローのためのモジュール化された run コマンド。", - "cliRelease": "CLI v0.1.0: Roo Code CLI が安定したコマンドインターフェースで初の正式リリースに到達しました。" + "cliRelease": "CLI v0.1.0: Joe Code CLI が安定したコマンドインターフェースで初の正式リリースに到達しました。" }, "cloudAgents": { "heading": "クラウドの新機能:", @@ -375,7 +375,7 @@ "profileViolationWarning": "現在のプロファイルは組織の設定と互換性がありません", "shellIntegration": { "title": "コマンド実行警告", - "description": "コマンドはVSCodeターミナルシェル統合なしで実行されています。この警告を非表示にするには、Roo Code設定Terminalセクションでシェル統合を無効にするか、以下のリンクを使用してVSCodeターミナル統合のトラブルシューティングを行ってください。", + "description": "コマンドはVSCodeターミナルシェル統合なしで実行されています。この警告を非表示にするには、Joe Code設定Terminalセクションでシェル統合を無効にするか、以下のリンクを使用してVSCodeターミナル統合のトラブルシューティングを行ってください。", "troubleshooting": "シェル統合のドキュメントはこちらをクリック" }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "バージョン {{version}} - クリックしてリリースノートを表示" }, "rooCloudCTA": { - "title": "Roo Code Cloud が進化中!", + "title": "Joe Code Cloud が進化中!", "description": "クラウドでリモートエージェントを実行し、どこからでもタスクにアクセスし、他の人と協力し、その他多くの機能を利用できます。", "joinWaitlist": "最新のアップデートを受け取るためにサインアップしてください。" }, diff --git a/webview-ui/src/i18n/locales/ja/cloud.json b/webview-ui/src/i18n/locales/ja/cloud.json index 6474bd8fe00..64067f26683 100644 --- a/webview-ui/src/i18n/locales/ja/cloud.json +++ b/webview-ui/src/i18n/locales/ja/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "プロフィール画像", "logOut": "ログアウト", "testApiAuthentication": "API認証をテスト", - "signIn": "Roo Code Cloud に接続", + "signIn": "Joe Code Cloud に接続", "connect": "始める", - "cloudBenefitsTitle": "Roo Code Cloudを試す", + "cloudBenefitsTitle": "Joe Code Cloudを試す", "cloudBenefitProvider": "Rooと相性の良い無料および有料モデルにアクセス", "cloudBenefitCloudAgents": "自律型クラウドエージェントにタスクを依頼", "cloudBenefitTriggers": "Githubでコードレビューを取得、Slackからタスクを開始など", "cloudBenefitWalkaway": "どこからでも(スマートフォンを含む)タスクを追跡および制御", "cloudBenefitHistory": "どこからでもタスク履歴にアクセスし、他の人と共有", "cloudBenefitMetrics": "トークン消費の全体像を把握", - "visitCloudWebsite": "Roo Code Cloudを訪問", + "visitCloudWebsite": "Joe Code Cloudを訪問", "taskSync": "タスク同期", - "taskSyncDescription": "Roo Code Cloudでタスクを表示・共有するために同期", + "taskSyncDescription": "Joe Code Cloudでタスクを表示・共有するために同期", "taskSyncManagedByOrganization": "タスク同期は組織によって管理されます", "usageMetricsAlwaysReported": "ログイン時にはモデル使用情報が常に報告されます", "authWaiting": "認証完了をお待ちください...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "ブラウザからリダイレクトURLをコピーし、ここに貼り付けてください:", "startOver": "最初からやり直す", "personalAccount": "個人アカウント", - "switchAccount": "Roo Code Cloud アカウントを切り替え", + "switchAccount": "Joe Code Cloud アカウントを切り替え", "createTeamAccount": "チームアカウントを作成", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { - "autoApprovePowerUser": "Rooに少し独立性を与えませんか?Roo Code Cloudでどこからでもコントロールできます。詳細。", + "autoApprovePowerUser": "Rooに少し独立性を与えませんか?Joe Code Cloudでどこからでもコントロールできます。詳細。", "longRunningTask": "これには時間がかかるかもしれません。Cloudを使えばどこからでも続けられます。", - "taskList": "Rooを楽しんでいますか?Roo Code Cloudをチェックしてください:どこからでもタスクを追跡および制御し、自律型クラウドエージェントを実行し、使用状況の統計を取得します。詳細。" + "taskList": "Rooを楽しんでいますか?Joe Code Cloudをチェックしてください:どこからでもタスクを追跡および制御し、自律型クラウドエージェントを実行し、使用状況の統計を取得します。詳細。" } } diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index b0d921571af..347d2efdd53 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "実験的", "language": "言語", - "about": "Roo Codeについて", + "about": "Joe Codeについて", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "お問い合わせが必要ですか?メールを送信" }, - "community": "ヒントが欲しいですか、または他のRoo Codeユーザーと交流したいですか?reddit.com/r/RooCodeまたはdiscord.gg/roocodeに参加してください", + "community": "ヒントが欲しいですか、または他のJoe Codeユーザーと交流したいですか?reddit.com/r/JoeCodeまたはdiscord.gg/joecodeに参加してください", "contactAndCommunity": "お問い合わせとコミュニティ", "manageSettings": "設定を管理", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "推論デコーディングが正しく機能するには、ドラフトモデルは同じモデルファミリーから選択する必要があります。", "selectDraftModel": "ドラフトモデルを選択", "noModelsFound": "ドラフトモデルが見つかりません。LM Studioがサーバーモードで実行されていることを確認してください。", - "description": "LM Studioを使用すると、ローカルコンピューターでモデルを実行できます。始め方については、クイックスタートガイドをご覧ください。また、この拡張機能で使用するには、LM Studioのローカルサーバー機能を起動する必要があります。注意:Roo Codeは複雑なプロンプトを使用し、Claudeモデルで最適に動作します。能力の低いモデルは期待通りに動作しない場合があります。" + "description": "LM Studioを使用すると、ローカルコンピューターでモデルを実行できます。始め方については、クイックスタートガイドをご覧ください。また、この拡張機能で使用するには、LM Studioのローカルサーバー機能を起動する必要があります。注意:Joe Codeは複雑なプロンプトを使用し、Claudeモデルで最適に動作します。能力の低いモデルは期待通りに動作しない場合があります。" }, "ollama": { "baseUrl": "ベースURL(オプション)", @@ -466,11 +466,11 @@ "numCtx": "コンテキストウィンドウサイズ (num_ctx)", "numCtxHelp": "モデルのデフォルトのコンテキストウィンドウサイズを上書きします。モデルのModelfile構成を使用するには、空のままにします。最小値は128です。", "description": "Ollamaを使用すると、ローカルコンピューターでモデルを実行できます。始め方については、クイックスタートガイドをご覧ください。", - "warning": "注意:Roo Codeは複雑なプロンプトを使用し、Claudeモデルで最適に動作します。能力の低いモデルは期待通りに動作しない場合があります。" + "warning": "注意:Joe Codeは複雑なプロンプトを使用し、Claudeモデルで最適に動作します。能力の低いモデルは期待通りに動作しない場合があります。" }, "roo": { - "authenticatedMessage": "Roo Code Cloudアカウントを通じて安全に認証されています。", - "connectButton": "Roo Code Cloudに接続" + "authenticatedMessage": "Joe Code Cloudアカウントを通じて安全に認証されています。", + "connectButton": "Joe Code Cloudに接続" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "カスタムOpenAI互換モデルの機能と価格を設定します。モデルの機能はRoo Codeのパフォーマンスに影響を与える可能性があるため、慎重に指定してください。", + "capabilities": "カスタムOpenAI互換モデルの機能と価格を設定します。モデルの機能はJoe Codeのパフォーマンスに影響を与える可能性があるため、慎重に指定してください。", "maxTokens": { "label": "最大出力トークン", "description": "モデルが生成できる応答の最大トークン数。(サーバーが最大トークンを設定できるようにするには-1を指定します。)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "拡張機能は{{serviceName}}で利用可能な最新のモデルリストを自動的に取得します。どのモデルを選ぶべきか迷っている場合、Roo Codeは{{defaultModelId}}で最適に動作します。また、「free」で検索すると、現在利用可能な無料オプションを見つけることができます。", + "automaticFetch": "拡張機能は{{serviceName}}で利用可能な最新のモデルリストを自動的に取得します。どのモデルを選ぶべきか迷っている場合、Joe Codeは{{defaultModelId}}で最適に動作します。また、「free」で検索すると、現在利用可能な無料オプションを見つけることができます。", "label": "モデル", "searchPlaceholder": "検索", "noMatchFound": "一致するものが見つかりません", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "匿名のエラーと使用状況レポートを許可", - "description": "匿名の使用データとエラーレポートを送信してRoo Codeの改善にご協力ください。このテレメトリはコード、プロンプト、個人情報を収集しません。詳細についてはプライバシーポリシーをご覧ください。" + "description": "匿名の使用データとエラーレポートを送信してJoe Codeの改善にご協力ください。このテレメトリはコード、プロンプト、個人情報を収集しません。詳細についてはプライバシーポリシーをご覧ください。" }, "settings": { "import": "インポート", diff --git a/webview-ui/src/i18n/locales/ja/welcome.json b/webview-ui/src/i18n/locales/ja/welcome.json index ee24c89af2e..b87e8fc08f6 100644 --- a/webview-ui/src/i18n/locales/ja/welcome.json +++ b/webview-ui/src/i18n/locales/ja/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Roo Codeへようこそ!", - "introduction": "組み込みおよび拡張可能なモードを備えたRoo Codeは、計画、アーキテクチャ設計、コーディング、デバッグ、そして今までにない生産性向上を可能にします。", - "accountMention": "始めるには、Roo Code Cloudアカウントを作成してください。強力なモデル、ウェブコントロール、分析、サポート、その他をご利用いただけます。", + "greeting": "Joe Codeへようこそ!", + "introduction": "組み込みおよび拡張可能なモードを備えたJoe Codeは、計画、アーキテクチャ設計、コーディング、デバッグ、そして今までにない生産性向上を可能にします。", + "accountMention": "始めるには、Joe Code Cloudアカウントを作成してください。強力なモデル、ウェブコントロール、分析、サポート、その他をご利用いただけます。", "getStarted": "Rooアカウントを作成", "noAccount": "またはアカウントなしで使用" }, "providerSignup": { "heading": "プロバイダーを選択", "chooseProvider": "Rooが機能するにはLLMプロバイダーが必要です。始めるために1つを選択してください。後から追加することもできます。", - "rooCloudProvider": "Roo Code Cloudプロバイダー", - "rooCloudDescription": "始める最も簡単な方法は、Roo Code Cloudプロバイダーを使用することです。無料および有料モデルの厳選されたミックスを低コストで提供します。", + "rooCloudProvider": "Joe Code Cloudプロバイダー", + "rooCloudDescription": "始める最も簡単な方法は、Joe Code Cloudプロバイダーを使用することです。無料および有料モデルの厳選されたミックスを低コストで提供します。", "learnMore": "詳細を見る", "useAnotherProvider": "サードパーティプロバイダー", "useAnotherProviderDescription": "APIキーを入力して開始します。", "noApiKeys": "APIキーと別のアカウントを処理したくありませんか?", - "backToRoo": "Roo Code Cloudプロバイダーを選択してください。", + "backToRoo": "Joe Code Cloudプロバイダーを選択してください。", "goBack": "戻る", "finish": "完了" }, "waitingForCloud": { - "heading": "Roo Code Cloudにログイン中...", - "description": "Roo Code Cloudに登録するためにブラウザーに移動します。その後、ここに戻って完了します。", + "heading": "Joe Code Cloudにログイン中...", + "description": "Joe Code Cloudに登録するためにブラウザーに移動します。その後、ここに戻って完了します。", "noPrompt": "URLを開くように求められない場合は、ここをクリックしてください。", "havingTrouble": "登録を完了しましたがトラブルが発生している場合は、ここをクリックしてください。", "pasteUrl": "ブラウザーに表示されているコールバックURLを貼り付けます:", "docsLink": "機能していませんか?ドキュメントを確認してください。", - "invalidURL": "有効なコールバックURLのようには見えません。Roo Code Cloudがブラウザーに表示しているものをコピーしてください。", + "invalidURL": "有効なコールバックURLのようには見えません。Joe Code Cloudがブラウザーに表示しているものをコピーしてください。", "goBack": "戻る" }, "startRouter": "LLMルーターの使用をお勧めします:", "startCustom": "または、独自のAPIキーを持ってくることもできます:", "telemetry": { - "helpImprove": "Roo Codeの改善にご協力ください", - "helpImproveMessage": "Roo Codeは、バグを修正し、拡張機能を改善するために、エラーおよび使用データを収集します。このテレメトリはコード、プロンプト、または個人情報を収集しません。これは設定で無効にできます。" + "helpImprove": "Joe Codeの改善にご協力ください", + "helpImproveMessage": "Joe Codeは、バグを修正し、拡張機能を改善するために、エラーおよび使用データを収集します。このテレメトリはコード、プロンプト、または個人情報を収集しません。これは設定で無効にできます。" }, "importSettings": "設定のインポート" } diff --git a/webview-ui/src/i18n/locales/ja/worktrees.json b/webview-ui/src/i18n/locales/ja/worktrees.json index f07bd3ea48c..22b4b72e437 100644 --- a/webview-ui/src/i18n/locales/ja/worktrees.json +++ b/webview-ui/src/i18n/locales/ja/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "完了", - "description": "Git worktrees を使うと、別々のディレクトリで複数のブランチを同時に作業できます。各 worktree には Roo Code 付きの VS Code ウィンドウが割り当てられます。", + "description": "Git worktrees を使うと、別々のディレクトリで複数のブランチを同時に作業できます。各 worktree には Joe Code 付きの VS Code ウィンドウが割り当てられます。", "notGitRepo": "このワークスペースは Git リポジトリではありません。worktrees を使うには Git リポジトリが必要です。", "multiRootNotSupported": "マルチルートのワークスペースでは worktrees はサポートされていません。worktrees を使うには単一のフォルダーを開いてください。", diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index ff3e419975d..a685dda5069 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 Code에 오신 것을 환영합니다", + "greeting": "Joe Code에 오신 것을 환영합니다", "task": { "title": "작업", "expand": "작업 펼치기", @@ -21,7 +21,7 @@ "sharePublicly": "공개적으로 공유", "sharePubliclyDescription": "링크가 있는 누구나 액세스할 수 있습니다", "connectToCloud": "클라우드에 연결", - "connectToCloudDescription": "작업을 공유하려면 Roo Code Cloud에 로그인하세요", + "connectToCloudDescription": "작업을 공유하려면 Joe Code Cloud에 로그인하세요", "sharingDisabledByOrganization": "조직에서 공유가 비활성화됨", "shareSuccessOrganization": "조직 링크가 클립보드에 복사되었습니다", "shareSuccessPublic": "공개 링크가 클립보드에 복사되었습니다", @@ -97,7 +97,7 @@ }, "enqueueMessage": "메시지를 대기열에 추가 (현재 작업 완료 후 전송)", "scrollToBottom": "채팅 하단으로 스크롤", - "about": "Roo Code는 편집기 안에 있는 전체 AI 개발팀입니다.", + "about": "Joe Code는 편집기 안에 있는 전체 AI 개발팀입니다.", "docs": "더 알아보려면 문서를 확인하세요.", "onboarding": "이 작업 공간의 작업 목록이 비어 있습니다.", "rooTips": { @@ -161,7 +161,7 @@ "500": "공급자 서버 오류입니다. 공급자 쪽에 문제가 있으며 요청에는 문제가 없습니다.", "docs": "문서", "goToSettings": "설정", - "unknown": "알 수 없는 API 오류입니다. Roo Code 지원팀에 문의하세요.", + "unknown": "알 수 없는 API 오류입니다. Joe Code 지원팀에 문의하세요.", "connection": "연결 오류입니다. 인터넷 연결이 제대로 작동하는지 확인하세요.", "claudeCodeNotAuthenticated": "Claude Code를 사용하려면 로그인해야 합니다. 설정으로 이동하여 \"Claude Code에 로그인\"을 클릭하여 인증하세요." } @@ -337,20 +337,20 @@ "timerPrefix": "자동 승인 활성화됨. {{seconds}}초 후 선택 중…" }, "announcement": { - "title": "Roo Code {{version}} 출시", - "support": "GitHub에서 별표를 눌러 Roo Code를 응원해 주세요.", + "title": "Joe Code {{version}} 출시", + "support": "GitHub에서 별표를 눌러 Joe Code를 응원해 주세요.", "stealthModel": { - "feature": "기간 한정 무료 스텔스 모델 - Code Supernova: 이제 1M 토큰 컨텍스트 윈도우로 업그레이드되었습니다! 이미지 입력을 지원하는 다목적 에이전틱 코딩 모델, Roo Code Cloud를 통해 이용 가능.", + "feature": "기간 한정 무료 스텔스 모델 - Code Supernova: 이제 1M 토큰 컨텍스트 윈도우로 업그레이드되었습니다! 이미지 입력을 지원하는 다목적 에이전틱 코딩 모델, Joe Code Cloud를 통해 이용 가능.", "note": "(참고: 프롬프트와 완성은 모델 제작자에 의해 기록되고 모델 개선에 사용됩니다)", - "connectButton": "Roo Code Cloud에 연결", - "selectModel": "설정에서 Roo Code Cloud 제공업체의 roo/code-supernova를 선택하여 시작하세요.", + "connectButton": "Joe Code Cloud에 연결", + "selectModel": "설정에서 Joe Code Cloud 제공업체의 roo/code-supernova를 선택하여 시작하세요.", "goToSettingsButton": "설정으로 이동" }, "release": { "heading": "새로운 기능:", "geminiPro": "Gemini 3.1 Pro 지원: Gemini 3.1 Pro 모델 지원이 추가되었으며, 향상된 성능을 위해 기본 Gemini 모델로 설정되었습니다.", "cliNdjson": "CLI NDJSON 프로토콜: 새로운 NDJSON stdin 프로토콜, list 하위 명령어, 더 유연한 CLI 워크플로를 위한 모듈화된 run 명령어.", - "cliRelease": "CLI v0.1.0: Roo Code CLI가 안정적인 명령어 인터페이스로 첫 공식 릴리스에 도달했습니다." + "cliRelease": "CLI v0.1.0: Joe Code CLI가 안정적인 명령어 인터페이스로 첫 공식 릴리스에 도달했습니다." }, "cloudAgents": { "heading": "클라우드의 새로운 기능:", @@ -375,7 +375,7 @@ "profileViolationWarning": "현재 프로필이 조직 설정과 호환되지 않습니다", "shellIntegration": { "title": "명령 실행 경고", - "description": "명령이 VSCode 터미널 쉘 통합 없이 실행되고 있습니다. 이 경고를 숨기려면 Roo Code 설정Terminal 섹션에서 쉘 통합을 비활성화하거나 아래 링크를 사용하여 VSCode 터미널 통합 문제를 해결하세요.", + "description": "명령이 VSCode 터미널 쉘 통합 없이 실행되고 있습니다. 이 경고를 숨기려면 Joe Code 설정Terminal 섹션에서 쉘 통합을 비활성화하거나 아래 링크를 사용하여 VSCode 터미널 통합 문제를 해결하세요.", "troubleshooting": "쉘 통합 문서를 보려면 여기를 클릭하세요." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "버전 {{version}} - 릴리스 노트를 보려면 클릭하세요" }, "rooCloudCTA": { - "title": "Roo Code Cloud가 진화하고 있습니다!", + "title": "Joe Code Cloud가 진화하고 있습니다!", "description": "클라우드에서 원격 에이전트를 실행하고, 어디서나 작업에 액세스하고, 다른 사람들과 협업하는 등 다양한 기능을 이용하세요.", "joinWaitlist": "최신 업데이트를 받으려면 가입하세요." }, diff --git a/webview-ui/src/i18n/locales/ko/cloud.json b/webview-ui/src/i18n/locales/ko/cloud.json index c0731e3bf4e..4c4e6486ff8 100644 --- a/webview-ui/src/i18n/locales/ko/cloud.json +++ b/webview-ui/src/i18n/locales/ko/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "프로필 사진", "logOut": "로그아웃", "testApiAuthentication": "API 인증 테스트", - "signIn": "Roo Code Cloud에 연결", + "signIn": "Joe Code Cloud에 연결", "connect": "시작하기", - "cloudBenefitsTitle": "Roo Code Cloud 체험하기", + "cloudBenefitsTitle": "Joe Code Cloud 체험하기", "cloudBenefitProvider": "Roo와 잘 작동하는 무료 및 유료 모델에 액세스하세요", "cloudBenefitCloudAgents": "자율 클라우드 에이전트에게 작업 부여", "cloudBenefitTriggers": "GitHub에서 코드 리뷰 받기, Slack에서 작업 시작 등", "cloudBenefitWalkaway": "어디서나(휴대전화 포함) 작업을 팔로우하고 제어하세요", "cloudBenefitHistory": "어디서나 작업 기록에 액세스하고 다른 사람과 공유하세요", "cloudBenefitMetrics": "토큰 소비에 대한 전체적인 보기 얻기", - "visitCloudWebsite": "Roo Code Cloud 방문", + "visitCloudWebsite": "Joe Code Cloud 방문", "taskSync": "작업 동기화", - "taskSyncDescription": "Roo Code Cloud에서 보고 공유할 수 있도록 작업을 동기화", + "taskSyncDescription": "Joe Code Cloud에서 보고 공유할 수 있도록 작업을 동기화", "taskSyncManagedByOrganization": "작업 동기화는 조직에서 관리합니다", "usageMetricsAlwaysReported": "로그인 시 모델 사용 정보가 항상 보고됩니다", "authWaiting": "인증 완료를 기다리는 중...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "브라우저에서 리다이렉트 URL을 복사하여 여기에 붙여넣으세요:", "startOver": "다시 시작", "personalAccount": "개인 계정", - "switchAccount": "Roo Code Cloud 계정 전환", + "switchAccount": "Joe Code Cloud 계정 전환", "createTeamAccount": "팀 계정 만들기", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { - "autoApprovePowerUser": "Roo에게 약간의 독립성을 부여하시겠습니까? Roo Code Cloud로 어디서든 제어하세요. 더 알아보기.", + "autoApprovePowerUser": "Roo에게 약간의 독립성을 부여하시겠습니까? Joe Code Cloud로 어디서든 제어하세요. 더 알아보기.", "longRunningTask": "시간이 좀 걸릴 수 있습니다. Cloud로 어디서든 계속하세요.", - "taskList": "Roo를 즐기고 계신가요? Roo Code Cloud를 확인해보세요: 어디서든 작업을 추적하고 제어하며, 자율적인 클라우드 에이전트를 실행하고, 사용 통계를 얻는 등 다양한 기능을 제공합니다. 더 알아보기." + "taskList": "Roo를 즐기고 계신가요? Joe Code Cloud를 확인해보세요: 어디서든 작업을 추적하고 제어하며, 자율적인 클라우드 에이전트를 실행하고, 사용 통계를 얻는 등 다양한 기능을 제공합니다. 더 알아보기." } } diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index 88fc8e6d79e..d004c777dc2 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "실험적", "language": "언어", - "about": "Roo Code 정보", + "about": "Joe Code 정보", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "문의가 필요하신가요? 이메일 보내기" }, - "community": "팁을 얻거나 다른 Roo Code 사용자들과 교류하고 싶으신가요? reddit.com/r/RooCode 또는 discord.gg/roocode에 참여하세요", + "community": "팁을 얻거나 다른 Joe Code 사용자들과 교류하고 싶으신가요? reddit.com/r/JoeCode 또는 discord.gg/joecode에 참여하세요", "contactAndCommunity": "문의 및 커뮤니티", "manageSettings": "설정 관리", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "추론 디코딩이 올바르게 작동하려면 초안 모델이 동일한 모델 패밀리에서 와야 합니다.", "selectDraftModel": "초안 모델 선택", "noModelsFound": "초안 모델을 찾을 수 없습니다. LM Studio가 서버 모드로 실행 중인지 확인하세요.", - "description": "LM Studio를 사용하면 컴퓨터에서 로컬로 모델을 실행할 수 있습니다. 시작하는 방법은 빠른 시작 가이드를 참조하세요. 이 확장 프로그램과 함께 사용하려면 LM Studio의 로컬 서버 기능도 시작해야 합니다. 참고: Roo Code는 복잡한 프롬프트를 사용하며 Claude 모델에서 가장 잘 작동합니다. 덜 강력한 모델은 예상대로 작동하지 않을 수 있습니다." + "description": "LM Studio를 사용하면 컴퓨터에서 로컬로 모델을 실행할 수 있습니다. 시작하는 방법은 빠른 시작 가이드를 참조하세요. 이 확장 프로그램과 함께 사용하려면 LM Studio의 로컬 서버 기능도 시작해야 합니다. 참고: Joe Code는 복잡한 프롬프트를 사용하며 Claude 모델에서 가장 잘 작동합니다. 덜 강력한 모델은 예상대로 작동하지 않을 수 있습니다." }, "ollama": { "baseUrl": "기본 URL (선택사항)", @@ -466,11 +466,11 @@ "numCtx": "컨텍스트 창 크기(num_ctx)", "numCtxHelp": "모델의 기본 컨텍스트 창 크기를 재정의합니다. 모델의 Modelfile 구성을 사용하려면 비워 둡니다. 최소값은 128입니다.", "description": "Ollama를 사용하면 컴퓨터에서 로컬로 모델을 실행할 수 있습니다. 시작하는 방법은 빠른 시작 가이드를 참조하세요.", - "warning": "참고: Roo Code는 복잡한 프롬프트를 사용하며 Claude 모델에서 가장 잘 작동합니다. 덜 강력한 모델은 예상대로 작동하지 않을 수 있습니다." + "warning": "참고: Joe Code는 복잡한 프롬프트를 사용하며 Claude 모델에서 가장 잘 작동합니다. 덜 강력한 모델은 예상대로 작동하지 않을 수 있습니다." }, "roo": { - "authenticatedMessage": "Roo Code Cloud 계정을 통해 안전하게 인증되었습니다.", - "connectButton": "Roo Code Cloud에 연결" + "authenticatedMessage": "Joe Code Cloud 계정을 통해 안전하게 인증되었습니다.", + "connectButton": "Joe Code Cloud에 연결" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "사용자 정의 OpenAI 호환 모델의 기능과 가격을 구성하세요. 모델 기능이 Roo Code의 성능에 영향을 미칠 수 있으므로 신중하게 지정하세요.", + "capabilities": "사용자 정의 OpenAI 호환 모델의 기능과 가격을 구성하세요. 모델 기능이 Joe Code의 성능에 영향을 미칠 수 있으므로 신중하게 지정하세요.", "maxTokens": { "label": "최대 출력 토큰", "description": "모델이 응답에서 생성할 수 있는 최대 토큰 수입니다. (서버가 최대 토큰을 설정하도록 하려면 -1을 지정하세요.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "확장 프로그램은 {{serviceName}}에서 사용 가능한 최신 모델 목록을 자동으로 가져옵니다. 어떤 모델을 선택해야 할지 확실하지 않다면, Roo Code는 {{defaultModelId}}로 가장 잘 작동합니다. 현재 사용 가능한 무료 옵션을 찾으려면 \"free\"를 검색해 볼 수도 있습니다.", + "automaticFetch": "확장 프로그램은 {{serviceName}}에서 사용 가능한 최신 모델 목록을 자동으로 가져옵니다. 어떤 모델을 선택해야 할지 확실하지 않다면, Joe Code는 {{defaultModelId}}로 가장 잘 작동합니다. 현재 사용 가능한 무료 옵션을 찾으려면 \"free\"를 검색해 볼 수도 있습니다.", "label": "모델", "searchPlaceholder": "검색", "noMatchFound": "일치하는 항목 없음", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "익명 오류 및 사용 보고 허용", - "description": "익명 사용 데이터 및 오류 보고서를 전송하여 Roo Code 개선에 도움을 주세요. 이 텔레메트리는 코드, 프롬프트 또는 개인 정보를 수집하지 않습니다. 자세한 내용은 개인정보 보호정책을 참조하세요." + "description": "익명 사용 데이터 및 오류 보고서를 전송하여 Joe Code 개선에 도움을 주세요. 이 텔레메트리는 코드, 프롬프트 또는 개인 정보를 수집하지 않습니다. 자세한 내용은 개인정보 보호정책을 참조하세요." }, "settings": { "import": "가져오기", diff --git a/webview-ui/src/i18n/locales/ko/welcome.json b/webview-ui/src/i18n/locales/ko/welcome.json index 998acdb75f5..e549db76fa6 100644 --- a/webview-ui/src/i18n/locales/ko/welcome.json +++ b/webview-ui/src/i18n/locales/ko/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Roo Code에 오신 것을 환영합니다!", - "introduction": "내장 및 확장 가능한 다양한 모드를 통해 Roo Code는 계획, 아키텍처 설계, 코딩, 디버깅 및 전례 없는 생산성 향상을 가능하게 합니다.", - "accountMention": "시작하려면 Roo Code Cloud 계정을 만드세요. 강력한 모델, 웹 제어, 분석, 지원 등을 얻으세요.", + "greeting": "Joe Code에 오신 것을 환영합니다!", + "introduction": "내장 및 확장 가능한 다양한 모드를 통해 Joe Code는 계획, 아키텍처 설계, 코딩, 디버깅 및 전례 없는 생산성 향상을 가능하게 합니다.", + "accountMention": "시작하려면 Joe Code Cloud 계정을 만드세요. 강력한 모델, 웹 제어, 분석, 지원 등을 얻으세요.", "getStarted": "Roo 계정 만들기", "noAccount": "또는 계정 없이 사용하기" }, "providerSignup": { "heading": "공급자 선택", "chooseProvider": "Roo가 작동하려면 LLM 공급자가 필요합니다. 시작하려면 하나를 선택하세요. 나중에 더 추가할 수 있습니다.", - "rooCloudProvider": "Roo Code Cloud 공급자", - "rooCloudDescription": "시작하는 가장 쉬운 방법은 Roo Code Cloud 공급자를 사용하는 것입니다: 무료 및 유료 모델의 신중하게 선택된 믹스, 저렴한 비용으로.", + "rooCloudProvider": "Joe Code Cloud 공급자", + "rooCloudDescription": "시작하는 가장 쉬운 방법은 Joe Code Cloud 공급자를 사용하는 것입니다: 무료 및 유료 모델의 신중하게 선택된 믹스, 저렴한 비용으로.", "learnMore": "자세히 알아보기", "useAnotherProvider": "타사 공급자", "useAnotherProviderDescription": "API 키를 입력하고 시작하세요.", "noApiKeys": "API 키와 별도의 계정을 다루고 싶지 않으신가요?", - "backToRoo": "Roo Code Cloud 공급자를 선택하세요.", + "backToRoo": "Joe Code Cloud 공급자를 선택하세요.", "goBack": "뒤로", "finish": "완료" }, "waitingForCloud": { - "heading": "Roo Code Cloud에 로그인 중...", - "description": "Roo Code Cloud에 등록하기 위해 브라우저로 이동합니다. 그런 다음 여기로 돌아와서 완료합니다.", + "heading": "Joe Code Cloud에 로그인 중...", + "description": "Joe Code Cloud에 등록하기 위해 브라우저로 이동합니다. 그런 다음 여기로 돌아와서 완료합니다.", "noPrompt": "URL을 열도록 요청받지 않으면 여기를 클릭하세요.", "havingTrouble": "등록을 완료했지만 문제가 있는 경우 여기를 클릭하세요.", "pasteUrl": "브라우저에서 표시된 콜백 URL을 붙여넣으세요:", "docsLink": "작동하지 않나요? 문서를 확인하세요.", - "invalidURL": "유효한 콜백 URL처럼 보이지 않습니다. Roo Code Cloud가 브라우저에 표시하는 것을 복사하세요.", + "invalidURL": "유효한 콜백 URL처럼 보이지 않습니다. Joe Code Cloud가 브라우저에 표시하는 것을 복사하세요.", "goBack": "뒤로" }, "startRouter": "LLM 라우터 사용을 권장합니다:", "startCustom": "또는 자신의 API 키를 가져올 수 있습니다:", "telemetry": { - "helpImprove": "Roo Code 개선에 도움주세요", - "helpImproveMessage": "Roo Code는 버그를 수정하고 확장을 개선하기 위해 오류 및 사용 데이터를 수집합니다. 이 원격 분석은 코드, 프롬프트 또는 개인 정보를 수집하지 않습니다. 설정에서 이를 비활성화할 수 있습니다." + "helpImprove": "Joe Code 개선에 도움주세요", + "helpImproveMessage": "Joe Code는 버그를 수정하고 확장을 개선하기 위해 오류 및 사용 데이터를 수집합니다. 이 원격 분석은 코드, 프롬프트 또는 개인 정보를 수집하지 않습니다. 설정에서 이를 비활성화할 수 있습니다." }, "importSettings": "설정 가져오기" } diff --git a/webview-ui/src/i18n/locales/ko/worktrees.json b/webview-ui/src/i18n/locales/ko/worktrees.json index 388a508a9b5..552c7dc1070 100644 --- a/webview-ui/src/i18n/locales/ko/worktrees.json +++ b/webview-ui/src/i18n/locales/ko/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "완료", - "description": "Git worktrees를 사용하면 별도의 디렉터리에서 여러 브랜치를 동시에 작업할 수 있습니다. 각 worktree는 Roo Code가 포함된 자체 VS Code 창을 가집니다.", + "description": "Git worktrees를 사용하면 별도의 디렉터리에서 여러 브랜치를 동시에 작업할 수 있습니다. 각 worktree는 Joe Code가 포함된 자체 VS Code 창을 가집니다.", "notGitRepo": "이 워크스페이스는 Git 저장소가 아닙니다. worktrees를 사용하려면 Git 저장소가 필요합니다.", "multiRootNotSupported": "멀티 루트 워크스페이스에서는 worktrees가 지원되지 않습니다. worktrees를 사용하려면 단일 폴더를 여세요.", diff --git a/webview-ui/src/i18n/locales/nl/chat.json b/webview-ui/src/i18n/locales/nl/chat.json index d79c95d9e97..81e672c7383 100644 --- a/webview-ui/src/i18n/locales/nl/chat.json +++ b/webview-ui/src/i18n/locales/nl/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Welkom bij Roo Code", + "greeting": "Welkom bij Joe Code", "task": { "title": "Taak", "expand": "Taak uitvouwen", @@ -21,7 +21,7 @@ "sharePublicly": "Openbaar delen", "sharePubliclyDescription": "Iedereen met de link kan toegang krijgen", "connectToCloud": "Verbind met Cloud", - "connectToCloudDescription": "Meld je aan bij Roo Code Cloud om taken te delen", + "connectToCloudDescription": "Meld je aan bij Joe Code Cloud om taken te delen", "sharingDisabledByOrganization": "Delen uitgeschakeld door organisatie", "shareSuccessOrganization": "Organisatielink gekopieerd naar klembord", "shareSuccessPublic": "Openbare link gekopieerd naar klembord", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Bericht aan de wachtrij toevoegen (wordt verzonden nadat de huidige taak is voltooid)", "scrollToBottom": "Scroll naar onderaan de chat", - "about": "Roo Code is een heel AI-ontwikkelteam in je editor.", + "about": "Joe Code is een heel AI-ontwikkelteam in je editor.", "docs": "Bekijk onze documentatie voor meer informatie.", "onboarding": "Je takenlijst in deze werkruimte is leeg.", "rooTips": { @@ -156,7 +156,7 @@ "500": "Provider-serverfout. Er is iets mis aan de kant van de provider, er is niets mis met je verzoek.", "docs": "Documentatie", "goToSettings": "Instellingen", - "unknown": "Onbekende API-fout. Neem alsjeblieft contact op met Roo Code-ondersteuning.", + "unknown": "Onbekende API-fout. Neem alsjeblieft contact op met Joe Code-ondersteuning.", "connection": "Verbindingsfout. Zorg ervoor dat je een werkende internetverbinding hebt.", "claudeCodeNotAuthenticated": "Je moet inloggen om Claude Code te gebruiken. Ga naar Instellingen en klik op \"Inloggen bij Claude Code\" om te authenticeren." } @@ -251,8 +251,8 @@ "modes": { "wantsToSwitch": "Roo wil overschakelen naar {{mode}} modus", "wantsToSwitchWithReason": "Roo wil overschakelen naar {{mode}} modus omdat: {{reason}}", - "didSwitch": "Roo is overgeschakeld naar {{mode}} modus", - "didSwitchWithReason": "Roo is overgeschakeld naar {{mode}} modus omdat: {{reason}}" + "didSwitch": "Joe is overgeschakeld naar {{mode}} modus", + "didSwitchWithReason": "Joe is overgeschakeld naar {{mode}} modus omdat: {{reason}}" }, "subtasks": { "wantsToCreate": "Roo wil een nieuwe subtaak aanmaken in {{mode}} modus", @@ -310,20 +310,20 @@ "triggerLabelAll": "BRRR" }, "announcement": { - "title": "Roo Code {{version}} uitgebracht", - "support": "Steun Roo Code door ons een ster te geven op GitHub.", + "title": "Joe Code {{version}} uitgebracht", + "support": "Steun Joe Code door ons een ster te geven op GitHub.", "stealthModel": { - "feature": "Beperkt tijd GRATIS stealth model - Code Supernova: Nu geüpgraded met een 1M token contextvenster! Een veelzijdig agentisch codeermodel dat beeldinvoer ondersteunt, beschikbaar via Roo Code Cloud.", + "feature": "Beperkt tijd GRATIS stealth model - Code Supernova: Nu geüpgraded met een 1M token contextvenster! Een veelzijdig agentisch codeermodel dat beeldinvoer ondersteunt, beschikbaar via Joe Code Cloud.", "note": "(Opmerking: prompts en aanvullingen worden gelogd door de modelmaker en gebruikt om het model te verbeteren)", - "connectButton": "Verbinden met Roo Code Cloud", - "selectModel": "Selecteer roo/code-supernova van de Roo Code Cloud provider in Instellingen om te beginnen.", + "connectButton": "Verbinden met Joe Code Cloud", + "selectModel": "Selecteer roo/code-supernova van de Joe Code Cloud provider in Instellingen om te beginnen.", "goToSettingsButton": "Ga naar Instellingen" }, "release": { "heading": "Wat is er nieuw:", "geminiPro": "Gemini 3.1 Pro ondersteuning: Ondersteuning voor het Gemini 3.1 Pro model is toegevoegd en ingesteld als standaard Gemini-model voor betere prestaties.", "cliNdjson": "CLI NDJSON-protocol: Nieuw NDJSON stdin-protocol, list-subopdrachten en gemodulariseerd run-commando voor flexibelere CLI-workflows.", - "cliRelease": "CLI v0.1.0: De Roo Code CLI bereikt zijn eerste officiële release met een stabiele opdrachtinterface." + "cliRelease": "CLI v0.1.0: De Joe Code CLI bereikt zijn eerste officiële release met een stabiele opdrachtinterface." }, "cloudAgents": { "heading": "Nieuw in de Cloud:", @@ -375,7 +375,7 @@ "profileViolationWarning": "Het huidige profiel is niet compatibel met de instellingen van uw organisatie", "shellIntegration": { "title": "Waarschuwing commando-uitvoering", - "description": "Je commando wordt uitgevoerd zonder VSCode-terminal shell-integratie. Om deze waarschuwing te onderdrukken kun je shell-integratie uitschakelen in het gedeelte Terminal van de Roo Code-instellingen of de VSCode-terminalintegratie oplossen via de onderstaande link.", + "description": "Je commando wordt uitgevoerd zonder VSCode-terminal shell-integratie. Om deze waarschuwing te onderdrukken kun je shell-integratie uitschakelen in het gedeelte Terminal van de Joe Code-instellingen of de VSCode-terminalintegratie oplossen via de onderstaande link.", "troubleshooting": "Klik hier voor shell-integratie documentatie." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Versie {{version}} - Klik om release notes te bekijken" }, "rooCloudCTA": { - "title": "Roo Code Cloud evolueert!", + "title": "Joe Code Cloud evolueert!", "description": "Voer externe agenten uit in de cloud, krijg overal toegang tot je taken, werk samen met anderen en nog veel meer.", "joinWaitlist": "Meld je aan om de laatste updates te ontvangen." }, diff --git a/webview-ui/src/i18n/locales/nl/cloud.json b/webview-ui/src/i18n/locales/nl/cloud.json index 5a4a5c4db28..d7be8e893d8 100644 --- a/webview-ui/src/i18n/locales/nl/cloud.json +++ b/webview-ui/src/i18n/locales/nl/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Profielfoto", "logOut": "Uitloggen", "testApiAuthentication": "API-authenticatie testen", - "signIn": "Verbind met Roo Code Cloud", + "signIn": "Verbind met Joe Code Cloud", "connect": "Aan de slag", - "cloudBenefitsTitle": "Probeer Roo Code Cloud", + "cloudBenefitsTitle": "Probeer Joe Code Cloud", "cloudBenefitProvider": "Toegang tot gratis en betaalde modellen die geweldig werken met Roo", "cloudBenefitCloudAgents": "Geef taken aan autonome Cloud-agents", "cloudBenefitTriggers": "Krijg code reviews op Github, start taken vanuit Slack en meer", "cloudBenefitWalkaway": "Volg en beheer taken van overal (inclusief je telefoon)", "cloudBenefitHistory": "Toegang tot je taakgeschiedenis van overal en deel ze met anderen", "cloudBenefitMetrics": "Krijg een holistisch overzicht van je tokenverbruik", - "visitCloudWebsite": "Bezoek Roo Code Cloud", + "visitCloudWebsite": "Bezoek Joe Code Cloud", "taskSync": "Taaksynchronisatie", - "taskSyncDescription": "Synchroniseer je taken om ze te bekijken en delen op Roo Code Cloud", + "taskSyncDescription": "Synchroniseer je taken om ze te bekijken en delen op Joe Code Cloud", "taskSyncManagedByOrganization": "Taaksynchronisatie wordt beheerd door uw organisatie", "usageMetricsAlwaysReported": "Modelgebruiksinformatie wordt altijd gerapporteerd wanneer ingelogd", "authWaiting": "Wachten tot authenticatie voltooid is...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Kopieer de redirect-URL uit je browser en plak hem hier:", "startOver": "Opnieuw beginnen", "personalAccount": "Persoonlijk Account", - "switchAccount": "Wissel van Roo Code Cloud Account", + "switchAccount": "Wissel van Joe Code Cloud Account", "createTeamAccount": "Teamaccount aanmaken", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { - "autoApprovePowerUser": "Roo wat onafhankelijkheid geven? Bedien het overal met Roo Code Cloud. Meer informatie.", + "autoApprovePowerUser": "Roo wat onafhankelijkheid geven? Bedien het overal met Joe Code Cloud. Meer informatie.", "longRunningTask": "Dit kan even duren. Ga overal verder met de Cloud.", - "taskList": "Geniet je van Roo? Bekijk Roo Code Cloud: volg en beheer je taken overal, voer autonome Cloud-agents uit, krijg gebruiksstatistieken en meer. Meer informatie." + "taskList": "Geniet je van Roo? Bekijk Joe Code Cloud: volg en beheer je taken overal, voer autonome Cloud-agents uit, krijg gebruiksstatistieken en meer. Meer informatie." } } diff --git a/webview-ui/src/i18n/locales/nl/settings.json b/webview-ui/src/i18n/locales/nl/settings.json index fcfad37d376..66d4f1bfea7 100644 --- a/webview-ui/src/i18n/locales/nl/settings.json +++ b/webview-ui/src/i18n/locales/nl/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Experimenteel", "language": "Taal", - "about": "Over Roo Code", + "about": "Over Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Moet je met ons praten? Schrijf" }, - "community": "Wil je tips of gewoon even hangen met andere Roo Code-gebruikers? Sluit je aan bij reddit.com/r/RooCode of discord.gg/roocode", + "community": "Wil je tips of gewoon even hangen met andere Joe Code-gebruikers? Sluit je aan bij reddit.com/r/JoeCode of discord.gg/joecode", "contactAndCommunity": "Contact & Gemeenschap", "manageSettings": "Instellingen Beheren", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Draft-model moet uit dezelfde modelfamilie komen voor correcte speculatieve decodering.", "selectDraftModel": "Selecteer draft-model", "noModelsFound": "Geen draft-modellen gevonden. Zorg dat LM Studio draait met Server Mode ingeschakeld.", - "description": "LM Studio laat je modellen lokaal op je computer draaien. Zie hun quickstart-gids voor instructies. Je moet ook de lokale server-functie van LM Studio starten om het met deze extensie te gebruiken. Let op: Roo Code gebruikt complexe prompts en werkt het beste met Claude-modellen. Minder krachtige modellen werken mogelijk niet zoals verwacht." + "description": "LM Studio laat je modellen lokaal op je computer draaien. Zie hun quickstart-gids voor instructies. Je moet ook de lokale server-functie van LM Studio starten om het met deze extensie te gebruiken. Let op: Joe Code gebruikt complexe prompts en werkt het beste met Claude-modellen. Minder krachtige modellen werken mogelijk niet zoals verwacht." }, "ollama": { "baseUrl": "Basis-URL (optioneel)", @@ -466,11 +466,11 @@ "numCtx": "Contextvenstergrootte (num_ctx)", "numCtxHelp": "Overschrijft de standaard contextvenstergrootte van het model. Laat leeg om de Modelfile-configuratie van het model te gebruiken. De minimumwaarde is 128.", "description": "Ollama laat je modellen lokaal op je computer draaien. Zie hun quickstart-gids voor instructies.", - "warning": "Let op: Roo Code gebruikt complexe prompts en werkt het beste met Claude-modellen. Minder krachtige modellen werken mogelijk niet zoals verwacht." + "warning": "Let op: Joe Code gebruikt complexe prompts en werkt het beste met Claude-modellen. Minder krachtige modellen werken mogelijk niet zoals verwacht." }, "roo": { - "authenticatedMessage": "Veilig geauthenticeerd via je Roo Code Cloud-account.", - "connectButton": "Verbinden met Roo Code Cloud" + "authenticatedMessage": "Veilig geauthenticeerd via je Joe Code Cloud-account.", + "connectButton": "Verbinden met Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Stel de mogelijkheden en prijzen in voor je aangepaste OpenAI-compatibele model. Wees voorzichtig met het opgeven van de modelmogelijkheden, want deze kunnen de prestaties van Roo Code beïnvloeden.", + "capabilities": "Stel de mogelijkheden en prijzen in voor je aangepaste OpenAI-compatibele model. Wees voorzichtig met het opgeven van de modelmogelijkheden, want deze kunnen de prestaties van Joe Code beïnvloeden.", "maxTokens": { "label": "Maximaal aantal outputtokens", "description": "Maximaal aantal tokens dat het model in een antwoord kan genereren. (Geef -1 op om de server het maximum te laten bepalen.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "De extensie haalt automatisch de nieuwste lijst met modellen op van {{serviceName}}. Weet je niet welk model je moet kiezen? Roo Code werkt het beste met {{defaultModelId}}. Je kunt ook zoeken op 'free' voor gratis opties die nu beschikbaar zijn.", + "automaticFetch": "De extensie haalt automatisch de nieuwste lijst met modellen op van {{serviceName}}. Weet je niet welk model je moet kiezen? Joe Code werkt het beste met {{defaultModelId}}. Je kunt ook zoeken op 'free' voor gratis opties die nu beschikbaar zijn.", "label": "Model", "searchPlaceholder": "Zoeken", "noMatchFound": "Geen overeenkomsten gevonden", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Anonieme fout- en gebruiksrapportage toestaan", - "description": "Help Roo Code te verbeteren door anonieme gebruiksgegevens en foutmeldingen te versturen. Deze telemetrie verzamelt geen code, prompts of persoonlijke informatie. Zie ons privacybeleid voor meer details." + "description": "Help Joe Code te verbeteren door anonieme gebruiksgegevens en foutmeldingen te versturen. Deze telemetrie verzamelt geen code, prompts of persoonlijke informatie. Zie ons privacybeleid voor meer details." }, "settings": { "import": "Importeren", diff --git a/webview-ui/src/i18n/locales/nl/welcome.json b/webview-ui/src/i18n/locales/nl/welcome.json index 22508d62868..bedd53045c5 100644 --- a/webview-ui/src/i18n/locales/nl/welcome.json +++ b/webview-ui/src/i18n/locales/nl/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Welkom bij Roo Code!", - "introduction": "Met een reeks ingebouwde en uitbreidbare Modi laat Roo Code je plannen, ontwerpen, coderen, debuggen en je productiviteit verhogen als nooit tevoren.", - "accountMention": "Maak je Roo Code Cloud-account aan om te beginnen. Krijg krachtige modellen, webcontrole, analyses, ondersteuning en meer.", + "greeting": "Welkom bij Joe Code!", + "introduction": "Met een reeks ingebouwde en uitbreidbare Modi laat Joe Code je plannen, ontwerpen, coderen, debuggen en je productiviteit verhogen als nooit tevoren.", + "accountMention": "Maak je Joe Code Cloud-account aan om te beginnen. Krijg krachtige modellen, webcontrole, analyses, ondersteuning en meer.", "getStarted": "Roo-account aanmaken", "noAccount": "of gebruik zonder account" }, "providerSignup": { "heading": "Kies je provider", "chooseProvider": "Roo heeft een LLM-provider nodig om te werken. Kies er een om te beginnen, je kunt er later meer toevoegen.", - "rooCloudProvider": "Roo Code Router", - "rooCloudDescription": "De eenvoudigste manier om te beginnen is met de Roo Code Router: een zorgvuldig samengesteld mix van gratis en betaalde modellen tegen lage kosten.", + "rooCloudProvider": "Joe Code Router", + "rooCloudDescription": "De eenvoudigste manier om te beginnen is met de Joe Code Router: een zorgvuldig samengesteld mix van gratis en betaalde modellen tegen lage kosten.", "learnMore": "Meer informatie", "useAnotherProvider": "Provider van derden", "useAnotherProviderDescription": "Voer een API-sleutel in en begin.", "noApiKeys": "Wil je je niet bezighouden met API-sleutels en aparte accounts?", - "backToRoo": "Kies de Roo Code Router.", + "backToRoo": "Kies de Joe Code Router.", "goBack": "Terug", "finish": "Klaar" }, "waitingForCloud": { - "heading": "Aanmelden bij Roo Code Cloud...", - "description": "We brengen je naar je browser om je aan te melden voor Roo Code Cloud. Dan brengen we je hierheen terug om af te ronden.", + "heading": "Aanmelden bij Joe Code Cloud...", + "description": "We brengen je naar je browser om je aan te melden voor Joe Code Cloud. Dan brengen we je hierheen terug om af te ronden.", "noPrompt": "Als je niet wordt gevraagd een URL te openen, klik dan hier.", "havingTrouble": "Als je de registratie hebt voltooid maar problemen ondervindt, klik dan hier.", "pasteUrl": "Plak de callback-URL uit je browser:", "docsLink": "Werkt het niet? Raadpleeg de documentatie.", - "invalidURL": "Dit ziet er niet uit als een geldige callback-URL. Kopieer alstublieft wat Roo Code Cloud in je browser weergeeft.", + "invalidURL": "Dit ziet er niet uit als een geldige callback-URL. Kopieer alstublieft wat Joe Code Cloud in je browser weergeeft.", "goBack": "Terug" }, "startRouter": "We raden aan een LLM-router te gebruiken:", "startCustom": "Of je kunt je eigen API-sleutel meebrengen:", "telemetry": { - "helpImprove": "Help Roo Code te verbeteren", - "helpImproveMessage": "Roo Code verzamelt fout- en gebruiksgegevens om ons te helpen bugs op te lossen en de extensie te verbeteren. Deze telemetrie verzamelt geen code, prompts of persoonlijke informatie. Je kunt dit in instellingen uitschakelen." + "helpImprove": "Help Joe Code te verbeteren", + "helpImproveMessage": "Joe Code verzamelt fout- en gebruiksgegevens om ons te helpen bugs op te lossen en de extensie te verbeteren. Deze telemetrie verzamelt geen code, prompts of persoonlijke informatie. Je kunt dit in instellingen uitschakelen." }, "importSettings": "Instellingen importeren" } diff --git a/webview-ui/src/i18n/locales/nl/worktrees.json b/webview-ui/src/i18n/locales/nl/worktrees.json index 8602d48527d..82ec375e792 100644 --- a/webview-ui/src/i18n/locales/nl/worktrees.json +++ b/webview-ui/src/i18n/locales/nl/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Klaar", - "description": "Met Git worktrees kun je tegelijkertijd aan meerdere branches werken in aparte mappen. Elke worktree krijgt zijn eigen VS Code-venster met Roo Code.", + "description": "Met Git worktrees kun je tegelijkertijd aan meerdere branches werken in aparte mappen. Elke worktree krijgt zijn eigen VS Code-venster met Joe Code.", "notGitRepo": "Deze workspace is geen Git-repository. Worktrees vereisen een Git-repository om te werken.", "multiRootNotSupported": "Worktrees worden niet ondersteund in multi-root workspaces. Open één map om worktrees te gebruiken.", diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index ddf225bae07..5814ec1936a 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Witamy w Roo Code", + "greeting": "Witamy w Joe Code", "task": { "title": "Zadanie", "expand": "Rozwiń zadanie", @@ -21,7 +21,7 @@ "sharePublicly": "Udostępnij publicznie", "sharePubliclyDescription": "Każdy z linkiem może uzyskać dostęp", "connectToCloud": "Połącz z chmurą", - "connectToCloudDescription": "Zaloguj się do Roo Code Cloud, aby udostępniać zadania", + "connectToCloudDescription": "Zaloguj się do Joe Code Cloud, aby udostępniać zadania", "sharingDisabledByOrganization": "Udostępnianie wyłączone przez organizację", "shareSuccessOrganization": "Link organizacji skopiowany do schowka", "shareSuccessPublic": "Link publiczny skopiowany do schowka", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Dodaj wiadomość do kolejki (zostanie wysłana po zakończeniu bieżącego zadania)", "scrollToBottom": "Przewiń do dołu czatu", - "about": "Roo Code to cały zespół deweloperów AI w Twoim edytorze.", + "about": "Joe Code to cały zespół deweloperów AI w Twoim edytorze.", "docs": "Sprawdź naszą dokumentację, aby dowiedzieć się więcej.", "onboarding": "Twoja lista zadań w tym obszarze roboczym jest pusta.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Błąd serwera dostawcy. Po stronie dostawcy coś się nie powiodło, w Twoim żądaniu nie ma nic złego.", "docs": "Dokumentacja", "goToSettings": "Ustawienia", - "unknown": "Nieznany błąd API. Skontaktuj się z pomocą techniczną Roo Code.", + "unknown": "Nieznany błąd API. Skontaktuj się z pomocą techniczną Joe Code.", "connection": "Błąd połączenia. Upewnij się, że masz działające połączenie internetowe.", "claudeCodeNotAuthenticated": "Musisz się zalogować, aby korzystać z Claude Code. Przejdź do Ustawień i kliknij \"Zaloguj się do Claude Code\", aby się uwierzytelnić." } @@ -337,20 +337,20 @@ "timerPrefix": "Automatyczne zatwierdzanie włączone. Zaznaczanie za {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} wydany", - "support": "Wesprzyj Roo Code, dając nam gwiazdkę na GitHub.", + "title": "Joe Code {{version}} wydany", + "support": "Wesprzyj Joe Code, dając nam gwiazdkę na GitHub.", "stealthModel": { - "feature": "Darmowy model stealth na ograniczony czas - Code Supernova: Teraz ulepszony z oknem kontekstu 1M tokenów! Wszechstronny model kodowania agentowego, który obsługuje wprowadzanie obrazów, dostępny przez Roo Code Cloud.", + "feature": "Darmowy model stealth na ograniczony czas - Code Supernova: Teraz ulepszony z oknem kontekstu 1M tokenów! Wszechstronny model kodowania agentowego, który obsługuje wprowadzanie obrazów, dostępny przez Joe Code Cloud.", "note": "(Uwaga: prompty i uzupełnienia są rejestrowane przez twórcę modelu i używane do jego ulepszania)", - "connectButton": "Połącz z Roo Code Cloud", - "selectModel": "Wybierz roo/code-supernova od dostawcy Roo Code Cloud w Ustawieniach, aby rozpocząć.", + "connectButton": "Połącz z Joe Code Cloud", + "selectModel": "Wybierz roo/code-supernova od dostawcy Joe Code Cloud w Ustawieniach, aby rozpocząć.", "goToSettingsButton": "Przejdź do Ustawień" }, "release": { "heading": "Co nowego:", "geminiPro": "Wsparcie dla Gemini 3.1 Pro: Dodano wsparcie dla modelu Gemini 3.1 Pro i ustawiono go jako domyślny model Gemini dla lepszej wydajności.", "cliNdjson": "Protokół NDJSON w CLI: Nowy protokół NDJSON przez stdin, podkomendy list oraz zmodularyzowana komenda run dla bardziej elastycznych przepływów pracy CLI.", - "cliRelease": "CLI v0.1.0: CLI Roo Code osiąga swoją pierwszą oficjalną wersję ze stabilnym interfejsem poleceń." + "cliRelease": "CLI v0.1.0: CLI Joe Code osiąga swoją pierwszą oficjalną wersję ze stabilnym interfejsem poleceń." }, "cloudAgents": { "heading": "Nowości w chmurze:", @@ -375,7 +375,7 @@ "profileViolationWarning": "Bieżący profil nie jest kompatybilny z ustawieniami Twojej organizacji", "shellIntegration": { "title": "Ostrzeżenie wykonania polecenia", - "description": "Twoje polecenie jest wykonywane bez integracji powłoki terminala VSCode. Aby ukryć to ostrzeżenie, możesz wyłączyć integrację powłoki w sekcji Terminal w ustawieniach Roo Code lub rozwiązać problemy z integracją terminala VSCode korzystając z poniższego linku.", + "description": "Twoje polecenie jest wykonywane bez integracji powłoki terminala VSCode. Aby ukryć to ostrzeżenie, możesz wyłączyć integrację powłoki w sekcji Terminal w ustawieniach Joe Code lub rozwiązać problemy z integracją terminala VSCode korzystając z poniższego linku.", "troubleshooting": "Kliknij tutaj, aby zobaczyć dokumentację integracji powłoki." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Wersja {{version}} - Kliknij, aby wyświetlić informacje o wydaniu" }, "rooCloudCTA": { - "title": "Roo Code Cloud się rozwija!", + "title": "Joe Code Cloud się rozwija!", "description": "Uruchamiaj zdalne agenty w chmurze, uzyskuj dostęp do swoich zadań z dowolnego miejsca, współpracuj z innymi i wiele więcej.", "joinWaitlist": "Zarejestruj się, aby otrzymywać najnowsze aktualizacje." }, diff --git a/webview-ui/src/i18n/locales/pl/cloud.json b/webview-ui/src/i18n/locales/pl/cloud.json index 3a7eac8cdba..d79360305d3 100644 --- a/webview-ui/src/i18n/locales/pl/cloud.json +++ b/webview-ui/src/i18n/locales/pl/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Zdjęcie profilowe", "logOut": "Wyloguj", "testApiAuthentication": "Testuj uwierzytelnianie API", - "signIn": "Połącz z Roo Code Cloud", + "signIn": "Połącz z Joe Code Cloud", "connect": "Zacznij", - "cloudBenefitsTitle": "Wypróbuj Roo Code Cloud", + "cloudBenefitsTitle": "Wypróbuj Joe Code Cloud", "cloudBenefitProvider": "Uzyskaj dostęp do darmowych i płatnych modeli, które świetnie współpracują z Roo", "cloudBenefitCloudAgents": "Zlecaj zadania autonomicznym agentom w chmurze", "cloudBenefitTriggers": "Otrzymuj recenzje kodu na Githubie, uruchamiaj zadania ze Slacka i nie tylko", "cloudBenefitWalkaway": "Śledź i kontroluj zadania z dowolnego miejsca (również z telefonu)", "cloudBenefitHistory": "Uzyskaj dostęp do historii zadań z dowolnego miejsca i udostępniaj je innym", "cloudBenefitMetrics": "Uzyskaj całościowy widok zużycia tokenów", - "visitCloudWebsite": "Odwiedź Roo Code Cloud", + "visitCloudWebsite": "Odwiedź Joe Code Cloud", "taskSync": "Synchronizacja zadań", - "taskSyncDescription": "Synchronizuj swoje zadania, aby przeglądać i udostępniać je w Roo Code Cloud", + "taskSyncDescription": "Synchronizuj swoje zadania, aby przeglądać i udostępniać je w Joe Code Cloud", "taskSyncManagedByOrganization": "Synchronizacja zadań jest zarządzana przez Twoją organizację", "usageMetricsAlwaysReported": "Informacje o użyciu modelu są zawsze raportowane po zalogowaniu", "authWaiting": "Oczekiwanie na zakończenie uwierzytelniania...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Skopiuj URL redirect z przeglądarki i wklej tutaj:", "startOver": "Zacznij od nowa", "personalAccount": "Konto Osobiste", - "switchAccount": "Przełącz Konto Roo Code Cloud", + "switchAccount": "Przełącz Konto Joe Code Cloud", "createTeamAccount": "Utwórz Konto Zespołu", - "cloudUrlPillLabel": "URL Roo Code Cloud", + "cloudUrlPillLabel": "URL Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Dać Roo trochę niezależności? Kontroluj go z dowolnego miejsca dzięki Roo Code Cloud. Dowiedz się więcej.", + "autoApprovePowerUser": "Dać Roo trochę niezależności? Kontroluj go z dowolnego miejsca dzięki Joe Code Cloud. Dowiedz się więcej.", "longRunningTask": "To może chwilę potrwać. Kontynuuj z dowolnego miejsca dzięki Chmurze.", - "taskList": "Podoba ci się Roo? Sprawdź Roo Code Cloud: śledź i kontroluj swoje zadania z dowolnego miejsca, uruchamiaj autonomiczne agenty w chmurze, uzyskuj statystyki użytkowania i wiele więcej. Dowiedz się więcej." + "taskList": "Podoba ci się Roo? Sprawdź Joe Code Cloud: śledź i kontroluj swoje zadania z dowolnego miejsca, uruchamiaj autonomiczne agenty w chmurze, uzyskuj statystyki użytkowania i wiele więcej. Dowiedz się więcej." } } diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index fa48bc6b212..b00bd7a0dbd 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Eksperymentalne", "language": "Język", - "about": "O Roo Code", + "about": "O Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Musisz z nami porozmawiać? Napisz" }, - "community": "Chcesz wskazówek lub po prostu porozmawiać z innymi użytkownikami Roo Code? Dołącz do reddit.com/r/RooCode lub discord.gg/roocode", + "community": "Chcesz wskazówek lub po prostu porozmawiać z innymi użytkownikami Joe Code? Dołącz do reddit.com/r/JoeCode lub discord.gg/joecode", "contactAndCommunity": "Kontakt i Społeczność", "manageSettings": "Zarządzaj Ustawieniami", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Aby dekodowanie spekulacyjne działało poprawnie, model szkicu musi pochodzić z tej samej rodziny modeli.", "selectDraftModel": "Wybierz model szkicu", "noModelsFound": "Nie znaleziono modeli szkicu. Upewnij się, że LM Studio jest uruchomione z włączonym trybem serwera.", - "description": "LM Studio pozwala na lokalne uruchamianie modeli na twoim komputerze. Aby rozpocząć, zapoznaj się z ich przewodnikiem szybkiego startu. Będziesz również musiał uruchomić funkcję serwera lokalnego LM Studio, aby używać go z tym rozszerzeniem. Uwaga: Roo Code używa złożonych podpowiedzi i działa najlepiej z modelami Claude. Modele o niższych możliwościach mogą nie działać zgodnie z oczekiwaniami." + "description": "LM Studio pozwala na lokalne uruchamianie modeli na twoim komputerze. Aby rozpocząć, zapoznaj się z ich przewodnikiem szybkiego startu. Będziesz również musiał uruchomić funkcję serwera lokalnego LM Studio, aby używać go z tym rozszerzeniem. Uwaga: Joe Code używa złożonych podpowiedzi i działa najlepiej z modelami Claude. Modele o niższych możliwościach mogą nie działać zgodnie z oczekiwaniami." }, "ollama": { "baseUrl": "URL bazowy (opcjonalnie)", @@ -466,11 +466,11 @@ "numCtx": "Rozmiar okna kontekstu (num_ctx)", "numCtxHelp": "Zastępuje domyślny rozmiar okna kontekstu modelu. Pozostaw puste, aby użyć konfiguracji Modelfile modelu. Minimalna wartość to 128.", "description": "Ollama pozwala na lokalne uruchamianie modeli na twoim komputerze. Aby rozpocząć, zapoznaj się z przewodnikiem szybkiego startu.", - "warning": "Uwaga: Roo Code używa złożonych podpowiedzi i działa najlepiej z modelami Claude. Modele o niższych możliwościach mogą nie działać zgodnie z oczekiwaniami." + "warning": "Uwaga: Joe Code używa złożonych podpowiedzi i działa najlepiej z modelami Claude. Modele o niższych możliwościach mogą nie działać zgodnie z oczekiwaniami." }, "roo": { - "authenticatedMessage": "Bezpiecznie uwierzytelniony przez twoje konto Roo Code Cloud.", - "connectButton": "Połącz z Roo Code Cloud" + "authenticatedMessage": "Bezpiecznie uwierzytelniony przez twoje konto Joe Code Cloud.", + "connectButton": "Połącz z Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Skonfiguruj możliwości i ceny swojego niestandardowego modelu zgodnego z OpenAI. Zachowaj ostrożność podczas określania możliwości modelu, ponieważ mogą one wpływać na wydajność Roo Code.", + "capabilities": "Skonfiguruj możliwości i ceny swojego niestandardowego modelu zgodnego z OpenAI. Zachowaj ostrożność podczas określania możliwości modelu, ponieważ mogą one wpływać na wydajność Joe Code.", "maxTokens": { "label": "Maksymalna liczba tokenów wyjściowych", "description": "Maksymalna liczba tokenów, które model może wygenerować w odpowiedzi. (Określ -1, aby pozwolić serwerowi ustawić maksymalną liczbę tokenów.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "Rozszerzenie automatycznie pobiera najnowszą listę modeli dostępnych w {{serviceName}}. Jeśli nie jesteś pewien, który model wybrać, Roo Code działa najlepiej z {{defaultModelId}}. Możesz również wyszukać \"free\", aby znaleźć obecnie dostępne opcje bezpłatne.", + "automaticFetch": "Rozszerzenie automatycznie pobiera najnowszą listę modeli dostępnych w {{serviceName}}. Jeśli nie jesteś pewien, który model wybrać, Joe Code działa najlepiej z {{defaultModelId}}. Możesz również wyszukać \"free\", aby znaleźć obecnie dostępne opcje bezpłatne.", "label": "Model", "searchPlaceholder": "Wyszukaj", "noMatchFound": "Nie znaleziono dopasowań", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Zezwól na anonimowe raportowanie błędów i użycia", - "description": "Pomóż ulepszyć Roo Code, wysyłając anonimowe dane użytkowania i raporty błędów. Ta telemetria nie zbiera kodu, promptów ani danych osobowych. Zobacz naszą politykę prywatności, aby uzyskać więcej szczegółów. Możesz to wyłączyć w dowolnym momencie." + "description": "Pomóż ulepszyć Joe Code, wysyłając anonimowe dane użytkowania i raporty błędów. Ta telemetria nie zbiera kodu, promptów ani danych osobowych. Zobacz naszą politykę prywatności, aby uzyskać więcej szczegółów. Możesz to wyłączyć w dowolnym momencie." }, "settings": { "import": "Importuj", diff --git a/webview-ui/src/i18n/locales/pl/welcome.json b/webview-ui/src/i18n/locales/pl/welcome.json index 3949a78e265..7c27b19cff5 100644 --- a/webview-ui/src/i18n/locales/pl/welcome.json +++ b/webview-ui/src/i18n/locales/pl/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Witaj w Roo Code!", - "introduction": "Dzięki szerokiej gamie wbudowanych i rozszerzalnych Trybów, Roo Code pozwala planować, projektować architekturę, kodować, debugować i zwiększać produktywność jak nigdy dotąd.", - "accountMention": "Aby rozpocząć, utwórz konto Roo Code Cloud. Otrzymaj potężne modele, kontrolę internetową, analizę, wsparcie i wiele więcej.", + "greeting": "Witaj w Joe Code!", + "introduction": "Dzięki szerokiej gamie wbudowanych i rozszerzalnych Trybów, Joe Code pozwala planować, projektować architekturę, kodować, debugować i zwiększać produktywność jak nigdy dotąd.", + "accountMention": "Aby rozpocząć, utwórz konto Joe Code Cloud. Otrzymaj potężne modele, kontrolę internetową, analizę, wsparcie i wiele więcej.", "getStarted": "Utwórz konto Roo", "noAccount": "lub używaj bez konta" }, "providerSignup": { "heading": "Wybierz swojego dostawcę", "chooseProvider": "Roo potrzebuje dostawcy LLM, aby działać. Wybierz jeden, aby zacząć, możesz dodać więcej później.", - "rooCloudProvider": "Dostawca Roo Code Cloud", - "rooCloudDescription": "Najłatwiejszy sposób na rozpoczęcie to skorzystanie z Dostawcy Roo Code Cloud: starannie wybrany mix bezpłatnych i płatnych modeli w niskiej cenie.", + "rooCloudProvider": "Dostawca Joe Code Cloud", + "rooCloudDescription": "Najłatwiejszy sposób na rozpoczęcie to skorzystanie z Dostawcy Joe Code Cloud: starannie wybrany mix bezpłatnych i płatnych modeli w niskiej cenie.", "learnMore": "Dowiedz się więcej", "useAnotherProvider": "Dostawca trzeciej strony", "useAnotherProviderDescription": "Wprowadź klucz API i zacznij.", "noApiKeys": "Nie chcesz radzić sobie z kluczami API i oddzielnymi kontami?", - "backToRoo": "Wybierz Dostawcę Roo Code Cloud.", + "backToRoo": "Wybierz Dostawcę Joe Code Cloud.", "goBack": "Wróć", "finish": "Zakończ" }, "waitingForCloud": { - "heading": "Logowanie do Roo Code Cloud...", - "description": "Zaprowadzimy Cię do przeglądarki, aby zarejestrować się w Roo Code Cloud. Następnie wrócimy tutaj, aby ukończyć.", + "heading": "Logowanie do Joe Code Cloud...", + "description": "Zaprowadzimy Cię do przeglądarki, aby zarejestrować się w Joe Code Cloud. Następnie wrócimy tutaj, aby ukończyć.", "noPrompt": "Jeśli nie zostaniesz poproszony o otwarcie adresu URL, kliknij tutaj.", "havingTrouble": "Jeśli ukończyłeś rejestrację, ale masz problemy, kliknij tutaj.", "pasteUrl": "Wklej adres URL wywołania zwrotnego z przeglądarki:", "docsLink": "Nie działa? Sprawdź dokumentację.", - "invalidURL": "To nie wygląda na prawidłowy adres URL wywołania zwrotnego. Skopiuj to, co Roo Code Cloud wyświetla w przeglądarce.", + "invalidURL": "To nie wygląda na prawidłowy adres URL wywołania zwrotnego. Skopiuj to, co Joe Code Cloud wyświetla w przeglądarce.", "goBack": "Wróć" }, "startRouter": "Rekomendujemy użycie routera LLM:", "startCustom": "Lub możesz przynieść swój własny klucz API:", "telemetry": { - "helpImprove": "Pomóż ulepszyć Roo Code", - "helpImproveMessage": "Roo Code zbiera dane o błędach i użytkowaniu, aby pomóc nam naprawiać błędy i ulepszać rozszerzenie. Ta telemetria nie zbiera kodu, podpowiedzi ani danych osobowych. Możesz je wyłączyć w ustawieniach." + "helpImprove": "Pomóż ulepszyć Joe Code", + "helpImproveMessage": "Joe Code zbiera dane o błędach i użytkowaniu, aby pomóc nam naprawiać błędy i ulepszać rozszerzenie. Ta telemetria nie zbiera kodu, podpowiedzi ani danych osobowych. Możesz je wyłączyć w ustawieniach." }, "importSettings": "Importuj ustawienia" } diff --git a/webview-ui/src/i18n/locales/pl/worktrees.json b/webview-ui/src/i18n/locales/pl/worktrees.json index 58fa26f7ac1..e3fb675d1b4 100644 --- a/webview-ui/src/i18n/locales/pl/worktrees.json +++ b/webview-ui/src/i18n/locales/pl/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Gotowe", - "description": "Git worktrees pozwalają pracować jednocześnie na wielu branchach w oddzielnych katalogach. Każdy worktree ma własne okno VS Code z Roo Code.", + "description": "Git worktrees pozwalają pracować jednocześnie na wielu branchach w oddzielnych katalogach. Każdy worktree ma własne okno VS Code z Joe Code.", "notGitRepo": "Ten workspace nie jest repozytorium Git. Worktrees wymagają repozytorium Git, aby działać.", "multiRootNotSupported": "Worktrees nie są obsługiwane w workspace'ach multi-root. Otwórz pojedynczy folder, aby używać worktrees.", diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index b0ad26bfbd2..29eecc6a642 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": "Bem-vindo ao Roo Code", + "greeting": "Bem-vindo ao Joe Code", "task": { "title": "Tarefa", "expand": "Expandir tarefa", @@ -21,7 +21,7 @@ "sharePublicly": "Compartilhar publicamente", "sharePubliclyDescription": "Qualquer pessoa com o link pode acessar", "connectToCloud": "Conectar ao Cloud", - "connectToCloudDescription": "Entre no Roo Code Cloud para compartilhar tarefas", + "connectToCloudDescription": "Entre no Joe Code Cloud para compartilhar tarefas", "sharingDisabledByOrganization": "Compartilhamento desabilitado pela organização", "shareSuccessOrganization": "Link da organização copiado para a área de transferência", "shareSuccessPublic": "Link público copiado para a área de transferência", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Adicionar mensagem à fila (será enviada após a conclusão da tarefa atual)", "scrollToBottom": "Rolar para o final do chat", - "about": "Roo Code é uma equipe inteira de desenvolvimento de IA em seu editor.", + "about": "Joe Code é uma equipe inteira de desenvolvimento de IA em seu editor.", "docs": "Confira nossa documentação para saber mais.", "onboarding": "Sua lista de tarefas neste espaço de trabalho está vazia.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Erro do servidor do provedor. Algo está errado do lado do provedor, não há nada de errado com sua solicitação.", "docs": "Documentação", "goToSettings": "Configurações", - "unknown": "Erro de API desconhecido. Por favor, entre em contato com o suporte do Roo Code.", + "unknown": "Erro de API desconhecido. Por favor, entre em contato com o suporte do Joe Code.", "connection": "Erro de conexão. Certifique-se de que você tem uma conexão de internet funcionando.", "claudeCodeNotAuthenticated": "Você precisa fazer login para usar o Claude Code. Vá para Configurações e clique em \"Entrar no Claude Code\" para autenticar." } @@ -337,20 +337,20 @@ "timerPrefix": "Aprovação automática ativada. Selecionando em {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} Lançado", - "support": "Apoie o Roo Code nos dando uma estrela no GitHub.", + "title": "Joe Code {{version}} Lançado", + "support": "Apoie o Joe Code nos dando uma estrela no GitHub.", "stealthModel": { - "feature": "Modelo stealth GRATUITO por tempo limitado - Code Supernova: Agora atualizado com uma janela de contexto de 1M tokens! Um modelo de codificação agêntica versátil que suporta entradas de imagem, acessível através do Roo Code Cloud.", + "feature": "Modelo stealth GRATUITO por tempo limitado - Code Supernova: Agora atualizado com uma janela de contexto de 1M tokens! Um modelo de codificação agêntica versátil que suporta entradas de imagem, acessível através do Joe Code Cloud.", "note": "(Nota: prompts e completações são registrados pelo criador do modelo e usados para melhorá-lo)", - "connectButton": "Conectar ao Roo Code Cloud", - "selectModel": "Selecione roo/code-supernova do provedor Roo Code Cloud em Configurações para começar.", + "connectButton": "Conectar ao Joe Code Cloud", + "selectModel": "Selecione roo/code-supernova do provedor Joe Code Cloud em Configurações para começar.", "goToSettingsButton": "Ir para Configurações" }, "release": { "heading": "Novidades:", "geminiPro": "Suporte ao Gemini 3.1 Pro: Adicionado suporte ao modelo Gemini 3.1 Pro e definido como modelo Gemini padrão para melhor desempenho.", "cliNdjson": "Protocolo NDJSON do CLI: Novo protocolo NDJSON via stdin, subcomandos de listagem e comando de execução modularizado para fluxos de trabalho CLI mais flexíveis.", - "cliRelease": "CLI v0.1.0: O CLI do Roo Code alcança sua primeira versão oficial com uma interface de comandos estável." + "cliRelease": "CLI v0.1.0: O CLI do Joe Code alcança sua primeira versão oficial com uma interface de comandos estável." }, "cloudAgents": { "heading": "Novidades na Nuvem:", @@ -375,7 +375,7 @@ "profileViolationWarning": "O perfil atual não é compatível com as configurações da sua organização", "shellIntegration": { "title": "Aviso de execução de comando", - "description": "Seu comando está sendo executado sem a integração de shell do terminal VSCode. Para suprimir este aviso, você pode desativar a integração de shell na seção Terminal das configurações do Roo Code ou solucionar problemas de integração do terminal VSCode usando o link abaixo.", + "description": "Seu comando está sendo executado sem a integração de shell do terminal VSCode. Para suprimir este aviso, você pode desativar a integração de shell na seção Terminal das configurações do Joe Code ou solucionar problemas de integração do terminal VSCode usando o link abaixo.", "troubleshooting": "Clique aqui para a documentação de integração de shell." }, "ask": { @@ -433,7 +433,7 @@ "ariaLabel": "Versão {{version}} - Clique para ver as notas de lançamento" }, "rooCloudCTA": { - "title": "Roo Code Cloud está evoluindo!", + "title": "Joe Code Cloud está evoluindo!", "description": "Execute agentes remotos na nuvem, acesse suas tarefas de qualquer lugar, colabore com outros e muito mais.", "joinWaitlist": "Cadastre-se para receber as últimas atualizações." }, diff --git a/webview-ui/src/i18n/locales/pt-BR/cloud.json b/webview-ui/src/i18n/locales/pt-BR/cloud.json index 08ee2f205f0..f985d4ed179 100644 --- a/webview-ui/src/i18n/locales/pt-BR/cloud.json +++ b/webview-ui/src/i18n/locales/pt-BR/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Foto de perfil", "logOut": "Sair", "testApiAuthentication": "Testar Autenticação de API", - "signIn": "Conectar ao Roo Code Cloud", + "signIn": "Conectar ao Joe Code Cloud", "connect": "Começar", - "cloudBenefitsTitle": "Experimente o Roo Code Cloud", + "cloudBenefitsTitle": "Experimente o Joe Code Cloud", "cloudBenefitProvider": "Acesse modelos gratuitos e pagos que funcionam muito bem com o Roo", "cloudBenefitCloudAgents": "Dê tarefas a agentes autônomos na nuvem", "cloudBenefitTriggers": "Obtenha revisões de código no Github, inicie tarefas do Slack e muito mais", "cloudBenefitWalkaway": "Acompanhe e controle tarefas de qualquer lugar (incluindo seu telefone)", "cloudBenefitHistory": "Acesse seu histórico de tarefas de qualquer lugar e compartilhe com outros", "cloudBenefitMetrics": "Obtenha uma visão holística do seu consumo de tokens", - "visitCloudWebsite": "Visitar Roo Code Cloud", + "visitCloudWebsite": "Visitar Joe Code Cloud", "taskSync": "Sincronização de tarefas", - "taskSyncDescription": "Sincronize suas tarefas para visualizar e compartilhar no Roo Code Cloud", + "taskSyncDescription": "Sincronize suas tarefas para visualizar e compartilhar no Joe Code Cloud", "taskSyncManagedByOrganization": "A sincronização de tarefas é gerenciada pela sua organização", "usageMetricsAlwaysReported": "As informações de uso do modelo são sempre reportadas quando conectado", "authWaiting": "Aguardando conclusão da autenticação...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Copie a URL de redirect do seu navegador e cole aqui:", "startOver": "Recomeçar", "personalAccount": "Conta Pessoal", - "switchAccount": "Alternar Conta do Roo Code Cloud", + "switchAccount": "Alternar Conta do Joe Code Cloud", "createTeamAccount": "Criar Conta de Equipe", - "cloudUrlPillLabel": "URL do Roo Code Cloud ", + "cloudUrlPillLabel": "URL do Joe Code Cloud ", "upsell": { - "autoApprovePowerUser": "Dando um pouco de independência ao Roo? Controle-o de qualquer lugar com o Roo Code Cloud. Saiba mais.", + "autoApprovePowerUser": "Dando um pouco de independência ao Roo? Controle-o de qualquer lugar com o Joe Code Cloud. Saiba mais.", "longRunningTask": "Isso pode levar um tempo. Continue de qualquer lugar com a Nuvem.", - "taskList": "Gostando do Roo? Confira o Roo Code Cloud: acompanhe e controle suas tarefas de qualquer lugar, execute agentes de nuvem autônomos, obtenha estatísticas de uso e muito mais. Saiba mais." + "taskList": "Gostando do Roo? Confira o Joe Code Cloud: acompanhe e controle suas tarefas de qualquer lugar, execute agentes de nuvem autônomos, obtenha estatísticas de uso e muito mais. Saiba mais." } } diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index a8387e05121..f3d4ce370c7 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -59,7 +59,7 @@ "contact": { "label": "Precisa falar conosco? Escreva" }, - "community": "Quer dicas ou apenas conversar com outros usuários do Roo Code? Junte-se a reddit.com/r/RooCode ou discord.gg/roocode", + "community": "Quer dicas ou apenas conversar com outros usuários do Joe Code? Junte-se a reddit.com/r/JoeCode ou discord.gg/joecode", "contactAndCommunity": "Contato e Comunidade", "manageSettings": "Gerenciar Configurações", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "O modelo de rascunho deve ser da mesma família de modelos para que a decodificação especulativa funcione corretamente.", "selectDraftModel": "Selecionar Modelo de Rascunho", "noModelsFound": "Nenhum modelo de rascunho encontrado. Certifique-se de que o LM Studio esteja em execução com o Modo Servidor ativado.", - "description": "O LM Studio permite que você execute modelos localmente em seu computador. Para instruções sobre como começar, veja o guia de início rápido deles. Você também precisará iniciar o recurso de servidor local do LM Studio para usá-lo com esta extensão. Nota: O Roo Code usa prompts complexos e funciona melhor com modelos Claude. Modelos menos capazes podem não funcionar como esperado." + "description": "O LM Studio permite que você execute modelos localmente em seu computador. Para instruções sobre como começar, veja o guia de início rápido deles. Você também precisará iniciar o recurso de servidor local do LM Studio para usá-lo com esta extensão. Nota: O Joe Code usa prompts complexos e funciona melhor com modelos Claude. Modelos menos capazes podem não funcionar como esperado." }, "ollama": { "baseUrl": "URL Base (opcional)", @@ -466,11 +466,11 @@ "numCtx": "Tamanho da janela de contexto (num_ctx)", "numCtxHelp": "Substitui o tamanho da janela de contexto padrão do modelo. Deixe em branco para usar a configuração do Modelfile do modelo. O valor mínimo é 128.", "description": "O Ollama permite que você execute modelos localmente em seu computador. Para instruções sobre como começar, veja o guia de início rápido deles.", - "warning": "Nota: O Roo Code usa prompts complexos e funciona melhor com modelos Claude. Modelos menos capazes podem não funcionar como esperado." + "warning": "Nota: O Joe Code usa prompts complexos e funciona melhor com modelos Claude. Modelos menos capazes podem não funcionar como esperado." }, "roo": { - "authenticatedMessage": "Autenticado com segurança através da sua conta Roo Code Cloud.", - "connectButton": "Conectar ao Roo Code Cloud" + "authenticatedMessage": "Autenticado com segurança através da sua conta Joe Code Cloud.", + "connectButton": "Conectar ao Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Configure as capacidades e preços para seu modelo personalizado compatível com OpenAI. Tenha cuidado ao especificar as capacidades do modelo, pois elas podem afetar como o Roo Code funciona.", + "capabilities": "Configure as capacidades e preços para seu modelo personalizado compatível com OpenAI. Tenha cuidado ao especificar as capacidades do modelo, pois elas podem afetar como o Joe Code funciona.", "maxTokens": { "label": "Máximo de Tokens de Saída", "description": "Número máximo de tokens que o modelo pode gerar em uma resposta. (Especifique -1 para permitir que o servidor defina o máximo de tokens.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "A extensão busca automaticamente a lista mais recente de modelos disponíveis em {{serviceName}}. Se você não tem certeza sobre qual modelo escolher, o Roo Code funciona melhor com {{defaultModelId}}. Você também pode pesquisar por \"free\" para encontrar opções gratuitas atualmente disponíveis.", + "automaticFetch": "A extensão busca automaticamente a lista mais recente de modelos disponíveis em {{serviceName}}. Se você não tem certeza sobre qual modelo escolher, o Joe Code funciona melhor com {{defaultModelId}}. Você também pode pesquisar por \"free\" para encontrar opções gratuitas atualmente disponíveis.", "label": "Modelo", "searchPlaceholder": "Pesquisar", "noMatchFound": "Nenhuma correspondência encontrada", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Permitir relatórios anônimos de erros e uso", - "description": "Ajude a melhorar o Roo Code enviando dados de uso anônimos e relatórios de erros. Esta telemetria não coleta código, prompts ou informações pessoais. Consulte nossa política de privacidade para mais detalhes." + "description": "Ajude a melhorar o Joe Code enviando dados de uso anônimos e relatórios de erros. Esta telemetria não coleta código, prompts ou informações pessoais. Consulte nossa política de privacidade para mais detalhes." }, "settings": { "import": "Importar", diff --git a/webview-ui/src/i18n/locales/pt-BR/welcome.json b/webview-ui/src/i18n/locales/pt-BR/welcome.json index 563cd0f6a39..fc2870ea0c0 100644 --- a/webview-ui/src/i18n/locales/pt-BR/welcome.json +++ b/webview-ui/src/i18n/locales/pt-BR/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Bem-vindo ao Roo Code!", - "introduction": "Com uma variedade de Modos integrados e extensíveis, o Roo Code permite que você planeje, arquitete, codifique, depure e aumente sua produtividade como nunca antes.", - "accountMention": "Para começar, crie sua conta Roo Code Cloud. Obtenha modelos poderosos, controle na web, análises, suporte e muito mais.", + "greeting": "Bem-vindo ao Joe Code!", + "introduction": "Com uma variedade de Modos integrados e extensíveis, o Joe Code permite que você planeje, arquitete, codifique, depure e aumente sua produtividade como nunca antes.", + "accountMention": "Para começar, crie sua conta Joe Code Cloud. Obtenha modelos poderosos, controle na web, análises, suporte e muito mais.", "getStarted": "Criar conta Roo", "noAccount": "ou usar sem conta" }, "providerSignup": { "heading": "Escolha seu provedor", "chooseProvider": "Roo precisa de um provedor LLM para funcionar. Escolha um para começar, você pode adicionar mais depois.", - "rooCloudProvider": "Provedor Roo Code Cloud", - "rooCloudDescription": "A maneira mais simples de começar é com o Provedor Roo Code Cloud: uma mistura selecionada de modelos gratuitos e pagos a baixo custo.", + "rooCloudProvider": "Provedor Joe Code Cloud", + "rooCloudDescription": "A maneira mais simples de começar é com o Provedor Joe Code Cloud: uma mistura selecionada de modelos gratuitos e pagos a baixo custo.", "learnMore": "Saiba mais", "useAnotherProvider": "Provedor de terceiros", "useAnotherProviderDescription": "Insira uma chave API e comece.", "noApiKeys": "Não quer lidar com chaves API e contas separadas?", - "backToRoo": "Escolha o Provedor Roo Code Cloud.", + "backToRoo": "Escolha o Provedor Joe Code Cloud.", "goBack": "Voltar", "finish": "Concluir" }, "waitingForCloud": { - "heading": "Fazendo login no Roo Code Cloud...", - "description": "Vamos levá-lo ao seu navegador para se registrar no Roo Code Cloud. Depois o trazeremos de volta aqui para terminar.", + "heading": "Fazendo login no Joe Code Cloud...", + "description": "Vamos levá-lo ao seu navegador para se registrar no Joe Code Cloud. Depois o trazeremos de volta aqui para terminar.", "noPrompt": "Se você não for solicitado a abrir uma URL, clique aqui.", "havingTrouble": "Se você completou o cadastro mas está tendo problemas, clique aqui.", "pasteUrl": "Cole a URL de callback mostrada no seu navegador:", "docsLink": "Não está funcionando? Consulte a documentação.", - "invalidURL": "Isso não parece ser uma URL de callback válida. Por favor, copie o que o Roo Code Cloud está mostrando em seu navegador.", + "invalidURL": "Isso não parece ser uma URL de callback válida. Por favor, copie o que o Joe Code Cloud está mostrando em seu navegador.", "goBack": "Voltar" }, "startRouter": "Recomendamos usar um roteador LLM:", "startCustom": "Ou você pode trazer sua própria chave API:", "telemetry": { - "helpImprove": "Ajude a melhorar o Roo Code", - "helpImproveMessage": "Roo Code coleta dados de erro e uso para nos ajudar a corrigir bugs e melhorar a extensão. Esta telemetria não coleta código, prompts ou informações pessoais. Você pode desabilitar isso nas configurações." + "helpImprove": "Ajude a melhorar o Joe Code", + "helpImproveMessage": "Joe Code coleta dados de erro e uso para nos ajudar a corrigir bugs e melhorar a extensão. Esta telemetria não coleta código, prompts ou informações pessoais. Você pode desabilitar isso nas configurações." }, "importSettings": "Importar configurações" } diff --git a/webview-ui/src/i18n/locales/pt-BR/worktrees.json b/webview-ui/src/i18n/locales/pt-BR/worktrees.json index 4e438d6a9c4..cc8fa6cbb39 100644 --- a/webview-ui/src/i18n/locales/pt-BR/worktrees.json +++ b/webview-ui/src/i18n/locales/pt-BR/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Concluído", - "description": "Os worktrees do Git permitem que você trabalhe em vários branches ao mesmo tempo em diretórios separados. Cada worktree tem sua própria janela do VS Code com o Roo Code.", + "description": "Os worktrees do Git permitem que você trabalhe em vários branches ao mesmo tempo em diretórios separados. Cada worktree tem sua própria janela do VS Code com o Joe Code.", "notGitRepo": "Este workspace não é um repositório Git. Worktrees exigem um repositório Git para funcionar.", "multiRootNotSupported": "Worktrees não são compatíveis com workspaces multi-root. Abra uma única pasta para usar worktrees.", diff --git a/webview-ui/src/i18n/locales/ru/chat.json b/webview-ui/src/i18n/locales/ru/chat.json index 3681d3d648f..78f4e1427d5 100644 --- a/webview-ui/src/i18n/locales/ru/chat.json +++ b/webview-ui/src/i18n/locales/ru/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Добро пожаловать в Roo Code", + "greeting": "Добро пожаловать в Joe Code", "task": { "title": "Задача", "expand": "Развернуть задачу", @@ -21,7 +21,7 @@ "sharePublicly": "Поделиться публично", "sharePubliclyDescription": "Любой, у кого есть ссылка, может получить доступ", "connectToCloud": "Подключиться к облаку", - "connectToCloudDescription": "Войди в Roo Code Cloud, чтобы делиться задачами", + "connectToCloudDescription": "Войди в Joe Code Cloud, чтобы делиться задачами", "sharingDisabledByOrganization": "Обмен отключен организацией", "shareSuccessOrganization": "Ссылка организации скопирована в буфер обмена", "shareSuccessPublic": "Публичная ссылка скопирована в буфер обмена", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Добавить сообщение в очередь (будет отправлено после завершения текущей задачи)", "scrollToBottom": "Прокрутить чат вниз", - "about": "Roo Code — это целая команда разработчиков ИИ в вашем редакторе.", + "about": "Joe Code — это целая команда разработчиков ИИ в вашем редакторе.", "docs": "Ознакомьтесь с нашей документацией, чтобы узнать больше.", "onboarding": "Ваш список задач в этом рабочем пространстве пуст.", "rooTips": { @@ -156,7 +156,7 @@ "500": "Ошибка сервера провайдера. На стороне провайдера что-то пошло не так, с вашим запросом все в порядке.", "docs": "Документация", "goToSettings": "Настройки", - "unknown": "Неизвестная ошибка API. Пожалуйста, свяжитесь с поддержкой Roo Code.", + "unknown": "Неизвестная ошибка API. Пожалуйста, свяжитесь с поддержкой Joe Code.", "connection": "Ошибка подключения. Убедитесь, что у вас есть рабочее подключение к Интернету.", "claudeCodeNotAuthenticated": "Вам необходимо войти в систему, чтобы использовать Claude Code. Перейдите в Настройки и нажмите «Войти в Claude Code» для аутентификации." } @@ -311,20 +311,20 @@ "triggerLabelAll": "BRRR" }, "announcement": { - "title": "Выпущен Roo Code {{version}}", - "support": "Поддержите Roo Code, поставив нам звезду на GitHub.", + "title": "Выпущен Joe Code {{version}}", + "support": "Поддержите Joe Code, поставив нам звезду на GitHub.", "stealthModel": { - "feature": "Бесплатная скрытая модель на ограниченное время - Code Supernova: Теперь обновлена до контекстного окна 1M токенов! Универсальная модель агентного программирования, поддерживающая ввод изображений, доступная через Roo Code Cloud.", + "feature": "Бесплатная скрытая модель на ограниченное время - Code Supernova: Теперь обновлена до контекстного окна 1M токенов! Универсальная модель агентного программирования, поддерживающая ввод изображений, доступная через Joe Code Cloud.", "note": "(Примечание: промпты и дополнения записываются создателем модели и используются для её улучшения)", - "connectButton": "Подключиться к Roo Code Cloud", - "selectModel": "Выберите roo/code-supernova от провайдера Roo Code Cloud в Настройках для начала работы.", + "connectButton": "Подключиться к Joe Code Cloud", + "selectModel": "Выберите roo/code-supernova от провайдера Joe Code Cloud в Настройках для начала работы.", "goToSettingsButton": "Перейти к Настройкам" }, "release": { "heading": "Что нового:", "geminiPro": "Поддержка Gemini 3.1 Pro: Добавлена поддержка модели Gemini 3.1 Pro и установлена как модель Gemini по умолчанию для лучшей производительности.", "cliNdjson": "Протокол NDJSON в CLI: Новый протокол NDJSON через stdin, подкоманды list и модульная команда run для более гибких CLI-процессов.", - "cliRelease": "CLI v0.1.0: CLI Roo Code достиг своего первого официального релиза со стабильным интерфейсом командной строки." + "cliRelease": "CLI v0.1.0: CLI Joe Code достиг своего первого официального релиза со стабильным интерфейсом командной строки." }, "cloudAgents": { "heading": "Новое в облаке:", @@ -376,7 +376,7 @@ "profileViolationWarning": "Текущий профиль несовместим с настройками вашей организации", "shellIntegration": { "title": "Предупреждение о выполнении команды", - "description": "Ваша команда выполняется без интеграции оболочки терминала VSCode. Чтобы скрыть это предупреждение, вы можете отключить интеграцию оболочки в разделе Terminal в настройках Roo Code или устранить проблемы с интеграцией терминала VSCode, используя ссылку ниже.", + "description": "Ваша команда выполняется без интеграции оболочки терминала VSCode. Чтобы скрыть это предупреждение, вы можете отключить интеграцию оболочки в разделе Terminal в настройках Joe Code или устранить проблемы с интеграцией терминала VSCode, используя ссылку ниже.", "troubleshooting": "Нажмите здесь для просмотра документации по интеграции оболочки." }, "ask": { @@ -434,7 +434,7 @@ "ariaLabel": "Версия {{version}} - Нажмите, чтобы просмотреть примечания к выпуску" }, "rooCloudCTA": { - "title": "Roo Code Cloud развивается!", + "title": "Joe Code Cloud развивается!", "description": "Запускайте удаленные агенты в облаке, получайте доступ к своим задачам из любого места, сотрудничайте с другими и многое другое.", "joinWaitlist": "Зарегистрируйтесь, чтобы получать последние обновления." }, diff --git a/webview-ui/src/i18n/locales/ru/cloud.json b/webview-ui/src/i18n/locales/ru/cloud.json index 20aa6d45069..01d35644fe3 100644 --- a/webview-ui/src/i18n/locales/ru/cloud.json +++ b/webview-ui/src/i18n/locales/ru/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Фото профиля", "logOut": "Выход", "testApiAuthentication": "Проверить аутентификацию API", - "signIn": "Подключиться к Roo Code Cloud", + "signIn": "Подключиться к Joe Code Cloud", "connect": "Начать", - "cloudBenefitsTitle": "Попробуйте Roo Code Cloud", + "cloudBenefitsTitle": "Попробуйте Joe Code Cloud", "cloudBenefitProvider": "Доступ к бесплатным и платным моделям, которые отлично работают с Roo", "cloudBenefitCloudAgents": "Поручайте задачи автономным облачным агентам", "cloudBenefitTriggers": "Получайте код-ревью на Github, запускайте задачи из Slack и многое другое", "cloudBenefitWalkaway": "Отслеживайте и управляйте задачами откуда угодно (включая телефон)", "cloudBenefitHistory": "Доступ к истории задач откуда угодно и возможность делиться ими с другими", "cloudBenefitMetrics": "Получите целостное представление о потреблении токенов", - "visitCloudWebsite": "Посетить Roo Code Cloud", + "visitCloudWebsite": "Посетить Joe Code Cloud", "taskSync": "Синхронизация задач", - "taskSyncDescription": "Синхронизируйте свои задачи для просмотра и обмена в Roo Code Cloud", + "taskSyncDescription": "Синхронизируйте свои задачи для просмотра и обмена в Joe Code Cloud", "taskSyncManagedByOrganization": "Синхронизация задач управляется вашей организацией", "usageMetricsAlwaysReported": "Информация об использовании модели всегда сообщается при входе в систему", "authWaiting": "Ожидание завершения аутентификации...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Скопируй URL перенаправления из браузера и вставь его сюда:", "startOver": "Начать заново", "personalAccount": "Личный аккаунт", - "switchAccount": "Переключить аккаунт Roo Code Cloud", + "switchAccount": "Переключить аккаунт Joe Code Cloud", "createTeamAccount": "Создать командный аккаунт", - "cloudUrlPillLabel": "URL Roo Code Cloud", + "cloudUrlPillLabel": "URL Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Предоставить Roo немного независимости? Управляйте им из любого места с помощью Roo Code Cloud. Узнать больше.", + "autoApprovePowerUser": "Предоставить Roo немного независимости? Управляйте им из любого места с помощью Joe Code Cloud. Узнать больше.", "longRunningTask": "Это может занять некоторое время. Продолжайте из любого места с помощью Облака.", - "taskList": "Нравится Roo? Посмотрите Roo Code Cloud: отслеживайте и контролируйте свои задачи из любого места, запускайте автономных облачных агентов, получайте статистику использования и многое другое. Узнать больше." + "taskList": "Нравится Roo? Посмотрите Joe Code Cloud: отслеживайте и контролируйте свои задачи из любого места, запускайте автономных облачных агентов, получайте статистику использования и многое другое. Узнать больше." } } diff --git a/webview-ui/src/i18n/locales/ru/settings.json b/webview-ui/src/i18n/locales/ru/settings.json index fe24ebee299..b1dc8480979 100644 --- a/webview-ui/src/i18n/locales/ru/settings.json +++ b/webview-ui/src/i18n/locales/ru/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Экспериментальное", "language": "Язык", - "about": "О Roo Code", + "about": "О Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Нужно с нами связаться? Напишите" }, - "community": "Хотите получить советы или просто пообщаться с другими пользователями Roo Code? Присоединяйтесь к reddit.com/r/RooCode или discord.gg/roocode", + "community": "Хотите получить советы или просто пообщаться с другими пользователями Joe Code? Присоединяйтесь к reddit.com/r/JoeCode или discord.gg/joecode", "contactAndCommunity": "Контакты и Сообщество", "manageSettings": "Управление Настройками", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Черновая модель должна быть из той же семьи моделей для корректной работы speculative decoding.", "selectDraftModel": "Выбрать черновую модель", "noModelsFound": "Черновых моделей не найдено. Проверьте, что LM Studio запущен с включённым серверным режимом.", - "description": "LM Studio позволяет запускать модели локально на вашем компьютере. Для начала ознакомьтесь с кратким руководством. Также необходимо включить локальный сервер LM Studio для работы с этим расширением. Примечание: Roo Code использует сложные подсказки и лучше всего работает с моделями Claude. Менее мощные модели могут работать некорректно." + "description": "LM Studio позволяет запускать модели локально на вашем компьютере. Для начала ознакомьтесь с кратким руководством. Также необходимо включить локальный сервер LM Studio для работы с этим расширением. Примечание: Joe Code использует сложные подсказки и лучше всего работает с моделями Claude. Менее мощные модели могут работать некорректно." }, "ollama": { "baseUrl": "Базовый URL (опционально)", @@ -466,11 +466,11 @@ "numCtx": "Размер контекстного окна (num_ctx)", "numCtxHelp": "Переопределяет размер контекстного окна модели по умолчанию. Оставьте пустым, чтобы использовать конфигурацию Modelfile модели. Минимальное значение — 128.", "description": "Ollama позволяет запускать модели локально на вашем компьютере. Для начала ознакомьтесь с кратким руководством.", - "warning": "Примечание: Roo Code использует сложные подсказки и лучше всего работает с моделями Claude. Менее мощные модели могут работать некорректно." + "warning": "Примечание: Joe Code использует сложные подсказки и лучше всего работает с моделями Claude. Менее мощные модели могут работать некорректно." }, "roo": { - "authenticatedMessage": "Безопасно аутентифицирован через твой аккаунт Roo Code Cloud.", - "connectButton": "Подключиться к Roo Code Cloud" + "authenticatedMessage": "Безопасно аутентифицирован через твой аккаунт Joe Code Cloud.", + "connectButton": "Подключиться к Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Настройте возможности и стоимость вашей пользовательской модели, совместимой с OpenAI. Будьте осторожны при указании возможностей модели, это может повлиять на работу Roo Code.", + "capabilities": "Настройте возможности и стоимость вашей пользовательской модели, совместимой с OpenAI. Будьте осторожны при указании возможностей модели, это может повлиять на работу Joe Code.", "maxTokens": { "label": "Максимум токенов на вывод", "description": "Максимальное количество токенов, которые модель может сгенерировать в ответе. (Укажите -1, чтобы сервер сам определил максимум.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "Расширение автоматически получает актуальный список моделей на {{serviceName}}. Если не уверены, что выбрать, Roo Code лучше всего работает с {{defaultModelId}}. Также попробуйте поискать \"free\" для бесплатных вариантов.", + "automaticFetch": "Расширение автоматически получает актуальный список моделей на {{serviceName}}. Если не уверены, что выбрать, Joe Code лучше всего работает с {{defaultModelId}}. Также попробуйте поискать \"free\" для бесплатных вариантов.", "label": "Модель", "searchPlaceholder": "Поиск", "noMatchFound": "Совпадений не найдено", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Разрешить анонимную отправку ошибок и статистики использования", - "description": "Помогите улучшить Roo Code, отправляя анонимные данные об использовании и отчеты об ошибках. Эта телеметрия не собирает код, промпты или личную информацию. Смотрите нашу политику конфиденциальности для получения подробной информации." + "description": "Помогите улучшить Joe Code, отправляя анонимные данные об использовании и отчеты об ошибках. Эта телеметрия не собирает код, промпты или личную информацию. Смотрите нашу политику конфиденциальности для получения подробной информации." }, "settings": { "import": "Импорт", diff --git a/webview-ui/src/i18n/locales/ru/welcome.json b/webview-ui/src/i18n/locales/ru/welcome.json index af938e309b7..9623fd03757 100644 --- a/webview-ui/src/i18n/locales/ru/welcome.json +++ b/webview-ui/src/i18n/locales/ru/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Добро пожаловать в Roo Code!", - "introduction": "С набором встроенных и расширяемых Режимов, Roo Code позволяет вам планировать, проектировать, писать код, отлаживать и повышать продуктивность как никогда раньше.", - "accountMention": "Для начала создайте свой аккаунт Roo Code Cloud. Получите мощные модели, веб-управление, аналитику, поддержку и многое другое.", + "greeting": "Добро пожаловать в Joe Code!", + "introduction": "С набором встроенных и расширяемых Режимов, Joe Code позволяет вам планировать, проектировать, писать код, отлаживать и повышать продуктивность как никогда раньше.", + "accountMention": "Для начала создайте свой аккаунт Joe Code Cloud. Получите мощные модели, веб-управление, аналитику, поддержку и многое другое.", "getStarted": "Создать аккаунт Roo", "noAccount": "или использовать без аккаунта" }, "providerSignup": { "heading": "Выберите поставщика услуг", "chooseProvider": "Roo нужен LLM-провайдер для работы. Выберите один для начала, вы можете добавить больше позже.", - "rooCloudProvider": "Провайдер Roo Code Cloud", - "rooCloudDescription": "Самый простой способ начать — использовать провайдер Roo Code Cloud: тщательно подобранная смесь бесплатных и платных моделей по низкой стоимости.", + "rooCloudProvider": "Провайдер Joe Code Cloud", + "rooCloudDescription": "Самый простой способ начать — использовать провайдер Joe Code Cloud: тщательно подобранная смесь бесплатных и платных моделей по низкой стоимости.", "learnMore": "Узнать больше", "useAnotherProvider": "Провайдер третьей стороны", "useAnotherProviderDescription": "Введите API-ключ и начните.", "noApiKeys": "Не хотите иметь дело с API-ключами и отдельными аккаунтами?", - "backToRoo": "Выберите провайдер Roo Code Cloud.", + "backToRoo": "Выберите провайдер Joe Code Cloud.", "goBack": "Назад", "finish": "Завершить" }, "waitingForCloud": { - "heading": "Вход в Roo Code Cloud...", - "description": "Мы отправим вас в браузер для регистрации в Roo Code Cloud. Затем мы вернём вас сюда, чтобы завершить процесс.", + "heading": "Вход в Joe Code Cloud...", + "description": "Мы отправим вас в браузер для регистрации в Joe Code Cloud. Затем мы вернём вас сюда, чтобы завершить процесс.", "noPrompt": "Если вас не просят открыть URL, нажмите здесь.", "havingTrouble": "Если вы завершили регистрацию, но испытываете проблемы, нажмите здесь.", "pasteUrl": "Вставьте URL обратного вызова из вашего браузера:", "docsLink": "Не работает? Проверьте документацию.", - "invalidURL": "Это не похоже на действительный URL обратного вызова. Пожалуйста, скопируйте то, что Roo Code Cloud показывает в вашем браузере.", + "invalidURL": "Это не похоже на действительный URL обратного вызова. Пожалуйста, скопируйте то, что Joe Code Cloud показывает в вашем браузере.", "goBack": "Назад" }, "startRouter": "Мы рекомендуем использовать маршрутизатор LLM:", "startCustom": "Или вы можете принести свой API-ключ:", "telemetry": { - "helpImprove": "Помогите улучшить Roo Code", - "helpImproveMessage": "Roo Code собирает данные об ошибках и использовании, чтобы помочь нам исправлять ошибки и улучшать расширение. Эта телеметрия не собирает код, приглашения или личную информацию. Вы можете отключить это в настройках." + "helpImprove": "Помогите улучшить Joe Code", + "helpImproveMessage": "Joe Code собирает данные об ошибках и использовании, чтобы помочь нам исправлять ошибки и улучшать расширение. Эта телеметрия не собирает код, приглашения или личную информацию. Вы можете отключить это в настройках." }, "importSettings": "Импортировать настройки" } diff --git a/webview-ui/src/i18n/locales/ru/worktrees.json b/webview-ui/src/i18n/locales/ru/worktrees.json index a3ea03c3ef4..56522db1a9f 100644 --- a/webview-ui/src/i18n/locales/ru/worktrees.json +++ b/webview-ui/src/i18n/locales/ru/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Готово", - "description": "Git worktrees позволяют одновременно работать с несколькими ветками в отдельных каталогах. У каждого worktree есть своё окно VS Code с Roo Code.", + "description": "Git worktrees позволяют одновременно работать с несколькими ветками в отдельных каталогах. У каждого worktree есть своё окно VS Code с Joe Code.", "notGitRepo": "Этот workspace не является Git-репозиторием. Для работы worktrees нужен Git-репозиторий.", "multiRootNotSupported": "Worktrees не поддерживаются в multi-root workspace. Открой один каталог, чтобы использовать worktrees.", diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index 216d8e07975..5e8fd47d756 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Roo Code'a Hoş Geldiniz", + "greeting": "Joe Code'a Hoş Geldiniz", "task": { "title": "Görev", "expand": "Görevi genişlet", @@ -21,7 +21,7 @@ "sharePublicly": "Herkese açık paylaş", "sharePubliclyDescription": "Bağlantıya sahip herkes erişebilir", "connectToCloud": "Buluta bağlan", - "connectToCloudDescription": "Görevleri paylaşmak için Roo Code Cloud'a giriş yap", + "connectToCloudDescription": "Görevleri paylaşmak için Joe Code Cloud'a giriş yap", "sharingDisabledByOrganization": "Paylaşım kuruluş tarafından devre dışı bırakıldı", "shareSuccessOrganization": "Organizasyon bağlantısı panoya kopyalandı", "shareSuccessPublic": "Genel bağlantı panoya kopyalandı", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Mesajı kuyruğa ekle (mevcut görev tamamlandıktan sonra gönderilecek)", "scrollToBottom": "Sohbetin altına kaydır", - "about": "Roo Code, düzenleyicinizdeki bütün bir yapay zeka geliştirme ekibidir.", + "about": "Joe Code, düzenleyicinizdeki bütün bir yapay zeka geliştirme ekibidir.", "docs": "Daha fazla bilgi için belgelerimize göz atın.", "onboarding": "Bu çalışma alanındaki görev listeniz boş.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Sağlayıcı sunucu hatası. Sağlayıcı tarafında bir sorun var, isteğinizde sorun yok.", "docs": "Belgeler", "goToSettings": "Ayarlar", - "unknown": "Bilinmeyen API hatası. Lütfen Roo Code desteğiyle iletişime geç.", + "unknown": "Bilinmeyen API hatası. Lütfen Joe Code desteğiyle iletişime geç.", "connection": "Bağlantı hatası. Çalışan bir internet bağlantınız olduğundan emin olun.", "claudeCodeNotAuthenticated": "Claude Code'u kullanmak için oturum açmanız gerekiyor. Ayarlar'a gidin ve kimlik doğrulaması yapmak için \"Claude Code'da Oturum Aç\" seçeneğine tıklayın." } @@ -338,20 +338,20 @@ "timerPrefix": "Otomatik onay etkinleştirildi. {{seconds}}s içinde seçim yapılıyor…" }, "announcement": { - "title": "Roo Code {{version}} Yayınlandı", - "support": "GitHub'da yıldız vererek Roo Code'u destekle.", + "title": "Joe Code {{version}} Yayınlandı", + "support": "GitHub'da yıldız vererek Joe Code'u destekle.", "stealthModel": { - "feature": "Sınırlı süre ÜCRETSİZ gizli model - Code Supernova: Artık 1M token bağlam penceresi ile yükseltildi! Görüntü girişlerini destekleyen çok amaçlı acentik kodlama modeli, Roo Code Cloud üzerinden kullanılabilir.", + "feature": "Sınırlı süre ÜCRETSİZ gizli model - Code Supernova: Artık 1M token bağlam penceresi ile yükseltildi! Görüntü girişlerini destekleyen çok amaçlı acentik kodlama modeli, Joe Code Cloud üzerinden kullanılabilir.", "note": "(Not: istemler ve tamamlamalar model yaratıcısı tarafından kaydedilir ve modeli geliştirmek için kullanılır)", - "connectButton": "Roo Code Cloud'a bağlan", - "selectModel": "Başlamak için Ayarlar'da Roo Code Cloud sağlayıcısından roo/code-supernova'yı seçin.", + "connectButton": "Joe Code Cloud'a bağlan", + "selectModel": "Başlamak için Ayarlar'da Joe Code Cloud sağlayıcısından roo/code-supernova'yı seçin.", "goToSettingsButton": "Ayarlar'a Git" }, "release": { "heading": "Yenilikler:", "geminiPro": "Gemini 3.1 Pro Desteği: Gemini 3.1 Pro model desteği eklendi ve daha iyi performans için varsayılan Gemini modeli olarak ayarlandı.", "cliNdjson": "CLI NDJSON Protokolü: Yeni NDJSON stdin protokolü, list alt komutları ve daha esnek CLI iş akışları için modüler run komutu.", - "cliRelease": "CLI v0.1.0: Roo Code CLI, kararlı bir komut arayüzüyle ilk resmi sürümüne ulaştı." + "cliRelease": "CLI v0.1.0: Joe Code CLI, kararlı bir komut arayüzüyle ilk resmi sürümüne ulaştı." }, "cloudAgents": { "heading": "Cloud'daki yenilikler:", @@ -376,7 +376,7 @@ "profileViolationWarning": "Geçerli profil kuruluşunuzun ayarlarıyla uyumlu değil", "shellIntegration": { "title": "Komut Çalıştırma Uyarısı", - "description": "Komutunuz VSCode terminal kabuk entegrasyonu olmadan çalıştırılıyor. Bu uyarıyı gizlemek için Roo Code ayarları'nın Terminal bölümünden kabuk entegrasyonunu devre dışı bırakabilir veya aşağıdaki bağlantıyı kullanarak VSCode terminal entegrasyonu sorunlarını giderebilirsiniz.", + "description": "Komutunuz VSCode terminal kabuk entegrasyonu olmadan çalıştırılıyor. Bu uyarıyı gizlemek için Joe Code ayarları'nın Terminal bölümünden kabuk entegrasyonunu devre dışı bırakabilir veya aşağıdaki bağlantıyı kullanarak VSCode terminal entegrasyonu sorunlarını giderebilirsiniz.", "troubleshooting": "Kabuk entegrasyonu belgelerini görmek için buraya tıklayın." }, "ask": { @@ -434,7 +434,7 @@ "ariaLabel": "Sürüm {{version}} - Sürüm notlarını görüntülemek için tıklayın" }, "rooCloudCTA": { - "title": "Roo Code Cloud gelişiyor!", + "title": "Joe Code Cloud gelişiyor!", "description": "Bulutta uzak ajanlar çalıştırın, görevlerinize her yerden erişin, başkalarıyla işbirliği yapın ve daha fazlası.", "joinWaitlist": "En son güncellemeleri almak için kaydolun." }, diff --git a/webview-ui/src/i18n/locales/tr/cloud.json b/webview-ui/src/i18n/locales/tr/cloud.json index 8c14c744a7c..9885ec6d3a8 100644 --- a/webview-ui/src/i18n/locales/tr/cloud.json +++ b/webview-ui/src/i18n/locales/tr/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Profil resmi", "logOut": "Çıkış yap", "testApiAuthentication": "API Kimlik Doğrulamayı Test Et", - "signIn": "Roo Code Cloud'a bağlan", + "signIn": "Joe Code Cloud'a bağlan", "connect": "Başlayın", - "cloudBenefitsTitle": "Roo Code Cloud'u Deneyin", + "cloudBenefitsTitle": "Joe Code Cloud'u Deneyin", "cloudBenefitProvider": "Roo ile harika çalışan ücretsiz ve ücretli modellere erişin", "cloudBenefitCloudAgents": "Otonom Bulut ajanlarına görevler verin", "cloudBenefitTriggers": "Github'da kod incelemeleri alın, Slack'ten görevler başlatın ve daha fazlasını yapın", "cloudBenefitWalkaway": "Görevleri her yerden (telefonunuz dahil) takip edin ve kontrol edin", "cloudBenefitHistory": "Görev geçmişinize her yerden erişin ve başkalarıyla paylaşın", "cloudBenefitMetrics": "Token tüketiminizin bütünsel görünümünü elde edin", - "visitCloudWebsite": "Roo Code Cloud'u ziyaret et", + "visitCloudWebsite": "Joe Code Cloud'u ziyaret et", "taskSync": "Görev senkronizasyonu", - "taskSyncDescription": "Görevlerinizi Roo Code Cloud'da görüntülemek ve paylaşmak için senkronize edin", + "taskSyncDescription": "Görevlerinizi Joe Code Cloud'da görüntülemek ve paylaşmak için senkronize edin", "taskSyncManagedByOrganization": "Görev senkronizasyonu kuruluşunuz tarafından yönetilir", "usageMetricsAlwaysReported": "Oturum açıldığında model kullanım bilgileri her zaman raporlanır", "authWaiting": "Kimlik doğrulama tamamlanması bekleniyor...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Tarayıcından redirect URL'sini kopyala ve buraya yapıştır:", "startOver": "Baştan başla", "personalAccount": "Kişisel Hesap", - "switchAccount": "Roo Code Cloud Hesabını Değiştir", + "switchAccount": "Joe Code Cloud Hesabını Değiştir", "createTeamAccount": "Takım Hesabı Oluştur", - "cloudUrlPillLabel": "Roo Code Cloud URL'si", + "cloudUrlPillLabel": "Joe Code Cloud URL'si", "upsell": { - "autoApprovePowerUser": "Roo'ya biraz bağımsızlık mı veriyorsunuz? Roo Code Cloud ile onu her yerden kontrol edin. Daha fazla bilgi edinin.", + "autoApprovePowerUser": "Roo'ya biraz bağımsızlık mı veriyorsunuz? Joe Code Cloud ile onu her yerden kontrol edin. Daha fazla bilgi edinin.", "longRunningTask": "Bu biraz zaman alabilir. Bulut ile her yerden devam edin.", - "taskList": "Roo'dan memnun musunuz? Roo Code Cloud'a göz atın: görevlerinizi her yerden takip edin ve kontrol edin, otonom Bulut ajanlarını çalıştırın, kullanım istatistikleri alın ve daha fazlasını yapın. Daha fazla bilgi edinin." + "taskList": "Roo'dan memnun musunuz? Joe Code Cloud'a göz atın: görevlerinizi her yerden takip edin ve kontrol edin, otonom Bulut ajanlarını çalıştırın, kullanım istatistikleri alın ve daha fazlasını yapın. Daha fazla bilgi edinin." } } diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 7171718f1c5..e1ed2f4ebeb 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "Deneysel", "language": "Dil", - "about": "Roo Code Hakkında", + "about": "Joe Code Hakkında", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "Bizimle konuşmanız mı gerekiyor? Yazın" }, - "community": "İpuçları mı istiyorsunuz yoksa sadece diğer Roo Code kullanıcılarıyla takılmak mı istiyorsunuz? reddit.com/r/RooCode veya discord.gg/roocode'a katılın", + "community": "İpuçları mı istiyorsunuz yoksa sadece diğer Joe Code kullanıcılarıyla takılmak mı istiyorsunuz? reddit.com/r/JoeCode veya discord.gg/joecode'a katılın", "contactAndCommunity": "İletişim ve Topluluk", "manageSettings": "Ayarları Yönet", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Spekülatif kod çözmenin doğru çalışması için taslak model aynı model ailesinden olmalıdır.", "selectDraftModel": "Taslak Model Seç", "noModelsFound": "Taslak model bulunamadı. Lütfen LM Studio'nun Sunucu Modu etkinken çalıştığından emin olun.", - "description": "LM Studio, modelleri bilgisayarınızda yerel olarak çalıştırmanıza olanak tanır. Başlamak için hızlı başlangıç kılavuzlarına bakın. Bu uzantıyla kullanmak için LM Studio'nun yerel sunucu özelliğini de başlatmanız gerekecektir. Not: Roo Code karmaşık istemler kullanır ve Claude modelleriyle en iyi şekilde çalışır. Daha az yetenekli modeller beklendiği gibi çalışmayabilir." + "description": "LM Studio, modelleri bilgisayarınızda yerel olarak çalıştırmanıza olanak tanır. Başlamak için hızlı başlangıç kılavuzlarına bakın. Bu uzantıyla kullanmak için LM Studio'nun yerel sunucu özelliğini de başlatmanız gerekecektir. Not: Joe Code karmaşık istemler kullanır ve Claude modelleriyle en iyi şekilde çalışır. Daha az yetenekli modeller beklendiği gibi çalışmayabilir." }, "ollama": { "baseUrl": "Temel URL (İsteğe bağlı)", @@ -466,11 +466,11 @@ "numCtx": "Bağlam Penceresi Boyutu (num_ctx)", "numCtxHelp": "Modelin varsayılan bağlam penceresi boyutunu geçersiz kılar. Modelin Modelfile yapılandırmasını kullanmak için boş bırakın. Minimum değer 128'dir.", "description": "Ollama, modelleri bilgisayarınızda yerel olarak çalıştırmanıza olanak tanır. Başlamak için hızlı başlangıç kılavuzlarına bakın.", - "warning": "Not: Roo Code karmaşık istemler kullanır ve Claude modelleriyle en iyi şekilde çalışır. Daha az yetenekli modeller beklendiği gibi çalışmayabilir." + "warning": "Not: Joe Code karmaşık istemler kullanır ve Claude modelleriyle en iyi şekilde çalışır. Daha az yetenekli modeller beklendiği gibi çalışmayabilir." }, "roo": { - "authenticatedMessage": "Roo Code Cloud hesabın üzerinden güvenli bir şekilde kimlik doğrulandı.", - "connectButton": "Roo Code Cloud'a Bağlan" + "authenticatedMessage": "Joe Code Cloud hesabın üzerinden güvenli bir şekilde kimlik doğrulandı.", + "connectButton": "Joe Code Cloud'a Bağlan" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Özel OpenAI uyumlu modelinizin yeteneklerini ve fiyatlandırmasını yapılandırın. Model yeteneklerini belirtirken dikkatli olun, çünkü bunlar Roo Code'un performansını etkileyebilir.", + "capabilities": "Özel OpenAI uyumlu modelinizin yeteneklerini ve fiyatlandırmasını yapılandırın. Model yeteneklerini belirtirken dikkatli olun, çünkü bunlar Joe Code'un performansını etkileyebilir.", "maxTokens": { "label": "Maksimum Çıktı Token'ları", "description": "Modelin bir yanıtta üretebileceği maksimum token sayısı. (Sunucunun maksimum token'ları ayarlamasına izin vermek için -1 belirtin.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "Uzantı {{serviceName}} üzerinde bulunan mevcut modellerin en güncel listesini otomatik olarak alır. Hangi modeli seçeceğinizden emin değilseniz, Roo Code {{defaultModelId}} ile en iyi şekilde çalışır. Şu anda mevcut olan ücretsiz seçenekleri bulmak için \"free\" araması da yapabilirsiniz.", + "automaticFetch": "Uzantı {{serviceName}} üzerinde bulunan mevcut modellerin en güncel listesini otomatik olarak alır. Hangi modeli seçeceğinizden emin değilseniz, Joe Code {{defaultModelId}} ile en iyi şekilde çalışır. Şu anda mevcut olan ücretsiz seçenekleri bulmak için \"free\" araması da yapabilirsiniz.", "label": "Model", "searchPlaceholder": "Ara", "noMatchFound": "Eşleşme bulunamadı", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Anonim hata ve kullanım raporlamaya izin ver", - "description": "Anonim kullanım verileri ve hata raporları göndererek Roo Code'u geliştirmeye yardım edin. Bu telemetri kod, prompt veya kişisel bilgi toplamaz. Daha fazla ayrıntı için gizlilik politikamıza bakın. Bunu istediğiniz zaman kapatabilirsiniz." + "description": "Anonim kullanım verileri ve hata raporları göndererek Joe Code'u geliştirmeye yardım edin. Bu telemetri kod, prompt veya kişisel bilgi toplamaz. Daha fazla ayrıntı için gizlilik politikamıza bakın. Bunu istediğiniz zaman kapatabilirsiniz." }, "settings": { "import": "İçe Aktar", diff --git a/webview-ui/src/i18n/locales/tr/welcome.json b/webview-ui/src/i18n/locales/tr/welcome.json index 5415021b967..59b48db06c7 100644 --- a/webview-ui/src/i18n/locales/tr/welcome.json +++ b/webview-ui/src/i18n/locales/tr/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Roo Code'a Hoş Geldin!", - "introduction": "Yerleşik ve genişletilebilir Modlar yelpazesiyle Roo Code, daha önce hiç olmadığı gibi planlama, mimari tasarım, kodlama, hata ayıklama ve üretkenliğini artırmanı sağlar.", - "accountMention": "Başlamak için Roo Code Cloud hesabını oluştur. Güçlü modeller, web kontrolü, analizler, destek ve daha fazlasını al.", + "greeting": "Joe Code'a Hoş Geldin!", + "introduction": "Yerleşik ve genişletilebilir Modlar yelpazesiyle Joe Code, daha önce hiç olmadığı gibi planlama, mimari tasarım, kodlama, hata ayıklama ve üretkenliğini artırmanı sağlar.", + "accountMention": "Başlamak için Joe Code Cloud hesabını oluştur. Güçlü modeller, web kontrolü, analizler, destek ve daha fazlasını al.", "getStarted": "Roo Hesabı Oluştur", "noAccount": "veya hesap olmadan kullan" }, "providerSignup": { "heading": "Sağlayıcınızı seçin", "chooseProvider": "Roo'nun çalışması için bir LLM sağlayıcısına ihtiyacı var. Başlamak için bir tane seç, sonra daha fazlasını ekleyebilirsin.", - "rooCloudProvider": "Roo Code Cloud Sağlayıcı", - "rooCloudDescription": "Başlamak için en kolay yol Roo Code Cloud Sağlayıcısı'nı kullanmaktır: ücretsiz ve ücretli modellerin dikkatli seçilmiş bir karışımı, düşük maliyette.", + "rooCloudProvider": "Joe Code Cloud Sağlayıcı", + "rooCloudDescription": "Başlamak için en kolay yol Joe Code Cloud Sağlayıcısı'nı kullanmaktır: ücretsiz ve ücretli modellerin dikkatli seçilmiş bir karışımı, düşük maliyette.", "learnMore": "Daha fazla bilgi", "useAnotherProvider": "Üçüncü taraf Sağlayıcı", "useAnotherProviderDescription": "Bir API anahtarı gir ve başla.", "noApiKeys": "API anahtarları ve ayrı hesaplarla uğraşmak istemez misin?", - "backToRoo": "Roo Code Cloud Sağlayıcısını seç.", + "backToRoo": "Joe Code Cloud Sağlayıcısını seç.", "goBack": "Geri", "finish": "Bitir" }, "waitingForCloud": { - "heading": "Roo Code Cloud'a giriş yapılıyor...", - "description": "Seni Roo Code Cloud'a kaydolmak için tarayıcına göndereceğiz. Sonra seni buraya geri getireceğiz.", + "heading": "Joe Code Cloud'a giriş yapılıyor...", + "description": "Seni Joe Code Cloud'a kaydolmak için tarayıcına göndereceğiz. Sonra seni buraya geri getireceğiz.", "noPrompt": "Bir URL açmanız istenmezse, buraya tıklayın.", "havingTrouble": "Kaydı tamamladıysanız ama sorun yaşıyorsanız, buraya tıklayın.", "pasteUrl": "Tarayıcınızda gösterilen geri arama URL'sini yapıştırın:", "docsLink": "Çalışmıyor mu? Belgeleri kontrol edin.", - "invalidURL": "Bu geçerli bir geri arama URL'si gibi görünmüyor. Roo Code Cloud'un tarayıcınızda gösterdiğini kopyalayın.", + "invalidURL": "Bu geçerli bir geri arama URL'si gibi görünmüyor. Joe Code Cloud'un tarayıcınızda gösterdiğini kopyalayın.", "goBack": "Geri" }, "startRouter": "Bir LLM yönlendiricisi kullanmanızı öneririz:", "startCustom": "Veya kendi API anahtarınızı getirebilirsiniz:", "telemetry": { - "helpImprove": "Roo Code'u iyileştirmeye yardımcı ol", - "helpImproveMessage": "Roo Code, hataları düzeltmemize ve uzantıyı iyileştirmemize yardımcı olmak için hata ve kullanım verilerini toplar. Bu telemetri kod, komutlar veya kişisel bilgileri toplamaz. Bunu ayarlardan devre dışı bırakabilirsin." + "helpImprove": "Joe Code'u iyileştirmeye yardımcı ol", + "helpImproveMessage": "Joe Code, hataları düzeltmemize ve uzantıyı iyileştirmemize yardımcı olmak için hata ve kullanım verilerini toplar. Bu telemetri kod, komutlar veya kişisel bilgileri toplamaz. Bunu ayarlardan devre dışı bırakabilirsin." }, "importSettings": "Ayarları İçe Aktar" } diff --git a/webview-ui/src/i18n/locales/tr/worktrees.json b/webview-ui/src/i18n/locales/tr/worktrees.json index 50e5a3ba827..8fed0fdd949 100644 --- a/webview-ui/src/i18n/locales/tr/worktrees.json +++ b/webview-ui/src/i18n/locales/tr/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Tamam", - "description": "Git worktrees, ayrı dizinlerde aynı anda birden fazla branch üzerinde çalışmana olanak tanır. Her worktree, Roo Code ile kendi VS Code penceresine sahip olur.", + "description": "Git worktrees, ayrı dizinlerde aynı anda birden fazla branch üzerinde çalışmana olanak tanır. Her worktree, Joe Code ile kendi VS Code penceresine sahip olur.", "notGitRepo": "Bu çalışma alanı bir Git deposu değil. Worktrees'in çalışması için bir Git deposu gerekir.", "multiRootNotSupported": "Worktrees, multi-root çalışma alanlarında desteklenmez. Worktrees kullanmak için tek bir klasör aç.", diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index 83cb5a03f73..05234ba61bb 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -1,5 +1,5 @@ { - "greeting": "Chào mừng đến với Roo Code", + "greeting": "Chào mừng đến với Joe Code", "task": { "title": "Nhiệm vụ", "expand": "Mở rộng nhiệm vụ", @@ -21,7 +21,7 @@ "sharePublicly": "Chia sẻ công khai", "sharePubliclyDescription": "Bất kỳ ai có liên kết đều có thể truy cập", "connectToCloud": "Kết nối với Cloud", - "connectToCloudDescription": "Đăng nhập vào Roo Code Cloud để chia sẻ tác vụ", + "connectToCloudDescription": "Đăng nhập vào Joe Code Cloud để chia sẻ tác vụ", "sharingDisabledByOrganization": "Chia sẻ bị tổ chức vô hiệu hóa", "shareSuccessOrganization": "Liên kết tổ chức đã được sao chép vào clipboard", "shareSuccessPublic": "Liên kết công khai đã được sao chép vào clipboard", @@ -97,7 +97,7 @@ }, "enqueueMessage": "Thêm tin nhắn vào hàng đợi (sẽ gửi sau khi nhiệm vụ hiện tại hoàn tất)", "scrollToBottom": "Cuộn xuống cuối cuộc trò chuyện", - "about": "Roo Code là một đội ngũ phát triển AI đầy đủ trong trình chỉnh sửa của bạn.", + "about": "Joe Code là một đội ngũ phát triển AI đầy đủ trong trình chỉnh sửa của bạn.", "docs": "Kiểm tra tài liệu của chúng tôi để tìm hiểu thêm.", "onboarding": "Danh sách nhiệm vụ của bạn trong không gian làm việc này đang trống.", "rooTips": { @@ -161,7 +161,7 @@ "500": "Lỗi máy chủ của nhà cung cấp. Có sự cố ở phía nhà cung cấp, không có gì sai với yêu cầu của bạn.", "docs": "Tài liệu", "goToSettings": "Cài đặt", - "unknown": "Lỗi API không xác định. Vui lòng liên hệ hỗ trợ Roo Code.", + "unknown": "Lỗi API không xác định. Vui lòng liên hệ hỗ trợ Joe Code.", "connection": "Lỗi kết nối. Đảm bảo rằng bạn có kết nối Internet hoạt động.", "claudeCodeNotAuthenticated": "Bạn cần đăng nhập để sử dụng Claude Code. Vào Cài đặt và nhấp vào \"Đăng nhập vào Claude Code\" để xác thực." } @@ -338,20 +338,20 @@ "timerPrefix": "Phê duyệt tự động được bật. Chọn trong {{seconds}}s…" }, "announcement": { - "title": "Roo Code {{version}} Đã phát hành", - "support": "Hãy ủng hộ Roo Code bằng cách gắn sao cho chúng tôi trên GitHub.", + "title": "Joe Code {{version}} Đã phát hành", + "support": "Hãy ủng hộ Joe Code bằng cách gắn sao cho chúng tôi trên GitHub.", "stealthModel": { - "feature": "Mô hình stealth MIỄN PHÍ có thời hạn - Code Supernova: Hiện đã được nâng cấp với cửa sổ ngữ cảnh 1M token! Một mô hình lập trình agentic đa năng hỗ trợ đầu vào hình ảnh, có sẵn qua Roo Code Cloud.", + "feature": "Mô hình stealth MIỄN PHÍ có thời hạn - Code Supernova: Hiện đã được nâng cấp với cửa sổ ngữ cảnh 1M token! Một mô hình lập trình agentic đa năng hỗ trợ đầu vào hình ảnh, có sẵn qua Joe Code Cloud.", "note": "(Lưu ý: các prompt và completion được ghi lại bởi người tạo mô hình và được sử dụng để cải thiện mô hình)", - "connectButton": "Kết nối với Roo Code Cloud", - "selectModel": "Chọn roo/code-supernova từ nhà cung cấp Roo Code Cloud trong Cài đặt để bắt đầu.", + "connectButton": "Kết nối với Joe Code Cloud", + "selectModel": "Chọn roo/code-supernova từ nhà cung cấp Joe Code Cloud trong Cài đặt để bắt đầu.", "goToSettingsButton": "Đi tới Cài đặt" }, "release": { "heading": "Tính năng mới:", "geminiPro": "Hỗ trợ Gemini 3.1 Pro: Đã thêm hỗ trợ model Gemini 3.1 Pro và đặt làm model Gemini mặc định để cải thiện hiệu suất.", "cliNdjson": "Giao thức NDJSON CLI: Giao thức NDJSON stdin mới, lệnh con list, và lệnh run được module hóa cho quy trình CLI linh hoạt hơn.", - "cliRelease": "CLI v0.1.0: CLI Roo Code đạt bản phát hành chính thức đầu tiên với giao diện lệnh ổn định." + "cliRelease": "CLI v0.1.0: CLI Joe Code đạt bản phát hành chính thức đầu tiên với giao diện lệnh ổn định." }, "cloudAgents": { "heading": "Mới trên Cloud:", @@ -376,7 +376,7 @@ "profileViolationWarning": "Hồ sơ hiện tại không tương thích với cài đặt của tổ chức của bạn", "shellIntegration": { "title": "Cảnh báo thực thi lệnh", - "description": "Lệnh của bạn đang được thực thi mà không có tích hợp shell terminal VSCode. Để ẩn cảnh báo này, bạn có thể vô hiệu hóa tích hợp shell trong phần Terminal của cài đặt Roo Code hoặc khắc phục sự cố tích hợp terminal VSCode bằng liên kết bên dưới.", + "description": "Lệnh của bạn đang được thực thi mà không có tích hợp shell terminal VSCode. Để ẩn cảnh báo này, bạn có thể vô hiệu hóa tích hợp shell trong phần Terminal của cài đặt Joe Code hoặc khắc phục sự cố tích hợp terminal VSCode bằng liên kết bên dưới.", "troubleshooting": "Nhấp vào đây để xem tài liệu tích hợp shell." }, "ask": { @@ -434,7 +434,7 @@ "ariaLabel": "Phiên bản {{version}} - Nhấp để xem ghi chú phát hành" }, "rooCloudCTA": { - "title": "Roo Code Cloud đang phát triển!", + "title": "Joe Code Cloud đang phát triển!", "description": "Chạy các agent từ xa trên cloud, truy cập các tác vụ của bạn từ mọi nơi, cộng tác với người khác và nhiều hơn nữa.", "joinWaitlist": "Đăng ký để nhận các cập nhật mới nhất." }, diff --git a/webview-ui/src/i18n/locales/vi/cloud.json b/webview-ui/src/i18n/locales/vi/cloud.json index 45dd092b750..247578be17b 100644 --- a/webview-ui/src/i18n/locales/vi/cloud.json +++ b/webview-ui/src/i18n/locales/vi/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "Ảnh hồ sơ", "logOut": "Đăng xuất", "testApiAuthentication": "Kiểm tra xác thực API", - "signIn": "Kết nối với Roo Code Cloud", + "signIn": "Kết nối với Joe Code Cloud", "connect": "Bắt đầu", - "cloudBenefitsTitle": "Dùng thử Roo Code Cloud", + "cloudBenefitsTitle": "Dùng thử Joe Code Cloud", "cloudBenefitProvider": "Truy cập các mô hình miễn phí và trả phí hoạt động tuyệt vời với Roo", "cloudBenefitCloudAgents": "Giao nhiệm vụ cho các agent đám mây tự trị", "cloudBenefitTriggers": "Nhận đánh giá mã trên Github, bắt đầu tác vụ từ Slack và hơn thế nữa", "cloudBenefitWalkaway": "Theo dõi và kiểm soát các tác vụ từ mọi nơi (bao gồm cả điện thoại của bạn)", "cloudBenefitHistory": "Truy cập lịch sử tác vụ của bạn từ mọi nơi và chia sẻ chúng với người khác", "cloudBenefitMetrics": "Có cái nhìn toàn diện về mức tiêu thụ token của bạn", - "visitCloudWebsite": "Truy cập Roo Code Cloud", + "visitCloudWebsite": "Truy cập Joe Code Cloud", "taskSync": "Đồng bộ tác vụ", - "taskSyncDescription": "Đồng bộ tác vụ của bạn để xem và chia sẻ trên Roo Code Cloud", + "taskSyncDescription": "Đồng bộ tác vụ của bạn để xem và chia sẻ trên Joe Code Cloud", "taskSyncManagedByOrganization": "Việc đồng bộ hóa công việc được quản lý bởi tổ chức của bạn", "usageMetricsAlwaysReported": "Thông tin sử dụng mô hình luôn được báo cáo khi đăng nhập", "authWaiting": "Đang chờ hoàn tất xác thực...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "Sao chép URL redirect từ trình duyệt và dán vào đây:", "startOver": "Bắt đầu lại", "personalAccount": "Tài Khoản Cá Nhân", - "switchAccount": "Chuyển Tài Khoản Roo Code Cloud", + "switchAccount": "Chuyển Tài Khoản Joe Code Cloud", "createTeamAccount": "Tạo Tài Khoản Nhóm", - "cloudUrlPillLabel": "URL Roo Code Cloud", + "cloudUrlPillLabel": "URL Joe Code Cloud", "upsell": { - "autoApprovePowerUser": "Trao cho Roo một chút độc lập? Kiểm soát nó từ mọi nơi với Roo Code Cloud. Tìm hiểu thêm.", + "autoApprovePowerUser": "Trao cho Roo một chút độc lập? Kiểm soát nó từ mọi nơi với Joe Code Cloud. Tìm hiểu thêm.", "longRunningTask": "Việc này có thể mất một lúc. Tiếp tục từ mọi nơi với Cloud.", - "taskList": "Bạn có thích Roo không? Hãy xem Roo Code Cloud: theo dõi và kiểm soát các tác vụ của bạn từ mọi nơi, chạy các agent đám mây tự trị, nhận số liệu thống kê sử dụng và hơn thế nữa. Tìm hiểu thêm." + "taskList": "Bạn có thích Roo không? Hãy xem Joe Code Cloud: theo dõi và kiểm soát các tác vụ của bạn từ mọi nơi, chạy các agent đám mây tự trị, nhận số liệu thống kê sử dụng và hơn thế nữa. Tìm hiểu thêm." } } diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index 95b4f2d6863..2e1cd1975d5 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -59,7 +59,7 @@ "contact": { "label": "Cần nói chuyện với chúng tôi? Viết" }, - "community": "Muốn nhận mẹo hoặc chỉ muốn giao lưu với những người dùng Roo Code khác? Tham gia reddit.com/r/RooCode hoặc discord.gg/roocode", + "community": "Muốn nhận mẹo hoặc chỉ muốn giao lưu với những người dùng Joe Code khác? Tham gia reddit.com/r/JoeCode hoặc discord.gg/joecode", "contactAndCommunity": "Liên Hệ & Cộng Đồng", "manageSettings": "Quản Lý Cài Đặt", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "Mô hình nháp phải từ cùng một họ mô hình để giải mã suy đoán hoạt động chính xác.", "selectDraftModel": "Chọn mô hình nháp", "noModelsFound": "Không tìm thấy mô hình nháp nào. Vui lòng đảm bảo LM Studio đang chạy với chế độ máy chủ được bật.", - "description": "LM Studio cho phép bạn chạy các mô hình cục bộ trên máy tính của bạn. Để biết hướng dẫn về cách bắt đầu, xem hướng dẫn nhanh của họ. Bạn cũng sẽ cần khởi động tính năng máy chủ cục bộ của LM Studio để sử dụng nó với tiện ích mở rộng này. Lưu ý: Roo Code sử dụng các lời nhắc phức tạp và hoạt động tốt nhất với các mô hình Claude. Các mô hình kém mạnh hơn có thể không hoạt động như mong đợi." + "description": "LM Studio cho phép bạn chạy các mô hình cục bộ trên máy tính của bạn. Để biết hướng dẫn về cách bắt đầu, xem hướng dẫn nhanh của họ. Bạn cũng sẽ cần khởi động tính năng máy chủ cục bộ của LM Studio để sử dụng nó với tiện ích mở rộng này. Lưu ý: Joe Code sử dụng các lời nhắc phức tạp và hoạt động tốt nhất với các mô hình Claude. Các mô hình kém mạnh hơn có thể không hoạt động như mong đợi." }, "ollama": { "baseUrl": "URL cơ sở (tùy chọn)", @@ -466,11 +466,11 @@ "numCtx": "Kích thước cửa sổ ngữ cảnh (num_ctx)", "numCtxHelp": "Ghi đè kích thước cửa sổ ngữ cảnh mặc định của mô hình. Để trống để sử dụng cấu hình Modelfile của mô hình. Giá trị tối thiểu là 128.", "description": "Ollama cho phép bạn chạy các mô hình cục bộ trên máy tính của bạn. Để biết hướng dẫn về cách bắt đầu, xem hướng dẫn nhanh của họ.", - "warning": "Lưu ý: Roo Code sử dụng các lời nhắc phức tạp và hoạt động tốt nhất với các mô hình Claude. Các mô hình kém mạnh hơn có thể không hoạt động như mong đợi." + "warning": "Lưu ý: Joe Code sử dụng các lời nhắc phức tạp và hoạt động tốt nhất với các mô hình Claude. Các mô hình kém mạnh hơn có thể không hoạt động như mong đợi." }, "roo": { - "authenticatedMessage": "Đã xác thực an toàn thông qua tài khoản Roo Code Cloud của bạn.", - "connectButton": "Kết nối với Roo Code Cloud" + "authenticatedMessage": "Đã xác thực an toàn thông qua tài khoản Joe Code Cloud của bạn.", + "connectButton": "Kết nối với Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -480,7 +480,7 @@ } }, "customModel": { - "capabilities": "Cấu hình các khả năng và giá cả cho mô hình tương thích OpenAI tùy chỉnh của bạn. Hãy cẩn thận khi chỉ định khả năng của mô hình, vì chúng có thể ảnh hưởng đến cách Roo Code hoạt động.", + "capabilities": "Cấu hình các khả năng và giá cả cho mô hình tương thích OpenAI tùy chỉnh của bạn. Hãy cẩn thận khi chỉ định khả năng của mô hình, vì chúng có thể ảnh hưởng đến cách Joe Code hoạt động.", "maxTokens": { "label": "Số token đầu ra tối đa", "description": "Số lượng token tối đa mà mô hình có thể tạo ra trong một phản hồi. (Chỉ định -1 để cho phép máy chủ đặt số token tối đa.)" @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "Tiện ích mở rộng tự động lấy danh sách mới nhất các mô hình có sẵn trên {{serviceName}}. Nếu bạn không chắc chắn nên chọn mô hình nào, Roo Code hoạt động tốt nhất với {{defaultModelId}}. Bạn cũng có thể thử tìm kiếm \"free\" cho các tùy chọn miễn phí hiện có.", + "automaticFetch": "Tiện ích mở rộng tự động lấy danh sách mới nhất các mô hình có sẵn trên {{serviceName}}. Nếu bạn không chắc chắn nên chọn mô hình nào, Joe Code hoạt động tốt nhất với {{defaultModelId}}. Bạn cũng có thể thử tìm kiếm \"free\" cho các tùy chọn miễn phí hiện có.", "label": "Mô hình", "searchPlaceholder": "Tìm kiếm", "noMatchFound": "Không tìm thấy kết quả", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "Cho phép báo cáo lỗi và sử dụng ẩn danh", - "description": "Giúp cải thiện Roo Code bằng cách gửi dữ liệu sử dụng ẩn danh và báo cáo lỗi. Telemetry này không thu thập mã, prompt hoặc thông tin cá nhân. Xem chính sách bảo mật của chúng tôi để biết thêm chi tiết. Bạn có thể tắt tính năng này bất cứ lúc nào." + "description": "Giúp cải thiện Joe Code bằng cách gửi dữ liệu sử dụng ẩn danh và báo cáo lỗi. Telemetry này không thu thập mã, prompt hoặc thông tin cá nhân. Xem chính sách bảo mật của chúng tôi để biết thêm chi tiết. Bạn có thể tắt tính năng này bất cứ lúc nào." }, "settings": { "import": "Nhập", diff --git a/webview-ui/src/i18n/locales/vi/welcome.json b/webview-ui/src/i18n/locales/vi/welcome.json index 0a0d7af2d36..d9cc9c0be80 100644 --- a/webview-ui/src/i18n/locales/vi/welcome.json +++ b/webview-ui/src/i18n/locales/vi/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "Chào mừng đến với Roo Code!", - "introduction": "Với nhiều Chế độ tích hợp và có thể mở rộng, Roo Code cho phép bạn lập kế hoạch, thiết kế kiến trúc, viết mã, gỡ lỗi và tăng năng suất như chưa từng có trước đây.", - "accountMention": "Để bắt đầu, hãy tạo tài khoản Roo Code Cloud của bạn. Nhận các mô hình mạnh mẽ, kiểm soát web, phân tích, hỗ trợ và hơn thế nữa.", + "greeting": "Chào mừng đến với Joe Code!", + "introduction": "Với nhiều Chế độ tích hợp và có thể mở rộng, Joe Code cho phép bạn lập kế hoạch, thiết kế kiến trúc, viết mã, gỡ lỗi và tăng năng suất như chưa từng có trước đây.", + "accountMention": "Để bắt đầu, hãy tạo tài khoản Joe Code Cloud của bạn. Nhận các mô hình mạnh mẽ, kiểm soát web, phân tích, hỗ trợ và hơn thế nữa.", "getStarted": "Tạo tài khoản Roo", "noAccount": "hoặc sử dụng mà không có tài khoản" }, "providerSignup": { "heading": "Chọn nhà cung cấp của bạn", "chooseProvider": "Roo cần một nhà cung cấp LLM để hoạt động. Chọn một để bắt đầu, bạn có thể thêm nhiều hơn sau.", - "rooCloudProvider": "Nhà cung cấp Roo Code Cloud", - "rooCloudDescription": "Cách dễ nhất để bắt đầu là với Nhà cung cấp Roo Code Cloud: một sự kết hợp được sắp xếp cẩn thận của các mô hình miễn phí và trả tiền với chi phí thấp.", + "rooCloudProvider": "Nhà cung cấp Joe Code Cloud", + "rooCloudDescription": "Cách dễ nhất để bắt đầu là với Nhà cung cấp Joe Code Cloud: một sự kết hợp được sắp xếp cẩn thận của các mô hình miễn phí và trả tiền với chi phí thấp.", "learnMore": "Tìm hiểu thêm", "useAnotherProvider": "Nhà cung cấp bên thứ ba", "useAnotherProviderDescription": "Nhập khóa API và bắt đầu.", "noApiKeys": "Bạn không muốn xử lý các khóa API và tài khoản riêng biệt?", - "backToRoo": "Sử dụng Nhà cung cấp Roo Code Cloud.", + "backToRoo": "Sử dụng Nhà cung cấp Joe Code Cloud.", "goBack": "Quay lại", "finish": "Hoàn thành" }, "waitingForCloud": { - "heading": "Đăng nhập vào Roo Code Cloud...", - "description": "Chúng tôi sẽ dẫn bạn đến trình duyệt để đăng ký Roo Code Cloud. Sau đó, chúng tôi sẽ đưa bạn trở lại đây để hoàn thành.", + "heading": "Đăng nhập vào Joe Code Cloud...", + "description": "Chúng tôi sẽ dẫn bạn đến trình duyệt để đăng ký Joe Code Cloud. Sau đó, chúng tôi sẽ đưa bạn trở lại đây để hoàn thành.", "noPrompt": "Nếu bạn không được yêu cầu mở URL, hãy nhấp vào đây.", "havingTrouble": "Nếu bạn đã hoàn thành đăng ký nhưng gặp sự cố, hãy nhấp vào đây.", "pasteUrl": "Dán URL gọi lại từ trình duyệt của bạn:", "docsLink": "Không hoạt động? Kiểm tra tài liệu.", - "invalidURL": "Điều đó không giống như một URL gọi lại hợp lệ. Vui lòng sao chép những gì Roo Code Cloud đang hiển thị trong trình duyệt của bạn.", + "invalidURL": "Điều đó không giống như một URL gọi lại hợp lệ. Vui lòng sao chép những gì Joe Code Cloud đang hiển thị trong trình duyệt của bạn.", "goBack": "Quay lại" }, "startRouter": "Chúng tôi khuyên bạn nên sử dụng bộ định tuyến LLM:", "startCustom": "Hoặc bạn có thể mang theo khóa API của riêng mình:", "telemetry": { - "helpImprove": "Giúp cải thiện Roo Code", - "helpImproveMessage": "Roo Code thu thập dữ liệu lỗi và sử dụng để giúp chúng tôi sửa lỗi và cải thiện tiện ích mở rộng. Dữ liệu từ xa này không thu thập mã, lời nhắc hoặc thông tin cá nhân. Bạn có thể vô hiệu hóa nó trong cài đặt." + "helpImprove": "Giúp cải thiện Joe Code", + "helpImproveMessage": "Joe Code thu thập dữ liệu lỗi và sử dụng để giúp chúng tôi sửa lỗi và cải thiện tiện ích mở rộng. Dữ liệu từ xa này không thu thập mã, lời nhắc hoặc thông tin cá nhân. Bạn có thể vô hiệu hóa nó trong cài đặt." }, "importSettings": "Nhập Cài đặt" } diff --git a/webview-ui/src/i18n/locales/vi/worktrees.json b/webview-ui/src/i18n/locales/vi/worktrees.json index 28b80891c69..b9e5aed5df1 100644 --- a/webview-ui/src/i18n/locales/vi/worktrees.json +++ b/webview-ui/src/i18n/locales/vi/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "Xong", - "description": "Git worktrees cho phép bạn làm việc đồng thời trên nhiều nhánh trong các thư mục riêng. Mỗi worktree có một cửa sổ VS Code riêng với Roo Code.", + "description": "Git worktrees cho phép bạn làm việc đồng thời trên nhiều nhánh trong các thư mục riêng. Mỗi worktree có một cửa sổ VS Code riêng với Joe Code.", "notGitRepo": "Workspace này không phải là kho Git. Worktrees cần một kho Git để hoạt động.", "multiRootNotSupported": "Worktrees không được hỗ trợ trong workspace đa gốc. Hãy mở một thư mục đơn để dùng worktrees.", diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 049a06a7ce8..c5b8e861ca9 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -1,5 +1,5 @@ { - "greeting": "欢迎使用 Roo Code", + "greeting": "欢迎使用 Joe Code", "task": { "title": "任务", "expand": "展开任务", @@ -21,7 +21,7 @@ "sharePublicly": "公开分享", "sharePubliclyDescription": "任何拥有链接的人都可访问", "connectToCloud": "连接到云端", - "connectToCloudDescription": "登录 Roo Code Cloud 以分享任务", + "connectToCloudDescription": "登录 Joe Code Cloud 以分享任务", "sharingDisabledByOrganization": "组织已禁用分享功能", "shareSuccessOrganization": "组织链接已复制到剪贴板", "shareSuccessPublic": "公开链接已复制到剪贴板", @@ -97,7 +97,7 @@ }, "enqueueMessage": "将消息加入队列(当前任务完成后发送)", "scrollToBottom": "滚动到聊天底部", - "about": "Roo Code 是您编辑器中的整个 AI 开发团队。", + "about": "Joe Code 是您编辑器中的整个 AI 开发团队。", "docs": "查看我们的 文档 了解更多信息。", "onboarding": "此工作区中的任务列表为空。", "rooTips": { @@ -161,7 +161,7 @@ "500": "提供商服务器错误。提供商端出现问题,您的请求无问题。", "docs": "文档", "goToSettings": "设置", - "unknown": "未知 API 错误。请联系 Roo Code 支持。", + "unknown": "未知 API 错误。请联系 Joe Code 支持。", "connection": "连接错误。确保您有可用的互联网连接。", "claudeCodeNotAuthenticated": "你需要登录才能使用 Claude Code。前往设置并点击「登录到 Claude Code」进行身份验证。" } @@ -338,20 +338,20 @@ "timerPrefix": "自动批准已启用。{{seconds}}秒后选择中…" }, "announcement": { - "title": "Roo Code {{version}} 已发布", - "support": "请在 GitHub 上为我们点星支持 Roo Code。", + "title": "Joe Code {{version}} 已发布", + "support": "请在 GitHub 上为我们点星支持 Joe Code。", "stealthModel": { - "feature": "限时免费隐形模型 - Code Supernova:现已升级为 1M Token 上下文窗口!一个支持图像输入的多功能代理编程模型,通过 Roo Code Cloud 提供。", + "feature": "限时免费隐形模型 - Code Supernova:现已升级为 1M Token 上下文窗口!一个支持图像输入的多功能代理编程模型,通过 Joe Code Cloud 提供。", "note": "(注意:提示词和补全内容会被模型创建者记录并用于改进模型)", - "connectButton": "连接到 Roo Code Cloud", - "selectModel": "在设置中从 Roo Code Cloud 提供商选择 roo/code-supernova 开始使用。", + "connectButton": "连接到 Joe Code Cloud", + "selectModel": "在设置中从 Joe Code Cloud 提供商选择 roo/code-supernova 开始使用。", "goToSettingsButton": "前往设置" }, "release": { "heading": "新增功能:", "geminiPro": "Gemini 3.1 Pro 支持:添加了 Gemini 3.1 Pro 模型支持,并将其设为默认 Gemini 模型以提升性能。", "cliNdjson": "CLI NDJSON 协议:新增 NDJSON stdin 协议、list 子命令,以及模块化的 run 命令,提供更灵活的 CLI 工作流。", - "cliRelease": "CLI v0.1.0:Roo Code CLI 以稳定的命令接口达成首个正式版本。" + "cliRelease": "CLI v0.1.0:Joe Code CLI 以稳定的命令接口达成首个正式版本。" }, "cloudAgents": { "heading": "云端新功能:", @@ -376,7 +376,7 @@ "profileViolationWarning": "当前配置文件与您的组织设置不兼容", "shellIntegration": { "title": "命令执行警告", - "description": "您的命令正在没有 VSCode 终端 shell 集成的情况下执行。要隐藏此警告,您可以在 Roo Code 设置Terminal 部分禁用 shell 集成,或使用下方链接排查 VSCode 终端集成问题。", + "description": "您的命令正在没有 VSCode 终端 shell 集成的情况下执行。要隐藏此警告,您可以在 Joe Code 设置Terminal 部分禁用 shell 集成,或使用下方链接排查 VSCode 终端集成问题。", "troubleshooting": "点击此处查看 shell 集成文档。" }, "ask": { @@ -434,7 +434,7 @@ "ariaLabel": "版本 {{version}} - 点击查看发布说明" }, "rooCloudCTA": { - "title": "Roo Code Cloud 正在进化!", + "title": "Joe Code Cloud 正在进化!", "description": "在云端运行远程代理,随时随地访问任务,与他人协作等更多功能。", "joinWaitlist": "注册获取最新更新。" }, diff --git a/webview-ui/src/i18n/locales/zh-CN/cloud.json b/webview-ui/src/i18n/locales/zh-CN/cloud.json index 560218c56f4..f9db576c434 100644 --- a/webview-ui/src/i18n/locales/zh-CN/cloud.json +++ b/webview-ui/src/i18n/locales/zh-CN/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "头像", "logOut": "退出登录", "testApiAuthentication": "测试 API 认证", - "signIn": "连接到 Roo Code Cloud", + "signIn": "连接到 Joe Code Cloud", "connect": "开始使用", - "cloudBenefitsTitle": "试用 Roo Code Cloud", + "cloudBenefitsTitle": "试用 Joe Code Cloud", "cloudBenefitProvider": "访问与 Roo 完美配合的免费和付费模型", "cloudBenefitCloudAgents": "将任务分配给自主云代理", "cloudBenefitTriggers": "在 GitHub 上获取代码审查,从 Slack 启动任务等等", "cloudBenefitWalkaway": "随时随地(包括您的手机)跟踪和控制任务", "cloudBenefitHistory": "随时随地访问您的任务历史记录并与他人共享", "cloudBenefitMetrics": "获取您的令牌消耗的整体视图", - "visitCloudWebsite": "访问 Roo Code Cloud", + "visitCloudWebsite": "访问 Joe Code Cloud", "taskSync": "任务同步", - "taskSyncDescription": "同步您的任务以在 Roo Code Cloud 上查看和共享", + "taskSyncDescription": "同步您的任务以在 Joe Code Cloud 上查看和共享", "taskSyncManagedByOrganization": "任务同步由您的组织管理", "usageMetricsAlwaysReported": "登录时始终报告模型使用信息", "authWaiting": "等待身份验证完成...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "从浏览器复制重定向 URL 并粘贴到这里:", "startOver": "重新开始", "personalAccount": "个人账户", - "switchAccount": "切换 Roo Code Cloud 账户", + "switchAccount": "切换 Joe Code Cloud 账户", "createTeamAccount": "创建团队账户", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { - "autoApprovePowerUser": "给 Roo 一些独立性?使用 Roo Code Cloud 从任何地方控制它。 了解更多。", + "autoApprovePowerUser": "给 Roo 一些独立性?使用 Joe Code Cloud 从任何地方控制它。 了解更多。", "longRunningTask": "这可能需要一段时间。使用 Cloud 从任何地方继续。", - "taskList": "喜欢Roo吗?快来看看Roo Code Cloud:随时随地关注和控制您的任务,运行自主云代理,获取使用统计数据等等。 了解更多。" + "taskList": "喜欢Roo吗?快来看看Joe Code Cloud:随时随地关注和控制您的任务,运行自主云代理,获取使用统计数据等等。 了解更多。" } } diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index eeba6bb079d..067326a5e88 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "实验性", "language": "语言", - "about": "关于 Roo Code", + "about": "关于 Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "需要联系我们?请发送邮件至" }, - "community": "想要获取使用技巧或与其他 Roo Code 用户交流?加入 reddit.com/r/RooCodediscord.gg/roocode", + "community": "想要获取使用技巧或与其他 Joe Code 用户交流?加入 reddit.com/r/JoeCodediscord.gg/joecode", "contactAndCommunity": "联系与社区", "manageSettings": "管理设置", "debugMode": { @@ -456,7 +456,7 @@ "draftModelDesc": "草稿模型必须来自相同的模型系列,推测性解码才能正常工作。", "selectDraftModel": "选择草稿模型", "noModelsFound": "未找到草稿模型。请确保 LM Studio 已启用服务器模式运行。", - "description": "LM Studio 允许您在本地计算机上运行模型。要了解如何开始,请参阅他们的 快速入门指南。您还需要启动 LM Studio 的 本地服务器 功能,以便与此扩展一起使用。注意:Roo Code 使用复杂的提示,并且在 Claude 模型上效果最佳。功能较弱的模型可能无法正常工作。" + "description": "LM Studio 允许您在本地计算机上运行模型。要了解如何开始,请参阅他们的 快速入门指南。您还需要启动 LM Studio 的 本地服务器 功能,以便与此扩展一起使用。注意:Joe Code 使用复杂的提示,并且在 Claude 模型上效果最佳。功能较弱的模型可能无法正常工作。" }, "ollama": { "baseUrl": "基础 URL(可选)", @@ -466,11 +466,11 @@ "numCtx": "上下文窗口大小 (num_ctx)", "numCtxHelp": "覆盖模型的默认上下文窗口大小。留空以使用模型的 Modelfile 配置。最小值为 128。", "description": "Ollama 允许您在本地计算机上运行模型。有关如何开始使用的说明,请参阅其快速入门指南。", - "warning": "注意:Roo Code 使用复杂的提示,与 Claude 模型配合最佳。功能较弱的模型可能无法按预期工作。" + "warning": "注意:Joe Code 使用复杂的提示,与 Claude 模型配合最佳。功能较弱的模型可能无法按预期工作。" }, "roo": { - "authenticatedMessage": "已通过 Roo Code Cloud 账户安全认证。", - "connectButton": "连接到 Roo Code Cloud" + "authenticatedMessage": "已通过 Joe Code Cloud 账户安全认证。", + "connectButton": "连接到 Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -857,7 +857,7 @@ } }, "modelPicker": { - "automaticFetch": "自动获取 {{serviceName}} 上可用的最新模型列表。如果您不确定选择哪个模型,Roo Code 与 {{defaultModelId}} 配合最佳。您还可以搜索\"free\"以查找当前可用的免费选项。", + "automaticFetch": "自动获取 {{serviceName}} 上可用的最新模型列表。如果您不确定选择哪个模型,Joe Code 与 {{defaultModelId}} 配合最佳。您还可以搜索\"free\"以查找当前可用的免费选项。", "label": "模型", "searchPlaceholder": "搜索", "noMatchFound": "未找到匹配项", @@ -867,7 +867,7 @@ "footer": { "telemetry": { "label": "允许匿名数据收集", - "description": "通过发送匿名使用数据和错误报告来帮助改进 Roo Code。此遥测不会收集代码、提示 或个人信息。详细信息请参阅我们的隐私政策。您可以随时关闭此功能。" + "description": "通过发送匿名使用数据和错误报告来帮助改进 Joe Code。此遥测不会收集代码、提示 或个人信息。详细信息请参阅我们的隐私政策。您可以随时关闭此功能。" }, "settings": { "import": "导入", diff --git a/webview-ui/src/i18n/locales/zh-CN/welcome.json b/webview-ui/src/i18n/locales/zh-CN/welcome.json index 04bd6b4498b..2ca931f39bf 100644 --- a/webview-ui/src/i18n/locales/zh-CN/welcome.json +++ b/webview-ui/src/i18n/locales/zh-CN/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "欢迎使用 Roo Code!", - "introduction": "通过一系列内置和可扩展的模式,Roo Code 让你能够以前所未有的方式进行规划、架构设计、编码、调试并提升工作效率。", - "accountMention": "开始使用,创建你的 Roo Code Cloud 账户。获得强大模型、网络控制、分析、支持等。", + "greeting": "欢迎使用 Joe Code!", + "introduction": "通过一系列内置和可扩展的模式,Joe Code 让你能够以前所未有的方式进行规划、架构设计、编码、调试并提升工作效率。", + "accountMention": "开始使用,创建你的 Joe Code Cloud 账户。获得强大模型、网络控制、分析、支持等。", "getStarted": "创建 Roo 账户", "noAccount": "或不使用账户" }, "providerSignup": { "heading": "选择你的供应商", "chooseProvider": "Roo 需要 LLM 提供商才能工作。选择一个开始使用,你可以稍后添加更多。", - "rooCloudProvider": "Roo Code Cloud 提供商", - "rooCloudDescription": "开始使用最简单的方式是使用 Roo Code Cloud 提供商:精心选择的免费和付费模型组合,价格低廉。", + "rooCloudProvider": "Joe Code Cloud 提供商", + "rooCloudDescription": "开始使用最简单的方式是使用 Joe Code Cloud 提供商:精心选择的免费和付费模型组合,价格低廉。", "learnMore": "了解更多", "useAnotherProvider": "第三方供应商", "useAnotherProviderDescription": "输入 API 密钥开始使用。", "noApiKeys": "不想处理 API 密钥和单独的账户?", - "backToRoo": "选择 Roo Code Cloud 提供商。", + "backToRoo": "选择 Joe Code Cloud 提供商。", "goBack": "返回", "finish": "完成" }, "waitingForCloud": { - "heading": "登录到 Roo Code Cloud...", - "description": "我们将带你前往浏览器注册 Roo Code Cloud。然后我们会把你带回这里以完成设置。", + "heading": "登录到 Joe Code Cloud...", + "description": "我们将带你前往浏览器注册 Joe Code Cloud。然后我们会把你带回这里以完成设置。", "noPrompt": "如果没有提示你打开 URL,点击这里。", "havingTrouble": "如果你已完成注册但遇到问题,点击这里。", "pasteUrl": "粘贴浏览器中显示的回调 URL:", "docsLink": "无法正常工作?查看文档。", - "invalidURL": "这不像是有效的回调 URL。请复制 Roo Code Cloud 在你的浏览器中显示的内容。", + "invalidURL": "这不像是有效的回调 URL。请复制 Joe Code Cloud 在你的浏览器中显示的内容。", "goBack": "返回" }, "startRouter": "我们建议使用 LLM 路由器:", "startCustom": "或者你可以带上自己的 API 密钥:", "telemetry": { - "helpImprove": "帮助改进 Roo Code", - "helpImproveMessage": "Roo Code 收集错误和使用数据以帮助我们修复 Bug 并改进扩展。此遥测不收集代码、提示或个人信息。你可以在设置中将其关闭。" + "helpImprove": "帮助改进 Joe Code", + "helpImproveMessage": "Joe Code 收集错误和使用数据以帮助我们修复 Bug 并改进扩展。此遥测不收集代码、提示或个人信息。你可以在设置中将其关闭。" }, "importSettings": "导入设置" } diff --git a/webview-ui/src/i18n/locales/zh-CN/worktrees.json b/webview-ui/src/i18n/locales/zh-CN/worktrees.json index 2ff06dd9a77..1b359eb1797 100644 --- a/webview-ui/src/i18n/locales/zh-CN/worktrees.json +++ b/webview-ui/src/i18n/locales/zh-CN/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "完成", - "description": "Git worktrees 可让你在不同目录中同时处理多个分支。每个 worktree 都会拥有一个带 Roo Code 的独立 VS Code 窗口。", + "description": "Git worktrees 可让你在不同目录中同时处理多个分支。每个 worktree 都会拥有一个带 Joe Code 的独立 VS Code 窗口。", "notGitRepo": "此工作区不是 Git 仓库。worktrees 需要 Git 仓库才能工作。", "multiRootNotSupported": "多根工作区不支持 worktrees。请打开单个文件夹以使用 worktrees。", diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index e01b86f52bc..99137a3d707 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -1,5 +1,5 @@ { - "greeting": "歡迎使用 Roo Code!", + "greeting": "歡迎使用 Joe Code!", "task": { "title": "工作", "expand": "展開工作", @@ -21,7 +21,7 @@ "sharePublicly": "公開分享", "sharePubliclyDescription": "任何擁有連結的人都可存取", "connectToCloud": "連線至雲端", - "connectToCloudDescription": "登入 Roo Code Cloud 以分享工作", + "connectToCloudDescription": "登入 Joe Code Cloud 以分享工作", "sharingDisabledByOrganization": "組織已停用分享功能", "shareSuccessOrganization": "組織連結已複製到剪貼簿", "shareSuccessPublic": "公開連結已複製到剪貼簿", @@ -184,7 +184,7 @@ "docs": "說明文件", "goToSettings": "設定", "connection": "連線錯誤。請確保您有可用的網際網路連線。", - "unknown": "未知 API 錯誤。請聯絡 Roo Code 技術支援。", + "unknown": "未知 API 錯誤。請聯絡 Joe Code 技術支援。", "claudeCodeNotAuthenticated": "您需要登入才能使用 Claude Code。前往設定並點選「登入 Claude Code」以進行驗證。" } }, @@ -359,20 +359,20 @@ "triggerLabelAll": "BRRR" }, "announcement": { - "title": "Roo Code {{version}} 已發布", - "support": "請在 GitHub 上給 Roo Code 星星支持我們。", + "title": "Joe Code {{version}} 已發布", + "support": "請在 GitHub 上給 Joe Code 星星支持我們。", "stealthModel": { - "feature": "限時免費隱形模型 - Code Supernova:現已升級為 1M Token 上下文視窗!一個支援影像輸入的多功能代理程式設計模型,透過 Roo Code Cloud 提供。", + "feature": "限時免費隱形模型 - Code Supernova:現已升級為 1M Token 上下文視窗!一個支援影像輸入的多功能代理程式設計模型,透過 Joe Code Cloud 提供。", "note": "(注意:提示詞和回應會被模型建立者記錄並用於改進模型)", - "connectButton": "連線到 Roo Code Cloud", - "selectModel": "在設定中從 Roo Code Cloud 供應商選擇 roo/code-supernova 開始使用。", + "connectButton": "連線到 Joe Code Cloud", + "selectModel": "在設定中從 Joe Code Cloud 供應商選擇 roo/code-supernova 開始使用。", "goToSettingsButton": "前往設定" }, "release": { "heading": "新增功能:", "geminiPro": "Gemini 3.1 Pro 支援:新增 Gemini 3.1 Pro 模型支援,並設為預設 Gemini 模型以提升效能。", "cliNdjson": "CLI NDJSON 協定:新增 NDJSON stdin 協定、list 子指令,以及模組化的 run 指令,提供更彈性的 CLI 工作流程。", - "cliRelease": "CLI v0.1.0:Roo Code CLI 以穩定的指令介面達成首個正式版本。" + "cliRelease": "CLI v0.1.0:Joe Code CLI 以穩定的指令介面達成首個正式版本。" }, "cloudAgents": { "heading": "雲端的新功能:", @@ -405,7 +405,7 @@ "profileViolationWarning": "目前設定檔與您的組織設定不相容", "shellIntegration": { "title": "命令執行警告", - "description": "命令正在沒有 VS Code 終端機 Shell 整合的情況下執行。若要隱藏此警告,可在 Roo Code 設定終端機 區塊中停用 Shell 整合,或使用下方連結排解 VS Code 終端機整合問題。", + "description": "命令正在沒有 VS Code 終端機 Shell 整合的情況下執行。若要隱藏此警告,可在 Joe Code 設定終端機 區塊中停用 Shell 整合,或使用下方連結排解 VS Code 終端機整合問題。", "troubleshooting": "點選此處查看 Shell 整合說明文件。" }, "ask": { diff --git a/webview-ui/src/i18n/locales/zh-TW/cloud.json b/webview-ui/src/i18n/locales/zh-TW/cloud.json index 032c18ed915..0e8e90f827e 100644 --- a/webview-ui/src/i18n/locales/zh-TW/cloud.json +++ b/webview-ui/src/i18n/locales/zh-TW/cloud.json @@ -3,18 +3,18 @@ "profilePicture": "個人圖片", "logOut": "登出", "testApiAuthentication": "測試 API 認證", - "signIn": "連線至 Roo Code Cloud", + "signIn": "連線至 Joe Code Cloud", "connect": "開始使用", - "cloudBenefitsTitle": "試用 Roo Code Cloud", + "cloudBenefitsTitle": "試用 Joe Code Cloud", "cloudBenefitProvider": "存取與 Roo 完美配合的免費和付費模型", "cloudBenefitCloudAgents": "將工作分配給自主雲端代理", "cloudBenefitTriggers": "在 GitHub 上取得程式碼審查、從 Slack 啟動工作等等", "cloudBenefitWalkaway": "隨時隨地(包括您的手機)追蹤和控制工作", "cloudBenefitHistory": "隨時隨地存取工作歷史紀錄並與他人分享", "cloudBenefitMetrics": "取得 Token 使用量的整體檢視", - "visitCloudWebsite": "造訪 Roo Code Cloud", + "visitCloudWebsite": "造訪 Joe Code Cloud", "taskSync": "任務同步", - "taskSyncDescription": "同步工作以在 Roo Code Cloud 上檢視和分享", + "taskSyncDescription": "同步工作以在 Joe Code Cloud 上檢視和分享", "taskSyncManagedByOrganization": "工作同步由您的組織管理", "usageMetricsAlwaysReported": "登入時會一律回報模型使用資訊", "authWaiting": "等待瀏覽器驗證完成...", @@ -22,12 +22,12 @@ "pasteCallbackUrl": "從瀏覽器複製重新導向 URL 並貼到這裡:", "startOver": "重新開始", "personalAccount": "個人帳戶", - "switchAccount": "切換 Roo Code Cloud 帳戶", + "switchAccount": "切換 Joe Code Cloud 帳戶", "createTeamAccount": "建立團隊帳戶", - "cloudUrlPillLabel": "Roo Code Cloud URL", + "cloudUrlPillLabel": "Joe Code Cloud URL", "upsell": { - "autoApprovePowerUser": "給 Roo 一點獨立性?使用 Roo Code Cloud 隨時隨地掌控工作進度。了解更多。", + "autoApprovePowerUser": "給 Roo 一點獨立性?使用 Joe Code Cloud 隨時隨地掌控工作進度。了解更多。", "longRunningTask": "這可能需要一些時間。使用雲端隨時隨地繼續。", - "taskList": "喜歡 Roo 嗎?快來看看 Roo Code Cloud:隨時隨地追蹤和控制您的任務,執行自主雲端代理,取得使用統計資料等等。了解更多。" + "taskList": "喜歡 Roo 嗎?快來看看 Joe Code Cloud:隨時隨地追蹤和控制您的任務,執行自主雲端代理,取得使用統計資料等等。了解更多。" } } diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index 9f4241c3dd9..6524ec6c3f4 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -40,7 +40,7 @@ "ui": "UI", "experimental": "實驗性", "language": "語言", - "about": "關於 Roo Code", + "about": "關於 Joe Code", "skills": "Skills" }, "about": { @@ -59,7 +59,7 @@ "contact": { "label": "需要與我們聯絡?請寫信" }, - "community": "想要取得使用技巧或與其他 Roo Code 使用者交流?加入 reddit.com/r/RooCodediscord.gg/roocode", + "community": "想要取得使用技巧或與其他 Joe Code 使用者交流?加入 reddit.com/r/JoeCodediscord.gg/joecode", "contactAndCommunity": "聯絡與社群", "manageSettings": "管理設定", "debugMode": { @@ -466,7 +466,7 @@ "draftModelDesc": "草稿模型必須來自相同模型系列才能正確運作。", "selectDraftModel": "選擇草稿模型", "noModelsFound": "未找到草稿模型。請確保 LM Studio 以伺服器模式執行。", - "description": "LM Studio 允許您在本機電腦執行模型。詳細資訊請參閱快速入門指南。您需要啟動 LM Studio 的本機伺服器功能才能與此擴充功能搭配使用。注意: Roo Code 使用複雜提示詞,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。" + "description": "LM Studio 允許您在本機電腦執行模型。詳細資訊請參閱快速入門指南。您需要啟動 LM Studio 的本機伺服器功能才能與此擴充功能搭配使用。注意: Joe Code 使用複雜提示詞,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。" }, "ollama": { "baseUrl": "基礎 URL(選用)", @@ -476,11 +476,11 @@ "numCtx": "上下文視窗大小(num_ctx)", "numCtxHelp": "覆寫模型的預設上下文視窗大小。留空以使用模型的 Modelfile 設定。最小值為 128。", "description": "Ollama 允許您在本機電腦執行模型。請參閱快速入門指南。", - "warning": "注意:Roo Code 使用複雜提示詞,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。" + "warning": "注意:Joe Code 使用複雜提示詞,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。" }, "roo": { - "authenticatedMessage": "已透過 Roo Code Cloud 帳戶安全認證。", - "connectButton": "連線到 Roo Code Cloud" + "authenticatedMessage": "已透過 Joe Code Cloud 帳戶安全認證。", + "connectButton": "連線到 Joe Code Cloud" }, "openRouter": { "providerRouting": { @@ -490,7 +490,7 @@ } }, "customModel": { - "capabilities": "設定自訂 OpenAI 相容模型的功能和定價。請謹慎設定模型功能,因為這會影響 Roo Code 的運作方式。", + "capabilities": "設定自訂 OpenAI 相容模型的功能和定價。請謹慎設定模型功能,因為這會影響 Joe Code 的運作方式。", "maxTokens": { "label": "最大輸出 Token", "description": "模型能在一則回應中產生的最大 Token 數量。(設為 -1 則由伺服器決定最大值)" @@ -867,7 +867,7 @@ } }, "modelPicker": { - "automaticFetch": "此擴充功能會自動從 {{serviceName}} 取得最新的可用模型清單。如果不確定要選哪個模型,建議使用 {{defaultModelId}},這是與 Roo Code 最佳搭配的模型。您也可以搜尋「free」來檢視目前可用的免費選項。", + "automaticFetch": "此擴充功能會自動從 {{serviceName}} 取得最新的可用模型清單。如果不確定要選哪個模型,建議使用 {{defaultModelId}},這是與 Joe Code 最佳搭配的模型。您也可以搜尋「free」來檢視目前可用的免費選項。", "label": "模型", "searchPlaceholder": "搜尋", "noMatchFound": "找不到符合的結果", @@ -877,7 +877,7 @@ "footer": { "telemetry": { "label": "允許匿名錯誤與使用情況回報", - "description": "透過發送匿名使用資料和錯誤回報來協助改善 Roo Code。此遙測不會收集程式碼、提示詞或個人資訊。查看我們的 隱私權政策 以了解更多資訊。" + "description": "透過發送匿名使用資料和錯誤回報來協助改善 Joe Code。此遙測不會收集程式碼、提示詞或個人資訊。查看我們的 隱私權政策 以了解更多資訊。" }, "settings": { "import": "匯入", diff --git a/webview-ui/src/i18n/locales/zh-TW/welcome.json b/webview-ui/src/i18n/locales/zh-TW/welcome.json index 3b117935b61..f5247bdfc4c 100644 --- a/webview-ui/src/i18n/locales/zh-TW/welcome.json +++ b/webview-ui/src/i18n/locales/zh-TW/welcome.json @@ -13,40 +13,40 @@ } }, "landing": { - "greeting": "歡迎使用 Roo Code!", - "introduction": "Roo Code 提供一系列內建和可擴充的模式,讓您以前所未有的方式規劃專案、設計架構、編寫程式碼、除錯並提升工作效率。", - "accountMention": "開始使用,請建立您的 Roo Code Cloud 帳戶。取得強大的模型、網路控制、分析、支援等功能。", + "greeting": "歡迎使用 Joe Code!", + "introduction": "Joe Code 提供一系列內建和可擴充的模式,讓您以前所未有的方式規劃專案、設計架構、編寫程式碼、除錯並提升工作效率。", + "accountMention": "開始使用,請建立您的 Joe Code Cloud 帳戶。取得強大的模型、網路控制、分析、支援等功能。", "getStarted": "建立 Roo 帳戶", "noAccount": "或不使用帳戶" }, "providerSignup": { "heading": "選擇供應商", "chooseProvider": "Roo 需要 LLM 供應商才能運作。選擇一個以開始使用,您可以稍後新增更多。", - "rooCloudProvider": "Roo Code Router", - "rooCloudDescription": "開始使用最簡單的方式是使用 Roo Code Router:精選的免費和付費模型組合,價格低廉。", + "rooCloudProvider": "Joe Code Router", + "rooCloudDescription": "開始使用最簡單的方式是使用 Joe Code Router:精選的免費和付費模型組合,價格低廉。", "learnMore": "了解更多", "useAnotherProvider": "第三方供應商", "useAnotherProviderDescription": "輸入 API 金鑰並開始使用。", "noApiKeys": "不想處理 API 金鑰和個別帳戶嗎?", - "backToRoo": "選擇 Roo Code Router。", + "backToRoo": "選擇 Joe Code Router。", "goBack": "返回", "finish": "完成" }, "waitingForCloud": { - "heading": "正在登入 Roo Code Cloud...", - "description": "我們會帶您前往瀏覽器註冊 Roo Code Cloud。然後我們會帶您回來完成設定。", + "heading": "正在登入 Joe Code Cloud...", + "description": "我們會帶您前往瀏覽器註冊 Joe Code Cloud。然後我們會帶您回來完成設定。", "noPrompt": "如果沒有提示您開啟 URL,點選這裡。", "havingTrouble": "如果您已完成註冊但遇到問題,點選這裡。", "pasteUrl": "貼上瀏覽器中顯示的回呼 URL:", "docsLink": "無法正常運作?查看說明文件。", - "invalidURL": "這看起來不像有效的回呼 URL。請複製 Roo Code Cloud 在您瀏覽器中顯示的內容。", + "invalidURL": "這看起來不像有效的回呼 URL。請複製 Joe Code Cloud 在您瀏覽器中顯示的內容。", "goBack": "返回" }, "startRouter": "我們建議使用 LLM 路由器:", "startCustom": "或自行提供供應商 API 金鑰:", "telemetry": { - "helpImprove": "幫助改進 Roo Code", - "helpImproveMessage": "Roo Code 會收集錯誤和使用情況資料以幫助我們修復錯誤並改進擴充功能。此遙測不會收集程式碼、提示詞或個人資訊。您可以在 設定 中關閉。" + "helpImprove": "幫助改進 Joe Code", + "helpImproveMessage": "Joe Code 會收集錯誤和使用情況資料以幫助我們修復錯誤並改進擴充功能。此遙測不會收集程式碼、提示詞或個人資訊。您可以在 設定 中關閉。" }, "importSettings": "匯入設定" } diff --git a/webview-ui/src/i18n/locales/zh-TW/worktrees.json b/webview-ui/src/i18n/locales/zh-TW/worktrees.json index fe80cfb214b..9cf68334903 100644 --- a/webview-ui/src/i18n/locales/zh-TW/worktrees.json +++ b/webview-ui/src/i18n/locales/zh-TW/worktrees.json @@ -1,7 +1,7 @@ { "title": "Worktrees", "done": "完成", - "description": "Git worktrees 讓您能在不同目錄中同時處理多個分支。每個 worktree 都會有一個搭配 Roo Code 的獨立 VS Code 視窗。", + "description": "Git worktrees 讓您能在不同目錄中同時處理多個分支。每個 worktree 都會有一個搭配 Joe Code 的獨立 VS Code 視窗。", "notGitRepo": "此工作區不是 Git 儲存庫。Worktree 功能需要 Git 儲存庫才能運作。", "multiRootNotSupported": "多根工作區不支援 worktree。請開啟單一資料夾以使用 worktree。", diff --git a/webview-ui/vite.config.ts b/webview-ui/vite.config.ts index e60a3fada64..508dc08d8cf 100644 --- a/webview-ui/vite.config.ts +++ b/webview-ui/vite.config.ts @@ -63,7 +63,7 @@ export default defineConfig(({ mode }) => { "process.env.VSCODE_TEXTMATE_DEBUG": JSON.stringify(process.env.VSCODE_TEXTMATE_DEBUG), "process.env.PKG_NAME": JSON.stringify(pkg.name), "process.env.PKG_VERSION": JSON.stringify(pkg.version), - "process.env.PKG_OUTPUT_CHANNEL": JSON.stringify("Roo-Code"), + "process.env.PKG_OUTPUT_CHANNEL": JSON.stringify("Joe-Code"), ...(gitSha ? { "process.env.PKG_SHA": JSON.stringify(gitSha) } : {}), }