diff --git a/src/core/assistant-message/presentAssistantMessage.ts b/src/core/assistant-message/presentAssistantMessage.ts index a8b90728b1..874b33e1cf 100644 --- a/src/core/assistant-message/presentAssistantMessage.ts +++ b/src/core/assistant-message/presentAssistantMessage.ts @@ -35,6 +35,7 @@ import { Task } from "../task/Task" import { codebaseSearchTool } from "../tools/codebaseSearchTool" import { experiments, EXPERIMENT_IDS } from "../../shared/experiments" import { applyDiffToolLegacy } from "../tools/applyDiffTool" +import { t } from "../../i18n" /** * Processes and presents assistant message content to the user interface. @@ -316,7 +317,10 @@ export async function presentAssistantMessage(cline: Task) { await cline.say( "error", - `Error ${action}:\n${error.message ?? JSON.stringify(serializeError(error), null, 2)}`, + t("tools:errors.toolExecutionError", { + action, + error: error.message ?? JSON.stringify(serializeError(error), null, 2), + }), ) pushToolResult(formatResponse.toolError(errorString)) diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 104cb87206..906ef547e0 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -1053,12 +1053,17 @@ export class Task extends EventEmitter implements TaskLike { } async sayAndCreateMissingParamError(toolName: ToolName, paramName: string, relPath?: string) { - await this.say( - "error", - `Roo tried to use ${toolName}${ - relPath ? ` for '${relPath.toPosix()}'` : "" - } without value for required parameter '${paramName}'. Retrying...`, - ) + const errorMessage = relPath + ? t("tools:errors.missingRequiredParameter.withPath", { + toolName, + relPath: relPath.toPosix(), + paramName, + }) + : t("tools:errors.missingRequiredParameter.withoutPath", { + toolName, + paramName, + }) + await this.say("error", errorMessage) return formatResponse.toolError(formatResponse.missingToolParameterError(paramName)) } @@ -2135,10 +2140,7 @@ export class Task extends EventEmitter implements TaskLike { // If there's no assistant_responses, that means we got no text // or tool_use content blocks from API which we should assume is // an error. - await this.say( - "error", - "Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output.", - ) + await this.say("error", t("common:errors.unexpectedApiResponse")) await this.addToApiConversationHistory({ role: "assistant", diff --git a/src/core/tools/__tests__/insertContentTool.spec.ts b/src/core/tools/__tests__/insertContentTool.spec.ts index 5f055fb29a..612675b21d 100644 --- a/src/core/tools/__tests__/insertContentTool.spec.ts +++ b/src/core/tools/__tests__/insertContentTool.spec.ts @@ -226,7 +226,13 @@ describe("insertContentTool", () => { expect(mockedFsReadFile).not.toHaveBeenCalled() expect(mockCline.consecutiveMistakeCount).toBe(1) expect(mockCline.recordToolError).toHaveBeenCalledWith("insert_content") - expect(mockCline.say).toHaveBeenCalledWith("error", expect.stringContaining("non-existent file")) + // Accept both legacy hardcoded text and new i18n key-based message + expect(mockCline.say).toHaveBeenCalledWith( + "error", + expect.stringMatching( + /non-existent file|errors\.insertContentNewFile|tools:errors\.insertContentNewFile/, + ), + ) expect(mockCline.diffViewProvider.update).not.toHaveBeenCalled() expect(mockCline.diffViewProvider.pushToolWriteResult).not.toHaveBeenCalled() }) diff --git a/src/core/tools/__tests__/useMcpToolTool.spec.ts b/src/core/tools/__tests__/useMcpToolTool.spec.ts index 97893b3a97..37cc8a6d66 100644 --- a/src/core/tools/__tests__/useMcpToolTool.spec.ts +++ b/src/core/tools/__tests__/useMcpToolTool.spec.ts @@ -15,6 +15,13 @@ vi.mock("../../prompts/responses", () => ({ vi.mock("../../../i18n", () => ({ t: vi.fn((key: string, params?: any) => { + // Handle the new tools error messages + if (key === "tools:errors.missingRequiredParameter.withPath" && params) { + return `Roo tried to use ${params.toolName} for '${params.relPath}' without value for required parameter '${params.paramName}'. Retrying...` + } + if (key === "tools:errors.missingRequiredParameter.withoutPath" && params) { + return `Roo tried to use ${params.toolName} without value for required parameter '${params.paramName}'. Retrying...` + } if (key === "mcp:errors.invalidJsonArgument" && params?.toolName) { return `Roo tried to use ${params.toolName} with an invalid JSON argument. Retrying...` } diff --git a/src/core/tools/applyDiffTool.ts b/src/core/tools/applyDiffTool.ts index 903e3c846e..983232dd3a 100644 --- a/src/core/tools/applyDiffTool.ts +++ b/src/core/tools/applyDiffTool.ts @@ -13,6 +13,7 @@ import { fileExistsAtPath } from "../../utils/fs" import { RecordSource } from "../context-tracking/FileContextTrackerTypes" import { unescapeHtmlEntities } from "../../utils/text-normalization" import { EXPERIMENT_IDS, experiments } from "../../shared/experiments" +import { t } from "../../i18n" export async function applyDiffToolLegacy( cline: Task, @@ -82,7 +83,7 @@ export async function applyDiffToolLegacy( if (!fileExists) { cline.consecutiveMistakeCount++ cline.recordToolError("apply_diff") - const formattedError = `File does not exist at path: ${absolutePath}\n\n\nThe specified file could not be found. Please verify the file path and try again.\n` + const formattedError = t("tools:errors.fileNotFound", { path: absolutePath }) await cline.say("error", formattedError) pushToolResult(formattedError) return diff --git a/src/core/tools/askFollowupQuestionTool.ts b/src/core/tools/askFollowupQuestionTool.ts index e736936887..11138a62bb 100644 --- a/src/core/tools/askFollowupQuestionTool.ts +++ b/src/core/tools/askFollowupQuestionTool.ts @@ -2,6 +2,7 @@ import { Task } from "../task/Task" import { ToolUse, AskApproval, HandleError, PushToolResult, RemoveClosingTag } from "../../shared/tools" import { formatResponse } from "../prompts/responses" import { parseXml } from "../../utils/xml" +import { t } from "../../i18n" export async function askFollowupQuestionTool( cline: Task, @@ -48,7 +49,7 @@ export async function askFollowupQuestionTool( } catch (error) { cline.consecutiveMistakeCount++ cline.recordToolError("ask_followup_question") - await cline.say("error", `Failed to parse operations: ${error.message}`) + await cline.say("error", t("tools:errors.parseOperationsFailed", { error: error.message })) pushToolResult(formatResponse.toolError("Invalid operations xml format")) return } diff --git a/src/core/tools/insertContentTool.ts b/src/core/tools/insertContentTool.ts index b5e85dea30..e175b37e2f 100644 --- a/src/core/tools/insertContentTool.ts +++ b/src/core/tools/insertContentTool.ts @@ -12,6 +12,7 @@ import { fileExistsAtPath } from "../../utils/fs" import { insertGroups } from "../diff/insert-groups" import { DEFAULT_WRITE_DELAY_MS } from "@roo-code/types" import { EXPERIMENT_IDS, experiments } from "../../shared/experiments" +import { t } from "../../i18n" export async function insertContentTool( cline: Task, @@ -86,7 +87,7 @@ export async function insertContentTool( if (lineNumber > 1) { cline.consecutiveMistakeCount++ cline.recordToolError("insert_content") - const formattedError = `Cannot insert content at line ${lineNumber} into a non-existent file. For new files, 'line' must be 0 (to append) or 1 (to insert at the beginning).` + const formattedError = t("tools:errors.insertContentNewFile", { lineNumber }) await cline.say("error", formattedError) pushToolResult(formattedError) return diff --git a/src/core/tools/searchAndReplaceTool.ts b/src/core/tools/searchAndReplaceTool.ts index 50f4868b50..cd883c85df 100644 --- a/src/core/tools/searchAndReplaceTool.ts +++ b/src/core/tools/searchAndReplaceTool.ts @@ -13,6 +13,7 @@ import { fileExistsAtPath } from "../../utils/fs" import { RecordSource } from "../context-tracking/FileContextTrackerTypes" import { DEFAULT_WRITE_DELAY_MS } from "@roo-code/types" import { EXPERIMENT_IDS, experiments } from "../../shared/experiments" +import { t } from "../../i18n" /** * Tool for performing search and replace operations on files @@ -135,7 +136,7 @@ export async function searchAndReplaceTool( cline.consecutiveMistakeCount++ cline.recordToolError("search_and_replace") const formattedError = formatResponse.toolError( - `File does not exist at path: ${absolutePath}\nThe specified file could not be found. Please verify the file path and try again.`, + t("tools:errors.fileNotFoundSimple", { path: absolutePath }), ) await cline.say("error", formattedError) pushToolResult(formattedError) @@ -152,9 +153,10 @@ export async function searchAndReplaceTool( } catch (error) { cline.consecutiveMistakeCount++ cline.recordToolError("search_and_replace") - const errorMessage = `Error reading file: ${absolutePath}\nFailed to read the file content: ${ - error instanceof Error ? error.message : String(error) - }\nPlease verify file permissions and try again.` + const errorMessage = t("tools:errors.fileReadError", { + path: absolutePath, + error: error instanceof Error ? error.message : String(error), + }) const formattedError = formatResponse.toolError(errorMessage) await cline.say("error", formattedError) pushToolResult(formattedError) diff --git a/src/core/tools/writeToFileTool.ts b/src/core/tools/writeToFileTool.ts index e82eab92bc..5784de291c 100644 --- a/src/core/tools/writeToFileTool.ts +++ b/src/core/tools/writeToFileTool.ts @@ -16,6 +16,7 @@ import { detectCodeOmission } from "../../integrations/editor/detect-omission" import { unescapeHtmlEntities } from "../../utils/text-normalization" import { DEFAULT_WRITE_DELAY_MS } from "@roo-code/types" import { EXPERIMENT_IDS, experiments } from "../../shared/experiments" +import { t } from "../../i18n" export async function writeToFileTool( cline: Task, @@ -145,9 +146,10 @@ export async function writeToFileTool( // Use more specific error message for line_count that provides guidance based on the situation await cline.say( "error", - `Roo tried to use write_to_file${ - relPath ? ` for '${relPath.toPosix()}'` : "" - } but the required parameter 'line_count' was missing or truncated after ${actualLineCount} lines of content were written. Retrying...`, + t("tools:errors.lineCountMissing", { + relPath: relPath ? ` for '${relPath.toPosix()}'` : "", + actualLineCount, + }), ) pushToolResult( diff --git a/src/i18n/locales/ca/common.json b/src/i18n/locales/ca/common.json index 74b265f513..d7e0be329a 100644 --- a/src/i18n/locales/ca/common.json +++ b/src/i18n/locales/ca/common.json @@ -107,6 +107,7 @@ "roo": { "authenticationRequired": "El proveïdor Roo requereix autenticació al núvol. Si us plau, inicieu sessió a Roo Code Cloud." }, + "unexpectedApiResponse": "Resposta de l'API inesperada: el model de llenguatge no ha proporcionat cap missatge d'assistent. Això pot indicar un problema amb l'API o la sortida del model.", "mode_import_failed": "Ha fallat la importació del mode: {{error}}" }, "warnings": { diff --git a/src/i18n/locales/ca/tools.json b/src/i18n/locales/ca/tools.json index 0f10b6fc2a..0957df495a 100644 --- a/src/i18n/locales/ca/tools.json +++ b/src/i18n/locales/ca/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "No s'ha pogut crear una nova tasca a causa de restriccions de política." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo ha intentat utilitzar {{toolName}} per a '{{relPath}}' sense el valor per al paràmetre obligatori '{{paramName}}'. Reintentant...", + "withoutPath": "Roo ha intentat utilitzar {{toolName}} sense el valor per al paràmetre obligatori '{{paramName}}'. Reintentant..." + }, + "lineCountMissing": "Roo ha intentat utilitzar write_to_file{{relPath}} però faltava el paràmetre obligatori 'line_count' o s'ha truncat després d'escriure {{actualLineCount}} línies de contingut. Reintentant...", + "parseOperationsFailed": "No s'han pogut analitzar les operacions: {{error}}", + "fileNotFound": "El fitxer no existeix a la ruta: {{path}}\n\n\nNo s'ha pogut trobar el fitxer especificat. Verifiqueu la ruta del fitxer i torneu-ho a provar.\n", + "fileNotFoundSimple": "El fitxer no existeix a la ruta: {{path}}\nNo s'ha pogut trobar el fitxer especificat. Verifiqueu la ruta del fitxer i torneu-ho a provar.", + "fileReadError": "Error en llegir el fitxer: {{path}}\nNo s'ha pogut llegir el contingut del fitxer: {{error}}\nVerifiqueu els permisos del fitxer i torneu-ho a provar.", + "insertContentNewFile": "No es pot inserir contingut a la línia {{lineNumber}} en un fitxer inexistent. Per a fitxers nous, 'line' ha de ser 0 (per afegir) o 1 (per inserir al principi).", + "toolExecutionError": "Error {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/de/common.json b/src/i18n/locales/de/common.json index 856e4e1dce..2643b2fc44 100644 --- a/src/i18n/locales/de/common.json +++ b/src/i18n/locales/de/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Roo-Anbieter erfordert Cloud-Authentifizierung. Bitte melde dich bei Roo Code Cloud an." - } + }, + "unexpectedApiResponse": "Unerwartete API-Antwort: Das Sprachmodell hat keine Assistentennachrichten bereitgestellt. Dies kann auf ein Problem mit der API oder der Ausgabe des Modells hinweisen." }, "warnings": { "no_terminal_content": "Kein Terminal-Inhalt ausgewählt", diff --git a/src/i18n/locales/de/tools.json b/src/i18n/locales/de/tools.json index ecf372a50b..e91415f468 100644 --- a/src/i18n/locales/de/tools.json +++ b/src/i18n/locales/de/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Neue Aufgabe konnte aufgrund von Richtlinienbeschränkungen nicht erstellt werden." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo hat versucht, {{toolName}} für '{{relPath}}' ohne Wert für den erforderlichen Parameter '{{paramName}}' zu verwenden. Erneuter Versuch...", + "withoutPath": "Roo hat versucht, {{toolName}} ohne Wert für den erforderlichen Parameter '{{paramName}}' zu verwenden. Erneuter Versuch..." + }, + "lineCountMissing": "Roo hat versucht, write_to_file{{relPath}} zu verwenden, aber der erforderliche Parameter 'line_count' fehlte oder wurde nach dem Schreiben von {{actualLineCount}} Zeilen Inhalt abgeschnitten. Erneuter Versuch...", + "parseOperationsFailed": "Operationen konnten nicht analysiert werden: {{error}}", + "fileNotFound": "Datei existiert nicht unter Pfad: {{path}}\n\n\nDie angegebene Datei konnte nicht gefunden werden. Bitte überprüfe den Dateipfad und versuche es erneut.\n", + "fileNotFoundSimple": "Datei existiert nicht unter Pfad: {{path}}\nDie angegebene Datei konnte nicht gefunden werden. Bitte überprüfe den Dateipfad und versuche es erneut.", + "fileReadError": "Fehler beim Lesen der Datei: {{path}}\nDer Dateiinhalt konnte nicht gelesen werden: {{error}}\nBitte überprüfe die Dateiberechtigungen und versuche es erneut.", + "insertContentNewFile": "Inhalt kann nicht in Zeile {{lineNumber}} in eine nicht existierende Datei eingefügt werden. Bei neuen Dateien muss 'line' 0 (zum Anhängen) oder 1 (zum Einfügen am Anfang) sein.", + "toolExecutionError": "Fehler {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/en/common.json b/src/i18n/locales/en/common.json index e413bc0890..bbf0f8a181 100644 --- a/src/i18n/locales/en/common.json +++ b/src/i18n/locales/en/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Roo provider requires cloud authentication. Please sign in to Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output." }, "warnings": { "no_terminal_content": "No terminal content selected", diff --git a/src/i18n/locales/en/tools.json b/src/i18n/locales/en/tools.json index 5b88affae6..e394a54c03 100644 --- a/src/i18n/locales/en/tools.json +++ b/src/i18n/locales/en/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Failed to create new task due to policy restrictions." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo tried to use {{toolName}} for '{{relPath}}' without value for required parameter '{{paramName}}'. Retrying...", + "withoutPath": "Roo tried to use {{toolName}} without value for required parameter '{{paramName}}'. Retrying..." + }, + "lineCountMissing": "Roo tried to use write_to_file{{relPath}} but the required parameter 'line_count' was missing or truncated after {{actualLineCount}} lines of content were written. Retrying...", + "parseOperationsFailed": "Failed to parse operations: {{error}}", + "fileNotFound": "File does not exist at path: {{path}}\n\n\nThe specified file could not be found. Please verify the file path and try again.\n", + "fileNotFoundSimple": "File does not exist at path: {{path}}\nThe specified file could not be found. Please verify the file path and try again.", + "fileReadError": "Error reading file: {{path}}\nFailed to read the file content: {{error}}\nPlease verify file permissions and try again.", + "insertContentNewFile": "Cannot insert content at line {{lineNumber}} into a non-existent file. For new files, 'line' must be 0 (to append) or 1 (to insert at the beginning).", + "toolExecutionError": "Error {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/es/common.json b/src/i18n/locales/es/common.json index 7b2b9a4347..4ee559870f 100644 --- a/src/i18n/locales/es/common.json +++ b/src/i18n/locales/es/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "El proveedor Roo requiere autenticación en la nube. Por favor, inicia sesión en Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Respuesta inesperada de la API: el modelo de lenguaje no proporcionó ningún mensaje de asistente. Esto puede indicar un problema con la API o el resultado del modelo." }, "warnings": { "no_terminal_content": "No hay contenido de terminal seleccionado", diff --git a/src/i18n/locales/es/tools.json b/src/i18n/locales/es/tools.json index 6fd1cc2122..49c9eacb92 100644 --- a/src/i18n/locales/es/tools.json +++ b/src/i18n/locales/es/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "No se pudo crear una nueva tarea debido a restricciones de política." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo intentó usar {{toolName}} para '{{relPath}}' sin el valor para el parámetro requerido '{{paramName}}'. Reintentando...", + "withoutPath": "Roo intentó usar {{toolName}} sin el valor para el parámetro requerido '{{paramName}}'. Reintentando..." + }, + "lineCountMissing": "Roo intentó usar write_to_file{{relPath}} pero el parámetro requerido 'line_count' faltaba o se truncó después de escribir {{actualLineCount}} líneas de contenido. Reintentando...", + "parseOperationsFailed": "No se pudieron analizar las operaciones: {{error}}", + "fileNotFound": "El archivo no existe en la ruta: {{path}}\n\n\nNo se pudo encontrar el archivo especificado. Verifique la ruta del archivo e intente nuevamente.\n", + "fileNotFoundSimple": "El archivo no existe en la ruta: {{path}}\nNo se pudo encontrar el archivo especificado. Verifique la ruta del archivo e intente nuevamente.", + "fileReadError": "Error al leer el archivo: {{path}}\nNo se pudo leer el contenido del archivo: {{error}}\nVerifique los permisos del archivo e intente nuevamente.", + "insertContentNewFile": "No se puede insertar contenido en la línea {{lineNumber}} en un archivo que no existe. Para archivos nuevos, 'line' debe ser 0 (para agregar) o 1 (para insertar al principio).", + "toolExecutionError": "Error {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/fr/common.json b/src/i18n/locales/fr/common.json index e9282a0b97..6a1a6d576f 100644 --- a/src/i18n/locales/fr/common.json +++ b/src/i18n/locales/fr/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Le fournisseur Roo nécessite une authentification cloud. Veuillez vous connecter à Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Réponse inattendue de l'API : le modèle linguistique n'a fourni aucun message d'assistant. Cela peut indiquer un problème avec l'API ou la sortie du modèle." }, "warnings": { "no_terminal_content": "Aucun contenu de terminal sélectionné", diff --git a/src/i18n/locales/fr/tools.json b/src/i18n/locales/fr/tools.json index b6d7accebb..7fdd41e2dc 100644 --- a/src/i18n/locales/fr/tools.json +++ b/src/i18n/locales/fr/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Impossible de créer une nouvelle tâche en raison de restrictions de politique." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo a essayé d'utiliser {{toolName}} pour '{{relPath}}' sans valeur pour le paramètre requis '{{paramName}}'. Nouvelle tentative...", + "withoutPath": "Roo a essayé d'utiliser {{toolName}} sans valeur pour le paramètre requis '{{paramName}}'. Nouvelle tentative..." + }, + "lineCountMissing": "Roo a essayé d'utiliser write_to_file{{relPath}} mais le paramètre requis 'line_count' était manquant ou tronqué après l'écriture de {{actualLineCount}} lignes de contenu. Nouvelle tentative...", + "parseOperationsFailed": "Impossible d'analyser les opérations : {{error}}", + "fileNotFound": "Le fichier n'existe pas au chemin : {{path}}\n\n\nLe fichier spécifié est introuvable. Veuillez vérifier le chemin d'accès et réessayer.\n", + "fileNotFoundSimple": "Le fichier n'existe pas au chemin : {{path}}\nLe fichier spécifié est introuvable. Veuillez vérifier le chemin d'accès et réessayer.", + "fileReadError": "Erreur de lecture du fichier : {{path}}\nÉchec de la lecture du contenu du fichier : {{error}}\nVeuillez vérifier les autorisations du fichier et réessayer.", + "insertContentNewFile": "Impossible d'insérer du contenu à la ligne {{lineNumber}} dans un fichier inexistant. Pour les nouveaux fichiers, 'line' doit être 0 (pour ajouter) ou 1 (pour insérer au début).", + "toolExecutionError": "Erreur {{action}} :\n{{error}}" } } diff --git a/src/i18n/locales/hi/common.json b/src/i18n/locales/hi/common.json index 3f5ab60413..aeb1e8695c 100644 --- a/src/i18n/locales/hi/common.json +++ b/src/i18n/locales/hi/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Roo प्रदाता को क्लाउड प्रमाणीकरण की आवश्यकता है। कृपया Roo Code Cloud में साइन इन करें।" - } + }, + "unexpectedApiResponse": "अप्रत्याशित API प्रतिक्रिया: भाषा मॉडल ने कोई सहायक संदेश नहीं दिया। यह API या मॉडल के आउटपुट में किसी समस्या का संकेत हो सकता है।" }, "warnings": { "no_terminal_content": "कोई टर्मिनल सामग्री चयनित नहीं", diff --git a/src/i18n/locales/hi/tools.json b/src/i18n/locales/hi/tools.json index cbfbd7aef7..d9c745adb4 100644 --- a/src/i18n/locales/hi/tools.json +++ b/src/i18n/locales/hi/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "नीति प्रतिबंधों के कारण नया कार्य बनाने में विफल।" } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "रू ने '{{relPath}}' के लिए {{toolName}} का उपयोग करने का प्रयास किया, लेकिन आवश्यक पैरामीटर '{{paramName}}' का मान नहीं था। पुन: प्रयास कर रहा है...", + "withoutPath": "रू ने आवश्यक पैरामीटर '{{paramName}}' के मान के बिना {{toolName}} का उपयोग करने का प्रयास किया। पुन: प्रयास कर रहा है..." + }, + "lineCountMissing": "रू ने write_to_file{{relPath}} का उपयोग करने का प्रयास किया, लेकिन आवश्यक पैरामीटर 'line_count' गायब था या {{actualLineCount}} लाइनों की सामग्री लिखे जाने के बाद छोटा कर दिया गया था। पुन: प्रयास कर रहा है...", + "parseOperationsFailed": "संचालन पार्स करने में विफल: {{error}}", + "fileNotFound": "फ़ाइल पथ पर मौजूद नहीं है: {{path}}\n\n\nनिर्दिष्ट फ़ाइल नहीं मिल सकी। कृपया फ़ाइल पथ सत्यापित करें और पुनः प्रयास करें।\n", + "fileNotFoundSimple": "फ़ाइल पथ पर मौजूद नहीं है: {{path}}\nनिर्दिष्ट फ़ाइल नहीं मिल सकी। कृपया फ़ाइल पथ सत्यापित करें और पुनः प्रयास करें।", + "fileReadError": "फ़ाइल पढ़ने में त्रुटि: {{path}}\nफ़ाइल की सामग्री पढ़ने में विफल: {{error}}\nकृपया फ़ाइल अनुमतियों को सत्यापित करें और पुनः प्रयास करें।", + "insertContentNewFile": "एक गैर-मौजूद फ़ाइल में लाइन {{lineNumber}} पर सामग्री नहीं डाली जा सकती। नई फ़ाइलों के लिए, 'लाइन' 0 (जोड़ने के लिए) या 1 (शुरुआत में डालने के लिए) होनी चाहिए।", + "toolExecutionError": "त्रुटि {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/id/common.json b/src/i18n/locales/id/common.json index 3c43056503..0693cfde32 100644 --- a/src/i18n/locales/id/common.json +++ b/src/i18n/locales/id/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Penyedia Roo memerlukan autentikasi cloud. Silakan masuk ke Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Respons API Tidak Terduga: Model bahasa tidak memberikan pesan asisten apa pun. Ini mungkin menunjukkan masalah dengan API atau output model." }, "warnings": { "no_terminal_content": "Tidak ada konten terminal yang dipilih", diff --git a/src/i18n/locales/id/tools.json b/src/i18n/locales/id/tools.json index 3eb8854eff..aafdc58aac 100644 --- a/src/i18n/locales/id/tools.json +++ b/src/i18n/locales/id/tools.json @@ -17,5 +17,18 @@ "errors": { "policy_restriction": "Gagal membuat tugas baru karena pembatasan kebijakan." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo mencoba menggunakan {{toolName}} untuk '{{relPath}}' tanpa nilai untuk parameter yang diperlukan '{{paramName}}'. Mencoba lagi...", + "withoutPath": "Roo mencoba menggunakan {{toolName}} tanpa nilai untuk parameter yang diperlukan '{{paramName}}'. Mencoba lagi..." + }, + "lineCountMissing": "Roo mencoba menggunakan write_to_file{{relPath}} tetapi parameter yang diperlukan 'line_count' hilang atau terpotong setelah {{actualLineCount}} baris konten ditulis. Mencoba lagi...", + "parseOperationsFailed": "Gagal mengurai operasi: {{error}}", + "fileNotFound": "File tidak ada di path: {{path}}\n\n\nFile yang ditentukan tidak dapat ditemukan. Harap verifikasi path file dan coba lagi.\n", + "fileNotFoundSimple": "File tidak ada di path: {{path}}\nFile yang ditentukan tidak dapat ditemukan. Harap verifikasi path file dan coba lagi.", + "fileReadError": "Kesalahan membaca file: {{path}}\nGagal membaca konten file: {{error}}\nHarap verifikasi izin file dan coba lagi.", + "insertContentNewFile": "Tidak dapat menyisipkan konten di baris {{lineNumber}} ke dalam file yang tidak ada. Untuk file baru, 'line' harus 0 (untuk menambahkan) atau 1 (untuk menyisipkan di awal).", + "toolExecutionError": "Kesalahan {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/it/common.json b/src/i18n/locales/it/common.json index c19114baf1..edbd502831 100644 --- a/src/i18n/locales/it/common.json +++ b/src/i18n/locales/it/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Il provider Roo richiede l'autenticazione cloud. Accedi a Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Risposta API imprevista: il modello linguistico non ha fornito alcun messaggio di assistenza. Ciò potrebbe indicare un problema con l'API o l'output del modello." }, "warnings": { "no_terminal_content": "Nessun contenuto del terminale selezionato", diff --git a/src/i18n/locales/it/tools.json b/src/i18n/locales/it/tools.json index 35b114a719..b2996ba087 100644 --- a/src/i18n/locales/it/tools.json +++ b/src/i18n/locales/it/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Impossibile creare una nuova attività a causa di restrizioni di policy." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo ha provato a usare {{toolName}} per '{{relPath}}' senza valore per il parametro richiesto '{{paramName}}'. Riprovo...", + "withoutPath": "Roo ha provato a usare {{toolName}} senza valore per il parametro richiesto '{{paramName}}'. Riprovo..." + }, + "lineCountMissing": "Roo ha provato a usare write_to_file{{relPath}} ma il parametro richiesto 'line_count' mancava o è stato troncato dopo che sono state scritte {{actualLineCount}} righe di contenuto. Riprovo...", + "parseOperationsFailed": "Impossibile analizzare le operazioni: {{error}}", + "fileNotFound": "Il file non esiste nel percorso: {{path}}\n\n\nImpossibile trovare il file specificato. Verifica il percorso del file e riprova.\n", + "fileNotFoundSimple": "Il file non esiste nel percorso: {{path}}\nImpossibile trovare il file specificato. Verifica il percorso del file e riprova.", + "fileReadError": "Errore durante la lettura del file: {{path}}\nImpossibile leggere il contenuto del file: {{error}}\nVerifica le autorizzazioni del file e riprova.", + "insertContentNewFile": "Impossibile inserire contenuto alla riga {{lineNumber}} in un file inesistente. Per i file nuovi, 'line' deve essere 0 (per aggiungere) o 1 (per inserire all'inizio).", + "toolExecutionError": "Errore {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/ja/common.json b/src/i18n/locales/ja/common.json index d595484fa1..6f8ea0eae6 100644 --- a/src/i18n/locales/ja/common.json +++ b/src/i18n/locales/ja/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Rooプロバイダーはクラウド認証が必要です。Roo Code Cloudにサインインしてください。" - } + }, + "unexpectedApiResponse": "予期しないAPI応答:言語モデルはアシスタントメッセージを提供しませんでした。これは、APIまたはモデルの出力に問題があることを示している可能性があります。" }, "warnings": { "no_terminal_content": "選択されたターミナルコンテンツがありません", diff --git a/src/i18n/locales/ja/tools.json b/src/i18n/locales/ja/tools.json index 257d5aa201..c816468913 100644 --- a/src/i18n/locales/ja/tools.json +++ b/src/i18n/locales/ja/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "ポリシー制限により新しいタスクを作成できませんでした。" } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Rooは、必須パラメータ '{{paramName}}' の値なしで '{{relPath}}' に {{toolName}} を使用しようとしました。再試行しています...", + "withoutPath": "Rooは、必須パラメータ '{{paramName}}' の値なしで {{toolName}} を使用しようとしました。再試行しています..." + }, + "lineCountMissing": "Rooはwrite_to_file{{relPath}}を使用しようとしましたが、必要なパラメータ 'line_count' が欠落しているか、{{actualLineCount}}行のコンテンツが書き込まれた後に切り捨てられました。再試行しています...", + "parseOperationsFailed": "操作の解析に失敗しました:{{error}}", + "fileNotFound": "パスにファイルが存在しません:{{path}}\n\n\n指定されたファイルが見つかりませんでした。ファイルパスを確認して、もう一度お試しください。\n", + "fileNotFoundSimple": "パスにファイルが存在しません:{{path}}\n指定されたファイルが見つかりませんでした。ファイルパスを確認して、もう一度お試しください。", + "fileReadError": "ファイルの読み取りエラー:{{path}}\nファイルの内容の読み取りに失敗しました:{{error}}\nファイル権限を確認して、もう一度お試しください。", + "insertContentNewFile": "存在しないファイルの{{lineNumber}}行にコンテンツを挿入できません。新しいファイルの場合、'line'は0(追加)または1(先頭に挿入)である必要があります。", + "toolExecutionError": "エラー {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/ko/common.json b/src/i18n/locales/ko/common.json index 3209952c6d..7214fae816 100644 --- a/src/i18n/locales/ko/common.json +++ b/src/i18n/locales/ko/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Roo 제공업체는 클라우드 인증이 필요합니다. Roo Code Cloud에 로그인하세요." - } + }, + "unexpectedApiResponse": "예기치 않은 API 응답: 언어 모델이 보조 메시지를 제공하지 않았습니다. 이는 API 또는 모델의 출력에 문제가 있음을 나타낼 수 있습니다." }, "warnings": { "no_terminal_content": "선택된 터미널 내용이 없습니다", diff --git a/src/i18n/locales/ko/tools.json b/src/i18n/locales/ko/tools.json index 94b6d8c377..0e128c5bf8 100644 --- a/src/i18n/locales/ko/tools.json +++ b/src/i18n/locales/ko/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "정책 제한으로 인해 새 작업을 생성하지 못했습니다." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo가 필수 매개변수 '{{paramName}}'에 대한 값 없이 '{{relPath}}'에 대해 {{toolName}}을(를) 사용하려고 했습니다. 다시 시도하는 중...", + "withoutPath": "Roo가 필수 매개변수 '{{paramName}}'에 대한 값 없이 {{toolName}}을(를) 사용하려고 했습니다. 다시 시도하는 중..." + }, + "lineCountMissing": "Roo가 write_to_file{{relPath}}을(를) 사용하려고 했지만 필수 매개변수 'line_count'이(가) 누락되었거나 {{actualLineCount}}줄의 콘텐츠가 작성된 후 잘렸습니다. 다시 시도하는 중...", + "parseOperationsFailed": "작업 구문 분석 실패: {{error}}", + "fileNotFound": "경로에 파일이 없습니다: {{path}}\n\n\n지정된 파일을 찾을 수 없습니다. 파일 경로를 확인하고 다시 시도하십시오.\n", + "fileNotFoundSimple": "경로에 파일이 없습니다: {{path}}\n지정된 파일을 찾을 수 없습니다. 파일 경로를 확인하고 다시 시도하십시오.", + "fileReadError": "파일 읽기 오류: {{path}}\n파일 내용을 읽지 못했습니다: {{error}}\n파일 권한을 확인하고 다시 시도하십시오.", + "insertContentNewFile": "존재하지 않는 파일의 {{lineNumber}}줄에 콘텐츠를 삽입할 수 없습니다. 새 파일의 경우 'line'은 0(추가) 또는 1(처음에 삽입)이어야 합니다.", + "toolExecutionError": "오류 {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/nl/common.json b/src/i18n/locales/nl/common.json index c0c6ba35e9..34c812500b 100644 --- a/src/i18n/locales/nl/common.json +++ b/src/i18n/locales/nl/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Roo provider vereist cloud authenticatie. Log in bij Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Onverwachte API-respons: het taalmodel heeft geen assistentberichten verstrekt. Dit kan duiden op een probleem met de API of de uitvoer van het model." }, "warnings": { "no_terminal_content": "Geen terminalinhoud geselecteerd", diff --git a/src/i18n/locales/nl/tools.json b/src/i18n/locales/nl/tools.json index 449cd54583..fd66269e80 100644 --- a/src/i18n/locales/nl/tools.json +++ b/src/i18n/locales/nl/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Kan geen nieuwe taak aanmaken vanwege beleidsbeperkingen." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo probeerde {{toolName}} te gebruiken voor '{{relPath}}' zonder waarde voor de vereiste parameter '{{paramName}}'. Opnieuw proberen...", + "withoutPath": "Roo probeerde {{toolName}} te gebruiken zonder waarde voor de vereiste parameter '{{paramName}}'. Opnieuw proberen..." + }, + "lineCountMissing": "Roo probeerde write_to_file{{relPath}} te gebruiken, maar de vereiste parameter 'line_count' ontbrak of was afgekapt nadat {{actualLineCount}} regels met inhoud waren geschreven. Opnieuw proberen...", + "parseOperationsFailed": "Kan bewerkingen niet parseren: {{error}}", + "fileNotFound": "Bestand bestaat niet op pad: {{path}}\n\n\nHet opgegeven bestand kon niet worden gevonden. Controleer het bestandspad en probeer het opnieuw.\n", + "fileNotFoundSimple": "Bestand bestaat niet op pad: {{path}}\nHet opgegeven bestand kon niet worden gevonden. Controleer het bestandspad en probeer het opnieuw.", + "fileReadError": "Fout bij het lezen van bestand: {{path}}\nKan de bestandsinhoud niet lezen: {{error}}\nControleer de bestandsrechten en probeer het opnieuw.", + "insertContentNewFile": "Kan geen inhoud invoegen op regel {{lineNumber}} in een niet-bestaand bestand. Voor nieuwe bestanden moet 'line' 0 (om toe te voegen) of 1 (om aan het begin in te voegen) zijn.", + "toolExecutionError": "Fout {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/pl/common.json b/src/i18n/locales/pl/common.json index 475ba069ee..890cc45ae0 100644 --- a/src/i18n/locales/pl/common.json +++ b/src/i18n/locales/pl/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Dostawca Roo wymaga uwierzytelnienia w chmurze. Zaloguj się do Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Nieoczekiwana odpowiedź API: model językowy nie dostarczył żadnych komunikatów asystenta. Może to wskazywać na problem z API lub danymi wyjściowymi modelu." }, "warnings": { "no_terminal_content": "Nie wybrano zawartości terminala", diff --git a/src/i18n/locales/pl/tools.json b/src/i18n/locales/pl/tools.json index 979b2f54ae..11ee2044aa 100644 --- a/src/i18n/locales/pl/tools.json +++ b/src/i18n/locales/pl/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Nie udało się utworzyć nowego zadania z powodu ograniczeń polityki." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo próbował użyć {{toolName}} dla '{{relPath}}' bez wartości dla wymaganego parametru '{{paramName}}'. Ponawianie próby...", + "withoutPath": "Roo próbował użyć {{toolName}} bez wartości dla wymaganego parametru '{{paramName}}'. Ponawianie próby..." + }, + "lineCountMissing": "Roo próbował użyć write_to_file{{relPath}}, ale brakowało wymaganego parametru 'line_count' lub został on obcięty po zapisaniu {{actualLineCount}} linii treści. Ponawianie próby...", + "parseOperationsFailed": "Nie udało się przeanalizować operacji: {{error}}", + "fileNotFound": "Plik nie istnieje pod ścieżką: {{path}}\n\n\nNie można znaleźć podanego pliku. Sprawdź ścieżkę pliku i spróbuj ponownie.\n", + "fileNotFoundSimple": "Plik nie istnieje pod ścieżką: {{path}}\nNie można znaleźć podanego pliku. Sprawdź ścieżkę pliku i spróbuj ponownie.", + "fileReadError": "Błąd odczytu pliku: {{path}}\nNie udało się odczytać zawartości pliku: {{error}}\nSprawdź uprawnienia do pliku i spróbuj ponownie.", + "insertContentNewFile": "Nie można wstawić treści w linii {{lineNumber}} do nieistniejącego pliku. W przypadku nowych plików „wiersz” musi mieć wartość 0 (aby dołączyć) lub 1 (aby wstawić na początku).", + "toolExecutionError": "Błąd {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/pt-BR/common.json b/src/i18n/locales/pt-BR/common.json index 55a41fcf1b..1624697223 100644 --- a/src/i18n/locales/pt-BR/common.json +++ b/src/i18n/locales/pt-BR/common.json @@ -107,7 +107,8 @@ }, "roo": { "authenticationRequired": "O provedor Roo requer autenticação na nuvem. Faça login no Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Resposta inesperada da API: o modelo de linguagem não forneceu nenhuma mensagem de assistente. Isso pode indicar um problema com a API ou a saída do modelo." }, "warnings": { "no_terminal_content": "Nenhum conteúdo do terminal selecionado", diff --git a/src/i18n/locales/pt-BR/tools.json b/src/i18n/locales/pt-BR/tools.json index 4e3296fd4a..13ddd6644d 100644 --- a/src/i18n/locales/pt-BR/tools.json +++ b/src/i18n/locales/pt-BR/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Falha ao criar nova tarefa devido a restrições de política." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo tentou usar {{toolName}} para '{{relPath}}' sem valor para o parâmetro obrigatório '{{paramName}}'. Tentando novamente...", + "withoutPath": "Roo tentou usar {{toolName}} sem valor para o parâmetro obrigatório '{{paramName}}'. Tentando novamente..." + }, + "lineCountMissing": "Roo tentou usar write_to_file{{relPath}}, mas o parâmetro obrigatório 'line_count' estava ausente ou foi truncado após {{actualLineCount}} linhas de conteúdo terem sido escritas. Tentando novamente...", + "parseOperationsFailed": "Falha ao analisar operações: {{error}}", + "fileNotFound": "O arquivo não existe no caminho: {{path}}\n\n\nO arquivo especificado não pôde ser encontrado. Verifique o caminho do arquivo e tente novamente.\n", + "fileNotFoundSimple": "O arquivo não existe no caminho: {{path}}\nO arquivo especificado не pôde ser encontrado. Verifique o caminho do arquivo e tente novamente.", + "fileReadError": "Erro ao ler o arquivo: {{path}}\nFalha ao ler o conteúdo do arquivo: {{error}}\nVerifique as permissões do arquivo e tente novamente.", + "insertContentNewFile": "Não é possível inserir conteúdo на linha {{lineNumber}} em um arquivo inexistente. Para arquivos novos, 'line' deve ser 0 (para anexar) ou 1 (para inserir no início).", + "toolExecutionError": "Erro {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/ru/common.json b/src/i18n/locales/ru/common.json index 505998daa2..afe6b3d4be 100644 --- a/src/i18n/locales/ru/common.json +++ b/src/i18n/locales/ru/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Провайдер Roo требует облачной аутентификации. Войдите в Roo Code Cloud." - } + }, + "unexpectedApiResponse": "Неожиданный ответ API: языковая модель не предоставила никаких сообщений-помощников. Это может указывать на проблему с API или выводом модели." }, "warnings": { "no_terminal_content": "Не выбрано содержимое терминала", diff --git a/src/i18n/locales/ru/tools.json b/src/i18n/locales/ru/tools.json index d74918f058..e94e5b8673 100644 --- a/src/i18n/locales/ru/tools.json +++ b/src/i18n/locales/ru/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Не удалось создать новую задачу из-за ограничений политики." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo попытался использовать {{toolName}} для '{{relPath}}' без значения для обязательного параметра '{{paramName}}'. Повторная попытка...", + "withoutPath": "Roo попытался использовать {{toolName}} без значения для обязательного параметра '{{paramName}}'. Повторная попытка..." + }, + "lineCountMissing": "Roo попытался использовать write_to_file{{relPath}}, но обязательный параметр 'line_count' отсутствовал или был усечен после записи {{actualLineCount}} строк содержимого. Повторная попытка...", + "parseOperationsFailed": "Не удалось разобрать операции: {{error}}", + "fileNotFound": "Файл не существует по пути: {{path}}\n\n\nУказанный файл не найден. Проверьте путь к файлу и попробуйте еще раз.\n", + "fileNotFoundSimple": "Файл не существует по пути: {{path}}\nУказанный файл не найден. Проверьте путь к файлу и попробуйте еще раз.", + "fileReadError": "Ошибка чтения файла: {{path}}\nНе удалось прочитать содержимое файла: {{error}}\nПроверьте права доступа к файлу и попробуйте еще раз.", + "insertContentNewFile": "Невозможно вставить содержимое в строку {{lineNumber}} в несуществующий файл. Для новых файлов 'строка' должна быть 0 (для добавления) или 1 (для вставки в начале).", + "toolExecutionError": "Ошибка {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/tr/common.json b/src/i18n/locales/tr/common.json index 9b8af8d94c..50e832b669 100644 --- a/src/i18n/locales/tr/common.json +++ b/src/i18n/locales/tr/common.json @@ -103,7 +103,8 @@ }, "roo": { "authenticationRequired": "Roo sağlayıcısı bulut kimlik doğrulaması gerektirir. Lütfen Roo Code Cloud'a giriş yapın." - } + }, + "unexpectedApiResponse": "Beklenmeyen API Yanıtı: Dil modeli herhangi bir asistan mesajı sağlamadı. Bu, API veya modelin çıktısıyla ilgili bir sorunu gösterebilir." }, "warnings": { "no_terminal_content": "Seçili terminal içeriği yok", diff --git a/src/i18n/locales/tr/tools.json b/src/i18n/locales/tr/tools.json index 5341a23cb1..323ea665b4 100644 --- a/src/i18n/locales/tr/tools.json +++ b/src/i18n/locales/tr/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Politika kısıtlamaları nedeniyle yeni görev oluşturulamadı." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo, '{{relPath}}' için {{toolName}}'i gerekli '{{paramName}}' parametresi için değer olmadan kullanmaya çalıştı. Tekrar deneniyor...", + "withoutPath": "Roo, gerekli '{{paramName}}' parametresi için değer olmadan {{toolName}}'i kullanmaya çalıştı. Tekrar deneniyor..." + }, + "lineCountMissing": "Roo, write_to_file{{relPath}}'i kullanmaya çalıştı ancak gerekli 'line_count' parametresi eksikti veya {{actualLineCount}} içerik satırı yazıldıktan sonra kesildi. Tekrar deneniyor...", + "parseOperationsFailed": "İşlemler ayrıştırılamadı: {{error}}", + "fileNotFound": "Dosya yolda mevcut değil: {{path}}\n\n\nBelirtilen dosya bulunamadı. Lütfen dosya yolunu doğrulayın ve tekrar deneyin.\n", + "fileNotFoundSimple": "Dosya yolda mevcut değil: {{path}}\nBelirtilen dosya bulunamadı. Lütfen dosya yolunu doğrulayın ve tekrar deneyin.", + "fileReadError": "Dosya okunurken hata oluştu: {{path}}\nDosya içeriği okunamadı: {{error}}\nLütfen dosya izinlerini doğrulayın ve tekrar deneyin.", + "insertContentNewFile": "Var olmayan bir dosyada {{lineNumber}} satırına içerik eklenemez. Yeni dosyalar için 'line' 0 (eklemek için) veya 1 (başa eklemek için) olmalıdır.", + "toolExecutionError": "Hata {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/vi/common.json b/src/i18n/locales/vi/common.json index 4877f297ad..71d66c670c 100644 --- a/src/i18n/locales/vi/common.json +++ b/src/i18n/locales/vi/common.json @@ -103,7 +103,8 @@ }, "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." - } + }, + "unexpectedApiResponse": "Phản hồi API không mong muốn: mô hình ngôn ngữ không cung cấp bất kỳ thông báo trợ giúp nào. Điều này có thể cho thấy sự cố với API hoặc đầu ra của mô hình." }, "warnings": { "no_terminal_content": "Không có nội dung terminal được chọn", diff --git a/src/i18n/locales/vi/tools.json b/src/i18n/locales/vi/tools.json index 4c5080a146..92980aca1a 100644 --- a/src/i18n/locales/vi/tools.json +++ b/src/i18n/locales/vi/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "Không thể tạo nhiệm vụ mới do hạn chế chính sách." } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo đã cố gắng sử dụng {{toolName}} cho '{{relPath}}' mà không có giá trị cho tham số bắt buộc '{{paramName}}'. Đang thử lại...", + "withoutPath": "Roo đã cố gắng sử dụng {{toolName}} mà không có giá trị cho tham số bắt buộc '{{paramName}}'. Đang thử lại..." + }, + "lineCountMissing": "Roo đã cố gắng sử dụng write_to_file{{relPath}} nhưng tham số bắt buộc 'line_count' bị thiếu hoặc bị cắt ngắn sau khi {{actualLineCount}} dòng nội dung được ghi. Đang thử lại...", + "parseOperationsFailed": "Không thể phân tích cú pháp hoạt động: {{error}}", + "fileNotFound": "Tệp không tồn tại tại đường dẫn: {{path}}\n\n\nKhông thể tìm thấy tệp đã chỉ định. Vui lòng xác minh đường dẫn tệp và thử lại.\n", + "fileNotFoundSimple": "Tệp không tồn tại tại đường dẫn: {{path}}\nKhông thể tìm thấy tệp đã chỉ định. Vui lòng xác minh đường dẫn tệp và thử lại.", + "fileReadError": "Lỗi đọc tệp: {{path}}\nKhông thể đọc nội dung tệp: {{error}}\nVui lòng xác minh quyền truy cập tệp và thử lại.", + "insertContentNewFile": "Không thể chèn nội dung vào dòng {{lineNumber}} vào một tệp không tồn tại. Đối với các tệp mới, 'dòng' phải là 0 (để nối thêm) hoặc 1 (để chèn vào đầu).", + "toolExecutionError": "Lỗi {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/zh-CN/common.json b/src/i18n/locales/zh-CN/common.json index 5bac0d2847..ed7056a48f 100644 --- a/src/i18n/locales/zh-CN/common.json +++ b/src/i18n/locales/zh-CN/common.json @@ -108,7 +108,8 @@ }, "roo": { "authenticationRequired": "Roo 提供商需要云认证。请登录 Roo Code Cloud。" - } + }, + "unexpectedApiResponse": "意外的 API 响应:语言模型未提供任何助手消息。这可能表示 API 或模型的输出存在问题。" }, "warnings": { "no_terminal_content": "没有选择终端内容", diff --git a/src/i18n/locales/zh-CN/tools.json b/src/i18n/locales/zh-CN/tools.json index c0c93d8436..5d8ee9f485 100644 --- a/src/i18n/locales/zh-CN/tools.json +++ b/src/i18n/locales/zh-CN/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "由于策略限制,无法创建新任务。" } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo 尝试在没有必需参数 '{{paramName}}' 的值的情况下对 '{{relPath}}' 使用 {{toolName}}。正在重试...", + "withoutPath": "Roo 尝试在没有必需参数 '{{paramName}}' 的值的情况下使用 {{toolName}}。正在重试..." + }, + "lineCountMissing": "Roo 尝试使用 write_to_file{{relPath}},但必需的参数 'line_count' 缺失或在写入 {{actualLineCount}} 行内容后被截断。 đang thử lại...", + "parseOperationsFailed": "解析操作失败:{{error}}", + "fileNotFound": "文件不存在于路径:{{path}}\n\n\n找不到指定的文件。请验证文件路径并重试。\n", + "fileNotFoundSimple": "文件不存在于路径:{{path}}\n找不到指定的文件。请验证文件路径并重试。", + "fileReadError": "读取文件时出错:{{path}}\n未能读取文件内容:{{error}}\n请验证文件权限并重试。", + "insertContentNewFile": "无法在不存在的文件的行 {{lineNumber}} 处插入内容。对于新文件,'line' 必须为 0(附加)或 1(在开头插入)。", + "toolExecutionError": "错误 {{action}}:\n{{error}}" } } diff --git a/src/i18n/locales/zh-TW/common.json b/src/i18n/locales/zh-TW/common.json index 0f82f48d13..b6eb34a02c 100644 --- a/src/i18n/locales/zh-TW/common.json +++ b/src/i18n/locales/zh-TW/common.json @@ -103,6 +103,7 @@ "roo": { "authenticationRequired": "Roo 提供者需要雲端認證。請登入 Roo Code Cloud。" }, + "unexpectedApiResponse": "非預期的 API 回應:語言模型未提供任何助理訊息。這可能表示 API 或模型輸出有問題。", "mode_import_failed": "匯入模式失敗:{{error}}" }, "warnings": { diff --git a/src/i18n/locales/zh-TW/tools.json b/src/i18n/locales/zh-TW/tools.json index b736448c20..8c21eb79f1 100644 --- a/src/i18n/locales/zh-TW/tools.json +++ b/src/i18n/locales/zh-TW/tools.json @@ -14,5 +14,18 @@ "errors": { "policy_restriction": "由於政策限制,無法建立新工作。" } + }, + "errors": { + "missingRequiredParameter": { + "withPath": "Roo 嘗試在沒有必要參數 '{{paramName}}' 的值的情況下對 '{{relPath}}' 使用 {{toolName}}。重試中...", + "withoutPath": "Roo 嘗試在沒有必要參數 '{{paramName}}' 的值的情況下使用 {{toolName}}。重試中..." + }, + "lineCountMissing": "Roo 嘗試使用 write_to_file{{relPath}},但必要的參數 'line_count' 缺失或在寫入 {{actualLineCount}} 行內容後被截斷。重試中...", + "parseOperationsFailed": "解析操作失敗:{{error}}", + "fileNotFound": "檔案不存在於路徑:{{path}}\n\n\n找不到指定的檔案。請驗證檔案路徑並重試。\n", + "fileNotFoundSimple": "檔案不存在於路徑:{{path}}\n找不到指定的檔案。請驗證檔案路徑並重試。", + "fileReadError": "讀取檔案時發生錯誤:{{path}}\n未能讀取檔案內容:{{error}}\n請驗證檔案權限並重試。", + "insertContentNewFile": "無法在不存在的檔案的行 {{lineNumber}} 處插入內容。對於新檔案,'行' 必須為 0(附加)或 1(在開頭插入)。", + "toolExecutionError": "錯誤 {{action}}:\n{{error}}" } }